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

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

%struct.s2n_handshake_action = type { i8, i8, i8, [2 x ptr] }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_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 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@s2n_errno = external thread_local global i32, align 4
@message_names = external hidden global [21 x ptr], align 16
@.str.11 = external hidden unnamed_addr constant [8 x i8], align 1
@tls13_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 [97 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 [55 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 [104 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [141 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [212 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [209 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [212 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [209 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [56 x i8], align 1
@unexpected_handler_called = external hidden global i32, align 4
@.str.60 = external hidden unnamed_addr constant [42 x i8], align 1
@expected_handler_called = external hidden global i32, align 4
@.str.61 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [95 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.65 = external hidden unnamed_addr constant [196 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [347 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [94 x i8], align 1
@s2n_dhe_rsa_with_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.88 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [105 x i8], align 1
@__const.main.expected = external hidden unnamed_addr constant [10 x ptr], align 16
@.str.141 = external hidden unnamed_addr constant [92 x i8], align 1
@__const.main.expected.145 = external hidden unnamed_addr constant [11 x ptr], align 16
@.str.146 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.152 = 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: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #2

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_set_handshake_type(ptr noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_choose_state_machine(ptr noundef, i8 noundef zeroext) #4

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_conn_set_tls13_handshake_type(ptr noundef) #4

declare i32 @s2n_handshake_type_reset(ptr noundef) #5

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #4 {
  %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 i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i64, align 8
  %21 = alloca i32, align 4
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca i64, align 8
  %34 = alloca i32, align 4
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %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 ptr, align 8
  %44 = alloca i64, align 8
  %45 = alloca i32, align 4
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca i32, align 4
  %59 = alloca ptr, align 8
  %60 = alloca %struct.s2n_result, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca %struct.s2n_result, 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 ptr, align 8
  %76 = alloca %struct.s2n_result, 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 i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca ptr, align 8
  %86 = alloca %struct.s2n_result, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca ptr, align 8
  %96 = alloca %struct.s2n_result, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca ptr, align 8
  %106 = alloca %struct.s2n_result, align 4
  %107 = alloca i32, align 4
  %108 = alloca %struct.s2n_stuffer, align 8
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca 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_result, align 4
  %126 = alloca i32, align 4
  %127 = alloca %struct.s2n_stuffer, align 8
  %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 i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca ptr, align 8
  %144 = alloca %struct.s2n_result, align 4
  %145 = alloca i32, align 4
  %146 = alloca %struct.s2n_stuffer, align 8
  %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 i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca ptr, align 8
  %159 = alloca %struct.s2n_result, align 4
  %160 = alloca i32, align 4
  %161 = alloca %struct.s2n_stuffer, align 8
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %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 i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca ptr, align 8
  %176 = alloca %struct.s2n_result, align 4
  %177 = alloca i32, align 4
  %178 = alloca %struct.s2n_stuffer, align 8
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca i8, align 1
  %193 = alloca ptr, align 8
  %194 = alloca %struct.s2n_result, align 4
  %195 = alloca i32, align 4
  %196 = alloca %struct.s2n_stuffer, align 8
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca i8, align 1
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca ptr, align 8
  %212 = alloca %struct.s2n_result, align 4
  %213 = alloca i32, align 4
  %214 = alloca %struct.s2n_stuffer, align 8
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca i64, align 8
  %224 = alloca i8, align 1
  %225 = alloca i32, align 4
  %226 = alloca ptr, align 8
  %227 = alloca i64, align 8
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i64, align 8
  %232 = alloca i32, align 4
  %233 = alloca ptr, align 8
  %234 = alloca i32, align 4
  %235 = alloca i32, align 4
  %236 = alloca i64, align 8
  %237 = alloca i32, align 4
  %238 = alloca i64, align 8
  %239 = alloca i8, align 1
  %240 = alloca i32, align 4
  %241 = alloca ptr, align 8
  %242 = alloca i64, align 8
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca i32, align 4
  %246 = alloca ptr, align 8
  %247 = alloca i32, align 4
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca %struct.s2n_result, align 4
  %254 = alloca i32, align 4
  %255 = alloca %struct.s2n_result, align 4
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca i32, align 4
  %259 = alloca i32, align 4
  %260 = alloca ptr, align 8
  %261 = alloca %struct.s2n_result, align 4
  %262 = alloca i32, align 4
  %263 = alloca i32, align 4
  %264 = alloca i32, align 4
  %265 = alloca %struct.s2n_result, align 4
  %266 = alloca i32, align 4
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca i32, align 4
  %270 = alloca ptr, align 8
  %271 = alloca ptr, align 8
  %272 = alloca %struct.s2n_result, align 4
  %273 = alloca i32, align 4
  %274 = alloca %struct.s2n_result, align 4
  %275 = alloca i32, align 4
  %276 = alloca i32, align 4
  %277 = alloca %struct.s2n_result, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca %struct.s2n_result, align 4
  %281 = alloca i32, align 4
  %282 = alloca i32, align 4
  %283 = alloca i32, align 4
  %284 = alloca ptr, align 8
  %285 = alloca ptr, align 8
  %286 = alloca %struct.s2n_result, align 4
  %287 = alloca i32, align 4
  %288 = alloca i32, align 4
  %289 = alloca i32, align 4
  %290 = alloca %struct.s2n_result, align 4
  %291 = alloca i32, align 4
  %292 = alloca i32, align 4
  %293 = alloca i32, align 4
  %294 = alloca i32, align 4
  %295 = alloca ptr, align 8
  %296 = alloca ptr, align 8
  %297 = alloca %struct.s2n_result, align 4
  %298 = alloca i32, align 4
  %299 = alloca i32, align 4
  %300 = alloca i32, align 4
  %301 = alloca %struct.s2n_result, align 4
  %302 = alloca i32, align 4
  %303 = alloca i32, align 4
  %304 = alloca i32, align 4
  %305 = alloca i32, align 4
  %306 = alloca ptr, align 8
  %307 = alloca %struct.s2n_result, align 4
  %308 = alloca i32, align 4
  %309 = alloca i32, align 4
  %310 = alloca i32, align 4
  %311 = alloca i32, align 4
  %312 = alloca ptr, align 8
  %313 = alloca %struct.s2n_result, align 4
  %314 = alloca i32, align 4
  %315 = alloca i32, align 4
  %316 = alloca i32, align 4
  %317 = alloca i32, align 4
  %318 = alloca i64, align 8
  %319 = alloca i64, align 8
  %320 = alloca i32, align 4
  %321 = alloca ptr, align 8
  %322 = alloca i32, align 4
  %323 = alloca i32, align 4
  %324 = alloca i32, align 4
  %325 = alloca ptr, align 8
  %326 = alloca i32, align 4
  %327 = alloca ptr, align 8
  %328 = alloca i32, align 4
  %329 = alloca i32, align 4
  %330 = alloca i32, align 4
  %331 = alloca i32, align 4
  %332 = alloca i32, align 4
  %333 = alloca i32, align 4
  %334 = alloca [10 x ptr], align 16
  %335 = alloca ptr, align 8
  %336 = alloca %struct.s2n_result, align 4
  %337 = alloca i32, align 4
  %338 = alloca i32, align 4
  %339 = alloca i32, align 4
  %340 = alloca i32, align 4
  %341 = alloca i32, align 4
  %342 = alloca [11 x ptr], align 16
  %343 = alloca ptr, align 8
  %344 = alloca %struct.s2n_result, align 4
  %345 = alloca i32, align 4
  %346 = alloca i32, align 4
  %347 = alloca i32, align 4
  %348 = alloca i32, align 4
  %349 = alloca i32, align 4
  %350 = alloca i32, align 4
  %351 = alloca i32, align 4
  %352 = 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 %353

353:                                              ; preds = %2
  br label %354

354:                                              ; preds = %353
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %355 = load ptr, ptr @stdout, align 8, !tbaa !9
  %356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %355, ptr noundef @.str.20, ptr noundef @.str.21) #11
  %357 = load ptr, ptr @stdout, align 8, !tbaa !9
  %358 = call i32 @fflush(ptr noundef %357)
  br label %359

359:                                              ; preds = %354
  %360 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %361 = icmp eq i32 %360, -1
  br i1 %361, label %362, label %413

362:                                              ; preds = %359
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %365 = call ptr @__errno_location() #12
  %366 = load i32, ptr %365, align 4, !tbaa !5
  store i32 %366, ptr %6, align 4, !tbaa !5
  %367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %368 = call i32 @s2n_print_stacktrace(ptr noundef %367)
  %369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %370 = trunc i8 %369 to i1
  br i1 %370, label %371, label %393

371:                                              ; preds = %364
  %372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %373 = call i32 @fileno(ptr noundef %372) #11
  %374 = call i32 @isatty(i32 noundef %373) #11
  %375 = icmp ne i32 %374, 0
  br i1 %375, label %376, label %393

376:                                              ; preds = %371
  %377 = load i32, ptr %6, align 4, !tbaa !5
  %378 = call ptr @__errno_location() #12
  store i32 %377, ptr %378, align 4, !tbaa !5
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = load i32, ptr @test_count, align 4, !tbaa !5
  %381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %382 = load i32, ptr %381, align 4, !tbaa !5
  %383 = call ptr @s2n_strerror(i32 noundef %382, ptr noundef @.str.24)
  %384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror_debug(i32 noundef %385, ptr noundef @.str.24)
  %387 = call ptr @__errno_location() #12
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #11
  %390 = call ptr @__errno_location() #12
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %379, ptr noundef @.str.22, i32 noundef %380, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 97, ptr noundef %383, ptr noundef %386, ptr noundef %389, i32 noundef %391) #11
  br label %410

393:                                              ; preds = %371, %364
  %394 = load i32, ptr %6, align 4, !tbaa !5
  %395 = call ptr @__errno_location() #12
  store i32 %394, ptr %395, align 4, !tbaa !5
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror(i32 noundef %399, ptr noundef @.str.24)
  %401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror_debug(i32 noundef %402, ptr noundef @.str.24)
  %404 = call ptr @__errno_location() #12
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @strerror(i32 noundef %405) #11
  %407 = call ptr @__errno_location() #12
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %396, ptr noundef @.str.25, i32 noundef %397, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 97, ptr noundef %400, ptr noundef %403, ptr noundef %406, i32 noundef %408) #11
  br label %410

410:                                              ; preds = %393, %376
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %411

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

412:                                              ; No predecessors!
  br label %413

413:                                              ; preds = %412, %359
  br label %414

414:                                              ; preds = %413
  br label %415

415:                                              ; preds = %414
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = add nsw i32 %416, 1
  store i32 %417, ptr @test_count, align 4, !tbaa !5
  %418 = call i32 @s2n_enable_atexit()
  %419 = icmp eq i32 %418, -1
  br i1 %419, label %420, label %471

420:                                              ; preds = %415
  br label %421

421:                                              ; preds = %420
  br label %422

422:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %423 = call ptr @__errno_location() #12
  %424 = load i32, ptr %423, align 4, !tbaa !5
  store i32 %424, ptr %7, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = call i32 @s2n_print_stacktrace(ptr noundef %425)
  %427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %428 = trunc i8 %427 to i1
  br i1 %428, label %429, label %451

429:                                              ; preds = %422
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = call i32 @fileno(ptr noundef %430) #11
  %432 = call i32 @isatty(i32 noundef %431) #11
  %433 = icmp ne i32 %432, 0
  br i1 %433, label %434, label %451

434:                                              ; preds = %429
  %435 = load i32, ptr %7, align 4, !tbaa !5
  %436 = call ptr @__errno_location() #12
  store i32 %435, ptr %436, align 4, !tbaa !5
  %437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call ptr @s2n_strerror(i32 noundef %440, ptr noundef @.str.24)
  %442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror_debug(i32 noundef %443, ptr noundef @.str.24)
  %445 = call ptr @__errno_location() #12
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @strerror(i32 noundef %446) #11
  %448 = call ptr @__errno_location() #12
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %437, ptr noundef @.str.22, i32 noundef %438, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 97, ptr noundef %441, ptr noundef %444, ptr noundef %447, i32 noundef %449) #11
  br label %468

451:                                              ; preds = %429, %422
  %452 = load i32, ptr %7, align 4, !tbaa !5
  %453 = call ptr @__errno_location() #12
  store i32 %452, ptr %453, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = load i32, ptr @test_count, align 4, !tbaa !5
  %456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = call ptr @s2n_strerror(i32 noundef %457, ptr noundef @.str.24)
  %459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror_debug(i32 noundef %460, ptr noundef @.str.24)
  %462 = call ptr @__errno_location() #12
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @strerror(i32 noundef %463) #11
  %465 = call ptr @__errno_location() #12
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %454, ptr noundef @.str.25, i32 noundef %455, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 97, ptr noundef %458, ptr noundef %461, ptr noundef %464, i32 noundef %466) #11
  br label %468

468:                                              ; preds = %451, %434
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %469

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

470:                                              ; No predecessors!
  br label %471

471:                                              ; preds = %470, %415
  br label %472

472:                                              ; preds = %471
  br label %473

473:                                              ; preds = %472
  br label %474

474:                                              ; preds = %473
  %475 = call i32 @s2n_init()
  %476 = icmp eq i32 %475, -1
  br i1 %476, label %477, label %528

477:                                              ; preds = %474
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %480 = call ptr @__errno_location() #12
  %481 = load i32, ptr %480, align 4, !tbaa !5
  store i32 %481, ptr %8, align 4, !tbaa !5
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = call i32 @s2n_print_stacktrace(ptr noundef %482)
  %484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %485 = trunc i8 %484 to i1
  br i1 %485, label %486, label %508

486:                                              ; preds = %479
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = call i32 @fileno(ptr noundef %487) #11
  %489 = call i32 @isatty(i32 noundef %488) #11
  %490 = icmp ne i32 %489, 0
  br i1 %490, label %491, label %508

491:                                              ; preds = %486
  %492 = load i32, ptr %8, align 4, !tbaa !5
  %493 = call ptr @__errno_location() #12
  store i32 %492, ptr %493, align 4, !tbaa !5
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror(i32 noundef %497, ptr noundef @.str.24)
  %499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror_debug(i32 noundef %500, ptr noundef @.str.24)
  %502 = call ptr @__errno_location() #12
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @strerror(i32 noundef %503) #11
  %505 = call ptr @__errno_location() #12
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %494, ptr noundef @.str.22, i32 noundef %495, ptr noundef @.str.27, ptr noundef @.str.21, i32 noundef 97, ptr noundef %498, ptr noundef %501, ptr noundef %504, i32 noundef %506) #11
  br label %525

508:                                              ; preds = %486, %479
  %509 = load i32, ptr %8, align 4, !tbaa !5
  %510 = call ptr @__errno_location() #12
  store i32 %509, ptr %510, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call ptr @s2n_strerror(i32 noundef %514, ptr noundef @.str.24)
  %516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %517 = load i32, ptr %516, align 4, !tbaa !5
  %518 = call ptr @s2n_strerror_debug(i32 noundef %517, ptr noundef @.str.24)
  %519 = call ptr @__errno_location() #12
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = call ptr @strerror(i32 noundef %520) #11
  %522 = call ptr @__errno_location() #12
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %511, ptr noundef @.str.25, i32 noundef %512, ptr noundef @.str.27, ptr noundef @.str.21, i32 noundef 97, ptr noundef %515, ptr noundef %518, ptr noundef %521, i32 noundef %523) #11
  br label %525

525:                                              ; preds = %508, %491
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %526

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

527:                                              ; No predecessors!
  br label %528

528:                                              ; preds = %527, %474
  br label %529

529:                                              ; preds = %528
  br label %530

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %530
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr @test_count, align 4, !tbaa !5
  %534 = call i32 (...) @s2n_enable_tls13_in_test()
  %535 = icmp eq i32 %534, -1
  br i1 %535, label %536, label %587

536:                                              ; preds = %531
  br label %537

537:                                              ; preds = %536
  br label %538

538:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %539 = call ptr @__errno_location() #12
  %540 = load i32, ptr %539, align 4, !tbaa !5
  store i32 %540, ptr %9, align 4, !tbaa !5
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = call i32 @s2n_print_stacktrace(ptr noundef %541)
  %543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %544 = trunc i8 %543 to i1
  br i1 %544, label %545, label %567

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

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

567:                                              ; preds = %545, %538
  %568 = load i32, ptr %9, align 4, !tbaa !5
  %569 = call ptr @__errno_location() #12
  store i32 %568, ptr %569, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror(i32 noundef %573, ptr noundef @.str.24)
  %575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror_debug(i32 noundef %576, ptr noundef @.str.24)
  %578 = call ptr @__errno_location() #12
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = call ptr @strerror(i32 noundef %579) #11
  %581 = call ptr @__errno_location() #12
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %570, ptr noundef @.str.25, i32 noundef %571, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 99, ptr noundef %574, ptr noundef %577, ptr noundef %580, i32 noundef %582) #11
  br label %584

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

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

586:                                              ; No predecessors!
  br label %587

587:                                              ; preds = %586, %531
  br label %588

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

589:                                              ; preds = %609, %588
  %590 = load i32, ptr %12, align 4, !tbaa !5
  %591 = icmp slt i32 %590, 256
  br i1 %591, label %593, label %592

592:                                              ; preds = %589
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %612

593:                                              ; preds = %589
  %594 = load i32, ptr %12, align 4, !tbaa !5
  %595 = sext i32 %594 to i64
  %596 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %595
  %597 = getelementptr inbounds [32 x i32], ptr %596, i64 0, i64 0
  %598 = call i32 @memcmp(ptr noundef %597, ptr noundef @invalid_handshake, i64 noundef 32) #14
  %599 = icmp ne i32 %598, 0
  br i1 %599, label %600, label %608

600:                                              ; preds = %593
  %601 = load i32, ptr %12, align 4, !tbaa !5
  %602 = trunc i32 %601 to i16
  %603 = load i32, ptr %11, align 4, !tbaa !5
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %604
  store i16 %602, ptr %605, align 2, !tbaa !15
  %606 = load i32, ptr %11, align 4, !tbaa !5
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr %11, align 4, !tbaa !5
  br label %608

608:                                              ; preds = %600, %593
  br label %609

609:                                              ; preds = %608
  %610 = load i32, ptr %12, align 4, !tbaa !5
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr %12, align 4, !tbaa !5
  br label %589, !llvm.loop !17

612:                                              ; preds = %592
  br label %613

613:                                              ; preds = %612
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr @test_count, align 4, !tbaa !5
  %616 = load i32, ptr %11, align 4, !tbaa !5
  %617 = icmp sgt i32 %616, 0
  br i1 %617, label %671, label %618

618:                                              ; preds = %613
  br label %619

619:                                              ; preds = %618
  br label %620

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

627:                                              ; preds = %620
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @fileno(ptr noundef %628) #11
  %630 = call i32 @isatty(i32 noundef %629) #11
  %631 = icmp ne i32 %630, 0
  br i1 %631, label %632, label %649

632:                                              ; preds = %627
  %633 = load i32, ptr %13, align 4, !tbaa !5
  %634 = call ptr @__errno_location() #12
  store i32 %633, ptr %634, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror(i32 noundef %638, ptr noundef @.str.24)
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror_debug(i32 noundef %641, ptr noundef @.str.24)
  %643 = call ptr @__errno_location() #12
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #11
  %646 = call ptr @__errno_location() #12
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef @.str.22, i32 noundef %636, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 110, ptr noundef %639, ptr noundef %642, ptr noundef %645, i32 noundef %647) #11
  br label %666

649:                                              ; preds = %627, %620
  %650 = load i32, ptr %13, align 4, !tbaa !5
  %651 = call ptr @__errno_location() #12
  store i32 %650, ptr %651, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror(i32 noundef %655, ptr noundef @.str.24)
  %657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror_debug(i32 noundef %658, ptr noundef @.str.24)
  %660 = call ptr @__errno_location() #12
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @strerror(i32 noundef %661) #11
  %663 = call ptr @__errno_location() #12
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %652, ptr noundef @.str.25, i32 noundef %653, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 110, ptr noundef %656, ptr noundef %659, ptr noundef %662, i32 noundef %664) #11
  br label %666

666:                                              ; preds = %649, %632
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %667

667:                                              ; preds = %666
  br label %668

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

669:                                              ; No predecessors!
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670, %613
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672
  br label %674

674:                                              ; preds = %673
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = add nsw i32 %675, 1
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = load i32, ptr %11, align 4, !tbaa !5
  %678 = icmp slt i32 %677, 256
  br i1 %678, label %732, label %679

679:                                              ; preds = %674
  br label %680

680:                                              ; preds = %679
  br label %681

681:                                              ; preds = %680
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %682 = call ptr @__errno_location() #12
  %683 = load i32, ptr %682, align 4, !tbaa !5
  store i32 %683, ptr %14, align 4, !tbaa !5
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = call i32 @s2n_print_stacktrace(ptr noundef %684)
  %686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %687 = trunc i8 %686 to i1
  br i1 %687, label %688, label %710

688:                                              ; preds = %681
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = call i32 @fileno(ptr noundef %689) #11
  %691 = call i32 @isatty(i32 noundef %690) #11
  %692 = icmp ne i32 %691, 0
  br i1 %692, label %693, label %710

693:                                              ; preds = %688
  %694 = load i32, ptr %14, align 4, !tbaa !5
  %695 = call ptr @__errno_location() #12
  store i32 %694, ptr %695, align 4, !tbaa !5
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror(i32 noundef %699, ptr noundef @.str.24)
  %701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror_debug(i32 noundef %702, ptr noundef @.str.24)
  %704 = call ptr @__errno_location() #12
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call ptr @strerror(i32 noundef %705) #11
  %707 = call ptr @__errno_location() #12
  %708 = load i32, ptr %707, align 4, !tbaa !5
  %709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %696, ptr noundef @.str.22, i32 noundef %697, ptr noundef @.str.30, ptr noundef @.str.21, i32 noundef 111, ptr noundef %700, ptr noundef %703, ptr noundef %706, i32 noundef %708) #11
  br label %727

710:                                              ; preds = %688, %681
  %711 = load i32, ptr %14, align 4, !tbaa !5
  %712 = call ptr @__errno_location() #12
  store i32 %711, ptr %712, align 4, !tbaa !5
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = load i32, ptr @test_count, align 4, !tbaa !5
  %715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror(i32 noundef %716, ptr noundef @.str.24)
  %718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @s2n_strerror_debug(i32 noundef %719, ptr noundef @.str.24)
  %721 = call ptr @__errno_location() #12
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call ptr @strerror(i32 noundef %722) #11
  %724 = call ptr @__errno_location() #12
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %713, ptr noundef @.str.25, i32 noundef %714, ptr noundef @.str.30, ptr noundef @.str.21, i32 noundef 111, ptr noundef %717, ptr noundef %720, ptr noundef %723, i32 noundef %725) #11
  br label %727

727:                                              ; preds = %710, %693
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %728

728:                                              ; preds = %727
  br label %729

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

730:                                              ; No predecessors!
  br label %731

731:                                              ; preds = %730
  br label %732

732:                                              ; preds = %731, %674
  br label %733

733:                                              ; preds = %732
  br label %734

734:                                              ; preds = %733
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  store i32 0, ptr %15, align 4, !tbaa !5
  br label %735

735:                                              ; preds = %751, %734
  %736 = load i32, ptr %15, align 4, !tbaa !5
  %737 = sext i32 %736 to i64
  %738 = icmp ult i64 %737, 21
  br i1 %738, label %740, label %739

739:                                              ; preds = %735
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %754

740:                                              ; preds = %735
  %741 = load i32, ptr %15, align 4, !tbaa !5
  %742 = sext i32 %741 to i64
  %743 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %742
  %744 = getelementptr inbounds %struct.s2n_handshake_action, ptr %743, i32 0, i32 3
  %745 = getelementptr inbounds [2 x ptr], ptr %744, i64 0, i64 0
  store ptr @s2n_test_handler, ptr %745, align 8, !tbaa !9
  %746 = load i32, ptr %15, align 4, !tbaa !5
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %747
  %749 = getelementptr inbounds %struct.s2n_handshake_action, ptr %748, i32 0, i32 3
  %750 = getelementptr inbounds [2 x ptr], ptr %749, i64 0, i64 1
  store ptr @s2n_test_handler, ptr %750, align 8, !tbaa !9
  br label %751

751:                                              ; preds = %740
  %752 = load i32, ptr %15, align 4, !tbaa !5
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr %15, align 4, !tbaa !5
  br label %735, !llvm.loop !19

754:                                              ; preds = %739
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  store i32 0, ptr %16, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  store i32 0, ptr %17, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #11
  store ptr null, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #11
  store ptr null, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #11
  store i64 0, ptr %20, align 8, !tbaa !20
  br label %755

755:                                              ; preds = %1162, %754
  %756 = load i64, ptr %20, align 8, !tbaa !20
  %757 = load i32, ptr %11, align 4, !tbaa !5
  %758 = sext i32 %757 to i64
  %759 = icmp ult i64 %756, %758
  br i1 %759, label %761, label %760

760:                                              ; preds = %755
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #11
  br label %1165

761:                                              ; preds = %755
  %762 = load i64, ptr %20, align 8, !tbaa !20
  %763 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %762
  %764 = load i16, ptr %763, align 2, !tbaa !15
  %765 = zext i16 %764 to i32
  store i32 %765, ptr %16, align 4, !tbaa !5
  %766 = load i32, ptr %16, align 4, !tbaa !5
  %767 = zext i32 %766 to i64
  %768 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %767
  %769 = getelementptr inbounds [32 x i32], ptr %768, i64 0, i64 0
  store ptr %769, ptr %18, align 8, !tbaa !9
  %770 = load i32, ptr %16, align 4, !tbaa !5
  %771 = or i32 %770, 64
  store i32 %771, ptr %17, align 4, !tbaa !5
  %772 = load i32, ptr %17, align 4, !tbaa !5
  %773 = zext i32 %772 to i64
  %774 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %773
  %775 = getelementptr inbounds [32 x i32], ptr %774, i64 0, i64 0
  store ptr %775, ptr %19, align 8, !tbaa !9
  %776 = load i32, ptr %16, align 4, !tbaa !5
  %777 = and i32 %776, 1
  %778 = icmp ne i32 %777, 0
  br i1 %778, label %779, label %787

779:                                              ; preds = %761
  %780 = load i32, ptr %16, align 4, !tbaa !5
  %781 = and i32 %780, 2
  %782 = icmp ne i32 %781, 0
  br i1 %782, label %787, label %783

783:                                              ; preds = %779
  %784 = load i32, ptr %16, align 4, !tbaa !5
  %785 = and i32 %784, 16
  %786 = icmp ne i32 %785, 0
  br i1 %786, label %787, label %853

787:                                              ; preds = %783, %779, %761
  br label %788

788:                                              ; preds = %787
  br label %789

789:                                              ; preds = %788
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = add nsw i32 %790, 1
  store i32 %791, ptr @test_count, align 4, !tbaa !5
  %792 = load ptr, ptr %19, align 8, !tbaa !9
  %793 = call i32 @memcmp(ptr noundef %792, ptr noundef @invalid_handshake, i64 noundef 128) #14
  %794 = icmp eq i32 %793, 0
  br i1 %794, label %848, label %795

795:                                              ; preds = %789
  br label %796

796:                                              ; preds = %795
  br label %797

797:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %798 = call ptr @__errno_location() #12
  %799 = load i32, ptr %798, align 4, !tbaa !5
  store i32 %799, ptr %21, align 4, !tbaa !5
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = call i32 @s2n_print_stacktrace(ptr noundef %800)
  %802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %803 = trunc i8 %802 to i1
  br i1 %803, label %804, label %826

804:                                              ; preds = %797
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @fileno(ptr noundef %805) #11
  %807 = call i32 @isatty(i32 noundef %806) #11
  %808 = icmp ne i32 %807, 0
  br i1 %808, label %809, label %826

809:                                              ; preds = %804
  %810 = load i32, ptr %21, align 4, !tbaa !5
  %811 = call ptr @__errno_location() #12
  store i32 %810, ptr %811, align 4, !tbaa !5
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = call ptr @s2n_strerror(i32 noundef %815, ptr noundef @.str.24)
  %817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror_debug(i32 noundef %818, ptr noundef @.str.24)
  %820 = call ptr @__errno_location() #12
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = call ptr @strerror(i32 noundef %821) #11
  %823 = call ptr @__errno_location() #12
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %812, ptr noundef @.str.22, i32 noundef %813, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 138, ptr noundef %816, ptr noundef %819, ptr noundef %822, i32 noundef %824) #11
  br label %843

826:                                              ; preds = %804, %797
  %827 = load i32, ptr %21, align 4, !tbaa !5
  %828 = call ptr @__errno_location() #12
  store i32 %827, ptr %828, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef @.str.24)
  %834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror_debug(i32 noundef %835, ptr noundef @.str.24)
  %837 = call ptr @__errno_location() #12
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call ptr @strerror(i32 noundef %838) #11
  %840 = call ptr @__errno_location() #12
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %829, ptr noundef @.str.25, i32 noundef %830, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 138, ptr noundef %833, ptr noundef %836, ptr noundef %839, i32 noundef %841) #11
  br label %843

843:                                              ; preds = %826, %809
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %844

844:                                              ; preds = %843
  br label %845

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

846:                                              ; No predecessors!
  br label %847

847:                                              ; preds = %846
  br label %848

848:                                              ; preds = %847, %789
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851
  br label %1162

853:                                              ; preds = %783
  %854 = load i32, ptr %16, align 4, !tbaa !5
  %855 = load i32, ptr %17, align 4, !tbaa !5
  %856 = icmp eq i32 %854, %855
  br i1 %856, label %857, label %858

857:                                              ; preds = %853
  br label %1162

858:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #11
  store i64 0, ptr %22, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #11
  store i64 0, ptr %23, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #11
  store i64 0, ptr %24, align 8, !tbaa !20
  br label %859

859:                                              ; preds = %1028, %957, %948, %937, %858
  %860 = load i64, ptr %23, align 8, !tbaa !20
  %861 = icmp ult i64 %860, 32
  br i1 %861, label %862, label %865

862:                                              ; preds = %859
  %863 = load i64, ptr %24, align 8, !tbaa !20
  %864 = icmp ult i64 %863, 32
  br label %865

865:                                              ; preds = %862, %859
  %866 = phi i1 [ false, %859 ], [ %864, %862 ]
  br i1 %866, label %867, label %1033

867:                                              ; preds = %865
  br label %868

868:                                              ; preds = %867
  %869 = load i32, ptr @test_count, align 4, !tbaa !5
  %870 = add nsw i32 %869, 1
  store i32 %870, ptr @test_count, align 4, !tbaa !5
  %871 = load ptr, ptr %18, align 8, !tbaa !9
  %872 = load i64, ptr %23, align 8, !tbaa !20
  %873 = getelementptr inbounds i32, ptr %871, i64 %872
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = icmp eq i32 %874, 19
  br i1 %875, label %876, label %929

876:                                              ; preds = %868
  br label %877

877:                                              ; preds = %876
  br label %878

878:                                              ; preds = %877
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %879 = call ptr @__errno_location() #12
  %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) #11
  %888 = call i32 @isatty(i32 noundef %887) #11
  %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() #12
  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() #12
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @strerror(i32 noundef %902) #11
  %904 = call ptr @__errno_location() #12
  %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.32, ptr noundef @.str.21, i32 noundef 151, ptr noundef %897, ptr noundef %900, ptr noundef %903, i32 noundef %905) #11
  br label %924

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

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

925:                                              ; preds = %924
  br label %926

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

927:                                              ; No predecessors!
  br label %928

928:                                              ; preds = %927
  br label %929

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

930:                                              ; preds = %929
  br label %931

931:                                              ; preds = %930
  %932 = load ptr, ptr %19, align 8, !tbaa !9
  %933 = load i64, ptr %24, align 8, !tbaa !20
  %934 = getelementptr inbounds i32, ptr %932, i64 %933
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = icmp eq i32 %935, 19
  br i1 %936, label %937, label %942

937:                                              ; preds = %931
  %938 = load i64, ptr %22, align 8, !tbaa !20
  %939 = add i64 %938, 1
  store i64 %939, ptr %22, align 8, !tbaa !20
  %940 = load i64, ptr %24, align 8, !tbaa !20
  %941 = add i64 %940, 1
  store i64 %941, ptr %24, align 8, !tbaa !20
  br label %859, !llvm.loop !22

942:                                              ; preds = %931
  %943 = load ptr, ptr %19, align 8, !tbaa !9
  %944 = load i64, ptr %24, align 8, !tbaa !20
  %945 = getelementptr inbounds i32, ptr %943, i64 %944
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = icmp eq i32 %946, 11
  br i1 %947, label %948, label %951

948:                                              ; preds = %942
  %949 = load i64, ptr %24, align 8, !tbaa !20
  %950 = add i64 %949, 1
  store i64 %950, ptr %24, align 8, !tbaa !20
  br label %859, !llvm.loop !22

951:                                              ; preds = %942
  %952 = load ptr, ptr %18, align 8, !tbaa !9
  %953 = load i64, ptr %23, align 8, !tbaa !20
  %954 = getelementptr inbounds i32, ptr %952, i64 %953
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = icmp eq i32 %955, 11
  br i1 %956, label %957, label %960

957:                                              ; preds = %951
  %958 = load i64, ptr %23, align 8, !tbaa !20
  %959 = add i64 %958, 1
  store i64 %959, ptr %23, align 8, !tbaa !20
  br label %859, !llvm.loop !22

960:                                              ; preds = %951
  br label %961

961:                                              ; preds = %960
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = add nsw i32 %962, 1
  store i32 %963, ptr @test_count, align 4, !tbaa !5
  %964 = load ptr, ptr %18, align 8, !tbaa !9
  %965 = load i64, ptr %23, align 8, !tbaa !20
  %966 = getelementptr inbounds i32, ptr %964, i64 %965
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = load ptr, ptr %19, align 8, !tbaa !9
  %969 = load i64, ptr %24, align 8, !tbaa !20
  %970 = getelementptr inbounds i32, ptr %968, i64 %969
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = icmp eq i32 %967, %971
  br i1 %972, label %1026, label %973

973:                                              ; preds = %961
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %976 = call ptr @__errno_location() #12
  %977 = load i32, ptr %976, align 4, !tbaa !5
  store i32 %977, ptr %26, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @s2n_print_stacktrace(ptr noundef %978)
  %980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %981 = trunc i8 %980 to i1
  br i1 %981, label %982, label %1004

982:                                              ; preds = %975
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = call i32 @fileno(ptr noundef %983) #11
  %985 = call i32 @isatty(i32 noundef %984) #11
  %986 = icmp ne i32 %985, 0
  br i1 %986, label %987, label %1004

987:                                              ; preds = %982
  %988 = load i32, ptr %26, align 4, !tbaa !5
  %989 = call ptr @__errno_location() #12
  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() #12
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #11
  %1001 = call ptr @__errno_location() #12
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %990, ptr noundef @.str.22, i32 noundef %991, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 171, ptr noundef %994, ptr noundef %997, ptr noundef %1000, i32 noundef %1002) #11
  br label %1021

1004:                                             ; preds = %982, %975
  %1005 = load i32, ptr %26, align 4, !tbaa !5
  %1006 = call ptr @__errno_location() #12
  store i32 %1005, ptr %1006, align 4, !tbaa !5
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = load i32, ptr @test_count, align 4, !tbaa !5
  %1009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror(i32 noundef %1010, ptr noundef @.str.24)
  %1012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror_debug(i32 noundef %1013, ptr noundef @.str.24)
  %1015 = call ptr @__errno_location() #12
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call ptr @strerror(i32 noundef %1016) #11
  %1018 = call ptr @__errno_location() #12
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1007, ptr noundef @.str.25, i32 noundef %1008, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 171, ptr noundef %1011, ptr noundef %1014, ptr noundef %1017, i32 noundef %1019) #11
  br label %1021

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

1022:                                             ; preds = %1021
  br label %1023

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

1024:                                             ; No predecessors!
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025, %961
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  %1029 = load i64, ptr %23, align 8, !tbaa !20
  %1030 = add i64 %1029, 1
  store i64 %1030, ptr %23, align 8, !tbaa !20
  %1031 = load i64, ptr %24, align 8, !tbaa !20
  %1032 = add i64 %1031, 1
  store i64 %1032, ptr %24, align 8, !tbaa !20
  br label %859, !llvm.loop !22

1033:                                             ; preds = %865
  %1034 = load i32, ptr %16, align 4, !tbaa !5
  %1035 = and i32 %1034, 1
  %1036 = icmp ne i32 %1035, 0
  br i1 %1036, label %1037, label %1099

1037:                                             ; preds = %1033
  br label %1038

1038:                                             ; preds = %1037
  %1039 = load i32, ptr @test_count, align 4, !tbaa !5
  %1040 = add nsw i32 %1039, 1
  store i32 %1040, ptr @test_count, align 4, !tbaa !5
  %1041 = load i64, ptr %22, align 8, !tbaa !20
  %1042 = icmp eq i64 %1041, 1
  br i1 %1042, label %1096, label %1043

1043:                                             ; preds = %1038
  br label %1044

1044:                                             ; preds = %1043
  br label %1045

1045:                                             ; preds = %1044
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %1046 = call ptr @__errno_location() #12
  %1047 = load i32, ptr %1046, align 4, !tbaa !5
  store i32 %1047, ptr %27, align 4, !tbaa !5
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = call i32 @s2n_print_stacktrace(ptr noundef %1048)
  %1050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1051 = trunc i8 %1050 to i1
  br i1 %1051, label %1052, label %1074

1052:                                             ; preds = %1045
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = call i32 @fileno(ptr noundef %1053) #11
  %1055 = call i32 @isatty(i32 noundef %1054) #11
  %1056 = icmp ne i32 %1055, 0
  br i1 %1056, label %1057, label %1074

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

1074:                                             ; preds = %1052, %1045
  %1075 = load i32, ptr %27, align 4, !tbaa !5
  %1076 = call ptr @__errno_location() #12
  store i32 %1075, ptr %1076, align 4, !tbaa !5
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef @.str.24)
  %1082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror_debug(i32 noundef %1083, ptr noundef @.str.24)
  %1085 = call ptr @__errno_location() #12
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #11
  %1088 = call ptr @__errno_location() #12
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  %1090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1077, ptr noundef @.str.25, i32 noundef %1078, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 176, ptr noundef %1081, ptr noundef %1084, ptr noundef %1087, i32 noundef %1089) #11
  br label %1091

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

1092:                                             ; preds = %1091
  br label %1093

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

1094:                                             ; No predecessors!
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

1096:                                             ; preds = %1095, %1038
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

1098:                                             ; preds = %1097
  br label %1161

1099:                                             ; preds = %1033
  br label %1100

1100:                                             ; preds = %1099
  %1101 = load i32, ptr @test_count, align 4, !tbaa !5
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, ptr @test_count, align 4, !tbaa !5
  %1103 = load i64, ptr %22, align 8, !tbaa !20
  %1104 = icmp eq i64 %1103, 0
  br i1 %1104, label %1158, label %1105

1105:                                             ; preds = %1100
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

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

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

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

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

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

1154:                                             ; preds = %1153
  br label %1155

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

1156:                                             ; No predecessors!
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

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

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

1161:                                             ; preds = %1160, %1098
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #11
  br label %1162

1162:                                             ; preds = %1161, %857, %852
  %1163 = load i64, ptr %20, align 8, !tbaa !20
  %1164 = add i64 %1163, 1
  store i64 %1164, ptr %20, align 8, !tbaa !20
  br label %755, !llvm.loop !23

1165:                                             ; preds = %760
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  store i32 0, ptr %29, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #11
  store i32 0, ptr %30, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  store ptr null, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  store ptr null, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  store i64 0, ptr %33, align 8, !tbaa !20
  br label %1166

1166:                                             ; preds = %1426, %1165
  %1167 = load i64, ptr %33, align 8, !tbaa !20
  %1168 = load i32, ptr %11, align 4, !tbaa !5
  %1169 = sext i32 %1168 to i64
  %1170 = icmp ult i64 %1167, %1169
  br i1 %1170, label %1172, label %1171

1171:                                             ; preds = %1166
  store i32 85, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  br label %1429

1172:                                             ; preds = %1166
  %1173 = load i64, ptr %33, align 8, !tbaa !20
  %1174 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %1173
  %1175 = load i16, ptr %1174, align 2, !tbaa !15
  %1176 = zext i16 %1175 to i32
  store i32 %1176, ptr %29, align 4, !tbaa !5
  %1177 = load i32, ptr %29, align 4, !tbaa !5
  %1178 = zext i32 %1177 to i64
  %1179 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1178
  %1180 = getelementptr inbounds [32 x i32], ptr %1179, i64 0, i64 0
  store ptr %1180, ptr %31, align 8, !tbaa !9
  %1181 = load i32, ptr %29, align 4, !tbaa !5
  %1182 = and i32 %1181, 1
  %1183 = icmp ne i32 %1182, 0
  br i1 %1183, label %1184, label %1188

1184:                                             ; preds = %1172
  %1185 = load i32, ptr %29, align 4, !tbaa !5
  %1186 = and i32 %1185, 32
  %1187 = icmp ne i32 %1186, 0
  br i1 %1187, label %1188, label %1189

1188:                                             ; preds = %1184, %1172
  br label %1426

1189:                                             ; preds = %1184
  %1190 = load i32, ptr %29, align 4, !tbaa !5
  %1191 = or i32 %1190, 32
  store i32 %1191, ptr %30, align 4, !tbaa !5
  %1192 = load i32, ptr %30, align 4, !tbaa !5
  %1193 = zext i32 %1192 to i64
  %1194 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1193
  %1195 = getelementptr inbounds [32 x i32], ptr %1194, i64 0, i64 0
  store ptr %1195, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #11
  store i64 0, ptr %35, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #11
  store i64 0, ptr %36, align 8, !tbaa !20
  br label %1196

1196:                                             ; preds = %1420, %1189
  %1197 = load i64, ptr %35, align 8, !tbaa !20
  %1198 = icmp ult i64 %1197, 32
  br i1 %1198, label %1199, label %1202

1199:                                             ; preds = %1196
  %1200 = load i64, ptr %36, align 8, !tbaa !20
  %1201 = icmp ult i64 %1200, 32
  br label %1202

1202:                                             ; preds = %1199, %1196
  %1203 = phi i1 [ false, %1196 ], [ %1201, %1199 ]
  br i1 %1203, label %1205, label %1204

1204:                                             ; preds = %1202
  store i32 88, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  br label %1425

1205:                                             ; preds = %1202
  br label %1206

1206:                                             ; preds = %1205
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = add nsw i32 %1207, 1
  store i32 %1208, ptr @test_count, align 4, !tbaa !5
  %1209 = load ptr, ptr %31, align 8, !tbaa !9
  %1210 = load i64, ptr %35, align 8, !tbaa !20
  %1211 = getelementptr inbounds i32, ptr %1209, i64 %1210
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = icmp eq i32 %1212, 14
  br i1 %1213, label %1214, label %1267

1214:                                             ; preds = %1206
  br label %1215

1215:                                             ; preds = %1214
  br label %1216

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

1223:                                             ; preds = %1216
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = call i32 @fileno(ptr noundef %1224) #11
  %1226 = call i32 @isatty(i32 noundef %1225) #11
  %1227 = icmp ne i32 %1226, 0
  br i1 %1227, label %1228, label %1245

1228:                                             ; preds = %1223
  %1229 = load i32, ptr %37, align 4, !tbaa !5
  %1230 = call ptr @__errno_location() #12
  store i32 %1229, ptr %1230, align 4, !tbaa !5
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1234, ptr noundef @.str.24)
  %1236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef @.str.24)
  %1239 = call ptr @__errno_location() #12
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @strerror(i32 noundef %1240) #11
  %1242 = call ptr @__errno_location() #12
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1231, ptr noundef @.str.22, i32 noundef %1232, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 204, ptr noundef %1235, ptr noundef %1238, ptr noundef %1241, i32 noundef %1243) #11
  br label %1262

1245:                                             ; preds = %1223, %1216
  %1246 = load i32, ptr %37, align 4, !tbaa !5
  %1247 = call ptr @__errno_location() #12
  store i32 %1246, ptr %1247, align 4, !tbaa !5
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = load i32, ptr @test_count, align 4, !tbaa !5
  %1250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror(i32 noundef %1251, ptr noundef @.str.24)
  %1253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror_debug(i32 noundef %1254, ptr noundef @.str.24)
  %1256 = call ptr @__errno_location() #12
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call ptr @strerror(i32 noundef %1257) #11
  %1259 = call ptr @__errno_location() #12
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1248, ptr noundef @.str.25, i32 noundef %1249, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 204, ptr noundef %1252, ptr noundef %1255, ptr noundef %1258, i32 noundef %1260) #11
  br label %1262

1262:                                             ; preds = %1245, %1228
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

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

1265:                                             ; No predecessors!
  br label %1266

1266:                                             ; preds = %1265
  br label %1267

1267:                                             ; preds = %1266, %1206
  br label %1268

1268:                                             ; preds = %1267
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

1270:                                             ; preds = %1269
  %1271 = load i32, ptr @test_count, align 4, !tbaa !5
  %1272 = add nsw i32 %1271, 1
  store i32 %1272, ptr @test_count, align 4, !tbaa !5
  %1273 = load ptr, ptr %31, align 8, !tbaa !9
  %1274 = load i64, ptr %35, align 8, !tbaa !20
  %1275 = getelementptr inbounds i32, ptr %1273, i64 %1274
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = icmp eq i32 %1276, 11
  br i1 %1277, label %1278, label %1331

1278:                                             ; preds = %1270
  br label %1279

1279:                                             ; preds = %1278
  br label %1280

1280:                                             ; preds = %1279
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1281 = call ptr @__errno_location() #12
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  store i32 %1282, ptr %38, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = call i32 @s2n_print_stacktrace(ptr noundef %1283)
  %1285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1286 = trunc i8 %1285 to i1
  br i1 %1286, label %1287, label %1309

1287:                                             ; preds = %1280
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @fileno(ptr noundef %1288) #11
  %1290 = call i32 @isatty(i32 noundef %1289) #11
  %1291 = icmp ne i32 %1290, 0
  br i1 %1291, label %1292, label %1309

1292:                                             ; preds = %1287
  %1293 = load i32, ptr %38, align 4, !tbaa !5
  %1294 = call ptr @__errno_location() #12
  store i32 %1293, ptr %1294, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = call ptr @s2n_strerror(i32 noundef %1298, ptr noundef @.str.24)
  %1300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call ptr @s2n_strerror_debug(i32 noundef %1301, ptr noundef @.str.24)
  %1303 = call ptr @__errno_location() #12
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call ptr @strerror(i32 noundef %1304) #11
  %1306 = call ptr @__errno_location() #12
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1295, ptr noundef @.str.22, i32 noundef %1296, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 205, ptr noundef %1299, ptr noundef %1302, ptr noundef %1305, i32 noundef %1307) #11
  br label %1326

1309:                                             ; preds = %1287, %1280
  %1310 = load i32, ptr %38, align 4, !tbaa !5
  %1311 = call ptr @__errno_location() #12
  store i32 %1310, ptr %1311, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror(i32 noundef %1315, ptr noundef @.str.24)
  %1317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1318 = load i32, ptr %1317, align 4, !tbaa !5
  %1319 = call ptr @s2n_strerror_debug(i32 noundef %1318, ptr noundef @.str.24)
  %1320 = call ptr @__errno_location() #12
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = call ptr @strerror(i32 noundef %1321) #11
  %1323 = call ptr @__errno_location() #12
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1312, ptr noundef @.str.25, i32 noundef %1313, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 205, ptr noundef %1316, ptr noundef %1319, ptr noundef %1322, i32 noundef %1324) #11
  br label %1326

1326:                                             ; preds = %1309, %1292
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

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

1329:                                             ; No predecessors!
  br label %1330

1330:                                             ; preds = %1329
  br label %1331

1331:                                             ; preds = %1330, %1270
  br label %1332

1332:                                             ; preds = %1331
  br label %1333

1333:                                             ; preds = %1332
  br label %1334

1334:                                             ; preds = %1348, %1333
  %1335 = load ptr, ptr %32, align 8, !tbaa !9
  %1336 = load i64, ptr %36, align 8, !tbaa !20
  %1337 = getelementptr inbounds i32, ptr %1335, i64 %1336
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = icmp eq i32 %1338, 14
  br i1 %1339, label %1346, label %1340

1340:                                             ; preds = %1334
  %1341 = load ptr, ptr %32, align 8, !tbaa !9
  %1342 = load i64, ptr %36, align 8, !tbaa !20
  %1343 = getelementptr inbounds i32, ptr %1341, i64 %1342
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = icmp eq i32 %1344, 11
  br label %1346

1346:                                             ; preds = %1340, %1334
  %1347 = phi i1 [ true, %1334 ], [ %1345, %1340 ]
  br i1 %1347, label %1348, label %1351

1348:                                             ; preds = %1346
  %1349 = load i64, ptr %36, align 8, !tbaa !20
  %1350 = add i64 %1349, 1
  store i64 %1350, ptr %36, align 8, !tbaa !20
  br label %1334, !llvm.loop !24

1351:                                             ; preds = %1346
  br label %1352

1352:                                             ; preds = %1351
  %1353 = load i32, ptr @test_count, align 4, !tbaa !5
  %1354 = add nsw i32 %1353, 1
  store i32 %1354, ptr @test_count, align 4, !tbaa !5
  %1355 = load ptr, ptr %31, align 8, !tbaa !9
  %1356 = load i64, ptr %35, align 8, !tbaa !20
  %1357 = getelementptr inbounds i32, ptr %1355, i64 %1356
  %1358 = load i32, ptr %1357, align 4, !tbaa !5
  %1359 = load ptr, ptr %32, align 8, !tbaa !9
  %1360 = load i64, ptr %36, align 8, !tbaa !20
  %1361 = getelementptr inbounds i32, ptr %1359, i64 %1360
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = icmp eq i32 %1358, %1362
  br i1 %1363, label %1417, label %1364

1364:                                             ; preds = %1352
  br label %1365

1365:                                             ; preds = %1364
  br label %1366

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

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

1378:                                             ; preds = %1373
  %1379 = load i32, ptr %39, align 4, !tbaa !5
  %1380 = call ptr @__errno_location() #12
  store i32 %1379, ptr %1380, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef @.str.24)
  %1386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call ptr @s2n_strerror_debug(i32 noundef %1387, ptr noundef @.str.24)
  %1389 = call ptr @__errno_location() #12
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call ptr @strerror(i32 noundef %1390) #11
  %1392 = call ptr @__errno_location() #12
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1381, ptr noundef @.str.22, i32 noundef %1382, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 214, ptr noundef %1385, ptr noundef %1388, ptr noundef %1391, i32 noundef %1393) #11
  br label %1412

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

1412:                                             ; preds = %1395, %1378
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1413

1413:                                             ; preds = %1412
  br label %1414

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

1415:                                             ; No predecessors!
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

1417:                                             ; preds = %1416, %1352
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419
  %1421 = load i64, ptr %35, align 8, !tbaa !20
  %1422 = add i64 %1421, 1
  store i64 %1422, ptr %35, align 8, !tbaa !20
  %1423 = load i64, ptr %36, align 8, !tbaa !20
  %1424 = add i64 %1423, 1
  store i64 %1424, ptr %36, align 8, !tbaa !20
  br label %1196, !llvm.loop !25

1425:                                             ; preds = %1204
  br label %1426

1426:                                             ; preds = %1425, %1188
  %1427 = load i64, ptr %33, align 8, !tbaa !20
  %1428 = add i64 %1427, 1
  store i64 %1428, ptr %33, align 8, !tbaa !20
  br label %1166, !llvm.loop !26

1429:                                             ; preds = %1171
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  store i32 0, ptr %40, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  store i32 0, ptr %41, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  store ptr null, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #11
  store ptr null, ptr %43, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #11
  store i64 0, ptr %44, align 8, !tbaa !20
  br label %1430

1430:                                             ; preds = %1769, %1429
  %1431 = load i64, ptr %44, align 8, !tbaa !20
  %1432 = load i32, ptr %11, align 4, !tbaa !5
  %1433 = sext i32 %1432 to i64
  %1434 = icmp ult i64 %1431, %1433
  br i1 %1434, label %1436, label %1435

1435:                                             ; preds = %1430
  store i32 111, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  br label %1772

1436:                                             ; preds = %1430
  %1437 = load i64, ptr %44, align 8, !tbaa !20
  %1438 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %1437
  %1439 = load i16, ptr %1438, align 2, !tbaa !15
  %1440 = zext i16 %1439 to i32
  store i32 %1440, ptr %40, align 4, !tbaa !5
  %1441 = load i32, ptr %40, align 4, !tbaa !5
  %1442 = zext i32 %1441 to i64
  %1443 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1442
  %1444 = getelementptr inbounds [32 x i32], ptr %1443, i64 0, i64 0
  store ptr %1444, ptr %42, align 8, !tbaa !9
  %1445 = load i32, ptr %40, align 4, !tbaa !5
  %1446 = and i32 %1445, 1
  %1447 = icmp ne i32 %1446, 0
  br i1 %1447, label %1448, label %1452

1448:                                             ; preds = %1436
  %1449 = load i32, ptr %40, align 4, !tbaa !5
  %1450 = and i32 %1449, 2
  %1451 = icmp ne i32 %1450, 0
  br i1 %1451, label %1452, label %1453

1452:                                             ; preds = %1448, %1436
  br label %1769

1453:                                             ; preds = %1448
  %1454 = load i32, ptr %40, align 4, !tbaa !5
  %1455 = or i32 %1454, 2
  store i32 %1455, ptr %41, align 4, !tbaa !5
  %1456 = load i32, ptr %41, align 4, !tbaa !5
  %1457 = zext i32 %1456 to i64
  %1458 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1457
  %1459 = getelementptr inbounds [32 x i32], ptr %1458, i64 0, i64 0
  store ptr %1459, ptr %43, align 8, !tbaa !9
  %1460 = load i32, ptr %40, align 4, !tbaa !5
  %1461 = and i32 %1460, 1
  %1462 = icmp ne i32 %1461, 0
  br i1 %1462, label %1463, label %1467

1463:                                             ; preds = %1453
  %1464 = load i32, ptr %40, align 4, !tbaa !5
  %1465 = and i32 %1464, 64
  %1466 = icmp ne i32 %1465, 0
  br i1 %1466, label %1467, label %1533

1467:                                             ; preds = %1463, %1453
  br label %1468

1468:                                             ; preds = %1467
  br label %1469

1469:                                             ; preds = %1468
  %1470 = load i32, ptr @test_count, align 4, !tbaa !5
  %1471 = add nsw i32 %1470, 1
  store i32 %1471, ptr @test_count, align 4, !tbaa !5
  %1472 = load ptr, ptr %43, align 8, !tbaa !9
  %1473 = call i32 @memcmp(ptr noundef %1472, ptr noundef @invalid_handshake, i64 noundef 128) #14
  %1474 = icmp eq i32 %1473, 0
  br i1 %1474, label %1528, label %1475

1475:                                             ; preds = %1469
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %1478 = call ptr @__errno_location() #12
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  store i32 %1479, ptr %45, align 4, !tbaa !5
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = call i32 @s2n_print_stacktrace(ptr noundef %1480)
  %1482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1483 = trunc i8 %1482 to i1
  br i1 %1483, label %1484, label %1506

1484:                                             ; preds = %1477
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = call i32 @fileno(ptr noundef %1485) #11
  %1487 = call i32 @isatty(i32 noundef %1486) #11
  %1488 = icmp ne i32 %1487, 0
  br i1 %1488, label %1489, label %1506

1489:                                             ; preds = %1484
  %1490 = load i32, ptr %45, align 4, !tbaa !5
  %1491 = call ptr @__errno_location() #12
  store i32 %1490, ptr %1491, align 4, !tbaa !5
  %1492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1493 = load i32, ptr @test_count, align 4, !tbaa !5
  %1494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1495 = load i32, ptr %1494, align 4, !tbaa !5
  %1496 = call ptr @s2n_strerror(i32 noundef %1495, ptr noundef @.str.24)
  %1497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1498 = load i32, ptr %1497, align 4, !tbaa !5
  %1499 = call ptr @s2n_strerror_debug(i32 noundef %1498, ptr noundef @.str.24)
  %1500 = call ptr @__errno_location() #12
  %1501 = load i32, ptr %1500, align 4, !tbaa !5
  %1502 = call ptr @strerror(i32 noundef %1501) #11
  %1503 = call ptr @__errno_location() #12
  %1504 = load i32, ptr %1503, align 4, !tbaa !5
  %1505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1492, ptr noundef @.str.22, i32 noundef %1493, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 239, ptr noundef %1496, ptr noundef %1499, ptr noundef %1502, i32 noundef %1504) #11
  br label %1523

1506:                                             ; preds = %1484, %1477
  %1507 = load i32, ptr %45, align 4, !tbaa !5
  %1508 = call ptr @__errno_location() #12
  store i32 %1507, ptr %1508, align 4, !tbaa !5
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = load i32, ptr @test_count, align 4, !tbaa !5
  %1511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = call ptr @s2n_strerror(i32 noundef %1512, ptr noundef @.str.24)
  %1514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror_debug(i32 noundef %1515, ptr noundef @.str.24)
  %1517 = call ptr @__errno_location() #12
  %1518 = load i32, ptr %1517, align 4, !tbaa !5
  %1519 = call ptr @strerror(i32 noundef %1518) #11
  %1520 = call ptr @__errno_location() #12
  %1521 = load i32, ptr %1520, align 4, !tbaa !5
  %1522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1509, ptr noundef @.str.25, i32 noundef %1510, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 239, ptr noundef %1513, ptr noundef %1516, ptr noundef %1519, i32 noundef %1521) #11
  br label %1523

1523:                                             ; preds = %1506, %1489
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1524

1524:                                             ; preds = %1523
  br label %1525

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

1526:                                             ; No predecessors!
  br label %1527

1527:                                             ; preds = %1526
  br label %1528

1528:                                             ; preds = %1527, %1469
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

1530:                                             ; preds = %1529
  br label %1531

1531:                                             ; preds = %1530
  br label %1532

1532:                                             ; preds = %1531
  br label %1769

1533:                                             ; preds = %1463
  %1534 = load i32, ptr %40, align 4, !tbaa !5
  %1535 = load i32, ptr %41, align 4, !tbaa !5
  %1536 = icmp eq i32 %1534, %1535
  br i1 %1536, label %1537, label %1538

1537:                                             ; preds = %1533
  br label %1769

1538:                                             ; preds = %1533
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  store i64 0, ptr %46, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #11
  store i64 0, ptr %47, align 8, !tbaa !20
  br label %1539

1539:                                             ; preds = %1763, %1538
  %1540 = load i64, ptr %46, align 8, !tbaa !20
  %1541 = icmp ult i64 %1540, 32
  br i1 %1541, label %1542, label %1545

1542:                                             ; preds = %1539
  %1543 = load i64, ptr %47, align 8, !tbaa !20
  %1544 = icmp ult i64 %1543, 32
  br label %1545

1545:                                             ; preds = %1542, %1539
  %1546 = phi i1 [ false, %1539 ], [ %1544, %1542 ]
  br i1 %1546, label %1548, label %1547

1547:                                             ; preds = %1545
  store i32 122, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  br label %1768

1548:                                             ; preds = %1545
  br label %1549

1549:                                             ; preds = %1548
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = add nsw i32 %1550, 1
  store i32 %1551, ptr @test_count, align 4, !tbaa !5
  %1552 = load ptr, ptr %42, align 8, !tbaa !9
  %1553 = load i64, ptr %46, align 8, !tbaa !20
  %1554 = getelementptr inbounds i32, ptr %1552, i64 %1553
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = icmp eq i32 %1555, 2
  br i1 %1556, label %1557, label %1610

1557:                                             ; preds = %1549
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

1559:                                             ; preds = %1558
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1560 = call ptr @__errno_location() #12
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  store i32 %1561, ptr %48, align 4, !tbaa !5
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = call i32 @s2n_print_stacktrace(ptr noundef %1562)
  %1564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1565 = trunc i8 %1564 to i1
  br i1 %1565, label %1566, label %1588

1566:                                             ; preds = %1559
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = call i32 @fileno(ptr noundef %1567) #11
  %1569 = call i32 @isatty(i32 noundef %1568) #11
  %1570 = icmp ne i32 %1569, 0
  br i1 %1570, label %1571, label %1588

1571:                                             ; preds = %1566
  %1572 = load i32, ptr %48, align 4, !tbaa !5
  %1573 = call ptr @__errno_location() #12
  store i32 %1572, ptr %1573, align 4, !tbaa !5
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = load i32, ptr @test_count, align 4, !tbaa !5
  %1576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call ptr @s2n_strerror(i32 noundef %1577, ptr noundef @.str.24)
  %1579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror_debug(i32 noundef %1580, ptr noundef @.str.24)
  %1582 = call ptr @__errno_location() #12
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = call ptr @strerror(i32 noundef %1583) #11
  %1585 = call ptr @__errno_location() #12
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1574, ptr noundef @.str.22, i32 noundef %1575, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 250, ptr noundef %1578, ptr noundef %1581, ptr noundef %1584, i32 noundef %1586) #11
  br label %1605

1588:                                             ; preds = %1566, %1559
  %1589 = load i32, ptr %48, align 4, !tbaa !5
  %1590 = call ptr @__errno_location() #12
  store i32 %1589, ptr %1590, align 4, !tbaa !5
  %1591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1592 = load i32, ptr @test_count, align 4, !tbaa !5
  %1593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1594 = load i32, ptr %1593, align 4, !tbaa !5
  %1595 = call ptr @s2n_strerror(i32 noundef %1594, ptr noundef @.str.24)
  %1596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  %1598 = call ptr @s2n_strerror_debug(i32 noundef %1597, ptr noundef @.str.24)
  %1599 = call ptr @__errno_location() #12
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call ptr @strerror(i32 noundef %1600) #11
  %1602 = call ptr @__errno_location() #12
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1591, ptr noundef @.str.25, i32 noundef %1592, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 250, ptr noundef %1595, ptr noundef %1598, ptr noundef %1601, i32 noundef %1603) #11
  br label %1605

1605:                                             ; preds = %1588, %1571
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1606

1606:                                             ; preds = %1605
  br label %1607

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

1608:                                             ; No predecessors!
  br label %1609

1609:                                             ; preds = %1608
  br label %1610

1610:                                             ; preds = %1609, %1549
  br label %1611

1611:                                             ; preds = %1610
  br label %1612

1612:                                             ; preds = %1611
  br label %1613

1613:                                             ; preds = %1612
  %1614 = load i32, ptr @test_count, align 4, !tbaa !5
  %1615 = add nsw i32 %1614, 1
  store i32 %1615, ptr @test_count, align 4, !tbaa !5
  %1616 = load ptr, ptr %42, align 8, !tbaa !9
  %1617 = load i64, ptr %46, align 8, !tbaa !20
  %1618 = getelementptr inbounds i32, ptr %1616, i64 %1617
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = icmp eq i32 %1619, 17
  br i1 %1620, label %1621, label %1674

1621:                                             ; preds = %1613
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

1623:                                             ; preds = %1622
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1624 = call ptr @__errno_location() #12
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  store i32 %1625, ptr %49, align 4, !tbaa !5
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = call i32 @s2n_print_stacktrace(ptr noundef %1626)
  %1628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1629 = trunc i8 %1628 to i1
  br i1 %1629, label %1630, label %1652

1630:                                             ; preds = %1623
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = call i32 @fileno(ptr noundef %1631) #11
  %1633 = call i32 @isatty(i32 noundef %1632) #11
  %1634 = icmp ne i32 %1633, 0
  br i1 %1634, label %1635, label %1652

1635:                                             ; preds = %1630
  %1636 = load i32, ptr %49, align 4, !tbaa !5
  %1637 = call ptr @__errno_location() #12
  store i32 %1636, ptr %1637, align 4, !tbaa !5
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = load i32, ptr @test_count, align 4, !tbaa !5
  %1640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1641 = load i32, ptr %1640, align 4, !tbaa !5
  %1642 = call ptr @s2n_strerror(i32 noundef %1641, ptr noundef @.str.24)
  %1643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = call ptr @s2n_strerror_debug(i32 noundef %1644, ptr noundef @.str.24)
  %1646 = call ptr @__errno_location() #12
  %1647 = load i32, ptr %1646, align 4, !tbaa !5
  %1648 = call ptr @strerror(i32 noundef %1647) #11
  %1649 = call ptr @__errno_location() #12
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1638, ptr noundef @.str.22, i32 noundef %1639, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 251, ptr noundef %1642, ptr noundef %1645, ptr noundef %1648, i32 noundef %1650) #11
  br label %1669

1652:                                             ; preds = %1630, %1623
  %1653 = load i32, ptr %49, align 4, !tbaa !5
  %1654 = call ptr @__errno_location() #12
  store i32 %1653, ptr %1654, align 4, !tbaa !5
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror(i32 noundef %1658, ptr noundef @.str.24)
  %1660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  %1662 = call ptr @s2n_strerror_debug(i32 noundef %1661, ptr noundef @.str.24)
  %1663 = call ptr @__errno_location() #12
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @strerror(i32 noundef %1664) #11
  %1666 = call ptr @__errno_location() #12
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1655, ptr noundef @.str.25, i32 noundef %1656, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 251, ptr noundef %1659, ptr noundef %1662, ptr noundef %1665, i32 noundef %1667) #11
  br label %1669

1669:                                             ; preds = %1652, %1635
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1670

1670:                                             ; preds = %1669
  br label %1671

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

1672:                                             ; No predecessors!
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

1674:                                             ; preds = %1673, %1613
  br label %1675

1675:                                             ; preds = %1674
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

1677:                                             ; preds = %1691, %1676
  %1678 = load ptr, ptr %43, align 8, !tbaa !9
  %1679 = load i64, ptr %47, align 8, !tbaa !20
  %1680 = getelementptr inbounds i32, ptr %1678, i64 %1679
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = icmp eq i32 %1681, 2
  br i1 %1682, label %1689, label %1683

1683:                                             ; preds = %1677
  %1684 = load ptr, ptr %43, align 8, !tbaa !9
  %1685 = load i64, ptr %47, align 8, !tbaa !20
  %1686 = getelementptr inbounds i32, ptr %1684, i64 %1685
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = icmp eq i32 %1687, 17
  br label %1689

1689:                                             ; preds = %1683, %1677
  %1690 = phi i1 [ true, %1677 ], [ %1688, %1683 ]
  br i1 %1690, label %1691, label %1694

1691:                                             ; preds = %1689
  %1692 = load i64, ptr %47, align 8, !tbaa !20
  %1693 = add i64 %1692, 1
  store i64 %1693, ptr %47, align 8, !tbaa !20
  br label %1677, !llvm.loop !27

1694:                                             ; preds = %1689
  br label %1695

1695:                                             ; preds = %1694
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = add nsw i32 %1696, 1
  store i32 %1697, ptr @test_count, align 4, !tbaa !5
  %1698 = load ptr, ptr %42, align 8, !tbaa !9
  %1699 = load i64, ptr %46, align 8, !tbaa !20
  %1700 = getelementptr inbounds i32, ptr %1698, i64 %1699
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = load ptr, ptr %43, align 8, !tbaa !9
  %1703 = load i64, ptr %47, align 8, !tbaa !20
  %1704 = getelementptr inbounds i32, ptr %1702, i64 %1703
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = icmp eq i32 %1701, %1705
  br i1 %1706, label %1760, label %1707

1707:                                             ; preds = %1695
  br label %1708

1708:                                             ; preds = %1707
  br label %1709

1709:                                             ; preds = %1708
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  %1710 = call ptr @__errno_location() #12
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  store i32 %1711, ptr %50, align 4, !tbaa !5
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = call i32 @s2n_print_stacktrace(ptr noundef %1712)
  %1714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1715 = trunc i8 %1714 to i1
  br i1 %1715, label %1716, label %1738

1716:                                             ; preds = %1709
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @fileno(ptr noundef %1717) #11
  %1719 = call i32 @isatty(i32 noundef %1718) #11
  %1720 = icmp ne i32 %1719, 0
  br i1 %1720, label %1721, label %1738

1721:                                             ; preds = %1716
  %1722 = load i32, ptr %50, align 4, !tbaa !5
  %1723 = call ptr @__errno_location() #12
  store i32 %1722, ptr %1723, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = load i32, ptr @test_count, align 4, !tbaa !5
  %1726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror(i32 noundef %1727, ptr noundef @.str.24)
  %1729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1730 = load i32, ptr %1729, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror_debug(i32 noundef %1730, ptr noundef @.str.24)
  %1732 = call ptr @__errno_location() #12
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call ptr @strerror(i32 noundef %1733) #11
  %1735 = call ptr @__errno_location() #12
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  %1737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1724, ptr noundef @.str.22, i32 noundef %1725, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 259, ptr noundef %1728, ptr noundef %1731, ptr noundef %1734, i32 noundef %1736) #11
  br label %1755

1738:                                             ; preds = %1716, %1709
  %1739 = load i32, ptr %50, align 4, !tbaa !5
  %1740 = call ptr @__errno_location() #12
  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() #12
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @strerror(i32 noundef %1750) #11
  %1752 = call ptr @__errno_location() #12
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1741, ptr noundef @.str.25, i32 noundef %1742, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 259, ptr noundef %1745, ptr noundef %1748, ptr noundef %1751, i32 noundef %1753) #11
  br label %1755

1755:                                             ; preds = %1738, %1721
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %1756

1756:                                             ; preds = %1755
  br label %1757

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

1758:                                             ; No predecessors!
  br label %1759

1759:                                             ; preds = %1758
  br label %1760

1760:                                             ; preds = %1759, %1695
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

1762:                                             ; preds = %1761
  br label %1763

1763:                                             ; preds = %1762
  %1764 = load i64, ptr %46, align 8, !tbaa !20
  %1765 = add i64 %1764, 1
  store i64 %1765, ptr %46, align 8, !tbaa !20
  %1766 = load i64, ptr %47, align 8, !tbaa !20
  %1767 = add i64 %1766, 1
  store i64 %1767, ptr %47, align 8, !tbaa !20
  br label %1539, !llvm.loop !28

1768:                                             ; preds = %1547
  br label %1769

1769:                                             ; preds = %1768, %1537, %1532, %1452
  %1770 = load i64, ptr %44, align 8, !tbaa !20
  %1771 = add i64 %1770, 1
  store i64 %1771, ptr %44, align 8, !tbaa !20
  br label %1430, !llvm.loop !29

1772:                                             ; preds = %1435
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  store i32 0, ptr %51, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  store i32 0, ptr %52, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  store ptr null, ptr %53, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  store ptr null, ptr %54, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  store i64 0, ptr %55, align 8, !tbaa !20
  br label %1773

1773:                                             ; preds = %1908, %1772
  %1774 = load i64, ptr %55, align 8, !tbaa !20
  %1775 = load i32, ptr %11, align 4, !tbaa !5
  %1776 = sext i32 %1775 to i64
  %1777 = icmp ult i64 %1774, %1776
  br i1 %1777, label %1779, label %1778

1778:                                             ; preds = %1773
  store i32 145, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %1911

1779:                                             ; preds = %1773
  %1780 = load i64, ptr %55, align 8, !tbaa !20
  %1781 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %1780
  %1782 = load i16, ptr %1781, align 2, !tbaa !15
  %1783 = zext i16 %1782 to i32
  store i32 %1783, ptr %51, align 4, !tbaa !5
  %1784 = load i32, ptr %51, align 4, !tbaa !5
  %1785 = zext i32 %1784 to i64
  %1786 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1785
  %1787 = getelementptr inbounds [32 x i32], ptr %1786, i64 0, i64 0
  store ptr %1787, ptr %53, align 8, !tbaa !9
  %1788 = load i32, ptr %51, align 4, !tbaa !5
  %1789 = and i32 %1788, 32
  %1790 = icmp ne i32 %1789, 0
  br i1 %1790, label %1792, label %1791

1791:                                             ; preds = %1779
  br label %1908

1792:                                             ; preds = %1779
  %1793 = load i32, ptr %51, align 4, !tbaa !5
  %1794 = or i32 %1793, 128
  store i32 %1794, ptr %52, align 4, !tbaa !5
  %1795 = load i32, ptr %52, align 4, !tbaa !5
  %1796 = zext i32 %1795 to i64
  %1797 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1796
  %1798 = getelementptr inbounds [32 x i32], ptr %1797, i64 0, i64 0
  store ptr %1798, ptr %54, align 8, !tbaa !9
  %1799 = load i32, ptr %51, align 4, !tbaa !5
  %1800 = load i32, ptr %52, align 4, !tbaa !5
  %1801 = icmp eq i32 %1799, %1800
  br i1 %1801, label %1802, label %1803

1802:                                             ; preds = %1792
  br label %1908

1803:                                             ; preds = %1792
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #11
  store i64 0, ptr %56, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  store i64 0, ptr %57, align 8, !tbaa !20
  br label %1804

1804:                                             ; preds = %1902, %1803
  %1805 = load i64, ptr %56, align 8, !tbaa !20
  %1806 = icmp ult i64 %1805, 32
  br i1 %1806, label %1807, label %1810

1807:                                             ; preds = %1804
  %1808 = load i64, ptr %57, align 8, !tbaa !20
  %1809 = icmp ult i64 %1808, 32
  br label %1810

1810:                                             ; preds = %1807, %1804
  %1811 = phi i1 [ false, %1804 ], [ %1809, %1807 ]
  br i1 %1811, label %1813, label %1812

1812:                                             ; preds = %1810
  store i32 148, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  br label %1907

1813:                                             ; preds = %1810
  br label %1814

1814:                                             ; preds = %1820, %1813
  %1815 = load ptr, ptr %53, align 8, !tbaa !9
  %1816 = load i64, ptr %56, align 8, !tbaa !20
  %1817 = getelementptr inbounds i32, ptr %1815, i64 %1816
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = icmp eq i32 %1818, 11
  br i1 %1819, label %1820, label %1823

1820:                                             ; preds = %1814
  %1821 = load i64, ptr %56, align 8, !tbaa !20
  %1822 = add i64 %1821, 1
  store i64 %1822, ptr %56, align 8, !tbaa !20
  br label %1814, !llvm.loop !30

1823:                                             ; preds = %1814
  br label %1824

1824:                                             ; preds = %1830, %1823
  %1825 = load ptr, ptr %54, align 8, !tbaa !9
  %1826 = load i64, ptr %57, align 8, !tbaa !20
  %1827 = getelementptr inbounds i32, ptr %1825, i64 %1826
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = icmp eq i32 %1828, 11
  br i1 %1829, label %1830, label %1833

1830:                                             ; preds = %1824
  %1831 = load i64, ptr %57, align 8, !tbaa !20
  %1832 = add i64 %1831, 1
  store i64 %1832, ptr %57, align 8, !tbaa !20
  br label %1824, !llvm.loop !31

1833:                                             ; preds = %1824
  br label %1834

1834:                                             ; preds = %1833
  %1835 = load i32, ptr @test_count, align 4, !tbaa !5
  %1836 = add nsw i32 %1835, 1
  store i32 %1836, ptr @test_count, align 4, !tbaa !5
  %1837 = load ptr, ptr %53, align 8, !tbaa !9
  %1838 = load i64, ptr %56, align 8, !tbaa !20
  %1839 = getelementptr inbounds i32, ptr %1837, i64 %1838
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = load ptr, ptr %54, align 8, !tbaa !9
  %1842 = load i64, ptr %57, align 8, !tbaa !20
  %1843 = getelementptr inbounds i32, ptr %1841, i64 %1842
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = icmp eq i32 %1840, %1844
  br i1 %1845, label %1899, label %1846

1846:                                             ; preds = %1834
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

1848:                                             ; preds = %1847
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %1849 = call ptr @__errno_location() #12
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  store i32 %1850, ptr %58, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = call i32 @s2n_print_stacktrace(ptr noundef %1851)
  %1853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1854 = trunc i8 %1853 to i1
  br i1 %1854, label %1855, label %1877

1855:                                             ; preds = %1848
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = call i32 @fileno(ptr noundef %1856) #11
  %1858 = call i32 @isatty(i32 noundef %1857) #11
  %1859 = icmp ne i32 %1858, 0
  br i1 %1859, label %1860, label %1877

1860:                                             ; preds = %1855
  %1861 = load i32, ptr %58, align 4, !tbaa !5
  %1862 = call ptr @__errno_location() #12
  store i32 %1861, ptr %1862, align 4, !tbaa !5
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = load i32, ptr @test_count, align 4, !tbaa !5
  %1865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call ptr @s2n_strerror(i32 noundef %1866, ptr noundef @.str.24)
  %1868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror_debug(i32 noundef %1869, ptr noundef @.str.24)
  %1871 = call ptr @__errno_location() #12
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @strerror(i32 noundef %1872) #11
  %1874 = call ptr @__errno_location() #12
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1863, ptr noundef @.str.22, i32 noundef %1864, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 298, ptr noundef %1867, ptr noundef %1870, ptr noundef %1873, i32 noundef %1875) #11
  br label %1894

1877:                                             ; preds = %1855, %1848
  %1878 = load i32, ptr %58, align 4, !tbaa !5
  %1879 = call ptr @__errno_location() #12
  store i32 %1878, ptr %1879, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror(i32 noundef %1883, ptr noundef @.str.24)
  %1885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @s2n_strerror_debug(i32 noundef %1886, ptr noundef @.str.24)
  %1888 = call ptr @__errno_location() #12
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #11
  %1891 = call ptr @__errno_location() #12
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1880, ptr noundef @.str.25, i32 noundef %1881, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 298, ptr noundef %1884, ptr noundef %1887, ptr noundef %1890, i32 noundef %1892) #11
  br label %1894

1894:                                             ; preds = %1877, %1860
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

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

1897:                                             ; No predecessors!
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

1899:                                             ; preds = %1898, %1834
  br label %1900

1900:                                             ; preds = %1899
  br label %1901

1901:                                             ; preds = %1900
  br label %1902

1902:                                             ; preds = %1901
  %1903 = load i64, ptr %56, align 8, !tbaa !20
  %1904 = add i64 %1903, 1
  store i64 %1904, ptr %56, align 8, !tbaa !20
  %1905 = load i64, ptr %57, align 8, !tbaa !20
  %1906 = add i64 %1905, 1
  store i64 %1906, ptr %57, align 8, !tbaa !20
  br label %1804, !llvm.loop !32

1907:                                             ; preds = %1812
  br label %1908

1908:                                             ; preds = %1907, %1802, %1791
  %1909 = load i64, ptr %55, align 8, !tbaa !20
  %1910 = add i64 %1909, 1
  store i64 %1910, ptr %55, align 8, !tbaa !20
  br label %1773, !llvm.loop !33

1911:                                             ; preds = %1778
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  %1912 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1912, ptr %59, align 8, !tbaa !9
  %1913 = load ptr, ptr %59, align 8, !tbaa !9
  %1914 = getelementptr inbounds %struct.s2n_connection, ptr %1913, i32 0, i32 23
  store i8 34, ptr %1914, align 4, !tbaa !34
  br label %1915

1915:                                             ; preds = %1911
  %1916 = load i32, ptr @test_count, align 4, !tbaa !5
  %1917 = add nsw i32 %1916, 1
  store i32 %1917, ptr @test_count, align 4, !tbaa !5
  %1918 = load ptr, ptr %59, align 8, !tbaa !9
  %1919 = call i32 @s2n_conn_choose_state_machine(ptr noundef %1918, i8 noundef zeroext 34)
  %1920 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %1919, ptr %1920, align 4
  %1921 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  %1922 = load i32, ptr %1921, align 4
  %1923 = call zeroext i1 @s2n_result_is_ok(i32 %1922)
  br i1 %1923, label %1977, label %1924

1924:                                             ; preds = %1915
  br label %1925

1925:                                             ; preds = %1924
  br label %1926

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

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

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

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

1972:                                             ; preds = %1955, %1938
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

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

1975:                                             ; No predecessors!
  br label %1976

1976:                                             ; preds = %1975
  br label %1977

1977:                                             ; preds = %1976, %1915
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978
  br label %1980

1980:                                             ; preds = %1979
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = add nsw i32 %1981, 1
  store i32 %1982, ptr @test_count, align 4, !tbaa !5
  %1983 = load ptr, ptr %59, align 8, !tbaa !9
  %1984 = getelementptr inbounds %struct.s2n_connection, ptr %1983, i32 0, i32 52
  %1985 = getelementptr inbounds %struct.s2n_handshake, ptr %1984, i32 0, i32 12
  %1986 = load i32, ptr %1985, align 4, !tbaa !59
  %1987 = icmp eq i32 %1986, 2
  %1988 = zext i1 %1987 to i64
  %1989 = select i1 %1987, ptr @tls13_state_machine, ptr @state_machine
  %1990 = icmp eq ptr %1989, @tls13_state_machine
  br i1 %1990, label %2044, label %1991

1991:                                             ; preds = %1980
  br label %1992

1992:                                             ; preds = %1991
  br label %1993

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

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

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

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

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

2040:                                             ; preds = %2039
  br label %2041

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

2042:                                             ; No predecessors!
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

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

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  %2048 = load i32, ptr @test_count, align 4, !tbaa !5
  %2049 = add nsw i32 %2048, 1
  store i32 %2049, ptr @test_count, align 4, !tbaa !5
  %2050 = load ptr, ptr %59, align 8, !tbaa !9
  %2051 = getelementptr inbounds %struct.s2n_connection, ptr %2050, i32 0, i32 52
  %2052 = getelementptr inbounds %struct.s2n_handshake, ptr %2051, i32 0, i32 12
  %2053 = load i32, ptr %2052, align 4, !tbaa !59
  %2054 = icmp eq i32 %2053, 2
  %2055 = zext i1 %2054 to i64
  %2056 = select i1 %2054, ptr @tls13_handshakes, ptr @handshakes
  %2057 = icmp eq ptr %2056, @tls13_handshakes
  br i1 %2057, label %2111, label %2058

2058:                                             ; preds = %2047
  br label %2059

2059:                                             ; preds = %2058
  br label %2060

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

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

2072:                                             ; preds = %2067
  %2073 = load i32, ptr %63, align 4, !tbaa !5
  %2074 = call ptr @__errno_location() #12
  store i32 %2073, ptr %2074, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = load i32, ptr @test_count, align 4, !tbaa !5
  %2077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror(i32 noundef %2078, ptr noundef @.str.24)
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror_debug(i32 noundef %2081, ptr noundef @.str.24)
  %2083 = call ptr @__errno_location() #12
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @strerror(i32 noundef %2084) #11
  %2086 = call ptr @__errno_location() #12
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2075, ptr noundef @.str.22, i32 noundef %2076, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 309, ptr noundef %2079, ptr noundef %2082, ptr noundef %2085, i32 noundef %2087) #11
  br label %2106

2089:                                             ; preds = %2067, %2060
  %2090 = load i32, ptr %63, align 4, !tbaa !5
  %2091 = call ptr @__errno_location() #12
  store i32 %2090, ptr %2091, align 4, !tbaa !5
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2093 = load i32, ptr @test_count, align 4, !tbaa !5
  %2094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call ptr @s2n_strerror(i32 noundef %2095, ptr noundef @.str.24)
  %2097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  %2099 = call ptr @s2n_strerror_debug(i32 noundef %2098, ptr noundef @.str.24)
  %2100 = call ptr @__errno_location() #12
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call ptr @strerror(i32 noundef %2101) #11
  %2103 = call ptr @__errno_location() #12
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2092, ptr noundef @.str.25, i32 noundef %2093, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 309, ptr noundef %2096, ptr noundef %2099, ptr noundef %2102, i32 noundef %2104) #11
  br label %2106

2106:                                             ; preds = %2089, %2072
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

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

2109:                                             ; No predecessors!
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

2111:                                             ; preds = %2110, %2047
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112
  br label %2114

2114:                                             ; preds = %2113
  %2115 = load i32, ptr @test_count, align 4, !tbaa !5
  %2116 = add nsw i32 %2115, 1
  store i32 %2116, ptr @test_count, align 4, !tbaa !5
  %2117 = load ptr, ptr %59, align 8, !tbaa !9
  %2118 = call i32 @s2n_connection_free(ptr noundef %2117)
  %2119 = icmp eq i32 %2118, -1
  br i1 %2119, label %2120, label %2173

2120:                                             ; preds = %2114
  br label %2121

2121:                                             ; preds = %2120
  br label %2122

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

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

2134:                                             ; preds = %2129
  %2135 = load i32, ptr %64, align 4, !tbaa !5
  %2136 = call ptr @__errno_location() #12
  store i32 %2135, ptr %2136, align 4, !tbaa !5
  %2137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2138 = load i32, ptr @test_count, align 4, !tbaa !5
  %2139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror(i32 noundef %2140, ptr noundef @.str.24)
  %2142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror_debug(i32 noundef %2143, ptr noundef @.str.24)
  %2145 = call ptr @__errno_location() #12
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call ptr @strerror(i32 noundef %2146) #11
  %2148 = call ptr @__errno_location() #12
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  %2150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2137, ptr noundef @.str.22, i32 noundef %2138, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 310, ptr noundef %2141, ptr noundef %2144, ptr noundef %2147, i32 noundef %2149) #11
  br label %2168

2151:                                             ; preds = %2129, %2122
  %2152 = load i32, ptr %64, align 4, !tbaa !5
  %2153 = call ptr @__errno_location() #12
  store i32 %2152, ptr %2153, align 4, !tbaa !5
  %2154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2155 = load i32, ptr @test_count, align 4, !tbaa !5
  %2156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror(i32 noundef %2157, ptr noundef @.str.24)
  %2159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror_debug(i32 noundef %2160, ptr noundef @.str.24)
  %2162 = call ptr @__errno_location() #12
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call ptr @strerror(i32 noundef %2163) #11
  %2165 = call ptr @__errno_location() #12
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2154, ptr noundef @.str.25, i32 noundef %2155, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 310, ptr noundef %2158, ptr noundef %2161, ptr noundef %2164, i32 noundef %2166) #11
  br label %2168

2168:                                             ; preds = %2151, %2134
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

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

2171:                                             ; No predecessors!
  br label %2172

2172:                                             ; preds = %2171
  br label %2173

2173:                                             ; preds = %2172, %2114
  br label %2174

2174:                                             ; preds = %2173
  br label %2175

2175:                                             ; preds = %2174
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #11
  %2176 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2176, ptr %65, align 8, !tbaa !9
  %2177 = load ptr, ptr %65, align 8, !tbaa !9
  %2178 = getelementptr inbounds %struct.s2n_connection, ptr %2177, i32 0, i32 23
  store i8 34, ptr %2178, align 4, !tbaa !34
  br label %2179

2179:                                             ; preds = %2175
  %2180 = load i32, ptr @test_count, align 4, !tbaa !5
  %2181 = add nsw i32 %2180, 1
  store i32 %2181, ptr @test_count, align 4, !tbaa !5
  %2182 = load ptr, ptr %65, align 8, !tbaa !9
  %2183 = call i32 @s2n_conn_choose_state_machine(ptr noundef %2182, i8 noundef zeroext 34)
  %2184 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  store i32 %2183, ptr %2184, align 4
  %2185 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  %2186 = load i32, ptr %2185, align 4
  %2187 = call zeroext i1 @s2n_result_is_ok(i32 %2186)
  br i1 %2187, label %2241, label %2188

2188:                                             ; preds = %2179
  br label %2189

2189:                                             ; preds = %2188
  br label %2190

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

2197:                                             ; preds = %2190
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = call i32 @fileno(ptr noundef %2198) #11
  %2200 = call i32 @isatty(i32 noundef %2199) #11
  %2201 = icmp ne i32 %2200, 0
  br i1 %2201, label %2202, label %2219

2202:                                             ; preds = %2197
  %2203 = load i32, ptr %67, align 4, !tbaa !5
  %2204 = call ptr @__errno_location() #12
  store i32 %2203, ptr %2204, 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 @.str.24)
  %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_debug(i32 noundef %2211, ptr noundef @.str.24)
  %2213 = call ptr @__errno_location() #12
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  %2215 = call ptr @strerror(i32 noundef %2214) #11
  %2216 = call ptr @__errno_location() #12
  %2217 = load i32, ptr %2216, align 4, !tbaa !5
  %2218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2205, ptr noundef @.str.22, i32 noundef %2206, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 317, ptr noundef %2209, ptr noundef %2212, ptr noundef %2215, i32 noundef %2217) #11
  br label %2236

2219:                                             ; preds = %2197, %2190
  %2220 = load i32, ptr %67, align 4, !tbaa !5
  %2221 = call ptr @__errno_location() #12
  store i32 %2220, ptr %2221, align 4, !tbaa !5
  %2222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2223 = load i32, ptr @test_count, align 4, !tbaa !5
  %2224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  %2226 = call ptr @s2n_strerror(i32 noundef %2225, ptr noundef @.str.24)
  %2227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = call ptr @s2n_strerror_debug(i32 noundef %2228, ptr noundef @.str.24)
  %2230 = call ptr @__errno_location() #12
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call ptr @strerror(i32 noundef %2231) #11
  %2233 = call ptr @__errno_location() #12
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2222, ptr noundef @.str.25, i32 noundef %2223, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 317, ptr noundef %2226, ptr noundef %2229, ptr noundef %2232, i32 noundef %2234) #11
  br label %2236

2236:                                             ; preds = %2219, %2202
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

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

2239:                                             ; No predecessors!
  br label %2240

2240:                                             ; preds = %2239
  br label %2241

2241:                                             ; preds = %2240, %2179
  br label %2242

2242:                                             ; preds = %2241
  br label %2243

2243:                                             ; preds = %2242
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  store i32 0, ptr %68, align 4, !tbaa !5
  br label %2244

2244:                                             ; preds = %2492, %2243
  %2245 = load i32, ptr %68, align 4, !tbaa !5
  %2246 = load i32, ptr %11, align 4, !tbaa !5
  %2247 = icmp slt i32 %2245, %2246
  br i1 %2247, label %2249, label %2248

2248:                                             ; preds = %2244
  store i32 191, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2495

2249:                                             ; preds = %2244
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %2250 = load i32, ptr %68, align 4, !tbaa !5
  %2251 = sext i32 %2250 to i64
  %2252 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %2251
  %2253 = load i16, ptr %2252, align 2, !tbaa !15
  %2254 = zext i16 %2253 to i32
  store i32 %2254, ptr %69, align 4, !tbaa !5
  %2255 = load i32, ptr %69, align 4, !tbaa !5
  %2256 = load ptr, ptr %65, align 8, !tbaa !9
  %2257 = getelementptr inbounds %struct.s2n_connection, ptr %2256, i32 0, i32 52
  %2258 = getelementptr inbounds %struct.s2n_handshake, ptr %2257, i32 0, i32 6
  store i32 %2255, ptr %2258, align 4, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  store i32 0, ptr %70, align 4, !tbaa !5
  br label %2259

2259:                                             ; preds = %2487, %2249
  %2260 = load i32, ptr %70, align 4, !tbaa !5
  %2261 = icmp slt i32 %2260, 32
  br i1 %2261, label %2263, label %2262

2262:                                             ; preds = %2259
  store i32 194, ptr %34, align 4
  br label %2490

2263:                                             ; preds = %2259
  %2264 = load i32, ptr %69, align 4, !tbaa !5
  %2265 = sext i32 %2264 to i64
  %2266 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %2265
  %2267 = load i32, ptr %70, align 4, !tbaa !5
  %2268 = sext i32 %2267 to i64
  %2269 = getelementptr inbounds [32 x i32], ptr %2266, i64 0, i64 %2268
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = icmp eq i32 %2270, 11
  br i1 %2271, label %2272, label %2486

2272:                                             ; preds = %2263
  %2273 = load i32, ptr %70, align 4, !tbaa !5
  %2274 = sub nsw i32 %2273, 1
  %2275 = load ptr, ptr %65, align 8, !tbaa !9
  %2276 = getelementptr inbounds %struct.s2n_connection, ptr %2275, i32 0, i32 52
  %2277 = getelementptr inbounds %struct.s2n_handshake, ptr %2276, i32 0, i32 7
  store i32 %2274, ptr %2277, align 8, !tbaa !61
  br label %2278

2278:                                             ; preds = %2272
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = add nsw i32 %2279, 1
  store i32 %2280, ptr @test_count, align 4, !tbaa !5
  %2281 = load ptr, ptr %65, align 8, !tbaa !9
  %2282 = call i32 @s2n_advance_message(ptr noundef %2281)
  %2283 = icmp eq i32 %2282, -1
  br i1 %2283, label %2284, label %2337

2284:                                             ; preds = %2278
  br label %2285

2285:                                             ; preds = %2284
  br label %2286

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

2293:                                             ; preds = %2286
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = call i32 @fileno(ptr noundef %2294) #11
  %2296 = call i32 @isatty(i32 noundef %2295) #11
  %2297 = icmp ne i32 %2296, 0
  br i1 %2297, label %2298, label %2315

2298:                                             ; preds = %2293
  %2299 = load i32, ptr %71, align 4, !tbaa !5
  %2300 = call ptr @__errno_location() #12
  store i32 %2299, ptr %2300, align 4, !tbaa !5
  %2301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2302 = load i32, ptr @test_count, align 4, !tbaa !5
  %2303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2304 = load i32, ptr %2303, align 4, !tbaa !5
  %2305 = call ptr @s2n_strerror(i32 noundef %2304, ptr noundef @.str.24)
  %2306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2307 = load i32, ptr %2306, align 4, !tbaa !5
  %2308 = call ptr @s2n_strerror_debug(i32 noundef %2307, ptr noundef @.str.24)
  %2309 = call ptr @__errno_location() #12
  %2310 = load i32, ptr %2309, align 4, !tbaa !5
  %2311 = call ptr @strerror(i32 noundef %2310) #11
  %2312 = call ptr @__errno_location() #12
  %2313 = load i32, ptr %2312, align 4, !tbaa !5
  %2314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2301, ptr noundef @.str.22, i32 noundef %2302, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 328, ptr noundef %2305, ptr noundef %2308, ptr noundef %2311, i32 noundef %2313) #11
  br label %2332

2315:                                             ; preds = %2293, %2286
  %2316 = load i32, ptr %71, align 4, !tbaa !5
  %2317 = call ptr @__errno_location() #12
  store i32 %2316, ptr %2317, align 4, !tbaa !5
  %2318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2319 = load i32, ptr @test_count, align 4, !tbaa !5
  %2320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2321 = load i32, ptr %2320, align 4, !tbaa !5
  %2322 = call ptr @s2n_strerror(i32 noundef %2321, ptr noundef @.str.24)
  %2323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2324 = load i32, ptr %2323, align 4, !tbaa !5
  %2325 = call ptr @s2n_strerror_debug(i32 noundef %2324, ptr noundef @.str.24)
  %2326 = call ptr @__errno_location() #12
  %2327 = load i32, ptr %2326, align 4, !tbaa !5
  %2328 = call ptr @strerror(i32 noundef %2327) #11
  %2329 = call ptr @__errno_location() #12
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  %2331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2318, ptr noundef @.str.25, i32 noundef %2319, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 328, ptr noundef %2322, ptr noundef %2325, ptr noundef %2328, i32 noundef %2330) #11
  br label %2332

2332:                                             ; preds = %2315, %2298
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2333

2333:                                             ; preds = %2332
  br label %2334

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

2335:                                             ; No predecessors!
  br label %2336

2336:                                             ; preds = %2335
  br label %2337

2337:                                             ; preds = %2336, %2278
  br label %2338

2338:                                             ; preds = %2337
  br label %2339

2339:                                             ; preds = %2338
  br label %2340

2340:                                             ; preds = %2339
  %2341 = load i32, ptr @test_count, align 4, !tbaa !5
  %2342 = add nsw i32 %2341, 1
  store i32 %2342, ptr @test_count, align 4, !tbaa !5
  %2343 = load ptr, ptr %65, align 8, !tbaa !9
  %2344 = getelementptr inbounds %struct.s2n_connection, ptr %2343, i32 0, i32 52
  %2345 = getelementptr inbounds %struct.s2n_handshake, ptr %2344, i32 0, i32 7
  %2346 = load i32, ptr %2345, align 8, !tbaa !61
  %2347 = load i32, ptr %70, align 4, !tbaa !5
  %2348 = add nsw i32 %2347, 1
  %2349 = icmp eq i32 %2346, %2348
  br i1 %2349, label %2403, label %2350

2350:                                             ; preds = %2340
  br label %2351

2351:                                             ; preds = %2350
  br label %2352

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

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

2364:                                             ; preds = %2359
  %2365 = load i32, ptr %72, align 4, !tbaa !5
  %2366 = call ptr @__errno_location() #12
  store i32 %2365, ptr %2366, align 4, !tbaa !5
  %2367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2368 = load i32, ptr @test_count, align 4, !tbaa !5
  %2369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2370 = load i32, ptr %2369, align 4, !tbaa !5
  %2371 = call ptr @s2n_strerror(i32 noundef %2370, ptr noundef @.str.24)
  %2372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2373 = load i32, ptr %2372, align 4, !tbaa !5
  %2374 = call ptr @s2n_strerror_debug(i32 noundef %2373, ptr noundef @.str.24)
  %2375 = call ptr @__errno_location() #12
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call ptr @strerror(i32 noundef %2376) #11
  %2378 = call ptr @__errno_location() #12
  %2379 = load i32, ptr %2378, align 4, !tbaa !5
  %2380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2367, ptr noundef @.str.22, i32 noundef %2368, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 330, ptr noundef %2371, ptr noundef %2374, ptr noundef %2377, i32 noundef %2379) #11
  br label %2398

2381:                                             ; preds = %2359, %2352
  %2382 = load i32, ptr %72, align 4, !tbaa !5
  %2383 = call ptr @__errno_location() #12
  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() #12
  %2393 = load i32, ptr %2392, align 4, !tbaa !5
  %2394 = call ptr @strerror(i32 noundef %2393) #11
  %2395 = call ptr @__errno_location() #12
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2384, ptr noundef @.str.25, i32 noundef %2385, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 330, ptr noundef %2388, ptr noundef %2391, ptr noundef %2394, i32 noundef %2396) #11
  br label %2398

2398:                                             ; preds = %2381, %2364
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %2399

2399:                                             ; preds = %2398
  br label %2400

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

2401:                                             ; No predecessors!
  br label %2402

2402:                                             ; preds = %2401
  br label %2403

2403:                                             ; preds = %2402, %2340
  br label %2404

2404:                                             ; preds = %2403
  br label %2405

2405:                                             ; preds = %2404
  br label %2406

2406:                                             ; preds = %2405
  %2407 = load i32, ptr @test_count, align 4, !tbaa !5
  %2408 = add nsw i32 %2407, 1
  store i32 %2408, ptr @test_count, align 4, !tbaa !5
  %2409 = load ptr, ptr %65, align 8, !tbaa !9
  %2410 = getelementptr inbounds %struct.s2n_connection, ptr %2409, i32 0, i32 52
  %2411 = getelementptr inbounds %struct.s2n_handshake, ptr %2410, i32 0, i32 12
  %2412 = load i32, ptr %2411, align 4, !tbaa !59
  %2413 = icmp eq i32 %2412, 2
  %2414 = zext i1 %2413 to i64
  %2415 = select i1 %2413, ptr @tls13_handshakes, ptr @handshakes
  %2416 = load ptr, ptr %65, align 8, !tbaa !9
  %2417 = getelementptr inbounds %struct.s2n_connection, ptr %2416, i32 0, i32 52
  %2418 = getelementptr inbounds %struct.s2n_handshake, ptr %2417, i32 0, i32 6
  %2419 = load i32, ptr %2418, align 4, !tbaa !60
  %2420 = zext i32 %2419 to i64
  %2421 = getelementptr inbounds [32 x i32], ptr %2415, i64 %2420
  %2422 = load ptr, ptr %65, align 8, !tbaa !9
  %2423 = getelementptr inbounds %struct.s2n_connection, ptr %2422, i32 0, i32 52
  %2424 = getelementptr inbounds %struct.s2n_handshake, ptr %2423, i32 0, i32 7
  %2425 = load i32, ptr %2424, align 8, !tbaa !61
  %2426 = sext i32 %2425 to i64
  %2427 = getelementptr inbounds [32 x i32], ptr %2421, i64 0, i64 %2426
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  %2429 = icmp eq i32 %2428, 11
  br i1 %2429, label %2430, label %2483

2430:                                             ; preds = %2406
  br label %2431

2431:                                             ; preds = %2430
  br label %2432

2432:                                             ; preds = %2431
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %2433 = call ptr @__errno_location() #12
  %2434 = load i32, ptr %2433, align 4, !tbaa !5
  store i32 %2434, ptr %73, align 4, !tbaa !5
  %2435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2436 = call i32 @s2n_print_stacktrace(ptr noundef %2435)
  %2437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2438 = trunc i8 %2437 to i1
  br i1 %2438, label %2439, label %2461

2439:                                             ; preds = %2432
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @fileno(ptr noundef %2440) #11
  %2442 = call i32 @isatty(i32 noundef %2441) #11
  %2443 = icmp ne i32 %2442, 0
  br i1 %2443, label %2444, label %2461

2444:                                             ; preds = %2439
  %2445 = load i32, ptr %73, align 4, !tbaa !5
  %2446 = call ptr @__errno_location() #12
  store i32 %2445, ptr %2446, align 4, !tbaa !5
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = load i32, ptr @test_count, align 4, !tbaa !5
  %2449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2450 = load i32, ptr %2449, align 4, !tbaa !5
  %2451 = call ptr @s2n_strerror(i32 noundef %2450, ptr noundef @.str.24)
  %2452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2453 = load i32, ptr %2452, align 4, !tbaa !5
  %2454 = call ptr @s2n_strerror_debug(i32 noundef %2453, ptr noundef @.str.24)
  %2455 = call ptr @__errno_location() #12
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call ptr @strerror(i32 noundef %2456) #11
  %2458 = call ptr @__errno_location() #12
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2447, ptr noundef @.str.22, i32 noundef %2448, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 331, ptr noundef %2451, ptr noundef %2454, ptr noundef %2457, i32 noundef %2459) #11
  br label %2478

2461:                                             ; preds = %2439, %2432
  %2462 = load i32, ptr %73, align 4, !tbaa !5
  %2463 = call ptr @__errno_location() #12
  store i32 %2462, ptr %2463, align 4, !tbaa !5
  %2464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2465 = load i32, ptr @test_count, align 4, !tbaa !5
  %2466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror(i32 noundef %2467, ptr noundef @.str.24)
  %2469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @s2n_strerror_debug(i32 noundef %2470, ptr noundef @.str.24)
  %2472 = call ptr @__errno_location() #12
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call ptr @strerror(i32 noundef %2473) #11
  %2475 = call ptr @__errno_location() #12
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2464, ptr noundef @.str.25, i32 noundef %2465, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 331, ptr noundef %2468, ptr noundef %2471, ptr noundef %2474, i32 noundef %2476) #11
  br label %2478

2478:                                             ; preds = %2461, %2444
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %2479

2479:                                             ; preds = %2478
  br label %2480

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

2481:                                             ; No predecessors!
  br label %2482

2482:                                             ; preds = %2481
  br label %2483

2483:                                             ; preds = %2482, %2406
  br label %2484

2484:                                             ; preds = %2483
  br label %2485

2485:                                             ; preds = %2484
  store i32 194, ptr %34, align 4
  br label %2490

2486:                                             ; preds = %2263
  br label %2487

2487:                                             ; preds = %2486
  %2488 = load i32, ptr %70, align 4, !tbaa !5
  %2489 = add nsw i32 %2488, 1
  store i32 %2489, ptr %70, align 4, !tbaa !5
  br label %2259, !llvm.loop !62

2490:                                             ; preds = %2485, %2262
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %2491

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

2492:                                             ; preds = %2491
  %2493 = load i32, ptr %68, align 4, !tbaa !5
  %2494 = add nsw i32 %2493, 1
  store i32 %2494, ptr %68, align 4, !tbaa !5
  br label %2244, !llvm.loop !63

2495:                                             ; preds = %2248
  br label %2496

2496:                                             ; preds = %2495
  %2497 = load i32, ptr @test_count, align 4, !tbaa !5
  %2498 = add nsw i32 %2497, 1
  store i32 %2498, ptr @test_count, align 4, !tbaa !5
  %2499 = load ptr, ptr %65, align 8, !tbaa !9
  %2500 = call i32 @s2n_connection_free(ptr noundef %2499)
  %2501 = icmp eq i32 %2500, -1
  br i1 %2501, label %2502, label %2555

2502:                                             ; preds = %2496
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

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

2511:                                             ; preds = %2504
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @fileno(ptr noundef %2512) #11
  %2514 = call i32 @isatty(i32 noundef %2513) #11
  %2515 = icmp ne i32 %2514, 0
  br i1 %2515, label %2516, label %2533

2516:                                             ; preds = %2511
  %2517 = load i32, ptr %74, align 4, !tbaa !5
  %2518 = call ptr @__errno_location() #12
  store i32 %2517, ptr %2518, align 4, !tbaa !5
  %2519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2520 = load i32, ptr @test_count, align 4, !tbaa !5
  %2521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = call ptr @s2n_strerror(i32 noundef %2522, ptr noundef @.str.24)
  %2524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call ptr @s2n_strerror_debug(i32 noundef %2525, ptr noundef @.str.24)
  %2527 = call ptr @__errno_location() #12
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call ptr @strerror(i32 noundef %2528) #11
  %2530 = call ptr @__errno_location() #12
  %2531 = load i32, ptr %2530, align 4, !tbaa !5
  %2532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2519, ptr noundef @.str.22, i32 noundef %2520, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 338, ptr noundef %2523, ptr noundef %2526, ptr noundef %2529, i32 noundef %2531) #11
  br label %2550

2533:                                             ; preds = %2511, %2504
  %2534 = load i32, ptr %74, align 4, !tbaa !5
  %2535 = call ptr @__errno_location() #12
  store i32 %2534, ptr %2535, align 4, !tbaa !5
  %2536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2537 = load i32, ptr @test_count, align 4, !tbaa !5
  %2538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror(i32 noundef %2539, ptr noundef @.str.24)
  %2541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @s2n_strerror_debug(i32 noundef %2542, ptr noundef @.str.24)
  %2544 = call ptr @__errno_location() #12
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call ptr @strerror(i32 noundef %2545) #11
  %2547 = call ptr @__errno_location() #12
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2536, ptr noundef @.str.25, i32 noundef %2537, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 338, ptr noundef %2540, ptr noundef %2543, ptr noundef %2546, i32 noundef %2548) #11
  br label %2550

2550:                                             ; preds = %2533, %2516
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

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

2553:                                             ; No predecessors!
  br label %2554

2554:                                             ; preds = %2553
  br label %2555

2555:                                             ; preds = %2554, %2496
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

2557:                                             ; preds = %2556
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #11
  %2558 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2558, ptr %75, align 8, !tbaa !9
  %2559 = load ptr, ptr %75, align 8, !tbaa !9
  %2560 = getelementptr inbounds %struct.s2n_connection, ptr %2559, i32 0, i32 23
  store i8 34, ptr %2560, align 4, !tbaa !34
  br label %2561

2561:                                             ; preds = %2557
  %2562 = load i32, ptr @test_count, align 4, !tbaa !5
  %2563 = add nsw i32 %2562, 1
  store i32 %2563, ptr @test_count, align 4, !tbaa !5
  %2564 = load ptr, ptr %75, align 8, !tbaa !9
  %2565 = call i32 @s2n_conn_choose_state_machine(ptr noundef %2564, i8 noundef zeroext 34)
  %2566 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  store i32 %2565, ptr %2566, align 4
  %2567 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  %2568 = load i32, ptr %2567, align 4
  %2569 = call zeroext i1 @s2n_result_is_ok(i32 %2568)
  br i1 %2569, label %2623, label %2570

2570:                                             ; preds = %2561
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

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

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

2584:                                             ; preds = %2579
  %2585 = load i32, ptr %77, align 4, !tbaa !5
  %2586 = call ptr @__errno_location() #12
  store i32 %2585, ptr %2586, align 4, !tbaa !5
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = load i32, ptr @test_count, align 4, !tbaa !5
  %2589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror(i32 noundef %2590, ptr noundef @.str.24)
  %2592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call ptr @s2n_strerror_debug(i32 noundef %2593, ptr noundef @.str.24)
  %2595 = call ptr @__errno_location() #12
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @strerror(i32 noundef %2596) #11
  %2598 = call ptr @__errno_location() #12
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2587, ptr noundef @.str.22, i32 noundef %2588, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 345, ptr noundef %2591, ptr noundef %2594, ptr noundef %2597, i32 noundef %2599) #11
  br label %2618

2601:                                             ; preds = %2579, %2572
  %2602 = load i32, ptr %77, align 4, !tbaa !5
  %2603 = call ptr @__errno_location() #12
  store i32 %2602, ptr %2603, align 4, !tbaa !5
  %2604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2605 = load i32, ptr @test_count, align 4, !tbaa !5
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror(i32 noundef %2607, ptr noundef @.str.24)
  %2609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @s2n_strerror_debug(i32 noundef %2610, ptr noundef @.str.24)
  %2612 = call ptr @__errno_location() #12
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call ptr @strerror(i32 noundef %2613) #11
  %2615 = call ptr @__errno_location() #12
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2604, ptr noundef @.str.25, i32 noundef %2605, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 345, ptr noundef %2608, ptr noundef %2611, ptr noundef %2614, i32 noundef %2616) #11
  br label %2618

2618:                                             ; preds = %2601, %2584
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

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

2621:                                             ; No predecessors!
  br label %2622

2622:                                             ; preds = %2621
  br label %2623

2623:                                             ; preds = %2622, %2561
  br label %2624

2624:                                             ; preds = %2623
  br label %2625

2625:                                             ; preds = %2624
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  store i32 0, ptr %78, align 4, !tbaa !5
  br label %2626

2626:                                             ; preds = %2873, %2625
  %2627 = load i32, ptr %78, align 4, !tbaa !5
  %2628 = load i32, ptr %11, align 4, !tbaa !5
  %2629 = icmp slt i32 %2627, %2628
  br i1 %2629, label %2631, label %2630

2630:                                             ; preds = %2626
  store i32 227, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %2876

2631:                                             ; preds = %2626
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %2632 = load i32, ptr %78, align 4, !tbaa !5
  %2633 = sext i32 %2632 to i64
  %2634 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %2633
  %2635 = load i16, ptr %2634, align 2, !tbaa !15
  %2636 = zext i16 %2635 to i32
  store i32 %2636, ptr %79, align 4, !tbaa !5
  %2637 = load i32, ptr %79, align 4, !tbaa !5
  %2638 = load ptr, ptr %75, align 8, !tbaa !9
  %2639 = getelementptr inbounds %struct.s2n_connection, ptr %2638, i32 0, i32 52
  %2640 = getelementptr inbounds %struct.s2n_handshake, ptr %2639, i32 0, i32 6
  store i32 %2637, ptr %2640, align 4, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  store i32 0, ptr %80, align 4, !tbaa !5
  br label %2641

2641:                                             ; preds = %2868, %2631
  %2642 = load i32, ptr %80, align 4, !tbaa !5
  %2643 = icmp slt i32 %2642, 32
  br i1 %2643, label %2645, label %2644

2644:                                             ; preds = %2641
  store i32 230, ptr %34, align 4
  br label %2871

2645:                                             ; preds = %2641
  %2646 = load i32, ptr %79, align 4, !tbaa !5
  %2647 = sext i32 %2646 to i64
  %2648 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %2647
  %2649 = load i32, ptr %80, align 4, !tbaa !5
  %2650 = sext i32 %2649 to i64
  %2651 = getelementptr inbounds [32 x i32], ptr %2648, i64 0, i64 %2650
  %2652 = load i32, ptr %2651, align 4, !tbaa !5
  %2653 = icmp eq i32 %2652, 14
  br i1 %2653, label %2654, label %2867

2654:                                             ; preds = %2645
  %2655 = load i32, ptr %80, align 4, !tbaa !5
  %2656 = sub nsw i32 %2655, 1
  %2657 = load ptr, ptr %75, align 8, !tbaa !9
  %2658 = getelementptr inbounds %struct.s2n_connection, ptr %2657, i32 0, i32 52
  %2659 = getelementptr inbounds %struct.s2n_handshake, ptr %2658, i32 0, i32 7
  store i32 %2656, ptr %2659, align 8, !tbaa !61
  br label %2660

2660:                                             ; preds = %2654
  %2661 = load i32, ptr @test_count, align 4, !tbaa !5
  %2662 = add nsw i32 %2661, 1
  store i32 %2662, ptr @test_count, align 4, !tbaa !5
  %2663 = load ptr, ptr %75, align 8, !tbaa !9
  %2664 = call i32 @s2n_advance_message(ptr noundef %2663)
  %2665 = icmp eq i32 %2664, -1
  br i1 %2665, label %2666, label %2719

2666:                                             ; preds = %2660
  br label %2667

2667:                                             ; preds = %2666
  br label %2668

2668:                                             ; preds = %2667
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %2669 = call ptr @__errno_location() #12
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  store i32 %2670, ptr %81, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = call i32 @s2n_print_stacktrace(ptr noundef %2671)
  %2673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2674 = trunc i8 %2673 to i1
  br i1 %2674, label %2675, label %2697

2675:                                             ; preds = %2668
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = call i32 @fileno(ptr noundef %2676) #11
  %2678 = call i32 @isatty(i32 noundef %2677) #11
  %2679 = icmp ne i32 %2678, 0
  br i1 %2679, label %2680, label %2697

2680:                                             ; preds = %2675
  %2681 = load i32, ptr %81, align 4, !tbaa !5
  %2682 = call ptr @__errno_location() #12
  store i32 %2681, ptr %2682, align 4, !tbaa !5
  %2683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2684 = load i32, ptr @test_count, align 4, !tbaa !5
  %2685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror(i32 noundef %2686, ptr noundef @.str.24)
  %2688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @s2n_strerror_debug(i32 noundef %2689, ptr noundef @.str.24)
  %2691 = call ptr @__errno_location() #12
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call ptr @strerror(i32 noundef %2692) #11
  %2694 = call ptr @__errno_location() #12
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2683, ptr noundef @.str.22, i32 noundef %2684, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 356, ptr noundef %2687, ptr noundef %2690, ptr noundef %2693, i32 noundef %2695) #11
  br label %2714

2697:                                             ; preds = %2675, %2668
  %2698 = load i32, ptr %81, align 4, !tbaa !5
  %2699 = call ptr @__errno_location() #12
  store i32 %2698, ptr %2699, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2703 = load i32, ptr %2702, align 4, !tbaa !5
  %2704 = call ptr @s2n_strerror(i32 noundef %2703, ptr noundef @.str.24)
  %2705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = call ptr @s2n_strerror_debug(i32 noundef %2706, ptr noundef @.str.24)
  %2708 = call ptr @__errno_location() #12
  %2709 = load i32, ptr %2708, align 4, !tbaa !5
  %2710 = call ptr @strerror(i32 noundef %2709) #11
  %2711 = call ptr @__errno_location() #12
  %2712 = load i32, ptr %2711, align 4, !tbaa !5
  %2713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2700, ptr noundef @.str.25, i32 noundef %2701, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 356, ptr noundef %2704, ptr noundef %2707, ptr noundef %2710, i32 noundef %2712) #11
  br label %2714

2714:                                             ; preds = %2697, %2680
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %2715

2715:                                             ; preds = %2714
  br label %2716

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

2717:                                             ; No predecessors!
  br label %2718

2718:                                             ; preds = %2717
  br label %2719

2719:                                             ; preds = %2718, %2660
  br label %2720

2720:                                             ; preds = %2719
  br label %2721

2721:                                             ; preds = %2720
  br label %2722

2722:                                             ; preds = %2721
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = add nsw i32 %2723, 1
  store i32 %2724, ptr @test_count, align 4, !tbaa !5
  %2725 = load ptr, ptr %75, align 8, !tbaa !9
  %2726 = getelementptr inbounds %struct.s2n_connection, ptr %2725, i32 0, i32 52
  %2727 = getelementptr inbounds %struct.s2n_handshake, ptr %2726, i32 0, i32 7
  %2728 = load i32, ptr %2727, align 8, !tbaa !61
  %2729 = load i32, ptr %80, align 4, !tbaa !5
  %2730 = icmp eq i32 %2728, %2729
  br i1 %2730, label %2784, label %2731

2731:                                             ; preds = %2722
  br label %2732

2732:                                             ; preds = %2731
  br label %2733

2733:                                             ; preds = %2732
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %2734 = call ptr @__errno_location() #12
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  store i32 %2735, ptr %82, align 4, !tbaa !5
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = call i32 @s2n_print_stacktrace(ptr noundef %2736)
  %2738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2739 = trunc i8 %2738 to i1
  br i1 %2739, label %2740, label %2762

2740:                                             ; preds = %2733
  %2741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2742 = call i32 @fileno(ptr noundef %2741) #11
  %2743 = call i32 @isatty(i32 noundef %2742) #11
  %2744 = icmp ne i32 %2743, 0
  br i1 %2744, label %2745, label %2762

2745:                                             ; preds = %2740
  %2746 = load i32, ptr %82, align 4, !tbaa !5
  %2747 = call ptr @__errno_location() #12
  store i32 %2746, ptr %2747, align 4, !tbaa !5
  %2748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2749 = load i32, ptr @test_count, align 4, !tbaa !5
  %2750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call ptr @s2n_strerror(i32 noundef %2751, ptr noundef @.str.24)
  %2753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call ptr @s2n_strerror_debug(i32 noundef %2754, ptr noundef @.str.24)
  %2756 = call ptr @__errno_location() #12
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call ptr @strerror(i32 noundef %2757) #11
  %2759 = call ptr @__errno_location() #12
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2748, ptr noundef @.str.22, i32 noundef %2749, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 358, ptr noundef %2752, ptr noundef %2755, ptr noundef %2758, i32 noundef %2760) #11
  br label %2779

2762:                                             ; preds = %2740, %2733
  %2763 = load i32, ptr %82, align 4, !tbaa !5
  %2764 = call ptr @__errno_location() #12
  store i32 %2763, ptr %2764, align 4, !tbaa !5
  %2765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2766 = load i32, ptr @test_count, align 4, !tbaa !5
  %2767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call ptr @s2n_strerror(i32 noundef %2768, ptr noundef @.str.24)
  %2770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2771 = load i32, ptr %2770, align 4, !tbaa !5
  %2772 = call ptr @s2n_strerror_debug(i32 noundef %2771, ptr noundef @.str.24)
  %2773 = call ptr @__errno_location() #12
  %2774 = load i32, ptr %2773, align 4, !tbaa !5
  %2775 = call ptr @strerror(i32 noundef %2774) #11
  %2776 = call ptr @__errno_location() #12
  %2777 = load i32, ptr %2776, align 4, !tbaa !5
  %2778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2765, ptr noundef @.str.25, i32 noundef %2766, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 358, ptr noundef %2769, ptr noundef %2772, ptr noundef %2775, i32 noundef %2777) #11
  br label %2779

2779:                                             ; preds = %2762, %2745
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %2780

2780:                                             ; preds = %2779
  br label %2781

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

2782:                                             ; No predecessors!
  br label %2783

2783:                                             ; preds = %2782
  br label %2784

2784:                                             ; preds = %2783, %2722
  br label %2785

2785:                                             ; preds = %2784
  br label %2786

2786:                                             ; preds = %2785
  br label %2787

2787:                                             ; preds = %2786
  %2788 = load i32, ptr @test_count, align 4, !tbaa !5
  %2789 = add nsw i32 %2788, 1
  store i32 %2789, ptr @test_count, align 4, !tbaa !5
  %2790 = load ptr, ptr %75, align 8, !tbaa !9
  %2791 = getelementptr inbounds %struct.s2n_connection, ptr %2790, i32 0, i32 52
  %2792 = getelementptr inbounds %struct.s2n_handshake, ptr %2791, i32 0, i32 12
  %2793 = load i32, ptr %2792, align 4, !tbaa !59
  %2794 = icmp eq i32 %2793, 2
  %2795 = zext i1 %2794 to i64
  %2796 = select i1 %2794, ptr @tls13_handshakes, ptr @handshakes
  %2797 = load ptr, ptr %75, align 8, !tbaa !9
  %2798 = getelementptr inbounds %struct.s2n_connection, ptr %2797, i32 0, i32 52
  %2799 = getelementptr inbounds %struct.s2n_handshake, ptr %2798, i32 0, i32 6
  %2800 = load i32, ptr %2799, align 4, !tbaa !60
  %2801 = zext i32 %2800 to i64
  %2802 = getelementptr inbounds [32 x i32], ptr %2796, i64 %2801
  %2803 = load ptr, ptr %75, align 8, !tbaa !9
  %2804 = getelementptr inbounds %struct.s2n_connection, ptr %2803, i32 0, i32 52
  %2805 = getelementptr inbounds %struct.s2n_handshake, ptr %2804, i32 0, i32 7
  %2806 = load i32, ptr %2805, align 8, !tbaa !61
  %2807 = sext i32 %2806 to i64
  %2808 = getelementptr inbounds [32 x i32], ptr %2802, i64 0, i64 %2807
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = icmp eq i32 %2809, 14
  br i1 %2810, label %2864, label %2811

2811:                                             ; preds = %2787
  br label %2812

2812:                                             ; preds = %2811
  br label %2813

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

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

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

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

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

2860:                                             ; preds = %2859
  br label %2861

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

2862:                                             ; No predecessors!
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

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

2865:                                             ; preds = %2864
  br label %2866

2866:                                             ; preds = %2865
  store i32 230, ptr %34, align 4
  br label %2871

2867:                                             ; preds = %2645
  br label %2868

2868:                                             ; preds = %2867
  %2869 = load i32, ptr %80, align 4, !tbaa !5
  %2870 = add nsw i32 %2869, 1
  store i32 %2870, ptr %80, align 4, !tbaa !5
  br label %2641, !llvm.loop !64

2871:                                             ; preds = %2866, %2644
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %2872

2872:                                             ; preds = %2871
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %2873

2873:                                             ; preds = %2872
  %2874 = load i32, ptr %78, align 4, !tbaa !5
  %2875 = add nsw i32 %2874, 1
  store i32 %2875, ptr %78, align 4, !tbaa !5
  br label %2626, !llvm.loop !65

2876:                                             ; preds = %2630
  br label %2877

2877:                                             ; preds = %2876
  %2878 = load i32, ptr @test_count, align 4, !tbaa !5
  %2879 = add nsw i32 %2878, 1
  store i32 %2879, ptr @test_count, align 4, !tbaa !5
  %2880 = load ptr, ptr %75, align 8, !tbaa !9
  %2881 = call i32 @s2n_connection_free(ptr noundef %2880)
  %2882 = icmp eq i32 %2881, -1
  br i1 %2882, label %2883, label %2936

2883:                                             ; preds = %2877
  br label %2884

2884:                                             ; preds = %2883
  br label %2885

2885:                                             ; preds = %2884
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %2886 = call ptr @__errno_location() #12
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  store i32 %2887, ptr %84, align 4, !tbaa !5
  %2888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2889 = call i32 @s2n_print_stacktrace(ptr noundef %2888)
  %2890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2891 = trunc i8 %2890 to i1
  br i1 %2891, label %2892, label %2914

2892:                                             ; preds = %2885
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = call i32 @fileno(ptr noundef %2893) #11
  %2895 = call i32 @isatty(i32 noundef %2894) #11
  %2896 = icmp ne i32 %2895, 0
  br i1 %2896, label %2897, label %2914

2897:                                             ; preds = %2892
  %2898 = load i32, ptr %84, align 4, !tbaa !5
  %2899 = call ptr @__errno_location() #12
  store i32 %2898, ptr %2899, align 4, !tbaa !5
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = load i32, ptr @test_count, align 4, !tbaa !5
  %2902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @s2n_strerror(i32 noundef %2903, ptr noundef @.str.24)
  %2905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call ptr @s2n_strerror_debug(i32 noundef %2906, ptr noundef @.str.24)
  %2908 = call ptr @__errno_location() #12
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  %2910 = call ptr @strerror(i32 noundef %2909) #11
  %2911 = call ptr @__errno_location() #12
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  %2913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2900, ptr noundef @.str.22, i32 noundef %2901, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 366, ptr noundef %2904, ptr noundef %2907, ptr noundef %2910, i32 noundef %2912) #11
  br label %2931

2914:                                             ; preds = %2892, %2885
  %2915 = load i32, ptr %84, align 4, !tbaa !5
  %2916 = call ptr @__errno_location() #12
  store i32 %2915, ptr %2916, align 4, !tbaa !5
  %2917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2918 = load i32, ptr @test_count, align 4, !tbaa !5
  %2919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror(i32 noundef %2920, ptr noundef @.str.24)
  %2922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2923 = load i32, ptr %2922, align 4, !tbaa !5
  %2924 = call ptr @s2n_strerror_debug(i32 noundef %2923, ptr noundef @.str.24)
  %2925 = call ptr @__errno_location() #12
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  %2927 = call ptr @strerror(i32 noundef %2926) #11
  %2928 = call ptr @__errno_location() #12
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2917, ptr noundef @.str.25, i32 noundef %2918, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 366, ptr noundef %2921, ptr noundef %2924, ptr noundef %2927, i32 noundef %2929) #11
  br label %2931

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

2932:                                             ; preds = %2931
  br label %2933

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

2934:                                             ; No predecessors!
  br label %2935

2935:                                             ; preds = %2934
  br label %2936

2936:                                             ; preds = %2935, %2877
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

2938:                                             ; preds = %2937
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #11
  %2939 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2939, ptr %85, align 8, !tbaa !9
  %2940 = load ptr, ptr %85, align 8, !tbaa !9
  %2941 = getelementptr inbounds %struct.s2n_connection, ptr %2940, i32 0, i32 23
  store i8 34, ptr %2941, align 4, !tbaa !34
  br label %2942

2942:                                             ; preds = %2938
  %2943 = load i32, ptr @test_count, align 4, !tbaa !5
  %2944 = add nsw i32 %2943, 1
  store i32 %2944, ptr @test_count, align 4, !tbaa !5
  %2945 = load ptr, ptr %85, align 8, !tbaa !9
  %2946 = call i32 @s2n_conn_choose_state_machine(ptr noundef %2945, i8 noundef zeroext 34)
  %2947 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  store i32 %2946, ptr %2947, align 4
  %2948 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  %2949 = load i32, ptr %2948, align 4
  %2950 = call zeroext i1 @s2n_result_is_ok(i32 %2949)
  br i1 %2950, label %3004, label %2951

2951:                                             ; preds = %2942
  br label %2952

2952:                                             ; preds = %2951
  br label %2953

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

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

2965:                                             ; preds = %2960
  %2966 = load i32, ptr %87, align 4, !tbaa !5
  %2967 = call ptr @__errno_location() #12
  store i32 %2966, ptr %2967, align 4, !tbaa !5
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = load i32, ptr @test_count, align 4, !tbaa !5
  %2970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call ptr @s2n_strerror(i32 noundef %2971, ptr noundef @.str.24)
  %2973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror_debug(i32 noundef %2974, ptr noundef @.str.24)
  %2976 = call ptr @__errno_location() #12
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @strerror(i32 noundef %2977) #11
  %2979 = call ptr @__errno_location() #12
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2968, ptr noundef @.str.22, i32 noundef %2969, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 373, ptr noundef %2972, ptr noundef %2975, ptr noundef %2978, i32 noundef %2980) #11
  br label %2999

2982:                                             ; preds = %2960, %2953
  %2983 = load i32, ptr %87, align 4, !tbaa !5
  %2984 = call ptr @__errno_location() #12
  store i32 %2983, ptr %2984, align 4, !tbaa !5
  %2985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2986 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2988, ptr noundef @.str.24)
  %2990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror_debug(i32 noundef %2991, ptr noundef @.str.24)
  %2993 = call ptr @__errno_location() #12
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call ptr @strerror(i32 noundef %2994) #11
  %2996 = call ptr @__errno_location() #12
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2985, ptr noundef @.str.25, i32 noundef %2986, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 373, ptr noundef %2989, ptr noundef %2992, ptr noundef %2995, i32 noundef %2997) #11
  br label %2999

2999:                                             ; preds = %2982, %2965
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3000

3000:                                             ; preds = %2999
  br label %3001

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

3002:                                             ; No predecessors!
  br label %3003

3003:                                             ; preds = %3002
  br label %3004

3004:                                             ; preds = %3003, %2942
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

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

3007:                                             ; preds = %3255, %3006
  %3008 = load i32, ptr %88, align 4, !tbaa !5
  %3009 = load i32, ptr %11, align 4, !tbaa !5
  %3010 = icmp slt i32 %3008, %3009
  br i1 %3010, label %3012, label %3011

3011:                                             ; preds = %3007
  store i32 263, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3258

3012:                                             ; preds = %3007
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %3013 = load i32, ptr %88, align 4, !tbaa !5
  %3014 = sext i32 %3013 to i64
  %3015 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %3014
  %3016 = load i16, ptr %3015, align 2, !tbaa !15
  %3017 = zext i16 %3016 to i32
  store i32 %3017, ptr %89, align 4, !tbaa !5
  %3018 = load i32, ptr %89, align 4, !tbaa !5
  %3019 = load ptr, ptr %85, align 8, !tbaa !9
  %3020 = getelementptr inbounds %struct.s2n_connection, ptr %3019, i32 0, i32 52
  %3021 = getelementptr inbounds %struct.s2n_handshake, ptr %3020, i32 0, i32 6
  store i32 %3018, ptr %3021, align 4, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  store i32 0, ptr %90, align 4, !tbaa !5
  br label %3022

3022:                                             ; preds = %3250, %3012
  %3023 = load i32, ptr %90, align 4, !tbaa !5
  %3024 = icmp slt i32 %3023, 32
  br i1 %3024, label %3026, label %3025

3025:                                             ; preds = %3022
  store i32 266, ptr %34, align 4
  br label %3253

3026:                                             ; preds = %3022
  %3027 = load i32, ptr %89, align 4, !tbaa !5
  %3028 = sext i32 %3027 to i64
  %3029 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %3028
  %3030 = load i32, ptr %90, align 4, !tbaa !5
  %3031 = sext i32 %3030 to i64
  %3032 = getelementptr inbounds [32 x i32], ptr %3029, i64 0, i64 %3031
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = icmp eq i32 %3033, 14
  br i1 %3034, label %3035, label %3249

3035:                                             ; preds = %3026
  %3036 = load i32, ptr %90, align 4, !tbaa !5
  %3037 = sub nsw i32 %3036, 1
  %3038 = load ptr, ptr %85, align 8, !tbaa !9
  %3039 = getelementptr inbounds %struct.s2n_connection, ptr %3038, i32 0, i32 52
  %3040 = getelementptr inbounds %struct.s2n_handshake, ptr %3039, i32 0, i32 7
  store i32 %3037, ptr %3040, align 8, !tbaa !61
  br label %3041

3041:                                             ; preds = %3035
  %3042 = load i32, ptr @test_count, align 4, !tbaa !5
  %3043 = add nsw i32 %3042, 1
  store i32 %3043, ptr @test_count, align 4, !tbaa !5
  %3044 = load ptr, ptr %85, align 8, !tbaa !9
  %3045 = call i32 @s2n_advance_message(ptr noundef %3044)
  %3046 = icmp eq i32 %3045, -1
  br i1 %3046, label %3047, label %3100

3047:                                             ; preds = %3041
  br label %3048

3048:                                             ; preds = %3047
  br label %3049

3049:                                             ; preds = %3048
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3050 = call ptr @__errno_location() #12
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  store i32 %3051, ptr %91, align 4, !tbaa !5
  %3052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3053 = call i32 @s2n_print_stacktrace(ptr noundef %3052)
  %3054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3055 = trunc i8 %3054 to i1
  br i1 %3055, label %3056, label %3078

3056:                                             ; preds = %3049
  %3057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3058 = call i32 @fileno(ptr noundef %3057) #11
  %3059 = call i32 @isatty(i32 noundef %3058) #11
  %3060 = icmp ne i32 %3059, 0
  br i1 %3060, label %3061, label %3078

3061:                                             ; preds = %3056
  %3062 = load i32, ptr %91, align 4, !tbaa !5
  %3063 = call ptr @__errno_location() #12
  store i32 %3062, ptr %3063, align 4, !tbaa !5
  %3064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3065 = load i32, ptr @test_count, align 4, !tbaa !5
  %3066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3067 = load i32, ptr %3066, align 4, !tbaa !5
  %3068 = call ptr @s2n_strerror(i32 noundef %3067, ptr noundef @.str.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() #12
  %3073 = load i32, ptr %3072, align 4, !tbaa !5
  %3074 = call ptr @strerror(i32 noundef %3073) #11
  %3075 = call ptr @__errno_location() #12
  %3076 = load i32, ptr %3075, align 4, !tbaa !5
  %3077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3064, ptr noundef @.str.22, i32 noundef %3065, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 384, ptr noundef %3068, ptr noundef %3071, ptr noundef %3074, i32 noundef %3076) #11
  br label %3095

3078:                                             ; preds = %3056, %3049
  %3079 = load i32, ptr %91, align 4, !tbaa !5
  %3080 = call ptr @__errno_location() #12
  store i32 %3079, ptr %3080, align 4, !tbaa !5
  %3081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3082 = load i32, ptr @test_count, align 4, !tbaa !5
  %3083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = call ptr @s2n_strerror(i32 noundef %3084, ptr noundef @.str.24)
  %3086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3087 = load i32, ptr %3086, align 4, !tbaa !5
  %3088 = call ptr @s2n_strerror_debug(i32 noundef %3087, ptr noundef @.str.24)
  %3089 = call ptr @__errno_location() #12
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call ptr @strerror(i32 noundef %3090) #11
  %3092 = call ptr @__errno_location() #12
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3081, ptr noundef @.str.25, i32 noundef %3082, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 384, ptr noundef %3085, ptr noundef %3088, ptr noundef %3091, i32 noundef %3093) #11
  br label %3095

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

3096:                                             ; preds = %3095
  br label %3097

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

3098:                                             ; No predecessors!
  br label %3099

3099:                                             ; preds = %3098
  br label %3100

3100:                                             ; preds = %3099, %3041
  br label %3101

3101:                                             ; preds = %3100
  br label %3102

3102:                                             ; preds = %3101
  br label %3103

3103:                                             ; preds = %3102
  %3104 = load i32, ptr @test_count, align 4, !tbaa !5
  %3105 = add nsw i32 %3104, 1
  store i32 %3105, ptr @test_count, align 4, !tbaa !5
  %3106 = load ptr, ptr %85, align 8, !tbaa !9
  %3107 = getelementptr inbounds %struct.s2n_connection, ptr %3106, i32 0, i32 52
  %3108 = getelementptr inbounds %struct.s2n_handshake, ptr %3107, i32 0, i32 7
  %3109 = load i32, ptr %3108, align 8, !tbaa !61
  %3110 = load i32, ptr %90, align 4, !tbaa !5
  %3111 = add nsw i32 %3110, 1
  %3112 = icmp eq i32 %3109, %3111
  br i1 %3112, label %3166, label %3113

3113:                                             ; preds = %3103
  br label %3114

3114:                                             ; preds = %3113
  br label %3115

3115:                                             ; preds = %3114
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %3116 = call ptr @__errno_location() #12
  %3117 = load i32, ptr %3116, align 4, !tbaa !5
  store i32 %3117, ptr %92, align 4, !tbaa !5
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = call i32 @s2n_print_stacktrace(ptr noundef %3118)
  %3120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3121 = trunc i8 %3120 to i1
  br i1 %3121, label %3122, label %3144

3122:                                             ; preds = %3115
  %3123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3124 = call i32 @fileno(ptr noundef %3123) #11
  %3125 = call i32 @isatty(i32 noundef %3124) #11
  %3126 = icmp ne i32 %3125, 0
  br i1 %3126, label %3127, label %3144

3127:                                             ; preds = %3122
  %3128 = load i32, ptr %92, align 4, !tbaa !5
  %3129 = call ptr @__errno_location() #12
  store i32 %3128, ptr %3129, align 4, !tbaa !5
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = load i32, ptr @test_count, align 4, !tbaa !5
  %3132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @s2n_strerror(i32 noundef %3133, ptr noundef @.str.24)
  %3135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call ptr @s2n_strerror_debug(i32 noundef %3136, ptr noundef @.str.24)
  %3138 = call ptr @__errno_location() #12
  %3139 = load i32, ptr %3138, align 4, !tbaa !5
  %3140 = call ptr @strerror(i32 noundef %3139) #11
  %3141 = call ptr @__errno_location() #12
  %3142 = load i32, ptr %3141, align 4, !tbaa !5
  %3143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3130, ptr noundef @.str.22, i32 noundef %3131, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 386, ptr noundef %3134, ptr noundef %3137, ptr noundef %3140, i32 noundef %3142) #11
  br label %3161

3144:                                             ; preds = %3122, %3115
  %3145 = load i32, ptr %92, align 4, !tbaa !5
  %3146 = call ptr @__errno_location() #12
  store i32 %3145, ptr %3146, align 4, !tbaa !5
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3148 = load i32, ptr @test_count, align 4, !tbaa !5
  %3149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call ptr @s2n_strerror(i32 noundef %3150, ptr noundef @.str.24)
  %3152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3153 = load i32, ptr %3152, align 4, !tbaa !5
  %3154 = call ptr @s2n_strerror_debug(i32 noundef %3153, ptr noundef @.str.24)
  %3155 = call ptr @__errno_location() #12
  %3156 = load i32, ptr %3155, align 4, !tbaa !5
  %3157 = call ptr @strerror(i32 noundef %3156) #11
  %3158 = call ptr @__errno_location() #12
  %3159 = load i32, ptr %3158, align 4, !tbaa !5
  %3160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3147, ptr noundef @.str.25, i32 noundef %3148, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 386, ptr noundef %3151, ptr noundef %3154, ptr noundef %3157, i32 noundef %3159) #11
  br label %3161

3161:                                             ; preds = %3144, %3127
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %3162

3162:                                             ; preds = %3161
  br label %3163

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

3164:                                             ; No predecessors!
  br label %3165

3165:                                             ; preds = %3164
  br label %3166

3166:                                             ; preds = %3165, %3103
  br label %3167

3167:                                             ; preds = %3166
  br label %3168

3168:                                             ; preds = %3167
  br label %3169

3169:                                             ; preds = %3168
  %3170 = load i32, ptr @test_count, align 4, !tbaa !5
  %3171 = add nsw i32 %3170, 1
  store i32 %3171, ptr @test_count, align 4, !tbaa !5
  %3172 = load ptr, ptr %85, align 8, !tbaa !9
  %3173 = getelementptr inbounds %struct.s2n_connection, ptr %3172, i32 0, i32 52
  %3174 = getelementptr inbounds %struct.s2n_handshake, ptr %3173, i32 0, i32 12
  %3175 = load i32, ptr %3174, align 4, !tbaa !59
  %3176 = icmp eq i32 %3175, 2
  %3177 = zext i1 %3176 to i64
  %3178 = select i1 %3176, ptr @tls13_handshakes, ptr @handshakes
  %3179 = load ptr, ptr %85, align 8, !tbaa !9
  %3180 = getelementptr inbounds %struct.s2n_connection, ptr %3179, i32 0, i32 52
  %3181 = getelementptr inbounds %struct.s2n_handshake, ptr %3180, i32 0, i32 6
  %3182 = load i32, ptr %3181, align 4, !tbaa !60
  %3183 = zext i32 %3182 to i64
  %3184 = getelementptr inbounds [32 x i32], ptr %3178, i64 %3183
  %3185 = load ptr, ptr %85, align 8, !tbaa !9
  %3186 = getelementptr inbounds %struct.s2n_connection, ptr %3185, i32 0, i32 52
  %3187 = getelementptr inbounds %struct.s2n_handshake, ptr %3186, i32 0, i32 7
  %3188 = load i32, ptr %3187, align 8, !tbaa !61
  %3189 = sext i32 %3188 to i64
  %3190 = getelementptr inbounds [32 x i32], ptr %3184, i64 0, i64 %3189
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  %3192 = icmp eq i32 %3191, 14
  br i1 %3192, label %3193, label %3246

3193:                                             ; preds = %3169
  br label %3194

3194:                                             ; preds = %3193
  br label %3195

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

3202:                                             ; preds = %3195
  %3203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3204 = call i32 @fileno(ptr noundef %3203) #11
  %3205 = call i32 @isatty(i32 noundef %3204) #11
  %3206 = icmp ne i32 %3205, 0
  br i1 %3206, label %3207, label %3224

3207:                                             ; preds = %3202
  %3208 = load i32, ptr %93, align 4, !tbaa !5
  %3209 = call ptr @__errno_location() #12
  store i32 %3208, ptr %3209, align 4, !tbaa !5
  %3210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3211 = load i32, ptr @test_count, align 4, !tbaa !5
  %3212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3213 = load i32, ptr %3212, align 4, !tbaa !5
  %3214 = call ptr @s2n_strerror(i32 noundef %3213, ptr noundef @.str.24)
  %3215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3216 = load i32, ptr %3215, align 4, !tbaa !5
  %3217 = call ptr @s2n_strerror_debug(i32 noundef %3216, ptr noundef @.str.24)
  %3218 = call ptr @__errno_location() #12
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  %3220 = call ptr @strerror(i32 noundef %3219) #11
  %3221 = call ptr @__errno_location() #12
  %3222 = load i32, ptr %3221, align 4, !tbaa !5
  %3223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3210, ptr noundef @.str.22, i32 noundef %3211, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 387, ptr noundef %3214, ptr noundef %3217, ptr noundef %3220, i32 noundef %3222) #11
  br label %3241

3224:                                             ; preds = %3202, %3195
  %3225 = load i32, ptr %93, align 4, !tbaa !5
  %3226 = call ptr @__errno_location() #12
  store i32 %3225, ptr %3226, align 4, !tbaa !5
  %3227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3228 = load i32, ptr @test_count, align 4, !tbaa !5
  %3229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  %3231 = call ptr @s2n_strerror(i32 noundef %3230, ptr noundef @.str.24)
  %3232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = call ptr @s2n_strerror_debug(i32 noundef %3233, ptr noundef @.str.24)
  %3235 = call ptr @__errno_location() #12
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  %3237 = call ptr @strerror(i32 noundef %3236) #11
  %3238 = call ptr @__errno_location() #12
  %3239 = load i32, ptr %3238, align 4, !tbaa !5
  %3240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3227, ptr noundef @.str.25, i32 noundef %3228, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 387, ptr noundef %3231, ptr noundef %3234, ptr noundef %3237, i32 noundef %3239) #11
  br label %3241

3241:                                             ; preds = %3224, %3207
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %3242

3242:                                             ; preds = %3241
  br label %3243

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

3244:                                             ; No predecessors!
  br label %3245

3245:                                             ; preds = %3244
  br label %3246

3246:                                             ; preds = %3245, %3169
  br label %3247

3247:                                             ; preds = %3246
  br label %3248

3248:                                             ; preds = %3247
  store i32 266, ptr %34, align 4
  br label %3253

3249:                                             ; preds = %3026
  br label %3250

3250:                                             ; preds = %3249
  %3251 = load i32, ptr %90, align 4, !tbaa !5
  %3252 = add nsw i32 %3251, 1
  store i32 %3252, ptr %90, align 4, !tbaa !5
  br label %3022, !llvm.loop !66

3253:                                             ; preds = %3248, %3025
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3254

3254:                                             ; preds = %3253
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %3255

3255:                                             ; preds = %3254
  %3256 = load i32, ptr %88, align 4, !tbaa !5
  %3257 = add nsw i32 %3256, 1
  store i32 %3257, ptr %88, align 4, !tbaa !5
  br label %3007, !llvm.loop !67

3258:                                             ; preds = %3011
  br label %3259

3259:                                             ; preds = %3258
  %3260 = load i32, ptr @test_count, align 4, !tbaa !5
  %3261 = add nsw i32 %3260, 1
  store i32 %3261, ptr @test_count, align 4, !tbaa !5
  %3262 = load ptr, ptr %85, align 8, !tbaa !9
  %3263 = call i32 @s2n_connection_free(ptr noundef %3262)
  %3264 = icmp eq i32 %3263, -1
  br i1 %3264, label %3265, label %3318

3265:                                             ; preds = %3259
  br label %3266

3266:                                             ; preds = %3265
  br label %3267

3267:                                             ; preds = %3266
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %3268 = call ptr @__errno_location() #12
  %3269 = load i32, ptr %3268, align 4, !tbaa !5
  store i32 %3269, ptr %94, align 4, !tbaa !5
  %3270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3271 = call i32 @s2n_print_stacktrace(ptr noundef %3270)
  %3272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3273 = trunc i8 %3272 to i1
  br i1 %3273, label %3274, label %3296

3274:                                             ; preds = %3267
  %3275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3276 = call i32 @fileno(ptr noundef %3275) #11
  %3277 = call i32 @isatty(i32 noundef %3276) #11
  %3278 = icmp ne i32 %3277, 0
  br i1 %3278, label %3279, label %3296

3279:                                             ; preds = %3274
  %3280 = load i32, ptr %94, align 4, !tbaa !5
  %3281 = call ptr @__errno_location() #12
  store i32 %3280, ptr %3281, align 4, !tbaa !5
  %3282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3283 = load i32, ptr @test_count, align 4, !tbaa !5
  %3284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3285 = load i32, ptr %3284, align 4, !tbaa !5
  %3286 = call ptr @s2n_strerror(i32 noundef %3285, ptr noundef @.str.24)
  %3287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3288 = load i32, ptr %3287, align 4, !tbaa !5
  %3289 = call ptr @s2n_strerror_debug(i32 noundef %3288, ptr noundef @.str.24)
  %3290 = call ptr @__errno_location() #12
  %3291 = load i32, ptr %3290, align 4, !tbaa !5
  %3292 = call ptr @strerror(i32 noundef %3291) #11
  %3293 = call ptr @__errno_location() #12
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3282, ptr noundef @.str.22, i32 noundef %3283, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 394, ptr noundef %3286, ptr noundef %3289, ptr noundef %3292, i32 noundef %3294) #11
  br label %3313

3296:                                             ; preds = %3274, %3267
  %3297 = load i32, ptr %94, align 4, !tbaa !5
  %3298 = call ptr @__errno_location() #12
  store i32 %3297, ptr %3298, align 4, !tbaa !5
  %3299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3300 = load i32, ptr @test_count, align 4, !tbaa !5
  %3301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3302 = load i32, ptr %3301, align 4, !tbaa !5
  %3303 = call ptr @s2n_strerror(i32 noundef %3302, ptr noundef @.str.24)
  %3304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call ptr @s2n_strerror_debug(i32 noundef %3305, ptr noundef @.str.24)
  %3307 = call ptr @__errno_location() #12
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = call ptr @strerror(i32 noundef %3308) #11
  %3310 = call ptr @__errno_location() #12
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3299, ptr noundef @.str.25, i32 noundef %3300, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 394, ptr noundef %3303, ptr noundef %3306, ptr noundef %3309, i32 noundef %3311) #11
  br label %3313

3313:                                             ; preds = %3296, %3279
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %3314

3314:                                             ; preds = %3313
  br label %3315

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

3316:                                             ; No predecessors!
  br label %3317

3317:                                             ; preds = %3316
  br label %3318

3318:                                             ; preds = %3317, %3259
  br label %3319

3319:                                             ; preds = %3318
  br label %3320

3320:                                             ; preds = %3319
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #11
  %3321 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3321, ptr %95, align 8, !tbaa !9
  %3322 = load ptr, ptr %95, align 8, !tbaa !9
  %3323 = getelementptr inbounds %struct.s2n_connection, ptr %3322, i32 0, i32 23
  store i8 34, ptr %3323, align 4, !tbaa !34
  br label %3324

3324:                                             ; preds = %3320
  %3325 = load i32, ptr @test_count, align 4, !tbaa !5
  %3326 = add nsw i32 %3325, 1
  store i32 %3326, ptr @test_count, align 4, !tbaa !5
  %3327 = load ptr, ptr %95, align 8, !tbaa !9
  %3328 = call i32 @s2n_conn_choose_state_machine(ptr noundef %3327, i8 noundef zeroext 34)
  %3329 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %3328, ptr %3329, align 4
  %3330 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  %3331 = load i32, ptr %3330, align 4
  %3332 = call zeroext i1 @s2n_result_is_ok(i32 %3331)
  br i1 %3332, label %3386, label %3333

3333:                                             ; preds = %3324
  br label %3334

3334:                                             ; preds = %3333
  br label %3335

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

3342:                                             ; preds = %3335
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @fileno(ptr noundef %3343) #11
  %3345 = call i32 @isatty(i32 noundef %3344) #11
  %3346 = icmp ne i32 %3345, 0
  br i1 %3346, label %3347, label %3364

3347:                                             ; preds = %3342
  %3348 = load i32, ptr %97, align 4, !tbaa !5
  %3349 = call ptr @__errno_location() #12
  store i32 %3348, ptr %3349, align 4, !tbaa !5
  %3350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3353 = load i32, ptr %3352, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror(i32 noundef %3353, ptr noundef @.str.24)
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror_debug(i32 noundef %3356, ptr noundef @.str.24)
  %3358 = call ptr @__errno_location() #12
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #11
  %3361 = call ptr @__errno_location() #12
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3350, ptr noundef @.str.22, i32 noundef %3351, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 401, ptr noundef %3354, ptr noundef %3357, ptr noundef %3360, i32 noundef %3362) #11
  br label %3381

3364:                                             ; preds = %3342, %3335
  %3365 = load i32, ptr %97, align 4, !tbaa !5
  %3366 = call ptr @__errno_location() #12
  store i32 %3365, ptr %3366, align 4, !tbaa !5
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = load i32, ptr @test_count, align 4, !tbaa !5
  %3369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3370 = load i32, ptr %3369, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror(i32 noundef %3370, ptr noundef @.str.24)
  %3372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror_debug(i32 noundef %3373, ptr noundef @.str.24)
  %3375 = call ptr @__errno_location() #12
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call ptr @strerror(i32 noundef %3376) #11
  %3378 = call ptr @__errno_location() #12
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3367, ptr noundef @.str.25, i32 noundef %3368, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 401, ptr noundef %3371, ptr noundef %3374, ptr noundef %3377, i32 noundef %3379) #11
  br label %3381

3381:                                             ; preds = %3364, %3347
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %3382

3382:                                             ; preds = %3381
  br label %3383

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

3384:                                             ; No predecessors!
  br label %3385

3385:                                             ; preds = %3384
  br label %3386

3386:                                             ; preds = %3385, %3324
  br label %3387

3387:                                             ; preds = %3386
  br label %3388

3388:                                             ; preds = %3387
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  store i32 0, ptr %98, align 4, !tbaa !5
  br label %3389

3389:                                             ; preds = %3636, %3388
  %3390 = load i32, ptr %98, align 4, !tbaa !5
  %3391 = load i32, ptr %11, align 4, !tbaa !5
  %3392 = icmp slt i32 %3390, %3391
  br i1 %3392, label %3394, label %3393

3393:                                             ; preds = %3389
  store i32 299, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %3639

3394:                                             ; preds = %3389
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %3395 = load i32, ptr %98, align 4, !tbaa !5
  %3396 = sext i32 %3395 to i64
  %3397 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %3396
  %3398 = load i16, ptr %3397, align 2, !tbaa !15
  %3399 = zext i16 %3398 to i32
  store i32 %3399, ptr %99, align 4, !tbaa !5
  %3400 = load i32, ptr %99, align 4, !tbaa !5
  %3401 = load ptr, ptr %95, align 8, !tbaa !9
  %3402 = getelementptr inbounds %struct.s2n_connection, ptr %3401, i32 0, i32 52
  %3403 = getelementptr inbounds %struct.s2n_handshake, ptr %3402, i32 0, i32 6
  store i32 %3400, ptr %3403, align 4, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  store i32 0, ptr %100, align 4, !tbaa !5
  br label %3404

3404:                                             ; preds = %3631, %3394
  %3405 = load i32, ptr %100, align 4, !tbaa !5
  %3406 = icmp slt i32 %3405, 32
  br i1 %3406, label %3408, label %3407

3407:                                             ; preds = %3404
  store i32 302, ptr %34, align 4
  br label %3634

3408:                                             ; preds = %3404
  %3409 = load i32, ptr %99, align 4, !tbaa !5
  %3410 = sext i32 %3409 to i64
  %3411 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %3410
  %3412 = load i32, ptr %100, align 4, !tbaa !5
  %3413 = sext i32 %3412 to i64
  %3414 = getelementptr inbounds [32 x i32], ptr %3411, i64 0, i64 %3413
  %3415 = load i32, ptr %3414, align 4, !tbaa !5
  %3416 = icmp eq i32 %3415, 11
  br i1 %3416, label %3417, label %3630

3417:                                             ; preds = %3408
  %3418 = load i32, ptr %100, align 4, !tbaa !5
  %3419 = sub nsw i32 %3418, 1
  %3420 = load ptr, ptr %95, align 8, !tbaa !9
  %3421 = getelementptr inbounds %struct.s2n_connection, ptr %3420, i32 0, i32 52
  %3422 = getelementptr inbounds %struct.s2n_handshake, ptr %3421, i32 0, i32 7
  store i32 %3419, ptr %3422, align 8, !tbaa !61
  br label %3423

3423:                                             ; preds = %3417
  %3424 = load i32, ptr @test_count, align 4, !tbaa !5
  %3425 = add nsw i32 %3424, 1
  store i32 %3425, ptr @test_count, align 4, !tbaa !5
  %3426 = load ptr, ptr %95, align 8, !tbaa !9
  %3427 = call i32 @s2n_advance_message(ptr noundef %3426)
  %3428 = icmp eq i32 %3427, -1
  br i1 %3428, label %3429, label %3482

3429:                                             ; preds = %3423
  br label %3430

3430:                                             ; preds = %3429
  br label %3431

3431:                                             ; preds = %3430
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %3432 = call ptr @__errno_location() #12
  %3433 = load i32, ptr %3432, align 4, !tbaa !5
  store i32 %3433, ptr %101, align 4, !tbaa !5
  %3434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3435 = call i32 @s2n_print_stacktrace(ptr noundef %3434)
  %3436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3437 = trunc i8 %3436 to i1
  br i1 %3437, label %3438, label %3460

3438:                                             ; preds = %3431
  %3439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3440 = call i32 @fileno(ptr noundef %3439) #11
  %3441 = call i32 @isatty(i32 noundef %3440) #11
  %3442 = icmp ne i32 %3441, 0
  br i1 %3442, label %3443, label %3460

3443:                                             ; preds = %3438
  %3444 = load i32, ptr %101, align 4, !tbaa !5
  %3445 = call ptr @__errno_location() #12
  store i32 %3444, ptr %3445, align 4, !tbaa !5
  %3446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3447 = load i32, ptr @test_count, align 4, !tbaa !5
  %3448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3449 = load i32, ptr %3448, align 4, !tbaa !5
  %3450 = call ptr @s2n_strerror(i32 noundef %3449, ptr noundef @.str.24)
  %3451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3452 = load i32, ptr %3451, align 4, !tbaa !5
  %3453 = call ptr @s2n_strerror_debug(i32 noundef %3452, ptr noundef @.str.24)
  %3454 = call ptr @__errno_location() #12
  %3455 = load i32, ptr %3454, align 4, !tbaa !5
  %3456 = call ptr @strerror(i32 noundef %3455) #11
  %3457 = call ptr @__errno_location() #12
  %3458 = load i32, ptr %3457, align 4, !tbaa !5
  %3459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3446, ptr noundef @.str.22, i32 noundef %3447, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 412, ptr noundef %3450, ptr noundef %3453, ptr noundef %3456, i32 noundef %3458) #11
  br label %3477

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

3477:                                             ; preds = %3460, %3443
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %3478

3478:                                             ; preds = %3477
  br label %3479

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

3480:                                             ; No predecessors!
  br label %3481

3481:                                             ; preds = %3480
  br label %3482

3482:                                             ; preds = %3481, %3423
  br label %3483

3483:                                             ; preds = %3482
  br label %3484

3484:                                             ; preds = %3483
  br label %3485

3485:                                             ; preds = %3484
  %3486 = load i32, ptr @test_count, align 4, !tbaa !5
  %3487 = add nsw i32 %3486, 1
  store i32 %3487, ptr @test_count, align 4, !tbaa !5
  %3488 = load ptr, ptr %95, align 8, !tbaa !9
  %3489 = getelementptr inbounds %struct.s2n_connection, ptr %3488, i32 0, i32 52
  %3490 = getelementptr inbounds %struct.s2n_handshake, ptr %3489, i32 0, i32 7
  %3491 = load i32, ptr %3490, align 8, !tbaa !61
  %3492 = load i32, ptr %100, align 4, !tbaa !5
  %3493 = icmp eq i32 %3491, %3492
  br i1 %3493, label %3547, label %3494

3494:                                             ; preds = %3485
  br label %3495

3495:                                             ; preds = %3494
  br label %3496

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

3503:                                             ; preds = %3496
  %3504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3505 = call i32 @fileno(ptr noundef %3504) #11
  %3506 = call i32 @isatty(i32 noundef %3505) #11
  %3507 = icmp ne i32 %3506, 0
  br i1 %3507, label %3508, label %3525

3508:                                             ; preds = %3503
  %3509 = load i32, ptr %102, align 4, !tbaa !5
  %3510 = call ptr @__errno_location() #12
  store i32 %3509, ptr %3510, align 4, !tbaa !5
  %3511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3512 = load i32, ptr @test_count, align 4, !tbaa !5
  %3513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3514 = load i32, ptr %3513, align 4, !tbaa !5
  %3515 = call ptr @s2n_strerror(i32 noundef %3514, ptr noundef @.str.24)
  %3516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  %3518 = call ptr @s2n_strerror_debug(i32 noundef %3517, ptr noundef @.str.24)
  %3519 = call ptr @__errno_location() #12
  %3520 = load i32, ptr %3519, align 4, !tbaa !5
  %3521 = call ptr @strerror(i32 noundef %3520) #11
  %3522 = call ptr @__errno_location() #12
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  %3524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3511, ptr noundef @.str.22, i32 noundef %3512, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 414, ptr noundef %3515, ptr noundef %3518, ptr noundef %3521, i32 noundef %3523) #11
  br label %3542

3525:                                             ; preds = %3503, %3496
  %3526 = load i32, ptr %102, align 4, !tbaa !5
  %3527 = call ptr @__errno_location() #12
  store i32 %3526, ptr %3527, align 4, !tbaa !5
  %3528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3529 = load i32, ptr @test_count, align 4, !tbaa !5
  %3530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3531 = load i32, ptr %3530, align 4, !tbaa !5
  %3532 = call ptr @s2n_strerror(i32 noundef %3531, ptr noundef @.str.24)
  %3533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3534 = load i32, ptr %3533, align 4, !tbaa !5
  %3535 = call ptr @s2n_strerror_debug(i32 noundef %3534, ptr noundef @.str.24)
  %3536 = call ptr @__errno_location() #12
  %3537 = load i32, ptr %3536, align 4, !tbaa !5
  %3538 = call ptr @strerror(i32 noundef %3537) #11
  %3539 = call ptr @__errno_location() #12
  %3540 = load i32, ptr %3539, align 4, !tbaa !5
  %3541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3528, ptr noundef @.str.25, i32 noundef %3529, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 414, ptr noundef %3532, ptr noundef %3535, ptr noundef %3538, i32 noundef %3540) #11
  br label %3542

3542:                                             ; preds = %3525, %3508
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %3543

3543:                                             ; preds = %3542
  br label %3544

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

3545:                                             ; No predecessors!
  br label %3546

3546:                                             ; preds = %3545
  br label %3547

3547:                                             ; preds = %3546, %3485
  br label %3548

3548:                                             ; preds = %3547
  br label %3549

3549:                                             ; preds = %3548
  br label %3550

3550:                                             ; preds = %3549
  %3551 = load i32, ptr @test_count, align 4, !tbaa !5
  %3552 = add nsw i32 %3551, 1
  store i32 %3552, ptr @test_count, align 4, !tbaa !5
  %3553 = load ptr, ptr %95, align 8, !tbaa !9
  %3554 = getelementptr inbounds %struct.s2n_connection, ptr %3553, i32 0, i32 52
  %3555 = getelementptr inbounds %struct.s2n_handshake, ptr %3554, i32 0, i32 12
  %3556 = load i32, ptr %3555, align 4, !tbaa !59
  %3557 = icmp eq i32 %3556, 2
  %3558 = zext i1 %3557 to i64
  %3559 = select i1 %3557, ptr @tls13_handshakes, ptr @handshakes
  %3560 = load ptr, ptr %95, align 8, !tbaa !9
  %3561 = getelementptr inbounds %struct.s2n_connection, ptr %3560, i32 0, i32 52
  %3562 = getelementptr inbounds %struct.s2n_handshake, ptr %3561, i32 0, i32 6
  %3563 = load i32, ptr %3562, align 4, !tbaa !60
  %3564 = zext i32 %3563 to i64
  %3565 = getelementptr inbounds [32 x i32], ptr %3559, i64 %3564
  %3566 = load ptr, ptr %95, align 8, !tbaa !9
  %3567 = getelementptr inbounds %struct.s2n_connection, ptr %3566, i32 0, i32 52
  %3568 = getelementptr inbounds %struct.s2n_handshake, ptr %3567, i32 0, i32 7
  %3569 = load i32, ptr %3568, align 8, !tbaa !61
  %3570 = sext i32 %3569 to i64
  %3571 = getelementptr inbounds [32 x i32], ptr %3565, i64 0, i64 %3570
  %3572 = load i32, ptr %3571, align 4, !tbaa !5
  %3573 = icmp eq i32 %3572, 11
  br i1 %3573, label %3627, label %3574

3574:                                             ; preds = %3550
  br label %3575

3575:                                             ; preds = %3574
  br label %3576

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

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

3588:                                             ; preds = %3583
  %3589 = load i32, ptr %103, align 4, !tbaa !5
  %3590 = call ptr @__errno_location() #12
  store i32 %3589, ptr %3590, align 4, !tbaa !5
  %3591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3592 = load i32, ptr @test_count, align 4, !tbaa !5
  %3593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3594 = load i32, ptr %3593, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror(i32 noundef %3594, ptr noundef @.str.24)
  %3596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3597 = load i32, ptr %3596, align 4, !tbaa !5
  %3598 = call ptr @s2n_strerror_debug(i32 noundef %3597, ptr noundef @.str.24)
  %3599 = call ptr @__errno_location() #12
  %3600 = load i32, ptr %3599, align 4, !tbaa !5
  %3601 = call ptr @strerror(i32 noundef %3600) #11
  %3602 = call ptr @__errno_location() #12
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  %3604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3591, ptr noundef @.str.22, i32 noundef %3592, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 415, ptr noundef %3595, ptr noundef %3598, ptr noundef %3601, i32 noundef %3603) #11
  br label %3622

3605:                                             ; preds = %3583, %3576
  %3606 = load i32, ptr %103, align 4, !tbaa !5
  %3607 = call ptr @__errno_location() #12
  store i32 %3606, ptr %3607, align 4, !tbaa !5
  %3608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3609 = load i32, ptr @test_count, align 4, !tbaa !5
  %3610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3611 = load i32, ptr %3610, align 4, !tbaa !5
  %3612 = call ptr @s2n_strerror(i32 noundef %3611, ptr noundef @.str.24)
  %3613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3614 = load i32, ptr %3613, align 4, !tbaa !5
  %3615 = call ptr @s2n_strerror_debug(i32 noundef %3614, ptr noundef @.str.24)
  %3616 = call ptr @__errno_location() #12
  %3617 = load i32, ptr %3616, align 4, !tbaa !5
  %3618 = call ptr @strerror(i32 noundef %3617) #11
  %3619 = call ptr @__errno_location() #12
  %3620 = load i32, ptr %3619, align 4, !tbaa !5
  %3621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3608, ptr noundef @.str.25, i32 noundef %3609, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 415, ptr noundef %3612, ptr noundef %3615, ptr noundef %3618, i32 noundef %3620) #11
  br label %3622

3622:                                             ; preds = %3605, %3588
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %3623

3623:                                             ; preds = %3622
  br label %3624

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

3625:                                             ; No predecessors!
  br label %3626

3626:                                             ; preds = %3625
  br label %3627

3627:                                             ; preds = %3626, %3550
  br label %3628

3628:                                             ; preds = %3627
  br label %3629

3629:                                             ; preds = %3628
  store i32 302, ptr %34, align 4
  br label %3634

3630:                                             ; preds = %3408
  br label %3631

3631:                                             ; preds = %3630
  %3632 = load i32, ptr %100, align 4, !tbaa !5
  %3633 = add nsw i32 %3632, 1
  store i32 %3633, ptr %100, align 4, !tbaa !5
  br label %3404, !llvm.loop !68

3634:                                             ; preds = %3629, %3407
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %3635

3635:                                             ; preds = %3634
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %3636

3636:                                             ; preds = %3635
  %3637 = load i32, ptr %98, align 4, !tbaa !5
  %3638 = add nsw i32 %3637, 1
  store i32 %3638, ptr %98, align 4, !tbaa !5
  br label %3389, !llvm.loop !69

3639:                                             ; preds = %3393
  br label %3640

3640:                                             ; preds = %3639
  %3641 = load i32, ptr @test_count, align 4, !tbaa !5
  %3642 = add nsw i32 %3641, 1
  store i32 %3642, ptr @test_count, align 4, !tbaa !5
  %3643 = load ptr, ptr %95, align 8, !tbaa !9
  %3644 = call i32 @s2n_connection_free(ptr noundef %3643)
  %3645 = icmp eq i32 %3644, -1
  br i1 %3645, label %3646, label %3699

3646:                                             ; preds = %3640
  br label %3647

3647:                                             ; preds = %3646
  br label %3648

3648:                                             ; preds = %3647
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #11
  %3649 = call ptr @__errno_location() #12
  %3650 = load i32, ptr %3649, align 4, !tbaa !5
  store i32 %3650, ptr %104, align 4, !tbaa !5
  %3651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3652 = call i32 @s2n_print_stacktrace(ptr noundef %3651)
  %3653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3654 = trunc i8 %3653 to i1
  br i1 %3654, label %3655, label %3677

3655:                                             ; preds = %3648
  %3656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3657 = call i32 @fileno(ptr noundef %3656) #11
  %3658 = call i32 @isatty(i32 noundef %3657) #11
  %3659 = icmp ne i32 %3658, 0
  br i1 %3659, label %3660, label %3677

3660:                                             ; preds = %3655
  %3661 = load i32, ptr %104, align 4, !tbaa !5
  %3662 = call ptr @__errno_location() #12
  store i32 %3661, ptr %3662, align 4, !tbaa !5
  %3663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3664 = load i32, ptr @test_count, align 4, !tbaa !5
  %3665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call ptr @s2n_strerror(i32 noundef %3666, ptr noundef @.str.24)
  %3668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3669 = load i32, ptr %3668, align 4, !tbaa !5
  %3670 = call ptr @s2n_strerror_debug(i32 noundef %3669, ptr noundef @.str.24)
  %3671 = call ptr @__errno_location() #12
  %3672 = load i32, ptr %3671, align 4, !tbaa !5
  %3673 = call ptr @strerror(i32 noundef %3672) #11
  %3674 = call ptr @__errno_location() #12
  %3675 = load i32, ptr %3674, align 4, !tbaa !5
  %3676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3663, ptr noundef @.str.22, i32 noundef %3664, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 422, ptr noundef %3667, ptr noundef %3670, ptr noundef %3673, i32 noundef %3675) #11
  br label %3694

3677:                                             ; preds = %3655, %3648
  %3678 = load i32, ptr %104, align 4, !tbaa !5
  %3679 = call ptr @__errno_location() #12
  store i32 %3678, ptr %3679, align 4, !tbaa !5
  %3680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3681 = load i32, ptr @test_count, align 4, !tbaa !5
  %3682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call ptr @s2n_strerror(i32 noundef %3683, ptr noundef @.str.24)
  %3685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3686 = load i32, ptr %3685, align 4, !tbaa !5
  %3687 = call ptr @s2n_strerror_debug(i32 noundef %3686, ptr noundef @.str.24)
  %3688 = call ptr @__errno_location() #12
  %3689 = load i32, ptr %3688, align 4, !tbaa !5
  %3690 = call ptr @strerror(i32 noundef %3689) #11
  %3691 = call ptr @__errno_location() #12
  %3692 = load i32, ptr %3691, align 4, !tbaa !5
  %3693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3680, ptr noundef @.str.25, i32 noundef %3681, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 422, ptr noundef %3684, ptr noundef %3687, ptr noundef %3690, i32 noundef %3692) #11
  br label %3694

3694:                                             ; preds = %3677, %3660
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %3695

3695:                                             ; preds = %3694
  br label %3696

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

3697:                                             ; No predecessors!
  br label %3698

3698:                                             ; preds = %3697
  br label %3699

3699:                                             ; preds = %3698, %3640
  br label %3700

3700:                                             ; preds = %3699
  br label %3701

3701:                                             ; preds = %3700
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #11
  %3702 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3702, ptr %105, align 8, !tbaa !9
  %3703 = load ptr, ptr %105, align 8, !tbaa !9
  %3704 = getelementptr inbounds %struct.s2n_connection, ptr %3703, i32 0, i32 23
  store i8 34, ptr %3704, align 4, !tbaa !34
  br label %3705

3705:                                             ; preds = %3701
  %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 %105, align 8, !tbaa !9
  %3709 = call i32 @s2n_conn_choose_state_machine(ptr noundef %3708, i8 noundef zeroext 34)
  %3710 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  store i32 %3709, ptr %3710, align 4
  %3711 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  %3712 = load i32, ptr %3711, align 4
  %3713 = call zeroext i1 @s2n_result_is_ok(i32 %3712)
  br i1 %3713, label %3767, label %3714

3714:                                             ; preds = %3705
  br label %3715

3715:                                             ; preds = %3714
  br label %3716

3716:                                             ; preds = %3715
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  %3717 = call ptr @__errno_location() #12
  %3718 = load i32, ptr %3717, align 4, !tbaa !5
  store i32 %3718, ptr %107, align 4, !tbaa !5
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = call i32 @s2n_print_stacktrace(ptr noundef %3719)
  %3721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3722 = trunc i8 %3721 to i1
  br i1 %3722, label %3723, label %3745

3723:                                             ; preds = %3716
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = call i32 @fileno(ptr noundef %3724) #11
  %3726 = call i32 @isatty(i32 noundef %3725) #11
  %3727 = icmp ne i32 %3726, 0
  br i1 %3727, label %3728, label %3745

3728:                                             ; preds = %3723
  %3729 = load i32, ptr %107, align 4, !tbaa !5
  %3730 = call ptr @__errno_location() #12
  store i32 %3729, ptr %3730, align 4, !tbaa !5
  %3731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3732 = load i32, ptr @test_count, align 4, !tbaa !5
  %3733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3734 = load i32, ptr %3733, align 4, !tbaa !5
  %3735 = call ptr @s2n_strerror(i32 noundef %3734, ptr noundef @.str.24)
  %3736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3737 = load i32, ptr %3736, align 4, !tbaa !5
  %3738 = call ptr @s2n_strerror_debug(i32 noundef %3737, ptr noundef @.str.24)
  %3739 = call ptr @__errno_location() #12
  %3740 = load i32, ptr %3739, align 4, !tbaa !5
  %3741 = call ptr @strerror(i32 noundef %3740) #11
  %3742 = call ptr @__errno_location() #12
  %3743 = load i32, ptr %3742, align 4, !tbaa !5
  %3744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3731, ptr noundef @.str.22, i32 noundef %3732, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 429, ptr noundef %3735, ptr noundef %3738, ptr noundef %3741, i32 noundef %3743) #11
  br label %3762

3745:                                             ; preds = %3723, %3716
  %3746 = load i32, ptr %107, align 4, !tbaa !5
  %3747 = call ptr @__errno_location() #12
  store i32 %3746, ptr %3747, align 4, !tbaa !5
  %3748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3749 = load i32, ptr @test_count, align 4, !tbaa !5
  %3750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3751 = load i32, ptr %3750, align 4, !tbaa !5
  %3752 = call ptr @s2n_strerror(i32 noundef %3751, ptr noundef @.str.24)
  %3753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3754 = load i32, ptr %3753, align 4, !tbaa !5
  %3755 = call ptr @s2n_strerror_debug(i32 noundef %3754, ptr noundef @.str.24)
  %3756 = call ptr @__errno_location() #12
  %3757 = load i32, ptr %3756, align 4, !tbaa !5
  %3758 = call ptr @strerror(i32 noundef %3757) #11
  %3759 = call ptr @__errno_location() #12
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  %3761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3748, ptr noundef @.str.25, i32 noundef %3749, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 429, ptr noundef %3752, ptr noundef %3755, ptr noundef %3758, i32 noundef %3760) #11
  br label %3762

3762:                                             ; preds = %3745, %3728
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %3763

3763:                                             ; preds = %3762
  br label %3764

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

3765:                                             ; No predecessors!
  br label %3766

3766:                                             ; preds = %3765
  br label %3767

3767:                                             ; preds = %3766, %3705
  br label %3768

3768:                                             ; preds = %3767
  br label %3769

3769:                                             ; preds = %3768
  call void @llvm.lifetime.start.p0(i64 40, ptr %108) #11
  call void @llvm.memset.p0.i64(ptr align 8 %108, i8 0, i64 40, i1 false)
  br label %3770

3770:                                             ; preds = %3769
  %3771 = load i32, ptr @test_count, align 4, !tbaa !5
  %3772 = add nsw i32 %3771, 1
  store i32 %3772, ptr @test_count, align 4, !tbaa !5
  %3773 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %108, i32 noundef 0)
  %3774 = icmp eq i32 %3773, -1
  br i1 %3774, label %3775, label %3828

3775:                                             ; preds = %3770
  br label %3776

3776:                                             ; preds = %3775
  br label %3777

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

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

3789:                                             ; preds = %3784
  %3790 = load i32, ptr %109, align 4, !tbaa !5
  %3791 = call ptr @__errno_location() #12
  store i32 %3790, ptr %3791, align 4, !tbaa !5
  %3792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3793 = load i32, ptr @test_count, align 4, !tbaa !5
  %3794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3795 = load i32, ptr %3794, align 4, !tbaa !5
  %3796 = call ptr @s2n_strerror(i32 noundef %3795, ptr noundef @.str.24)
  %3797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3798 = load i32, ptr %3797, align 4, !tbaa !5
  %3799 = call ptr @s2n_strerror_debug(i32 noundef %3798, ptr noundef @.str.24)
  %3800 = call ptr @__errno_location() #12
  %3801 = load i32, ptr %3800, align 4, !tbaa !5
  %3802 = call ptr @strerror(i32 noundef %3801) #11
  %3803 = call ptr @__errno_location() #12
  %3804 = load i32, ptr %3803, align 4, !tbaa !5
  %3805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3792, ptr noundef @.str.22, i32 noundef %3793, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 432, ptr noundef %3796, ptr noundef %3799, ptr noundef %3802, i32 noundef %3804) #11
  br label %3823

3806:                                             ; preds = %3784, %3777
  %3807 = load i32, ptr %109, align 4, !tbaa !5
  %3808 = call ptr @__errno_location() #12
  store i32 %3807, ptr %3808, align 4, !tbaa !5
  %3809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3810 = load i32, ptr @test_count, align 4, !tbaa !5
  %3811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3812 = load i32, ptr %3811, align 4, !tbaa !5
  %3813 = call ptr @s2n_strerror(i32 noundef %3812, ptr noundef @.str.24)
  %3814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3815 = load i32, ptr %3814, align 4, !tbaa !5
  %3816 = call ptr @s2n_strerror_debug(i32 noundef %3815, ptr noundef @.str.24)
  %3817 = call ptr @__errno_location() #12
  %3818 = load i32, ptr %3817, align 4, !tbaa !5
  %3819 = call ptr @strerror(i32 noundef %3818) #11
  %3820 = call ptr @__errno_location() #12
  %3821 = load i32, ptr %3820, align 4, !tbaa !5
  %3822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3809, ptr noundef @.str.25, i32 noundef %3810, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 432, ptr noundef %3813, ptr noundef %3816, ptr noundef %3819, i32 noundef %3821) #11
  br label %3823

3823:                                             ; preds = %3806, %3789
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %3824

3824:                                             ; preds = %3823
  br label %3825

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

3826:                                             ; No predecessors!
  br label %3827

3827:                                             ; preds = %3826
  br label %3828

3828:                                             ; preds = %3827, %3770
  br label %3829

3829:                                             ; preds = %3828
  br label %3830

3830:                                             ; preds = %3829
  br label %3831

3831:                                             ; preds = %3830
  %3832 = load i32, ptr @test_count, align 4, !tbaa !5
  %3833 = add nsw i32 %3832, 1
  store i32 %3833, ptr @test_count, align 4, !tbaa !5
  %3834 = load ptr, ptr %105, align 8, !tbaa !9
  %3835 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %108, ptr noundef null, ptr noundef %3834)
  %3836 = icmp eq i32 %3835, -1
  br i1 %3836, label %3837, label %3890

3837:                                             ; preds = %3831
  br label %3838

3838:                                             ; preds = %3837
  br label %3839

3839:                                             ; preds = %3838
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  %3840 = call ptr @__errno_location() #12
  %3841 = load i32, ptr %3840, align 4, !tbaa !5
  store i32 %3841, ptr %110, align 4, !tbaa !5
  %3842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3843 = call i32 @s2n_print_stacktrace(ptr noundef %3842)
  %3844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3845 = trunc i8 %3844 to i1
  br i1 %3845, label %3846, label %3868

3846:                                             ; preds = %3839
  %3847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3848 = call i32 @fileno(ptr noundef %3847) #11
  %3849 = call i32 @isatty(i32 noundef %3848) #11
  %3850 = icmp ne i32 %3849, 0
  br i1 %3850, label %3851, label %3868

3851:                                             ; preds = %3846
  %3852 = load i32, ptr %110, align 4, !tbaa !5
  %3853 = call ptr @__errno_location() #12
  store i32 %3852, ptr %3853, align 4, !tbaa !5
  %3854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3855 = load i32, ptr @test_count, align 4, !tbaa !5
  %3856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3857 = load i32, ptr %3856, align 4, !tbaa !5
  %3858 = call ptr @s2n_strerror(i32 noundef %3857, ptr noundef @.str.24)
  %3859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3860 = load i32, ptr %3859, align 4, !tbaa !5
  %3861 = call ptr @s2n_strerror_debug(i32 noundef %3860, ptr noundef @.str.24)
  %3862 = call ptr @__errno_location() #12
  %3863 = load i32, ptr %3862, align 4, !tbaa !5
  %3864 = call ptr @strerror(i32 noundef %3863) #11
  %3865 = call ptr @__errno_location() #12
  %3866 = load i32, ptr %3865, align 4, !tbaa !5
  %3867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3854, ptr noundef @.str.22, i32 noundef %3855, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 433, ptr noundef %3858, ptr noundef %3861, ptr noundef %3864, i32 noundef %3866) #11
  br label %3885

3868:                                             ; preds = %3846, %3839
  %3869 = load i32, ptr %110, align 4, !tbaa !5
  %3870 = call ptr @__errno_location() #12
  store i32 %3869, ptr %3870, align 4, !tbaa !5
  %3871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3872 = load i32, ptr @test_count, align 4, !tbaa !5
  %3873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = call ptr @s2n_strerror(i32 noundef %3874, ptr noundef @.str.24)
  %3876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  %3878 = call ptr @s2n_strerror_debug(i32 noundef %3877, ptr noundef @.str.24)
  %3879 = call ptr @__errno_location() #12
  %3880 = load i32, ptr %3879, align 4, !tbaa !5
  %3881 = call ptr @strerror(i32 noundef %3880) #11
  %3882 = call ptr @__errno_location() #12
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  %3884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3871, ptr noundef @.str.25, i32 noundef %3872, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 433, ptr noundef %3875, ptr noundef %3878, ptr noundef %3881, i32 noundef %3883) #11
  br label %3885

3885:                                             ; preds = %3868, %3851
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %3886

3886:                                             ; preds = %3885
  br label %3887

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

3888:                                             ; No predecessors!
  br label %3889

3889:                                             ; preds = %3888
  br label %3890

3890:                                             ; preds = %3889, %3831
  br label %3891

3891:                                             ; preds = %3890
  br label %3892

3892:                                             ; preds = %3891
  br label %3893

3893:                                             ; preds = %3892
  %3894 = load i32, ptr @test_count, align 4, !tbaa !5
  %3895 = add nsw i32 %3894, 1
  store i32 %3895, ptr @test_count, align 4, !tbaa !5
  %3896 = call i32 @s2n_setup_handler_to_expect(i32 noundef 14, i8 noundef zeroext 1)
  %3897 = icmp eq i32 %3896, -1
  br i1 %3897, label %3898, label %3951

3898:                                             ; preds = %3893
  br label %3899

3899:                                             ; preds = %3898
  br label %3900

3900:                                             ; preds = %3899
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %3901 = call ptr @__errno_location() #12
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  store i32 %3902, ptr %111, align 4, !tbaa !5
  %3903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3904 = call i32 @s2n_print_stacktrace(ptr noundef %3903)
  %3905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3906 = trunc i8 %3905 to i1
  br i1 %3906, label %3907, label %3929

3907:                                             ; preds = %3900
  %3908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3909 = call i32 @fileno(ptr noundef %3908) #11
  %3910 = call i32 @isatty(i32 noundef %3909) #11
  %3911 = icmp ne i32 %3910, 0
  br i1 %3911, label %3912, label %3929

3912:                                             ; preds = %3907
  %3913 = load i32, ptr %111, align 4, !tbaa !5
  %3914 = call ptr @__errno_location() #12
  store i32 %3913, ptr %3914, align 4, !tbaa !5
  %3915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3916 = load i32, ptr @test_count, align 4, !tbaa !5
  %3917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @s2n_strerror(i32 noundef %3918, ptr noundef @.str.24)
  %3920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call ptr @s2n_strerror_debug(i32 noundef %3921, ptr noundef @.str.24)
  %3923 = call ptr @__errno_location() #12
  %3924 = load i32, ptr %3923, align 4, !tbaa !5
  %3925 = call ptr @strerror(i32 noundef %3924) #11
  %3926 = call ptr @__errno_location() #12
  %3927 = load i32, ptr %3926, align 4, !tbaa !5
  %3928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3915, ptr noundef @.str.22, i32 noundef %3916, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 435, ptr noundef %3919, ptr noundef %3922, ptr noundef %3925, i32 noundef %3927) #11
  br label %3946

3929:                                             ; preds = %3907, %3900
  %3930 = load i32, ptr %111, align 4, !tbaa !5
  %3931 = call ptr @__errno_location() #12
  store i32 %3930, ptr %3931, align 4, !tbaa !5
  %3932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3933 = load i32, ptr @test_count, align 4, !tbaa !5
  %3934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror(i32 noundef %3935, ptr noundef @.str.24)
  %3937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call ptr @s2n_strerror_debug(i32 noundef %3938, ptr noundef @.str.24)
  %3940 = call ptr @__errno_location() #12
  %3941 = load i32, ptr %3940, align 4, !tbaa !5
  %3942 = call ptr @strerror(i32 noundef %3941) #11
  %3943 = call ptr @__errno_location() #12
  %3944 = load i32, ptr %3943, align 4, !tbaa !5
  %3945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3932, ptr noundef @.str.25, i32 noundef %3933, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 435, ptr noundef %3936, ptr noundef %3939, ptr noundef %3942, i32 noundef %3944) #11
  br label %3946

3946:                                             ; preds = %3929, %3912
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

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

3949:                                             ; No predecessors!
  br label %3950

3950:                                             ; preds = %3949
  br label %3951

3951:                                             ; preds = %3950, %3893
  br label %3952

3952:                                             ; preds = %3951
  br label %3953

3953:                                             ; preds = %3952
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  store i32 0, ptr %112, align 4, !tbaa !5
  br label %3954

3954:                                             ; preds = %4432, %3953
  %3955 = load i32, ptr %112, align 4, !tbaa !5
  %3956 = load i32, ptr %11, align 4, !tbaa !5
  %3957 = icmp slt i32 %3955, %3956
  br i1 %3957, label %3959, label %3958

3958:                                             ; preds = %3954
  store i32 353, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %4435

3959:                                             ; preds = %3954
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %3960 = load i32, ptr %112, align 4, !tbaa !5
  %3961 = sext i32 %3960 to i64
  %3962 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %3961
  %3963 = load i16, ptr %3962, align 2, !tbaa !15
  %3964 = zext i16 %3963 to i32
  store i32 %3964, ptr %113, align 4, !tbaa !5
  %3965 = load i32, ptr %113, align 4, !tbaa !5
  %3966 = load ptr, ptr %105, align 8, !tbaa !9
  %3967 = getelementptr inbounds %struct.s2n_connection, ptr %3966, i32 0, i32 52
  %3968 = getelementptr inbounds %struct.s2n_handshake, ptr %3967, i32 0, i32 6
  store i32 %3965, ptr %3968, align 4, !tbaa !60
  %3969 = load ptr, ptr %105, align 8, !tbaa !9
  %3970 = getelementptr inbounds %struct.s2n_connection, ptr %3969, i32 0, i32 42
  store i32 0, ptr %3970, align 8, !tbaa !70
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  store i32 1, ptr %114, align 4, !tbaa !5
  br label %3971

3971:                                             ; preds = %4428, %3959
  %3972 = load i32, ptr %114, align 4, !tbaa !5
  %3973 = icmp slt i32 %3972, 32
  br i1 %3973, label %3975, label %3974

3974:                                             ; preds = %3971
  store i32 356, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %4431

3975:                                             ; preds = %3971
  %3976 = load i32, ptr %114, align 4, !tbaa !5
  %3977 = load ptr, ptr %105, align 8, !tbaa !9
  %3978 = getelementptr inbounds %struct.s2n_connection, ptr %3977, i32 0, i32 52
  %3979 = getelementptr inbounds %struct.s2n_handshake, ptr %3978, i32 0, i32 7
  store i32 %3976, ptr %3979, align 8, !tbaa !61
  br label %3980

3980:                                             ; preds = %3975
  %3981 = load i32, ptr @test_count, align 4, !tbaa !5
  %3982 = add nsw i32 %3981, 1
  store i32 %3982, ptr @test_count, align 4, !tbaa !5
  %3983 = call i32 @s2n_test_write_header(ptr noundef %108, i8 noundef zeroext 20, i8 noundef zeroext 0)
  %3984 = icmp eq i32 %3983, -1
  br i1 %3984, label %3985, label %4038

3985:                                             ; preds = %3980
  br label %3986

3986:                                             ; preds = %3985
  br label %3987

3987:                                             ; preds = %3986
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %3988 = call ptr @__errno_location() #12
  %3989 = load i32, ptr %3988, align 4, !tbaa !5
  store i32 %3989, ptr %115, align 4, !tbaa !5
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = call i32 @s2n_print_stacktrace(ptr noundef %3990)
  %3992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3993 = trunc i8 %3992 to i1
  br i1 %3993, label %3994, label %4016

3994:                                             ; preds = %3987
  %3995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3996 = call i32 @fileno(ptr noundef %3995) #11
  %3997 = call i32 @isatty(i32 noundef %3996) #11
  %3998 = icmp ne i32 %3997, 0
  br i1 %3998, label %3999, label %4016

3999:                                             ; preds = %3994
  %4000 = load i32, ptr %115, align 4, !tbaa !5
  %4001 = call ptr @__errno_location() #12
  store i32 %4000, ptr %4001, align 4, !tbaa !5
  %4002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4003 = load i32, ptr @test_count, align 4, !tbaa !5
  %4004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4005 = load i32, ptr %4004, align 4, !tbaa !5
  %4006 = call ptr @s2n_strerror(i32 noundef %4005, ptr noundef @.str.24)
  %4007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4008 = load i32, ptr %4007, align 4, !tbaa !5
  %4009 = call ptr @s2n_strerror_debug(i32 noundef %4008, ptr noundef @.str.24)
  %4010 = call ptr @__errno_location() #12
  %4011 = load i32, ptr %4010, align 4, !tbaa !5
  %4012 = call ptr @strerror(i32 noundef %4011) #11
  %4013 = call ptr @__errno_location() #12
  %4014 = load i32, ptr %4013, align 4, !tbaa !5
  %4015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4002, ptr noundef @.str.22, i32 noundef %4003, ptr noundef @.str.58, ptr noundef @.str.21, i32 noundef 446, ptr noundef %4006, ptr noundef %4009, ptr noundef %4012, i32 noundef %4014) #11
  br label %4033

4016:                                             ; preds = %3994, %3987
  %4017 = load i32, ptr %115, align 4, !tbaa !5
  %4018 = call ptr @__errno_location() #12
  store i32 %4017, ptr %4018, align 4, !tbaa !5
  %4019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4020 = load i32, ptr @test_count, align 4, !tbaa !5
  %4021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  %4023 = call ptr @s2n_strerror(i32 noundef %4022, ptr noundef @.str.24)
  %4024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4025 = load i32, ptr %4024, align 4, !tbaa !5
  %4026 = call ptr @s2n_strerror_debug(i32 noundef %4025, ptr noundef @.str.24)
  %4027 = call ptr @__errno_location() #12
  %4028 = load i32, ptr %4027, align 4, !tbaa !5
  %4029 = call ptr @strerror(i32 noundef %4028) #11
  %4030 = call ptr @__errno_location() #12
  %4031 = load i32, ptr %4030, align 4, !tbaa !5
  %4032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4019, ptr noundef @.str.25, i32 noundef %4020, ptr noundef @.str.58, ptr noundef @.str.21, i32 noundef 446, ptr noundef %4023, ptr noundef %4026, ptr noundef %4029, i32 noundef %4031) #11
  br label %4033

4033:                                             ; preds = %4016, %3999
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %4034

4034:                                             ; preds = %4033
  br label %4035

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

4036:                                             ; No predecessors!
  br label %4037

4037:                                             ; preds = %4036
  br label %4038

4038:                                             ; preds = %4037, %3980
  br label %4039

4039:                                             ; preds = %4038
  br label %4040

4040:                                             ; preds = %4039
  br label %4041

4041:                                             ; preds = %4040
  %4042 = load i32, ptr @test_count, align 4, !tbaa !5
  %4043 = add nsw i32 %4042, 1
  store i32 %4043, ptr @test_count, align 4, !tbaa !5
  %4044 = load ptr, ptr %105, align 8, !tbaa !9
  %4045 = call i32 @s2n_handshake_read_io(ptr noundef %4044)
  %4046 = icmp eq i32 %4045, -1
  br i1 %4046, label %4047, label %4100

4047:                                             ; preds = %4041
  br label %4048

4048:                                             ; preds = %4047
  br label %4049

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

4056:                                             ; preds = %4049
  %4057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4058 = call i32 @fileno(ptr noundef %4057) #11
  %4059 = call i32 @isatty(i32 noundef %4058) #11
  %4060 = icmp ne i32 %4059, 0
  br i1 %4060, label %4061, label %4078

4061:                                             ; preds = %4056
  %4062 = load i32, ptr %116, align 4, !tbaa !5
  %4063 = call ptr @__errno_location() #12
  store i32 %4062, ptr %4063, align 4, !tbaa !5
  %4064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4065 = load i32, ptr @test_count, align 4, !tbaa !5
  %4066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror(i32 noundef %4067, ptr noundef @.str.24)
  %4069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call ptr @s2n_strerror_debug(i32 noundef %4070, ptr noundef @.str.24)
  %4072 = call ptr @__errno_location() #12
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call ptr @strerror(i32 noundef %4073) #11
  %4075 = call ptr @__errno_location() #12
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  %4077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4064, ptr noundef @.str.22, i32 noundef %4065, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 448, ptr noundef %4068, ptr noundef %4071, ptr noundef %4074, i32 noundef %4076) #11
  br label %4095

4078:                                             ; preds = %4056, %4049
  %4079 = load i32, ptr %116, align 4, !tbaa !5
  %4080 = call ptr @__errno_location() #12
  store i32 %4079, ptr %4080, align 4, !tbaa !5
  %4081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4082 = load i32, ptr @test_count, align 4, !tbaa !5
  %4083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4084 = load i32, ptr %4083, align 4, !tbaa !5
  %4085 = call ptr @s2n_strerror(i32 noundef %4084, ptr noundef @.str.24)
  %4086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @s2n_strerror_debug(i32 noundef %4087, ptr noundef @.str.24)
  %4089 = call ptr @__errno_location() #12
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call ptr @strerror(i32 noundef %4090) #11
  %4092 = call ptr @__errno_location() #12
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4081, ptr noundef @.str.25, i32 noundef %4082, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 448, ptr noundef %4085, ptr noundef %4088, ptr noundef %4091, i32 noundef %4093) #11
  br label %4095

4095:                                             ; preds = %4078, %4061
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %4096

4096:                                             ; preds = %4095
  br label %4097

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

4098:                                             ; No predecessors!
  br label %4099

4099:                                             ; preds = %4098
  br label %4100

4100:                                             ; preds = %4099, %4041
  br label %4101

4101:                                             ; preds = %4100
  br label %4102

4102:                                             ; preds = %4101
  %4103 = load i32, ptr %113, align 4, !tbaa !5
  %4104 = sext i32 %4103 to i64
  %4105 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %4104
  %4106 = load i32, ptr %114, align 4, !tbaa !5
  %4107 = sext i32 %4106 to i64
  %4108 = getelementptr inbounds [32 x i32], ptr %4105, i64 0, i64 %4107
  %4109 = load i32, ptr %4108, align 4, !tbaa !5
  %4110 = icmp eq i32 %4109, 14
  br i1 %4110, label %4111, label %4178

4111:                                             ; preds = %4102
  br label %4112

4112:                                             ; preds = %4111
  %4113 = load i32, ptr @test_count, align 4, !tbaa !5
  %4114 = add nsw i32 %4113, 1
  store i32 %4114, ptr @test_count, align 4, !tbaa !5
  %4115 = load ptr, ptr %105, align 8, !tbaa !9
  %4116 = getelementptr inbounds %struct.s2n_connection, ptr %4115, i32 0, i32 52
  %4117 = getelementptr inbounds %struct.s2n_handshake, ptr %4116, i32 0, i32 7
  %4118 = load i32, ptr %4117, align 8, !tbaa !61
  %4119 = load i32, ptr %114, align 4, !tbaa !5
  %4120 = add nsw i32 %4119, 1
  %4121 = icmp eq i32 %4118, %4120
  br i1 %4121, label %4175, label %4122

4122:                                             ; preds = %4112
  br label %4123

4123:                                             ; preds = %4122
  br label %4124

4124:                                             ; preds = %4123
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %4125 = call ptr @__errno_location() #12
  %4126 = load i32, ptr %4125, align 4, !tbaa !5
  store i32 %4126, ptr %117, align 4, !tbaa !5
  %4127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4128 = call i32 @s2n_print_stacktrace(ptr noundef %4127)
  %4129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4130 = trunc i8 %4129 to i1
  br i1 %4130, label %4131, label %4153

4131:                                             ; preds = %4124
  %4132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4133 = call i32 @fileno(ptr noundef %4132) #11
  %4134 = call i32 @isatty(i32 noundef %4133) #11
  %4135 = icmp ne i32 %4134, 0
  br i1 %4135, label %4136, label %4153

4136:                                             ; preds = %4131
  %4137 = load i32, ptr %117, align 4, !tbaa !5
  %4138 = call ptr @__errno_location() #12
  store i32 %4137, ptr %4138, align 4, !tbaa !5
  %4139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4140 = load i32, ptr @test_count, align 4, !tbaa !5
  %4141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  %4143 = call ptr @s2n_strerror(i32 noundef %4142, ptr noundef @.str.24)
  %4144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4145 = load i32, ptr %4144, align 4, !tbaa !5
  %4146 = call ptr @s2n_strerror_debug(i32 noundef %4145, ptr noundef @.str.24)
  %4147 = call ptr @__errno_location() #12
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call ptr @strerror(i32 noundef %4148) #11
  %4150 = call ptr @__errno_location() #12
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4139, ptr noundef @.str.22, i32 noundef %4140, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 451, ptr noundef %4143, ptr noundef %4146, ptr noundef %4149, i32 noundef %4151) #11
  br label %4170

4153:                                             ; preds = %4131, %4124
  %4154 = load i32, ptr %117, align 4, !tbaa !5
  %4155 = call ptr @__errno_location() #12
  store i32 %4154, ptr %4155, align 4, !tbaa !5
  %4156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4157 = load i32, ptr @test_count, align 4, !tbaa !5
  %4158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4159 = load i32, ptr %4158, align 4, !tbaa !5
  %4160 = call ptr @s2n_strerror(i32 noundef %4159, ptr noundef @.str.24)
  %4161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  %4163 = call ptr @s2n_strerror_debug(i32 noundef %4162, ptr noundef @.str.24)
  %4164 = call ptr @__errno_location() #12
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call ptr @strerror(i32 noundef %4165) #11
  %4167 = call ptr @__errno_location() #12
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4156, ptr noundef @.str.25, i32 noundef %4157, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 451, ptr noundef %4160, ptr noundef %4163, ptr noundef %4166, i32 noundef %4168) #11
  br label %4170

4170:                                             ; preds = %4153, %4136
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %4171

4171:                                             ; preds = %4170
  br label %4172

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

4173:                                             ; No predecessors!
  br label %4174

4174:                                             ; preds = %4173
  br label %4175

4175:                                             ; preds = %4174, %4112
  br label %4176

4176:                                             ; preds = %4175
  br label %4177

4177:                                             ; preds = %4176
  br label %4244

4178:                                             ; preds = %4102
  br label %4179

4179:                                             ; preds = %4178
  %4180 = load i32, ptr @test_count, align 4, !tbaa !5
  %4181 = add nsw i32 %4180, 1
  store i32 %4181, ptr @test_count, align 4, !tbaa !5
  %4182 = load ptr, ptr %105, align 8, !tbaa !9
  %4183 = getelementptr inbounds %struct.s2n_connection, ptr %4182, i32 0, i32 52
  %4184 = getelementptr inbounds %struct.s2n_handshake, ptr %4183, i32 0, i32 7
  %4185 = load i32, ptr %4184, align 8, !tbaa !61
  %4186 = load i32, ptr %114, align 4, !tbaa !5
  %4187 = icmp eq i32 %4185, %4186
  br i1 %4187, label %4241, label %4188

4188:                                             ; preds = %4179
  br label %4189

4189:                                             ; preds = %4188
  br label %4190

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

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

4202:                                             ; preds = %4197
  %4203 = load i32, ptr %118, align 4, !tbaa !5
  %4204 = call ptr @__errno_location() #12
  store i32 %4203, ptr %4204, align 4, !tbaa !5
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4206 = load i32, ptr @test_count, align 4, !tbaa !5
  %4207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4208 = load i32, ptr %4207, align 4, !tbaa !5
  %4209 = call ptr @s2n_strerror(i32 noundef %4208, ptr noundef @.str.24)
  %4210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4211 = load i32, ptr %4210, align 4, !tbaa !5
  %4212 = call ptr @s2n_strerror_debug(i32 noundef %4211, ptr noundef @.str.24)
  %4213 = call ptr @__errno_location() #12
  %4214 = load i32, ptr %4213, align 4, !tbaa !5
  %4215 = call ptr @strerror(i32 noundef %4214) #11
  %4216 = call ptr @__errno_location() #12
  %4217 = load i32, ptr %4216, align 4, !tbaa !5
  %4218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4205, ptr noundef @.str.22, i32 noundef %4206, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 453, ptr noundef %4209, ptr noundef %4212, ptr noundef %4215, i32 noundef %4217) #11
  br label %4236

4219:                                             ; preds = %4197, %4190
  %4220 = load i32, ptr %118, align 4, !tbaa !5
  %4221 = call ptr @__errno_location() #12
  store i32 %4220, ptr %4221, align 4, !tbaa !5
  %4222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4223 = load i32, ptr @test_count, align 4, !tbaa !5
  %4224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4225 = load i32, ptr %4224, align 4, !tbaa !5
  %4226 = call ptr @s2n_strerror(i32 noundef %4225, ptr noundef @.str.24)
  %4227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4228 = load i32, ptr %4227, align 4, !tbaa !5
  %4229 = call ptr @s2n_strerror_debug(i32 noundef %4228, ptr noundef @.str.24)
  %4230 = call ptr @__errno_location() #12
  %4231 = load i32, ptr %4230, align 4, !tbaa !5
  %4232 = call ptr @strerror(i32 noundef %4231) #11
  %4233 = call ptr @__errno_location() #12
  %4234 = load i32, ptr %4233, align 4, !tbaa !5
  %4235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4222, ptr noundef @.str.25, i32 noundef %4223, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 453, ptr noundef %4226, ptr noundef %4229, ptr noundef %4232, i32 noundef %4234) #11
  br label %4236

4236:                                             ; preds = %4219, %4202
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %4237

4237:                                             ; preds = %4236
  br label %4238

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

4239:                                             ; No predecessors!
  br label %4240

4240:                                             ; preds = %4239
  br label %4241

4241:                                             ; preds = %4240, %4179
  br label %4242

4242:                                             ; preds = %4241
  br label %4243

4243:                                             ; preds = %4242
  br label %4244

4244:                                             ; preds = %4243, %4177
  br label %4245

4245:                                             ; preds = %4244
  %4246 = load i32, ptr @test_count, align 4, !tbaa !5
  %4247 = add nsw i32 %4246, 1
  store i32 %4247, ptr @test_count, align 4, !tbaa !5
  %4248 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %4249 = icmp ne i32 %4248, 0
  br i1 %4249, label %4250, label %4303

4250:                                             ; preds = %4245
  br label %4251

4251:                                             ; preds = %4250
  br label %4252

4252:                                             ; preds = %4251
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %4253 = call ptr @__errno_location() #12
  %4254 = load i32, ptr %4253, align 4, !tbaa !5
  store i32 %4254, ptr %119, align 4, !tbaa !5
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = call i32 @s2n_print_stacktrace(ptr noundef %4255)
  %4257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4258 = trunc i8 %4257 to i1
  br i1 %4258, label %4259, label %4281

4259:                                             ; preds = %4252
  %4260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4261 = call i32 @fileno(ptr noundef %4260) #11
  %4262 = call i32 @isatty(i32 noundef %4261) #11
  %4263 = icmp ne i32 %4262, 0
  br i1 %4263, label %4264, label %4281

4264:                                             ; preds = %4259
  %4265 = load i32, ptr %119, align 4, !tbaa !5
  %4266 = call ptr @__errno_location() #12
  store i32 %4265, ptr %4266, align 4, !tbaa !5
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = load i32, ptr @test_count, align 4, !tbaa !5
  %4269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4270 = load i32, ptr %4269, align 4, !tbaa !5
  %4271 = call ptr @s2n_strerror(i32 noundef %4270, ptr noundef @.str.24)
  %4272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call ptr @s2n_strerror_debug(i32 noundef %4273, ptr noundef @.str.24)
  %4275 = call ptr @__errno_location() #12
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  %4277 = call ptr @strerror(i32 noundef %4276) #11
  %4278 = call ptr @__errno_location() #12
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4267, ptr noundef @.str.22, i32 noundef %4268, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 456, ptr noundef %4271, ptr noundef %4274, ptr noundef %4277, i32 noundef %4279) #11
  br label %4298

4281:                                             ; preds = %4259, %4252
  %4282 = load i32, ptr %119, align 4, !tbaa !5
  %4283 = call ptr @__errno_location() #12
  store i32 %4282, ptr %4283, align 4, !tbaa !5
  %4284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4285 = load i32, ptr @test_count, align 4, !tbaa !5
  %4286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4287 = load i32, ptr %4286, align 4, !tbaa !5
  %4288 = call ptr @s2n_strerror(i32 noundef %4287, ptr noundef @.str.24)
  %4289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror_debug(i32 noundef %4290, ptr noundef @.str.24)
  %4292 = call ptr @__errno_location() #12
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @strerror(i32 noundef %4293) #11
  %4295 = call ptr @__errno_location() #12
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4284, ptr noundef @.str.25, i32 noundef %4285, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 456, ptr noundef %4288, ptr noundef %4291, ptr noundef %4294, i32 noundef %4296) #11
  br label %4298

4298:                                             ; preds = %4281, %4264
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

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

4301:                                             ; No predecessors!
  br label %4302

4302:                                             ; preds = %4301
  br label %4303

4303:                                             ; preds = %4302, %4245
  br label %4304

4304:                                             ; preds = %4303
  br label %4305

4305:                                             ; preds = %4304
  br label %4306

4306:                                             ; preds = %4305
  %4307 = load i32, ptr @test_count, align 4, !tbaa !5
  %4308 = add nsw i32 %4307, 1
  store i32 %4308, ptr @test_count, align 4, !tbaa !5
  %4309 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %4310 = icmp ne i32 %4309, 0
  br i1 %4310, label %4364, label %4311

4311:                                             ; preds = %4306
  br label %4312

4312:                                             ; preds = %4311
  br label %4313

4313:                                             ; preds = %4312
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  %4314 = call ptr @__errno_location() #12
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  store i32 %4315, ptr %120, align 4, !tbaa !5
  %4316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4317 = call i32 @s2n_print_stacktrace(ptr noundef %4316)
  %4318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4319 = trunc i8 %4318 to i1
  br i1 %4319, label %4320, label %4342

4320:                                             ; preds = %4313
  %4321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4322 = call i32 @fileno(ptr noundef %4321) #11
  %4323 = call i32 @isatty(i32 noundef %4322) #11
  %4324 = icmp ne i32 %4323, 0
  br i1 %4324, label %4325, label %4342

4325:                                             ; preds = %4320
  %4326 = load i32, ptr %120, align 4, !tbaa !5
  %4327 = call ptr @__errno_location() #12
  store i32 %4326, ptr %4327, align 4, !tbaa !5
  %4328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4329 = load i32, ptr @test_count, align 4, !tbaa !5
  %4330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4331 = load i32, ptr %4330, align 4, !tbaa !5
  %4332 = call ptr @s2n_strerror(i32 noundef %4331, ptr noundef @.str.24)
  %4333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4334 = load i32, ptr %4333, align 4, !tbaa !5
  %4335 = call ptr @s2n_strerror_debug(i32 noundef %4334, ptr noundef @.str.24)
  %4336 = call ptr @__errno_location() #12
  %4337 = load i32, ptr %4336, align 4, !tbaa !5
  %4338 = call ptr @strerror(i32 noundef %4337) #11
  %4339 = call ptr @__errno_location() #12
  %4340 = load i32, ptr %4339, align 4, !tbaa !5
  %4341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4328, ptr noundef @.str.22, i32 noundef %4329, ptr noundef @.str.61, ptr noundef @.str.21, i32 noundef 457, ptr noundef %4332, ptr noundef %4335, ptr noundef %4338, i32 noundef %4340) #11
  br label %4359

4342:                                             ; preds = %4320, %4313
  %4343 = load i32, ptr %120, align 4, !tbaa !5
  %4344 = call ptr @__errno_location() #12
  store i32 %4343, ptr %4344, align 4, !tbaa !5
  %4345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4346 = load i32, ptr @test_count, align 4, !tbaa !5
  %4347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4348 = load i32, ptr %4347, align 4, !tbaa !5
  %4349 = call ptr @s2n_strerror(i32 noundef %4348, ptr noundef @.str.24)
  %4350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror_debug(i32 noundef %4351, ptr noundef @.str.24)
  %4353 = call ptr @__errno_location() #12
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @strerror(i32 noundef %4354) #11
  %4356 = call ptr @__errno_location() #12
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4345, ptr noundef @.str.25, i32 noundef %4346, ptr noundef @.str.61, ptr noundef @.str.21, i32 noundef 457, ptr noundef %4349, ptr noundef %4352, ptr noundef %4355, i32 noundef %4357) #11
  br label %4359

4359:                                             ; preds = %4342, %4325
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %4360

4360:                                             ; preds = %4359
  br label %4361

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

4362:                                             ; No predecessors!
  br label %4363

4363:                                             ; preds = %4362
  br label %4364

4364:                                             ; preds = %4363, %4306
  br label %4365

4365:                                             ; preds = %4364
  br label %4366

4366:                                             ; preds = %4365
  br label %4367

4367:                                             ; preds = %4366
  %4368 = load i32, ptr @test_count, align 4, !tbaa !5
  %4369 = add nsw i32 %4368, 1
  store i32 %4369, ptr @test_count, align 4, !tbaa !5
  %4370 = call i32 @s2n_stuffer_wipe(ptr noundef %108)
  %4371 = icmp eq i32 %4370, -1
  br i1 %4371, label %4372, label %4425

4372:                                             ; preds = %4367
  br label %4373

4373:                                             ; preds = %4372
  br label %4374

4374:                                             ; preds = %4373
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #11
  %4375 = call ptr @__errno_location() #12
  %4376 = load i32, ptr %4375, align 4, !tbaa !5
  store i32 %4376, ptr %121, align 4, !tbaa !5
  %4377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4378 = call i32 @s2n_print_stacktrace(ptr noundef %4377)
  %4379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4380 = trunc i8 %4379 to i1
  br i1 %4380, label %4381, label %4403

4381:                                             ; preds = %4374
  %4382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4383 = call i32 @fileno(ptr noundef %4382) #11
  %4384 = call i32 @isatty(i32 noundef %4383) #11
  %4385 = icmp ne i32 %4384, 0
  br i1 %4385, label %4386, label %4403

4386:                                             ; preds = %4381
  %4387 = load i32, ptr %121, align 4, !tbaa !5
  %4388 = call ptr @__errno_location() #12
  store i32 %4387, ptr %4388, align 4, !tbaa !5
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = load i32, ptr @test_count, align 4, !tbaa !5
  %4391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4392 = load i32, ptr %4391, align 4, !tbaa !5
  %4393 = call ptr @s2n_strerror(i32 noundef %4392, ptr noundef @.str.24)
  %4394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4395 = load i32, ptr %4394, align 4, !tbaa !5
  %4396 = call ptr @s2n_strerror_debug(i32 noundef %4395, ptr noundef @.str.24)
  %4397 = call ptr @__errno_location() #12
  %4398 = load i32, ptr %4397, align 4, !tbaa !5
  %4399 = call ptr @strerror(i32 noundef %4398) #11
  %4400 = call ptr @__errno_location() #12
  %4401 = load i32, ptr %4400, align 4, !tbaa !5
  %4402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4389, ptr noundef @.str.22, i32 noundef %4390, ptr noundef @.str.62, ptr noundef @.str.21, i32 noundef 459, ptr noundef %4393, ptr noundef %4396, ptr noundef %4399, i32 noundef %4401) #11
  br label %4420

4403:                                             ; preds = %4381, %4374
  %4404 = load i32, ptr %121, align 4, !tbaa !5
  %4405 = call ptr @__errno_location() #12
  store i32 %4404, ptr %4405, align 4, !tbaa !5
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4407 = load i32, ptr @test_count, align 4, !tbaa !5
  %4408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4409 = load i32, ptr %4408, align 4, !tbaa !5
  %4410 = call ptr @s2n_strerror(i32 noundef %4409, ptr noundef @.str.24)
  %4411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4412 = load i32, ptr %4411, align 4, !tbaa !5
  %4413 = call ptr @s2n_strerror_debug(i32 noundef %4412, ptr noundef @.str.24)
  %4414 = call ptr @__errno_location() #12
  %4415 = load i32, ptr %4414, align 4, !tbaa !5
  %4416 = call ptr @strerror(i32 noundef %4415) #11
  %4417 = call ptr @__errno_location() #12
  %4418 = load i32, ptr %4417, align 4, !tbaa !5
  %4419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4406, ptr noundef @.str.25, i32 noundef %4407, ptr noundef @.str.62, ptr noundef @.str.21, i32 noundef 459, ptr noundef %4410, ptr noundef %4413, ptr noundef %4416, i32 noundef %4418) #11
  br label %4420

4420:                                             ; preds = %4403, %4386
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %4421

4421:                                             ; preds = %4420
  br label %4422

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

4423:                                             ; No predecessors!
  br label %4424

4424:                                             ; preds = %4423
  br label %4425

4425:                                             ; preds = %4424, %4367
  br label %4426

4426:                                             ; preds = %4425
  br label %4427

4427:                                             ; preds = %4426
  br label %4428

4428:                                             ; preds = %4427
  %4429 = load i32, ptr %114, align 4, !tbaa !5
  %4430 = add nsw i32 %4429, 1
  store i32 %4430, ptr %114, align 4, !tbaa !5
  br label %3971, !llvm.loop !71

4431:                                             ; preds = %3974
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %4432

4432:                                             ; preds = %4431
  %4433 = load i32, ptr %112, align 4, !tbaa !5
  %4434 = add nsw i32 %4433, 1
  store i32 %4434, ptr %112, align 4, !tbaa !5
  br label %3954, !llvm.loop !72

4435:                                             ; preds = %3958
  br label %4436

4436:                                             ; preds = %4435
  %4437 = load i32, ptr @test_count, align 4, !tbaa !5
  %4438 = add nsw i32 %4437, 1
  store i32 %4438, ptr @test_count, align 4, !tbaa !5
  %4439 = call i32 @s2n_stuffer_free(ptr noundef %108)
  %4440 = icmp eq i32 %4439, -1
  br i1 %4440, label %4441, label %4494

4441:                                             ; preds = %4436
  br label %4442

4442:                                             ; preds = %4441
  br label %4443

4443:                                             ; preds = %4442
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #11
  %4444 = call ptr @__errno_location() #12
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  store i32 %4445, ptr %122, align 4, !tbaa !5
  %4446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4447 = call i32 @s2n_print_stacktrace(ptr noundef %4446)
  %4448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4449 = trunc i8 %4448 to i1
  br i1 %4449, label %4450, label %4472

4450:                                             ; preds = %4443
  %4451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4452 = call i32 @fileno(ptr noundef %4451) #11
  %4453 = call i32 @isatty(i32 noundef %4452) #11
  %4454 = icmp ne i32 %4453, 0
  br i1 %4454, label %4455, label %4472

4455:                                             ; preds = %4450
  %4456 = load i32, ptr %122, align 4, !tbaa !5
  %4457 = call ptr @__errno_location() #12
  store i32 %4456, ptr %4457, align 4, !tbaa !5
  %4458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4459 = load i32, ptr @test_count, align 4, !tbaa !5
  %4460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4461 = load i32, ptr %4460, align 4, !tbaa !5
  %4462 = call ptr @s2n_strerror(i32 noundef %4461, ptr noundef @.str.24)
  %4463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4464 = load i32, ptr %4463, align 4, !tbaa !5
  %4465 = call ptr @s2n_strerror_debug(i32 noundef %4464, ptr noundef @.str.24)
  %4466 = call ptr @__errno_location() #12
  %4467 = load i32, ptr %4466, align 4, !tbaa !5
  %4468 = call ptr @strerror(i32 noundef %4467) #11
  %4469 = call ptr @__errno_location() #12
  %4470 = load i32, ptr %4469, align 4, !tbaa !5
  %4471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4458, ptr noundef @.str.22, i32 noundef %4459, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 463, ptr noundef %4462, ptr noundef %4465, ptr noundef %4468, i32 noundef %4470) #11
  br label %4489

4472:                                             ; preds = %4450, %4443
  %4473 = load i32, ptr %122, align 4, !tbaa !5
  %4474 = call ptr @__errno_location() #12
  store i32 %4473, ptr %4474, align 4, !tbaa !5
  %4475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4476 = load i32, ptr @test_count, align 4, !tbaa !5
  %4477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4478 = load i32, ptr %4477, align 4, !tbaa !5
  %4479 = call ptr @s2n_strerror(i32 noundef %4478, ptr noundef @.str.24)
  %4480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  %4482 = call ptr @s2n_strerror_debug(i32 noundef %4481, ptr noundef @.str.24)
  %4483 = call ptr @__errno_location() #12
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @strerror(i32 noundef %4484) #11
  %4486 = call ptr @__errno_location() #12
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4475, ptr noundef @.str.25, i32 noundef %4476, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 463, ptr noundef %4479, ptr noundef %4482, ptr noundef %4485, i32 noundef %4487) #11
  br label %4489

4489:                                             ; preds = %4472, %4455
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %4490

4490:                                             ; preds = %4489
  br label %4491

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

4492:                                             ; No predecessors!
  br label %4493

4493:                                             ; preds = %4492
  br label %4494

4494:                                             ; preds = %4493, %4436
  br label %4495

4495:                                             ; preds = %4494
  br label %4496

4496:                                             ; preds = %4495
  br label %4497

4497:                                             ; preds = %4496
  %4498 = load i32, ptr @test_count, align 4, !tbaa !5
  %4499 = add nsw i32 %4498, 1
  store i32 %4499, ptr @test_count, align 4, !tbaa !5
  %4500 = load ptr, ptr %105, align 8, !tbaa !9
  %4501 = call i32 @s2n_connection_free(ptr noundef %4500)
  %4502 = icmp eq i32 %4501, -1
  br i1 %4502, label %4503, label %4556

4503:                                             ; preds = %4497
  br label %4504

4504:                                             ; preds = %4503
  br label %4505

4505:                                             ; preds = %4504
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  %4506 = call ptr @__errno_location() #12
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  store i32 %4507, ptr %123, align 4, !tbaa !5
  %4508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4509 = call i32 @s2n_print_stacktrace(ptr noundef %4508)
  %4510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4511 = trunc i8 %4510 to i1
  br i1 %4511, label %4512, label %4534

4512:                                             ; preds = %4505
  %4513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4514 = call i32 @fileno(ptr noundef %4513) #11
  %4515 = call i32 @isatty(i32 noundef %4514) #11
  %4516 = icmp ne i32 %4515, 0
  br i1 %4516, label %4517, label %4534

4517:                                             ; preds = %4512
  %4518 = load i32, ptr %123, align 4, !tbaa !5
  %4519 = call ptr @__errno_location() #12
  store i32 %4518, ptr %4519, align 4, !tbaa !5
  %4520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4521 = load i32, ptr @test_count, align 4, !tbaa !5
  %4522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4523 = load i32, ptr %4522, align 4, !tbaa !5
  %4524 = call ptr @s2n_strerror(i32 noundef %4523, ptr noundef @.str.24)
  %4525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4526 = load i32, ptr %4525, align 4, !tbaa !5
  %4527 = call ptr @s2n_strerror_debug(i32 noundef %4526, ptr noundef @.str.24)
  %4528 = call ptr @__errno_location() #12
  %4529 = load i32, ptr %4528, align 4, !tbaa !5
  %4530 = call ptr @strerror(i32 noundef %4529) #11
  %4531 = call ptr @__errno_location() #12
  %4532 = load i32, ptr %4531, align 4, !tbaa !5
  %4533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4520, ptr noundef @.str.22, i32 noundef %4521, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 464, ptr noundef %4524, ptr noundef %4527, ptr noundef %4530, i32 noundef %4532) #11
  br label %4551

4534:                                             ; preds = %4512, %4505
  %4535 = load i32, ptr %123, align 4, !tbaa !5
  %4536 = call ptr @__errno_location() #12
  store i32 %4535, ptr %4536, align 4, !tbaa !5
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = load i32, ptr @test_count, align 4, !tbaa !5
  %4539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4540 = load i32, ptr %4539, align 4, !tbaa !5
  %4541 = call ptr @s2n_strerror(i32 noundef %4540, ptr noundef @.str.24)
  %4542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4543 = load i32, ptr %4542, align 4, !tbaa !5
  %4544 = call ptr @s2n_strerror_debug(i32 noundef %4543, ptr noundef @.str.24)
  %4545 = call ptr @__errno_location() #12
  %4546 = load i32, ptr %4545, align 4, !tbaa !5
  %4547 = call ptr @strerror(i32 noundef %4546) #11
  %4548 = call ptr @__errno_location() #12
  %4549 = load i32, ptr %4548, align 4, !tbaa !5
  %4550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4537, ptr noundef @.str.25, i32 noundef %4538, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 464, ptr noundef %4541, ptr noundef %4544, ptr noundef %4547, i32 noundef %4549) #11
  br label %4551

4551:                                             ; preds = %4534, %4517
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %4552

4552:                                             ; preds = %4551
  br label %4553

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

4554:                                             ; No predecessors!
  br label %4555

4555:                                             ; preds = %4554
  br label %4556

4556:                                             ; preds = %4555, %4497
  br label %4557

4557:                                             ; preds = %4556
  br label %4558

4558:                                             ; preds = %4557
  call void @llvm.lifetime.end.p0(i64 40, ptr %108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #11
  %4559 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4559, ptr %124, align 8, !tbaa !9
  %4560 = load ptr, ptr %124, align 8, !tbaa !9
  %4561 = getelementptr inbounds %struct.s2n_connection, ptr %4560, i32 0, i32 23
  store i8 34, ptr %4561, align 4, !tbaa !34
  br label %4562

4562:                                             ; preds = %4558
  %4563 = load i32, ptr @test_count, align 4, !tbaa !5
  %4564 = add nsw i32 %4563, 1
  store i32 %4564, ptr @test_count, align 4, !tbaa !5
  %4565 = load ptr, ptr %124, align 8, !tbaa !9
  %4566 = call i32 @s2n_conn_choose_state_machine(ptr noundef %4565, i8 noundef zeroext 34)
  %4567 = getelementptr inbounds %struct.s2n_result, ptr %125, i32 0, i32 0
  store i32 %4566, ptr %4567, align 4
  %4568 = getelementptr inbounds %struct.s2n_result, ptr %125, i32 0, i32 0
  %4569 = load i32, ptr %4568, align 4
  %4570 = call zeroext i1 @s2n_result_is_ok(i32 %4569)
  br i1 %4570, label %4624, label %4571

4571:                                             ; preds = %4562
  br label %4572

4572:                                             ; preds = %4571
  br label %4573

4573:                                             ; preds = %4572
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #11
  %4574 = call ptr @__errno_location() #12
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  store i32 %4575, ptr %126, align 4, !tbaa !5
  %4576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4577 = call i32 @s2n_print_stacktrace(ptr noundef %4576)
  %4578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4579 = trunc i8 %4578 to i1
  br i1 %4579, label %4580, label %4602

4580:                                             ; preds = %4573
  %4581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4582 = call i32 @fileno(ptr noundef %4581) #11
  %4583 = call i32 @isatty(i32 noundef %4582) #11
  %4584 = icmp ne i32 %4583, 0
  br i1 %4584, label %4585, label %4602

4585:                                             ; preds = %4580
  %4586 = load i32, ptr %126, align 4, !tbaa !5
  %4587 = call ptr @__errno_location() #12
  store i32 %4586, ptr %4587, align 4, !tbaa !5
  %4588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4589 = load i32, ptr @test_count, align 4, !tbaa !5
  %4590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4591 = load i32, ptr %4590, align 4, !tbaa !5
  %4592 = call ptr @s2n_strerror(i32 noundef %4591, ptr noundef @.str.24)
  %4593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4594 = load i32, ptr %4593, align 4, !tbaa !5
  %4595 = call ptr @s2n_strerror_debug(i32 noundef %4594, ptr noundef @.str.24)
  %4596 = call ptr @__errno_location() #12
  %4597 = load i32, ptr %4596, align 4, !tbaa !5
  %4598 = call ptr @strerror(i32 noundef %4597) #11
  %4599 = call ptr @__errno_location() #12
  %4600 = load i32, ptr %4599, align 4, !tbaa !5
  %4601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4588, ptr noundef @.str.22, i32 noundef %4589, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 471, ptr noundef %4592, ptr noundef %4595, ptr noundef %4598, i32 noundef %4600) #11
  br label %4619

4602:                                             ; preds = %4580, %4573
  %4603 = load i32, ptr %126, align 4, !tbaa !5
  %4604 = call ptr @__errno_location() #12
  store i32 %4603, ptr %4604, align 4, !tbaa !5
  %4605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4606 = load i32, ptr @test_count, align 4, !tbaa !5
  %4607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4608 = load i32, ptr %4607, align 4, !tbaa !5
  %4609 = call ptr @s2n_strerror(i32 noundef %4608, ptr noundef @.str.24)
  %4610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4611 = load i32, ptr %4610, align 4, !tbaa !5
  %4612 = call ptr @s2n_strerror_debug(i32 noundef %4611, ptr noundef @.str.24)
  %4613 = call ptr @__errno_location() #12
  %4614 = load i32, ptr %4613, align 4, !tbaa !5
  %4615 = call ptr @strerror(i32 noundef %4614) #11
  %4616 = call ptr @__errno_location() #12
  %4617 = load i32, ptr %4616, align 4, !tbaa !5
  %4618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4605, ptr noundef @.str.25, i32 noundef %4606, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 471, ptr noundef %4609, ptr noundef %4612, ptr noundef %4615, i32 noundef %4617) #11
  br label %4619

4619:                                             ; preds = %4602, %4585
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %4620

4620:                                             ; preds = %4619
  br label %4621

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

4622:                                             ; No predecessors!
  br label %4623

4623:                                             ; preds = %4622
  br label %4624

4624:                                             ; preds = %4623, %4562
  br label %4625

4625:                                             ; preds = %4624
  br label %4626

4626:                                             ; preds = %4625
  call void @llvm.lifetime.start.p0(i64 40, ptr %127) #11
  call void @llvm.memset.p0.i64(ptr align 8 %127, i8 0, i64 40, i1 false)
  br label %4627

4627:                                             ; preds = %4626
  %4628 = load i32, ptr @test_count, align 4, !tbaa !5
  %4629 = add nsw i32 %4628, 1
  store i32 %4629, ptr @test_count, align 4, !tbaa !5
  %4630 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %127, i32 noundef 0)
  %4631 = icmp eq i32 %4630, -1
  br i1 %4631, label %4632, label %4685

4632:                                             ; preds = %4627
  br label %4633

4633:                                             ; preds = %4632
  br label %4634

4634:                                             ; preds = %4633
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  %4635 = call ptr @__errno_location() #12
  %4636 = load i32, ptr %4635, align 4, !tbaa !5
  store i32 %4636, ptr %128, align 4, !tbaa !5
  %4637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4638 = call i32 @s2n_print_stacktrace(ptr noundef %4637)
  %4639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4640 = trunc i8 %4639 to i1
  br i1 %4640, label %4641, label %4663

4641:                                             ; preds = %4634
  %4642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4643 = call i32 @fileno(ptr noundef %4642) #11
  %4644 = call i32 @isatty(i32 noundef %4643) #11
  %4645 = icmp ne i32 %4644, 0
  br i1 %4645, label %4646, label %4663

4646:                                             ; preds = %4641
  %4647 = load i32, ptr %128, align 4, !tbaa !5
  %4648 = call ptr @__errno_location() #12
  store i32 %4647, ptr %4648, align 4, !tbaa !5
  %4649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4650 = load i32, ptr @test_count, align 4, !tbaa !5
  %4651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4652 = load i32, ptr %4651, align 4, !tbaa !5
  %4653 = call ptr @s2n_strerror(i32 noundef %4652, ptr noundef @.str.24)
  %4654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  %4656 = call ptr @s2n_strerror_debug(i32 noundef %4655, ptr noundef @.str.24)
  %4657 = call ptr @__errno_location() #12
  %4658 = load i32, ptr %4657, align 4, !tbaa !5
  %4659 = call ptr @strerror(i32 noundef %4658) #11
  %4660 = call ptr @__errno_location() #12
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4649, ptr noundef @.str.22, i32 noundef %4650, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 474, ptr noundef %4653, ptr noundef %4656, ptr noundef %4659, i32 noundef %4661) #11
  br label %4680

4663:                                             ; preds = %4641, %4634
  %4664 = load i32, ptr %128, align 4, !tbaa !5
  %4665 = call ptr @__errno_location() #12
  store i32 %4664, ptr %4665, align 4, !tbaa !5
  %4666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4667 = load i32, ptr @test_count, align 4, !tbaa !5
  %4668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4669 = load i32, ptr %4668, align 4, !tbaa !5
  %4670 = call ptr @s2n_strerror(i32 noundef %4669, ptr noundef @.str.24)
  %4671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4672 = load i32, ptr %4671, align 4, !tbaa !5
  %4673 = call ptr @s2n_strerror_debug(i32 noundef %4672, ptr noundef @.str.24)
  %4674 = call ptr @__errno_location() #12
  %4675 = load i32, ptr %4674, align 4, !tbaa !5
  %4676 = call ptr @strerror(i32 noundef %4675) #11
  %4677 = call ptr @__errno_location() #12
  %4678 = load i32, ptr %4677, align 4, !tbaa !5
  %4679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4666, ptr noundef @.str.25, i32 noundef %4667, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 474, ptr noundef %4670, ptr noundef %4673, ptr noundef %4676, i32 noundef %4678) #11
  br label %4680

4680:                                             ; preds = %4663, %4646
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %4681

4681:                                             ; preds = %4680
  br label %4682

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

4683:                                             ; No predecessors!
  br label %4684

4684:                                             ; preds = %4683
  br label %4685

4685:                                             ; preds = %4684, %4627
  br label %4686

4686:                                             ; preds = %4685
  br label %4687

4687:                                             ; preds = %4686
  br label %4688

4688:                                             ; preds = %4687
  %4689 = load i32, ptr @test_count, align 4, !tbaa !5
  %4690 = add nsw i32 %4689, 1
  store i32 %4690, ptr @test_count, align 4, !tbaa !5
  %4691 = load ptr, ptr %124, align 8, !tbaa !9
  %4692 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %127, ptr noundef null, ptr noundef %4691)
  %4693 = icmp eq i32 %4692, -1
  br i1 %4693, label %4694, label %4747

4694:                                             ; preds = %4688
  br label %4695

4695:                                             ; preds = %4694
  br label %4696

4696:                                             ; preds = %4695
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %4697 = call ptr @__errno_location() #12
  %4698 = load i32, ptr %4697, align 4, !tbaa !5
  store i32 %4698, ptr %129, align 4, !tbaa !5
  %4699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4700 = call i32 @s2n_print_stacktrace(ptr noundef %4699)
  %4701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4702 = trunc i8 %4701 to i1
  br i1 %4702, label %4703, label %4725

4703:                                             ; preds = %4696
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = call i32 @fileno(ptr noundef %4704) #11
  %4706 = call i32 @isatty(i32 noundef %4705) #11
  %4707 = icmp ne i32 %4706, 0
  br i1 %4707, label %4708, label %4725

4708:                                             ; preds = %4703
  %4709 = load i32, ptr %129, align 4, !tbaa !5
  %4710 = call ptr @__errno_location() #12
  store i32 %4709, ptr %4710, align 4, !tbaa !5
  %4711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4712 = load i32, ptr @test_count, align 4, !tbaa !5
  %4713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4714 = load i32, ptr %4713, align 4, !tbaa !5
  %4715 = call ptr @s2n_strerror(i32 noundef %4714, ptr noundef @.str.24)
  %4716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4717 = load i32, ptr %4716, align 4, !tbaa !5
  %4718 = call ptr @s2n_strerror_debug(i32 noundef %4717, ptr noundef @.str.24)
  %4719 = call ptr @__errno_location() #12
  %4720 = load i32, ptr %4719, align 4, !tbaa !5
  %4721 = call ptr @strerror(i32 noundef %4720) #11
  %4722 = call ptr @__errno_location() #12
  %4723 = load i32, ptr %4722, align 4, !tbaa !5
  %4724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4711, ptr noundef @.str.22, i32 noundef %4712, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 475, ptr noundef %4715, ptr noundef %4718, ptr noundef %4721, i32 noundef %4723) #11
  br label %4742

4725:                                             ; preds = %4703, %4696
  %4726 = load i32, ptr %129, align 4, !tbaa !5
  %4727 = call ptr @__errno_location() #12
  store i32 %4726, ptr %4727, align 4, !tbaa !5
  %4728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4729 = load i32, ptr @test_count, align 4, !tbaa !5
  %4730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4731 = load i32, ptr %4730, align 4, !tbaa !5
  %4732 = call ptr @s2n_strerror(i32 noundef %4731, ptr noundef @.str.24)
  %4733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4734 = load i32, ptr %4733, align 4, !tbaa !5
  %4735 = call ptr @s2n_strerror_debug(i32 noundef %4734, ptr noundef @.str.24)
  %4736 = call ptr @__errno_location() #12
  %4737 = load i32, ptr %4736, align 4, !tbaa !5
  %4738 = call ptr @strerror(i32 noundef %4737) #11
  %4739 = call ptr @__errno_location() #12
  %4740 = load i32, ptr %4739, align 4, !tbaa !5
  %4741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4728, ptr noundef @.str.25, i32 noundef %4729, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 475, ptr noundef %4732, ptr noundef %4735, ptr noundef %4738, i32 noundef %4740) #11
  br label %4742

4742:                                             ; preds = %4725, %4708
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %4743

4743:                                             ; preds = %4742
  br label %4744

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

4745:                                             ; No predecessors!
  br label %4746

4746:                                             ; preds = %4745
  br label %4747

4747:                                             ; preds = %4746, %4688
  br label %4748

4748:                                             ; preds = %4747
  br label %4749

4749:                                             ; preds = %4748
  br label %4750

4750:                                             ; preds = %4749
  %4751 = load i32, ptr @test_count, align 4, !tbaa !5
  %4752 = add nsw i32 %4751, 1
  store i32 %4752, ptr @test_count, align 4, !tbaa !5
  %4753 = call i32 @s2n_setup_handler_to_expect(i32 noundef 11, i8 noundef zeroext 0)
  %4754 = icmp eq i32 %4753, -1
  br i1 %4754, label %4755, label %4808

4755:                                             ; preds = %4750
  br label %4756

4756:                                             ; preds = %4755
  br label %4757

4757:                                             ; preds = %4756
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %4758 = call ptr @__errno_location() #12
  %4759 = load i32, ptr %4758, align 4, !tbaa !5
  store i32 %4759, ptr %130, align 4, !tbaa !5
  %4760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4761 = call i32 @s2n_print_stacktrace(ptr noundef %4760)
  %4762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4763 = trunc i8 %4762 to i1
  br i1 %4763, label %4764, label %4786

4764:                                             ; preds = %4757
  %4765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4766 = call i32 @fileno(ptr noundef %4765) #11
  %4767 = call i32 @isatty(i32 noundef %4766) #11
  %4768 = icmp ne i32 %4767, 0
  br i1 %4768, label %4769, label %4786

4769:                                             ; preds = %4764
  %4770 = load i32, ptr %130, align 4, !tbaa !5
  %4771 = call ptr @__errno_location() #12
  store i32 %4770, ptr %4771, align 4, !tbaa !5
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = load i32, ptr @test_count, align 4, !tbaa !5
  %4774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call ptr @s2n_strerror(i32 noundef %4775, ptr noundef @.str.24)
  %4777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  %4779 = call ptr @s2n_strerror_debug(i32 noundef %4778, ptr noundef @.str.24)
  %4780 = call ptr @__errno_location() #12
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  %4782 = call ptr @strerror(i32 noundef %4781) #11
  %4783 = call ptr @__errno_location() #12
  %4784 = load i32, ptr %4783, align 4, !tbaa !5
  %4785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4772, ptr noundef @.str.22, i32 noundef %4773, ptr noundef @.str.64, ptr noundef @.str.21, i32 noundef 477, ptr noundef %4776, ptr noundef %4779, ptr noundef %4782, i32 noundef %4784) #11
  br label %4803

4786:                                             ; preds = %4764, %4757
  %4787 = load i32, ptr %130, align 4, !tbaa !5
  %4788 = call ptr @__errno_location() #12
  store i32 %4787, ptr %4788, align 4, !tbaa !5
  %4789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4790 = load i32, ptr @test_count, align 4, !tbaa !5
  %4791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4792 = load i32, ptr %4791, align 4, !tbaa !5
  %4793 = call ptr @s2n_strerror(i32 noundef %4792, ptr noundef @.str.24)
  %4794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4795 = load i32, ptr %4794, align 4, !tbaa !5
  %4796 = call ptr @s2n_strerror_debug(i32 noundef %4795, ptr noundef @.str.24)
  %4797 = call ptr @__errno_location() #12
  %4798 = load i32, ptr %4797, align 4, !tbaa !5
  %4799 = call ptr @strerror(i32 noundef %4798) #11
  %4800 = call ptr @__errno_location() #12
  %4801 = load i32, ptr %4800, align 4, !tbaa !5
  %4802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4789, ptr noundef @.str.25, i32 noundef %4790, ptr noundef @.str.64, ptr noundef @.str.21, i32 noundef 477, ptr noundef %4793, ptr noundef %4796, ptr noundef %4799, i32 noundef %4801) #11
  br label %4803

4803:                                             ; preds = %4786, %4769
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %4804

4804:                                             ; preds = %4803
  br label %4805

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

4806:                                             ; No predecessors!
  br label %4807

4807:                                             ; preds = %4806
  br label %4808

4808:                                             ; preds = %4807, %4750
  br label %4809

4809:                                             ; preds = %4808
  br label %4810

4810:                                             ; preds = %4809
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  store i32 0, ptr %131, align 4, !tbaa !5
  br label %4811

4811:                                             ; preds = %5289, %4810
  %4812 = load i32, ptr %131, align 4, !tbaa !5
  %4813 = load i32, ptr %11, align 4, !tbaa !5
  %4814 = icmp slt i32 %4812, %4813
  br i1 %4814, label %4816, label %4815

4815:                                             ; preds = %4811
  store i32 437, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %5292

4816:                                             ; preds = %4811
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %4817 = load i32, ptr %131, align 4, !tbaa !5
  %4818 = sext i32 %4817 to i64
  %4819 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %4818
  %4820 = load i16, ptr %4819, align 2, !tbaa !15
  %4821 = zext i16 %4820 to i32
  store i32 %4821, ptr %132, align 4, !tbaa !5
  %4822 = load i32, ptr %132, align 4, !tbaa !5
  %4823 = load ptr, ptr %124, align 8, !tbaa !9
  %4824 = getelementptr inbounds %struct.s2n_connection, ptr %4823, i32 0, i32 52
  %4825 = getelementptr inbounds %struct.s2n_handshake, ptr %4824, i32 0, i32 6
  store i32 %4822, ptr %4825, align 4, !tbaa !60
  %4826 = load ptr, ptr %124, align 8, !tbaa !9
  %4827 = getelementptr inbounds %struct.s2n_connection, ptr %4826, i32 0, i32 42
  store i32 0, ptr %4827, align 8, !tbaa !70
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #11
  store i32 1, ptr %133, align 4, !tbaa !5
  br label %4828

4828:                                             ; preds = %5285, %4816
  %4829 = load i32, ptr %133, align 4, !tbaa !5
  %4830 = icmp slt i32 %4829, 32
  br i1 %4830, label %4832, label %4831

4831:                                             ; preds = %4828
  store i32 440, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %5288

4832:                                             ; preds = %4828
  %4833 = load i32, ptr %133, align 4, !tbaa !5
  %4834 = load ptr, ptr %124, align 8, !tbaa !9
  %4835 = getelementptr inbounds %struct.s2n_connection, ptr %4834, i32 0, i32 52
  %4836 = getelementptr inbounds %struct.s2n_handshake, ptr %4835, i32 0, i32 7
  store i32 %4833, ptr %4836, align 8, !tbaa !61
  br label %4837

4837:                                             ; preds = %4832
  %4838 = load i32, ptr @test_count, align 4, !tbaa !5
  %4839 = add nsw i32 %4838, 1
  store i32 %4839, ptr @test_count, align 4, !tbaa !5
  %4840 = call i32 @s2n_test_write_header(ptr noundef %127, i8 noundef zeroext 20, i8 noundef zeroext 0)
  %4841 = icmp eq i32 %4840, -1
  br i1 %4841, label %4842, label %4895

4842:                                             ; preds = %4837
  br label %4843

4843:                                             ; preds = %4842
  br label %4844

4844:                                             ; preds = %4843
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %4845 = call ptr @__errno_location() #12
  %4846 = load i32, ptr %4845, align 4, !tbaa !5
  store i32 %4846, ptr %134, align 4, !tbaa !5
  %4847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4848 = call i32 @s2n_print_stacktrace(ptr noundef %4847)
  %4849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4850 = trunc i8 %4849 to i1
  br i1 %4850, label %4851, label %4873

4851:                                             ; preds = %4844
  %4852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4853 = call i32 @fileno(ptr noundef %4852) #11
  %4854 = call i32 @isatty(i32 noundef %4853) #11
  %4855 = icmp ne i32 %4854, 0
  br i1 %4855, label %4856, label %4873

4856:                                             ; preds = %4851
  %4857 = load i32, ptr %134, align 4, !tbaa !5
  %4858 = call ptr @__errno_location() #12
  store i32 %4857, ptr %4858, align 4, !tbaa !5
  %4859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4860 = load i32, ptr @test_count, align 4, !tbaa !5
  %4861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4862 = load i32, ptr %4861, align 4, !tbaa !5
  %4863 = call ptr @s2n_strerror(i32 noundef %4862, ptr noundef @.str.24)
  %4864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  %4866 = call ptr @s2n_strerror_debug(i32 noundef %4865, ptr noundef @.str.24)
  %4867 = call ptr @__errno_location() #12
  %4868 = load i32, ptr %4867, align 4, !tbaa !5
  %4869 = call ptr @strerror(i32 noundef %4868) #11
  %4870 = call ptr @__errno_location() #12
  %4871 = load i32, ptr %4870, align 4, !tbaa !5
  %4872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4859, ptr noundef @.str.22, i32 noundef %4860, ptr noundef @.str.58, ptr noundef @.str.21, i32 noundef 488, ptr noundef %4863, ptr noundef %4866, ptr noundef %4869, i32 noundef %4871) #11
  br label %4890

4873:                                             ; preds = %4851, %4844
  %4874 = load i32, ptr %134, align 4, !tbaa !5
  %4875 = call ptr @__errno_location() #12
  store i32 %4874, ptr %4875, align 4, !tbaa !5
  %4876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4877 = load i32, ptr @test_count, align 4, !tbaa !5
  %4878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call ptr @s2n_strerror(i32 noundef %4879, ptr noundef @.str.24)
  %4881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call ptr @s2n_strerror_debug(i32 noundef %4882, ptr noundef @.str.24)
  %4884 = call ptr @__errno_location() #12
  %4885 = load i32, ptr %4884, align 4, !tbaa !5
  %4886 = call ptr @strerror(i32 noundef %4885) #11
  %4887 = call ptr @__errno_location() #12
  %4888 = load i32, ptr %4887, align 4, !tbaa !5
  %4889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4876, ptr noundef @.str.25, i32 noundef %4877, ptr noundef @.str.58, ptr noundef @.str.21, i32 noundef 488, ptr noundef %4880, ptr noundef %4883, ptr noundef %4886, i32 noundef %4888) #11
  br label %4890

4890:                                             ; preds = %4873, %4856
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %4891

4891:                                             ; preds = %4890
  br label %4892

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

4893:                                             ; No predecessors!
  br label %4894

4894:                                             ; preds = %4893
  br label %4895

4895:                                             ; preds = %4894, %4837
  br label %4896

4896:                                             ; preds = %4895
  br label %4897

4897:                                             ; preds = %4896
  br label %4898

4898:                                             ; preds = %4897
  %4899 = load i32, ptr @test_count, align 4, !tbaa !5
  %4900 = add nsw i32 %4899, 1
  store i32 %4900, ptr @test_count, align 4, !tbaa !5
  %4901 = load ptr, ptr %124, align 8, !tbaa !9
  %4902 = call i32 @s2n_handshake_read_io(ptr noundef %4901)
  %4903 = icmp eq i32 %4902, -1
  br i1 %4903, label %4904, label %4957

4904:                                             ; preds = %4898
  br label %4905

4905:                                             ; preds = %4904
  br label %4906

4906:                                             ; preds = %4905
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %4907 = call ptr @__errno_location() #12
  %4908 = load i32, ptr %4907, align 4, !tbaa !5
  store i32 %4908, ptr %135, align 4, !tbaa !5
  %4909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4910 = call i32 @s2n_print_stacktrace(ptr noundef %4909)
  %4911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4912 = trunc i8 %4911 to i1
  br i1 %4912, label %4913, label %4935

4913:                                             ; preds = %4906
  %4914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4915 = call i32 @fileno(ptr noundef %4914) #11
  %4916 = call i32 @isatty(i32 noundef %4915) #11
  %4917 = icmp ne i32 %4916, 0
  br i1 %4917, label %4918, label %4935

4918:                                             ; preds = %4913
  %4919 = load i32, ptr %135, align 4, !tbaa !5
  %4920 = call ptr @__errno_location() #12
  store i32 %4919, ptr %4920, align 4, !tbaa !5
  %4921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4922 = load i32, ptr @test_count, align 4, !tbaa !5
  %4923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror(i32 noundef %4924, ptr noundef @.str.24)
  %4926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call ptr @s2n_strerror_debug(i32 noundef %4927, ptr noundef @.str.24)
  %4929 = call ptr @__errno_location() #12
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call ptr @strerror(i32 noundef %4930) #11
  %4932 = call ptr @__errno_location() #12
  %4933 = load i32, ptr %4932, align 4, !tbaa !5
  %4934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4921, ptr noundef @.str.22, i32 noundef %4922, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 490, ptr noundef %4925, ptr noundef %4928, ptr noundef %4931, i32 noundef %4933) #11
  br label %4952

4935:                                             ; preds = %4913, %4906
  %4936 = load i32, ptr %135, align 4, !tbaa !5
  %4937 = call ptr @__errno_location() #12
  store i32 %4936, ptr %4937, align 4, !tbaa !5
  %4938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4939 = load i32, ptr @test_count, align 4, !tbaa !5
  %4940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4941 = load i32, ptr %4940, align 4, !tbaa !5
  %4942 = call ptr @s2n_strerror(i32 noundef %4941, ptr noundef @.str.24)
  %4943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4944 = load i32, ptr %4943, align 4, !tbaa !5
  %4945 = call ptr @s2n_strerror_debug(i32 noundef %4944, ptr noundef @.str.24)
  %4946 = call ptr @__errno_location() #12
  %4947 = load i32, ptr %4946, align 4, !tbaa !5
  %4948 = call ptr @strerror(i32 noundef %4947) #11
  %4949 = call ptr @__errno_location() #12
  %4950 = load i32, ptr %4949, align 4, !tbaa !5
  %4951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4938, ptr noundef @.str.25, i32 noundef %4939, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 490, ptr noundef %4942, ptr noundef %4945, ptr noundef %4948, i32 noundef %4950) #11
  br label %4952

4952:                                             ; preds = %4935, %4918
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %4953

4953:                                             ; preds = %4952
  br label %4954

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

4955:                                             ; No predecessors!
  br label %4956

4956:                                             ; preds = %4955
  br label %4957

4957:                                             ; preds = %4956, %4898
  br label %4958

4958:                                             ; preds = %4957
  br label %4959

4959:                                             ; preds = %4958
  %4960 = load i32, ptr %132, align 4, !tbaa !5
  %4961 = sext i32 %4960 to i64
  %4962 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %4961
  %4963 = load i32, ptr %133, align 4, !tbaa !5
  %4964 = sext i32 %4963 to i64
  %4965 = getelementptr inbounds [32 x i32], ptr %4962, i64 0, i64 %4964
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  %4967 = icmp eq i32 %4966, 11
  br i1 %4967, label %4968, label %5035

4968:                                             ; preds = %4959
  br label %4969

4969:                                             ; preds = %4968
  %4970 = load i32, ptr @test_count, align 4, !tbaa !5
  %4971 = add nsw i32 %4970, 1
  store i32 %4971, ptr @test_count, align 4, !tbaa !5
  %4972 = load ptr, ptr %124, align 8, !tbaa !9
  %4973 = getelementptr inbounds %struct.s2n_connection, ptr %4972, i32 0, i32 52
  %4974 = getelementptr inbounds %struct.s2n_handshake, ptr %4973, i32 0, i32 7
  %4975 = load i32, ptr %4974, align 8, !tbaa !61
  %4976 = load i32, ptr %133, align 4, !tbaa !5
  %4977 = add nsw i32 %4976, 1
  %4978 = icmp eq i32 %4975, %4977
  br i1 %4978, label %5032, label %4979

4979:                                             ; preds = %4969
  br label %4980

4980:                                             ; preds = %4979
  br label %4981

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

4988:                                             ; preds = %4981
  %4989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4990 = call i32 @fileno(ptr noundef %4989) #11
  %4991 = call i32 @isatty(i32 noundef %4990) #11
  %4992 = icmp ne i32 %4991, 0
  br i1 %4992, label %4993, label %5010

4993:                                             ; preds = %4988
  %4994 = load i32, ptr %136, align 4, !tbaa !5
  %4995 = call ptr @__errno_location() #12
  store i32 %4994, ptr %4995, align 4, !tbaa !5
  %4996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4997 = load i32, ptr @test_count, align 4, !tbaa !5
  %4998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4999 = load i32, ptr %4998, align 4, !tbaa !5
  %5000 = call ptr @s2n_strerror(i32 noundef %4999, ptr noundef @.str.24)
  %5001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5002 = load i32, ptr %5001, align 4, !tbaa !5
  %5003 = call ptr @s2n_strerror_debug(i32 noundef %5002, ptr noundef @.str.24)
  %5004 = call ptr @__errno_location() #12
  %5005 = load i32, ptr %5004, align 4, !tbaa !5
  %5006 = call ptr @strerror(i32 noundef %5005) #11
  %5007 = call ptr @__errno_location() #12
  %5008 = load i32, ptr %5007, align 4, !tbaa !5
  %5009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4996, ptr noundef @.str.22, i32 noundef %4997, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 493, ptr noundef %5000, ptr noundef %5003, ptr noundef %5006, i32 noundef %5008) #11
  br label %5027

5010:                                             ; preds = %4988, %4981
  %5011 = load i32, ptr %136, align 4, !tbaa !5
  %5012 = call ptr @__errno_location() #12
  store i32 %5011, ptr %5012, align 4, !tbaa !5
  %5013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5014 = load i32, ptr @test_count, align 4, !tbaa !5
  %5015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5016 = load i32, ptr %5015, align 4, !tbaa !5
  %5017 = call ptr @s2n_strerror(i32 noundef %5016, ptr noundef @.str.24)
  %5018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5019 = load i32, ptr %5018, align 4, !tbaa !5
  %5020 = call ptr @s2n_strerror_debug(i32 noundef %5019, ptr noundef @.str.24)
  %5021 = call ptr @__errno_location() #12
  %5022 = load i32, ptr %5021, align 4, !tbaa !5
  %5023 = call ptr @strerror(i32 noundef %5022) #11
  %5024 = call ptr @__errno_location() #12
  %5025 = load i32, ptr %5024, align 4, !tbaa !5
  %5026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5013, ptr noundef @.str.25, i32 noundef %5014, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 493, ptr noundef %5017, ptr noundef %5020, ptr noundef %5023, i32 noundef %5025) #11
  br label %5027

5027:                                             ; preds = %5010, %4993
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %5028

5028:                                             ; preds = %5027
  br label %5029

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

5030:                                             ; No predecessors!
  br label %5031

5031:                                             ; preds = %5030
  br label %5032

5032:                                             ; preds = %5031, %4969
  br label %5033

5033:                                             ; preds = %5032
  br label %5034

5034:                                             ; preds = %5033
  br label %5101

5035:                                             ; preds = %4959
  br label %5036

5036:                                             ; preds = %5035
  %5037 = load i32, ptr @test_count, align 4, !tbaa !5
  %5038 = add nsw i32 %5037, 1
  store i32 %5038, ptr @test_count, align 4, !tbaa !5
  %5039 = load ptr, ptr %124, align 8, !tbaa !9
  %5040 = getelementptr inbounds %struct.s2n_connection, ptr %5039, i32 0, i32 52
  %5041 = getelementptr inbounds %struct.s2n_handshake, ptr %5040, i32 0, i32 7
  %5042 = load i32, ptr %5041, align 8, !tbaa !61
  %5043 = load i32, ptr %133, align 4, !tbaa !5
  %5044 = icmp eq i32 %5042, %5043
  br i1 %5044, label %5098, label %5045

5045:                                             ; preds = %5036
  br label %5046

5046:                                             ; preds = %5045
  br label %5047

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

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

5059:                                             ; preds = %5054
  %5060 = load i32, ptr %137, align 4, !tbaa !5
  %5061 = call ptr @__errno_location() #12
  store i32 %5060, ptr %5061, align 4, !tbaa !5
  %5062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5063 = load i32, ptr @test_count, align 4, !tbaa !5
  %5064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5065 = load i32, ptr %5064, align 4, !tbaa !5
  %5066 = call ptr @s2n_strerror(i32 noundef %5065, ptr noundef @.str.24)
  %5067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5068 = load i32, ptr %5067, align 4, !tbaa !5
  %5069 = call ptr @s2n_strerror_debug(i32 noundef %5068, ptr noundef @.str.24)
  %5070 = call ptr @__errno_location() #12
  %5071 = load i32, ptr %5070, align 4, !tbaa !5
  %5072 = call ptr @strerror(i32 noundef %5071) #11
  %5073 = call ptr @__errno_location() #12
  %5074 = load i32, ptr %5073, align 4, !tbaa !5
  %5075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5062, ptr noundef @.str.22, i32 noundef %5063, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 495, ptr noundef %5066, ptr noundef %5069, ptr noundef %5072, i32 noundef %5074) #11
  br label %5093

5076:                                             ; preds = %5054, %5047
  %5077 = load i32, ptr %137, align 4, !tbaa !5
  %5078 = call ptr @__errno_location() #12
  store i32 %5077, ptr %5078, align 4, !tbaa !5
  %5079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5080 = load i32, ptr @test_count, align 4, !tbaa !5
  %5081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5082 = load i32, ptr %5081, align 4, !tbaa !5
  %5083 = call ptr @s2n_strerror(i32 noundef %5082, ptr noundef @.str.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() #12
  %5088 = load i32, ptr %5087, align 4, !tbaa !5
  %5089 = call ptr @strerror(i32 noundef %5088) #11
  %5090 = call ptr @__errno_location() #12
  %5091 = load i32, ptr %5090, align 4, !tbaa !5
  %5092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5079, ptr noundef @.str.25, i32 noundef %5080, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 495, ptr noundef %5083, ptr noundef %5086, ptr noundef %5089, i32 noundef %5091) #11
  br label %5093

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

5094:                                             ; preds = %5093
  br label %5095

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

5096:                                             ; No predecessors!
  br label %5097

5097:                                             ; preds = %5096
  br label %5098

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

5099:                                             ; preds = %5098
  br label %5100

5100:                                             ; preds = %5099
  br label %5101

5101:                                             ; preds = %5100, %5034
  br label %5102

5102:                                             ; preds = %5101
  %5103 = load i32, ptr @test_count, align 4, !tbaa !5
  %5104 = add nsw i32 %5103, 1
  store i32 %5104, ptr @test_count, align 4, !tbaa !5
  %5105 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %5106 = icmp ne i32 %5105, 0
  br i1 %5106, label %5107, label %5160

5107:                                             ; preds = %5102
  br label %5108

5108:                                             ; preds = %5107
  br label %5109

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

5116:                                             ; preds = %5109
  %5117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5118 = call i32 @fileno(ptr noundef %5117) #11
  %5119 = call i32 @isatty(i32 noundef %5118) #11
  %5120 = icmp ne i32 %5119, 0
  br i1 %5120, label %5121, label %5138

5121:                                             ; preds = %5116
  %5122 = load i32, ptr %138, align 4, !tbaa !5
  %5123 = call ptr @__errno_location() #12
  store i32 %5122, ptr %5123, align 4, !tbaa !5
  %5124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5125 = load i32, ptr @test_count, align 4, !tbaa !5
  %5126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5127 = load i32, ptr %5126, align 4, !tbaa !5
  %5128 = call ptr @s2n_strerror(i32 noundef %5127, ptr noundef @.str.24)
  %5129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5130 = load i32, ptr %5129, align 4, !tbaa !5
  %5131 = call ptr @s2n_strerror_debug(i32 noundef %5130, ptr noundef @.str.24)
  %5132 = call ptr @__errno_location() #12
  %5133 = load i32, ptr %5132, align 4, !tbaa !5
  %5134 = call ptr @strerror(i32 noundef %5133) #11
  %5135 = call ptr @__errno_location() #12
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  %5137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5124, ptr noundef @.str.22, i32 noundef %5125, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 498, ptr noundef %5128, ptr noundef %5131, ptr noundef %5134, i32 noundef %5136) #11
  br label %5155

5138:                                             ; preds = %5116, %5109
  %5139 = load i32, ptr %138, align 4, !tbaa !5
  %5140 = call ptr @__errno_location() #12
  store i32 %5139, ptr %5140, align 4, !tbaa !5
  %5141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5142 = load i32, ptr @test_count, align 4, !tbaa !5
  %5143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5144 = load i32, ptr %5143, align 4, !tbaa !5
  %5145 = call ptr @s2n_strerror(i32 noundef %5144, ptr noundef @.str.24)
  %5146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5147 = load i32, ptr %5146, align 4, !tbaa !5
  %5148 = call ptr @s2n_strerror_debug(i32 noundef %5147, ptr noundef @.str.24)
  %5149 = call ptr @__errno_location() #12
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call ptr @strerror(i32 noundef %5150) #11
  %5152 = call ptr @__errno_location() #12
  %5153 = load i32, ptr %5152, align 4, !tbaa !5
  %5154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5141, ptr noundef @.str.25, i32 noundef %5142, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 498, ptr noundef %5145, ptr noundef %5148, ptr noundef %5151, i32 noundef %5153) #11
  br label %5155

5155:                                             ; preds = %5138, %5121
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %5156

5156:                                             ; preds = %5155
  br label %5157

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

5158:                                             ; No predecessors!
  br label %5159

5159:                                             ; preds = %5158
  br label %5160

5160:                                             ; preds = %5159, %5102
  br label %5161

5161:                                             ; preds = %5160
  br label %5162

5162:                                             ; preds = %5161
  br label %5163

5163:                                             ; preds = %5162
  %5164 = load i32, ptr @test_count, align 4, !tbaa !5
  %5165 = add nsw i32 %5164, 1
  store i32 %5165, ptr @test_count, align 4, !tbaa !5
  %5166 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %5167 = icmp ne i32 %5166, 0
  br i1 %5167, label %5221, label %5168

5168:                                             ; preds = %5163
  br label %5169

5169:                                             ; preds = %5168
  br label %5170

5170:                                             ; preds = %5169
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %5171 = call ptr @__errno_location() #12
  %5172 = load i32, ptr %5171, align 4, !tbaa !5
  store i32 %5172, ptr %139, align 4, !tbaa !5
  %5173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5174 = call i32 @s2n_print_stacktrace(ptr noundef %5173)
  %5175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5176 = trunc i8 %5175 to i1
  br i1 %5176, label %5177, label %5199

5177:                                             ; preds = %5170
  %5178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5179 = call i32 @fileno(ptr noundef %5178) #11
  %5180 = call i32 @isatty(i32 noundef %5179) #11
  %5181 = icmp ne i32 %5180, 0
  br i1 %5181, label %5182, label %5199

5182:                                             ; preds = %5177
  %5183 = load i32, ptr %139, align 4, !tbaa !5
  %5184 = call ptr @__errno_location() #12
  store i32 %5183, ptr %5184, align 4, !tbaa !5
  %5185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5186 = load i32, ptr @test_count, align 4, !tbaa !5
  %5187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5188 = load i32, ptr %5187, align 4, !tbaa !5
  %5189 = call ptr @s2n_strerror(i32 noundef %5188, ptr noundef @.str.24)
  %5190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call ptr @s2n_strerror_debug(i32 noundef %5191, ptr noundef @.str.24)
  %5193 = call ptr @__errno_location() #12
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call ptr @strerror(i32 noundef %5194) #11
  %5196 = call ptr @__errno_location() #12
  %5197 = load i32, ptr %5196, align 4, !tbaa !5
  %5198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5185, ptr noundef @.str.22, i32 noundef %5186, ptr noundef @.str.61, ptr noundef @.str.21, i32 noundef 499, ptr noundef %5189, ptr noundef %5192, ptr noundef %5195, i32 noundef %5197) #11
  br label %5216

5199:                                             ; preds = %5177, %5170
  %5200 = load i32, ptr %139, align 4, !tbaa !5
  %5201 = call ptr @__errno_location() #12
  store i32 %5200, ptr %5201, align 4, !tbaa !5
  %5202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5203 = load i32, ptr @test_count, align 4, !tbaa !5
  %5204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5205 = load i32, ptr %5204, align 4, !tbaa !5
  %5206 = call ptr @s2n_strerror(i32 noundef %5205, ptr noundef @.str.24)
  %5207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5208 = load i32, ptr %5207, align 4, !tbaa !5
  %5209 = call ptr @s2n_strerror_debug(i32 noundef %5208, ptr noundef @.str.24)
  %5210 = call ptr @__errno_location() #12
  %5211 = load i32, ptr %5210, align 4, !tbaa !5
  %5212 = call ptr @strerror(i32 noundef %5211) #11
  %5213 = call ptr @__errno_location() #12
  %5214 = load i32, ptr %5213, align 4, !tbaa !5
  %5215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5202, ptr noundef @.str.25, i32 noundef %5203, ptr noundef @.str.61, ptr noundef @.str.21, i32 noundef 499, ptr noundef %5206, ptr noundef %5209, ptr noundef %5212, i32 noundef %5214) #11
  br label %5216

5216:                                             ; preds = %5199, %5182
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %5217

5217:                                             ; preds = %5216
  br label %5218

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

5219:                                             ; No predecessors!
  br label %5220

5220:                                             ; preds = %5219
  br label %5221

5221:                                             ; preds = %5220, %5163
  br label %5222

5222:                                             ; preds = %5221
  br label %5223

5223:                                             ; preds = %5222
  br label %5224

5224:                                             ; preds = %5223
  %5225 = load i32, ptr @test_count, align 4, !tbaa !5
  %5226 = add nsw i32 %5225, 1
  store i32 %5226, ptr @test_count, align 4, !tbaa !5
  %5227 = call i32 @s2n_stuffer_wipe(ptr noundef %127)
  %5228 = icmp eq i32 %5227, -1
  br i1 %5228, label %5229, label %5282

5229:                                             ; preds = %5224
  br label %5230

5230:                                             ; preds = %5229
  br label %5231

5231:                                             ; preds = %5230
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %5232 = call ptr @__errno_location() #12
  %5233 = load i32, ptr %5232, align 4, !tbaa !5
  store i32 %5233, ptr %140, align 4, !tbaa !5
  %5234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5235 = call i32 @s2n_print_stacktrace(ptr noundef %5234)
  %5236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5237 = trunc i8 %5236 to i1
  br i1 %5237, label %5238, label %5260

5238:                                             ; preds = %5231
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = call i32 @fileno(ptr noundef %5239) #11
  %5241 = call i32 @isatty(i32 noundef %5240) #11
  %5242 = icmp ne i32 %5241, 0
  br i1 %5242, label %5243, label %5260

5243:                                             ; preds = %5238
  %5244 = load i32, ptr %140, align 4, !tbaa !5
  %5245 = call ptr @__errno_location() #12
  store i32 %5244, ptr %5245, align 4, !tbaa !5
  %5246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5247 = load i32, ptr @test_count, align 4, !tbaa !5
  %5248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5249 = load i32, ptr %5248, align 4, !tbaa !5
  %5250 = call ptr @s2n_strerror(i32 noundef %5249, ptr noundef @.str.24)
  %5251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  %5253 = call ptr @s2n_strerror_debug(i32 noundef %5252, ptr noundef @.str.24)
  %5254 = call ptr @__errno_location() #12
  %5255 = load i32, ptr %5254, align 4, !tbaa !5
  %5256 = call ptr @strerror(i32 noundef %5255) #11
  %5257 = call ptr @__errno_location() #12
  %5258 = load i32, ptr %5257, align 4, !tbaa !5
  %5259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5246, ptr noundef @.str.22, i32 noundef %5247, ptr noundef @.str.62, ptr noundef @.str.21, i32 noundef 501, ptr noundef %5250, ptr noundef %5253, ptr noundef %5256, i32 noundef %5258) #11
  br label %5277

5260:                                             ; preds = %5238, %5231
  %5261 = load i32, ptr %140, align 4, !tbaa !5
  %5262 = call ptr @__errno_location() #12
  store i32 %5261, ptr %5262, align 4, !tbaa !5
  %5263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5264 = load i32, ptr @test_count, align 4, !tbaa !5
  %5265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @s2n_strerror(i32 noundef %5266, ptr noundef @.str.24)
  %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_debug(i32 noundef %5269, ptr noundef @.str.24)
  %5271 = call ptr @__errno_location() #12
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call ptr @strerror(i32 noundef %5272) #11
  %5274 = call ptr @__errno_location() #12
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5263, ptr noundef @.str.25, i32 noundef %5264, ptr noundef @.str.62, ptr noundef @.str.21, i32 noundef 501, ptr noundef %5267, ptr noundef %5270, ptr noundef %5273, i32 noundef %5275) #11
  br label %5277

5277:                                             ; preds = %5260, %5243
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %5278

5278:                                             ; preds = %5277
  br label %5279

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

5280:                                             ; No predecessors!
  br label %5281

5281:                                             ; preds = %5280
  br label %5282

5282:                                             ; preds = %5281, %5224
  br label %5283

5283:                                             ; preds = %5282
  br label %5284

5284:                                             ; preds = %5283
  br label %5285

5285:                                             ; preds = %5284
  %5286 = load i32, ptr %133, align 4, !tbaa !5
  %5287 = add nsw i32 %5286, 1
  store i32 %5287, ptr %133, align 4, !tbaa !5
  br label %4828, !llvm.loop !73

5288:                                             ; preds = %4831
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %5289

5289:                                             ; preds = %5288
  %5290 = load i32, ptr %131, align 4, !tbaa !5
  %5291 = add nsw i32 %5290, 1
  store i32 %5291, ptr %131, align 4, !tbaa !5
  br label %4811, !llvm.loop !74

5292:                                             ; preds = %4815
  br label %5293

5293:                                             ; preds = %5292
  %5294 = load i32, ptr @test_count, align 4, !tbaa !5
  %5295 = add nsw i32 %5294, 1
  store i32 %5295, ptr @test_count, align 4, !tbaa !5
  %5296 = call i32 @s2n_stuffer_free(ptr noundef %127)
  %5297 = icmp eq i32 %5296, -1
  br i1 %5297, label %5298, label %5351

5298:                                             ; preds = %5293
  br label %5299

5299:                                             ; preds = %5298
  br label %5300

5300:                                             ; preds = %5299
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %5301 = call ptr @__errno_location() #12
  %5302 = load i32, ptr %5301, align 4, !tbaa !5
  store i32 %5302, ptr %141, align 4, !tbaa !5
  %5303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5304 = call i32 @s2n_print_stacktrace(ptr noundef %5303)
  %5305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5306 = trunc i8 %5305 to i1
  br i1 %5306, label %5307, label %5329

5307:                                             ; preds = %5300
  %5308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5309 = call i32 @fileno(ptr noundef %5308) #11
  %5310 = call i32 @isatty(i32 noundef %5309) #11
  %5311 = icmp ne i32 %5310, 0
  br i1 %5311, label %5312, label %5329

5312:                                             ; preds = %5307
  %5313 = load i32, ptr %141, align 4, !tbaa !5
  %5314 = call ptr @__errno_location() #12
  store i32 %5313, ptr %5314, align 4, !tbaa !5
  %5315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5316 = load i32, ptr @test_count, align 4, !tbaa !5
  %5317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5318 = load i32, ptr %5317, align 4, !tbaa !5
  %5319 = call ptr @s2n_strerror(i32 noundef %5318, ptr noundef @.str.24)
  %5320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5321 = load i32, ptr %5320, align 4, !tbaa !5
  %5322 = call ptr @s2n_strerror_debug(i32 noundef %5321, ptr noundef @.str.24)
  %5323 = call ptr @__errno_location() #12
  %5324 = load i32, ptr %5323, align 4, !tbaa !5
  %5325 = call ptr @strerror(i32 noundef %5324) #11
  %5326 = call ptr @__errno_location() #12
  %5327 = load i32, ptr %5326, align 4, !tbaa !5
  %5328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5315, ptr noundef @.str.22, i32 noundef %5316, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 505, ptr noundef %5319, ptr noundef %5322, ptr noundef %5325, i32 noundef %5327) #11
  br label %5346

5329:                                             ; preds = %5307, %5300
  %5330 = load i32, ptr %141, align 4, !tbaa !5
  %5331 = call ptr @__errno_location() #12
  store i32 %5330, ptr %5331, align 4, !tbaa !5
  %5332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5333 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5335, ptr noundef @.str.24)
  %5337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5338 = load i32, ptr %5337, align 4, !tbaa !5
  %5339 = call ptr @s2n_strerror_debug(i32 noundef %5338, ptr noundef @.str.24)
  %5340 = call ptr @__errno_location() #12
  %5341 = load i32, ptr %5340, align 4, !tbaa !5
  %5342 = call ptr @strerror(i32 noundef %5341) #11
  %5343 = call ptr @__errno_location() #12
  %5344 = load i32, ptr %5343, align 4, !tbaa !5
  %5345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5332, ptr noundef @.str.25, i32 noundef %5333, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 505, ptr noundef %5336, ptr noundef %5339, ptr noundef %5342, i32 noundef %5344) #11
  br label %5346

5346:                                             ; preds = %5329, %5312
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %5347

5347:                                             ; preds = %5346
  br label %5348

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

5349:                                             ; No predecessors!
  br label %5350

5350:                                             ; preds = %5349
  br label %5351

5351:                                             ; preds = %5350, %5293
  br label %5352

5352:                                             ; preds = %5351
  br label %5353

5353:                                             ; preds = %5352
  br label %5354

5354:                                             ; preds = %5353
  %5355 = load i32, ptr @test_count, align 4, !tbaa !5
  %5356 = add nsw i32 %5355, 1
  store i32 %5356, ptr @test_count, align 4, !tbaa !5
  %5357 = load ptr, ptr %124, align 8, !tbaa !9
  %5358 = call i32 @s2n_connection_free(ptr noundef %5357)
  %5359 = icmp eq i32 %5358, -1
  br i1 %5359, label %5360, label %5413

5360:                                             ; preds = %5354
  br label %5361

5361:                                             ; preds = %5360
  br label %5362

5362:                                             ; preds = %5361
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %5363 = call ptr @__errno_location() #12
  %5364 = load i32, ptr %5363, align 4, !tbaa !5
  store i32 %5364, ptr %142, align 4, !tbaa !5
  %5365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5366 = call i32 @s2n_print_stacktrace(ptr noundef %5365)
  %5367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5368 = trunc i8 %5367 to i1
  br i1 %5368, label %5369, label %5391

5369:                                             ; preds = %5362
  %5370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5371 = call i32 @fileno(ptr noundef %5370) #11
  %5372 = call i32 @isatty(i32 noundef %5371) #11
  %5373 = icmp ne i32 %5372, 0
  br i1 %5373, label %5374, label %5391

5374:                                             ; preds = %5369
  %5375 = load i32, ptr %142, align 4, !tbaa !5
  %5376 = call ptr @__errno_location() #12
  store i32 %5375, ptr %5376, align 4, !tbaa !5
  %5377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5378 = load i32, ptr @test_count, align 4, !tbaa !5
  %5379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5380 = load i32, ptr %5379, align 4, !tbaa !5
  %5381 = call ptr @s2n_strerror(i32 noundef %5380, ptr noundef @.str.24)
  %5382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5383 = load i32, ptr %5382, align 4, !tbaa !5
  %5384 = call ptr @s2n_strerror_debug(i32 noundef %5383, ptr noundef @.str.24)
  %5385 = call ptr @__errno_location() #12
  %5386 = load i32, ptr %5385, align 4, !tbaa !5
  %5387 = call ptr @strerror(i32 noundef %5386) #11
  %5388 = call ptr @__errno_location() #12
  %5389 = load i32, ptr %5388, align 4, !tbaa !5
  %5390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5377, ptr noundef @.str.22, i32 noundef %5378, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 506, ptr noundef %5381, ptr noundef %5384, ptr noundef %5387, i32 noundef %5389) #11
  br label %5408

5391:                                             ; preds = %5369, %5362
  %5392 = load i32, ptr %142, align 4, !tbaa !5
  %5393 = call ptr @__errno_location() #12
  store i32 %5392, ptr %5393, align 4, !tbaa !5
  %5394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5395 = load i32, ptr @test_count, align 4, !tbaa !5
  %5396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5397 = load i32, ptr %5396, align 4, !tbaa !5
  %5398 = call ptr @s2n_strerror(i32 noundef %5397, ptr noundef @.str.24)
  %5399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5400 = load i32, ptr %5399, align 4, !tbaa !5
  %5401 = call ptr @s2n_strerror_debug(i32 noundef %5400, ptr noundef @.str.24)
  %5402 = call ptr @__errno_location() #12
  %5403 = load i32, ptr %5402, align 4, !tbaa !5
  %5404 = call ptr @strerror(i32 noundef %5403) #11
  %5405 = call ptr @__errno_location() #12
  %5406 = load i32, ptr %5405, align 4, !tbaa !5
  %5407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5394, ptr noundef @.str.25, i32 noundef %5395, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 506, ptr noundef %5398, ptr noundef %5401, ptr noundef %5404, i32 noundef %5406) #11
  br label %5408

5408:                                             ; preds = %5391, %5374
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %5409

5409:                                             ; preds = %5408
  br label %5410

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

5411:                                             ; No predecessors!
  br label %5412

5412:                                             ; preds = %5411
  br label %5413

5413:                                             ; preds = %5412, %5354
  br label %5414

5414:                                             ; preds = %5413
  br label %5415

5415:                                             ; preds = %5414
  call void @llvm.lifetime.end.p0(i64 40, ptr %127) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #11
  %5416 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5416, ptr %143, align 8, !tbaa !9
  %5417 = load ptr, ptr %143, align 8, !tbaa !9
  %5418 = getelementptr inbounds %struct.s2n_connection, ptr %5417, i32 0, i32 23
  store i8 34, ptr %5418, align 4, !tbaa !34
  br label %5419

5419:                                             ; preds = %5415
  %5420 = load i32, ptr @test_count, align 4, !tbaa !5
  %5421 = add nsw i32 %5420, 1
  store i32 %5421, ptr @test_count, align 4, !tbaa !5
  %5422 = load ptr, ptr %143, align 8, !tbaa !9
  %5423 = call i32 @s2n_conn_choose_state_machine(ptr noundef %5422, i8 noundef zeroext 34)
  %5424 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  store i32 %5423, ptr %5424, align 4
  %5425 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  %5426 = load i32, ptr %5425, align 4
  %5427 = call zeroext i1 @s2n_result_is_ok(i32 %5426)
  br i1 %5427, label %5481, label %5428

5428:                                             ; preds = %5419
  br label %5429

5429:                                             ; preds = %5428
  br label %5430

5430:                                             ; preds = %5429
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #11
  %5431 = call ptr @__errno_location() #12
  %5432 = load i32, ptr %5431, align 4, !tbaa !5
  store i32 %5432, ptr %145, align 4, !tbaa !5
  %5433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5434 = call i32 @s2n_print_stacktrace(ptr noundef %5433)
  %5435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5436 = trunc i8 %5435 to i1
  br i1 %5436, label %5437, label %5459

5437:                                             ; preds = %5430
  %5438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5439 = call i32 @fileno(ptr noundef %5438) #11
  %5440 = call i32 @isatty(i32 noundef %5439) #11
  %5441 = icmp ne i32 %5440, 0
  br i1 %5441, label %5442, label %5459

5442:                                             ; preds = %5437
  %5443 = load i32, ptr %145, align 4, !tbaa !5
  %5444 = call ptr @__errno_location() #12
  store i32 %5443, ptr %5444, align 4, !tbaa !5
  %5445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5446 = load i32, ptr @test_count, align 4, !tbaa !5
  %5447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @s2n_strerror(i32 noundef %5448, ptr noundef @.str.24)
  %5450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call ptr @s2n_strerror_debug(i32 noundef %5451, ptr noundef @.str.24)
  %5453 = call ptr @__errno_location() #12
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call ptr @strerror(i32 noundef %5454) #11
  %5456 = call ptr @__errno_location() #12
  %5457 = load i32, ptr %5456, align 4, !tbaa !5
  %5458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5445, ptr noundef @.str.22, i32 noundef %5446, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 515, ptr noundef %5449, ptr noundef %5452, ptr noundef %5455, i32 noundef %5457) #11
  br label %5476

5459:                                             ; preds = %5437, %5430
  %5460 = load i32, ptr %145, align 4, !tbaa !5
  %5461 = call ptr @__errno_location() #12
  store i32 %5460, ptr %5461, align 4, !tbaa !5
  %5462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5463 = load i32, ptr @test_count, align 4, !tbaa !5
  %5464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5465 = load i32, ptr %5464, align 4, !tbaa !5
  %5466 = call ptr @s2n_strerror(i32 noundef %5465, ptr noundef @.str.24)
  %5467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call ptr @s2n_strerror_debug(i32 noundef %5468, ptr noundef @.str.24)
  %5470 = call ptr @__errno_location() #12
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call ptr @strerror(i32 noundef %5471) #11
  %5473 = call ptr @__errno_location() #12
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  %5475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5462, ptr noundef @.str.25, i32 noundef %5463, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 515, ptr noundef %5466, ptr noundef %5469, ptr noundef %5472, i32 noundef %5474) #11
  br label %5476

5476:                                             ; preds = %5459, %5442
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #11
  br label %5477

5477:                                             ; preds = %5476
  br label %5478

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

5479:                                             ; No predecessors!
  br label %5480

5480:                                             ; preds = %5479
  br label %5481

5481:                                             ; preds = %5480, %5419
  br label %5482

5482:                                             ; preds = %5481
  br label %5483

5483:                                             ; preds = %5482
  call void @llvm.lifetime.start.p0(i64 40, ptr %146) #11
  call void @llvm.memset.p0.i64(ptr align 8 %146, i8 0, i64 40, i1 false)
  br label %5484

5484:                                             ; preds = %5483
  %5485 = load i32, ptr @test_count, align 4, !tbaa !5
  %5486 = add nsw i32 %5485, 1
  store i32 %5486, ptr @test_count, align 4, !tbaa !5
  %5487 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %146, i32 noundef 0)
  %5488 = icmp eq i32 %5487, -1
  br i1 %5488, label %5489, label %5542

5489:                                             ; preds = %5484
  br label %5490

5490:                                             ; preds = %5489
  br label %5491

5491:                                             ; preds = %5490
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #11
  %5492 = call ptr @__errno_location() #12
  %5493 = load i32, ptr %5492, align 4, !tbaa !5
  store i32 %5493, ptr %147, align 4, !tbaa !5
  %5494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5495 = call i32 @s2n_print_stacktrace(ptr noundef %5494)
  %5496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5497 = trunc i8 %5496 to i1
  br i1 %5497, label %5498, label %5520

5498:                                             ; preds = %5491
  %5499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5500 = call i32 @fileno(ptr noundef %5499) #11
  %5501 = call i32 @isatty(i32 noundef %5500) #11
  %5502 = icmp ne i32 %5501, 0
  br i1 %5502, label %5503, label %5520

5503:                                             ; preds = %5498
  %5504 = load i32, ptr %147, align 4, !tbaa !5
  %5505 = call ptr @__errno_location() #12
  store i32 %5504, ptr %5505, align 4, !tbaa !5
  %5506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5507 = load i32, ptr @test_count, align 4, !tbaa !5
  %5508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5509 = load i32, ptr %5508, align 4, !tbaa !5
  %5510 = call ptr @s2n_strerror(i32 noundef %5509, ptr noundef @.str.24)
  %5511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  %5513 = call ptr @s2n_strerror_debug(i32 noundef %5512, ptr noundef @.str.24)
  %5514 = call ptr @__errno_location() #12
  %5515 = load i32, ptr %5514, align 4, !tbaa !5
  %5516 = call ptr @strerror(i32 noundef %5515) #11
  %5517 = call ptr @__errno_location() #12
  %5518 = load i32, ptr %5517, align 4, !tbaa !5
  %5519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5506, ptr noundef @.str.22, i32 noundef %5507, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 518, ptr noundef %5510, ptr noundef %5513, ptr noundef %5516, i32 noundef %5518) #11
  br label %5537

5520:                                             ; preds = %5498, %5491
  %5521 = load i32, ptr %147, align 4, !tbaa !5
  %5522 = call ptr @__errno_location() #12
  store i32 %5521, ptr %5522, align 4, !tbaa !5
  %5523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5524 = load i32, ptr @test_count, align 4, !tbaa !5
  %5525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5526 = load i32, ptr %5525, align 4, !tbaa !5
  %5527 = call ptr @s2n_strerror(i32 noundef %5526, ptr noundef @.str.24)
  %5528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5529 = load i32, ptr %5528, align 4, !tbaa !5
  %5530 = call ptr @s2n_strerror_debug(i32 noundef %5529, ptr noundef @.str.24)
  %5531 = call ptr @__errno_location() #12
  %5532 = load i32, ptr %5531, align 4, !tbaa !5
  %5533 = call ptr @strerror(i32 noundef %5532) #11
  %5534 = call ptr @__errno_location() #12
  %5535 = load i32, ptr %5534, align 4, !tbaa !5
  %5536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5523, ptr noundef @.str.25, i32 noundef %5524, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 518, ptr noundef %5527, ptr noundef %5530, ptr noundef %5533, i32 noundef %5535) #11
  br label %5537

5537:                                             ; preds = %5520, %5503
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #11
  br label %5538

5538:                                             ; preds = %5537
  br label %5539

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

5540:                                             ; No predecessors!
  br label %5541

5541:                                             ; preds = %5540
  br label %5542

5542:                                             ; preds = %5541, %5484
  br label %5543

5543:                                             ; preds = %5542
  br label %5544

5544:                                             ; preds = %5543
  br label %5545

5545:                                             ; preds = %5544
  %5546 = load i32, ptr @test_count, align 4, !tbaa !5
  %5547 = add nsw i32 %5546, 1
  store i32 %5547, ptr @test_count, align 4, !tbaa !5
  %5548 = load ptr, ptr %143, align 8, !tbaa !9
  %5549 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %146, ptr noundef null, ptr noundef %5548)
  %5550 = icmp eq i32 %5549, -1
  br i1 %5550, label %5551, label %5604

5551:                                             ; preds = %5545
  br label %5552

5552:                                             ; preds = %5551
  br label %5553

5553:                                             ; preds = %5552
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %5554 = call ptr @__errno_location() #12
  %5555 = load i32, ptr %5554, align 4, !tbaa !5
  store i32 %5555, ptr %148, align 4, !tbaa !5
  %5556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5557 = call i32 @s2n_print_stacktrace(ptr noundef %5556)
  %5558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5559 = trunc i8 %5558 to i1
  br i1 %5559, label %5560, label %5582

5560:                                             ; preds = %5553
  %5561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5562 = call i32 @fileno(ptr noundef %5561) #11
  %5563 = call i32 @isatty(i32 noundef %5562) #11
  %5564 = icmp ne i32 %5563, 0
  br i1 %5564, label %5565, label %5582

5565:                                             ; preds = %5560
  %5566 = load i32, ptr %148, align 4, !tbaa !5
  %5567 = call ptr @__errno_location() #12
  store i32 %5566, ptr %5567, align 4, !tbaa !5
  %5568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5569 = load i32, ptr @test_count, align 4, !tbaa !5
  %5570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5571 = load i32, ptr %5570, align 4, !tbaa !5
  %5572 = call ptr @s2n_strerror(i32 noundef %5571, ptr noundef @.str.24)
  %5573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5574 = load i32, ptr %5573, align 4, !tbaa !5
  %5575 = call ptr @s2n_strerror_debug(i32 noundef %5574, ptr noundef @.str.24)
  %5576 = call ptr @__errno_location() #12
  %5577 = load i32, ptr %5576, align 4, !tbaa !5
  %5578 = call ptr @strerror(i32 noundef %5577) #11
  %5579 = call ptr @__errno_location() #12
  %5580 = load i32, ptr %5579, align 4, !tbaa !5
  %5581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5568, ptr noundef @.str.22, i32 noundef %5569, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 519, ptr noundef %5572, ptr noundef %5575, ptr noundef %5578, i32 noundef %5580) #11
  br label %5599

5582:                                             ; preds = %5560, %5553
  %5583 = load i32, ptr %148, align 4, !tbaa !5
  %5584 = call ptr @__errno_location() #12
  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() #12
  %5594 = load i32, ptr %5593, align 4, !tbaa !5
  %5595 = call ptr @strerror(i32 noundef %5594) #11
  %5596 = call ptr @__errno_location() #12
  %5597 = load i32, ptr %5596, align 4, !tbaa !5
  %5598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5585, ptr noundef @.str.25, i32 noundef %5586, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 519, ptr noundef %5589, ptr noundef %5592, ptr noundef %5595, i32 noundef %5597) #11
  br label %5599

5599:                                             ; preds = %5582, %5565
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %5600

5600:                                             ; preds = %5599
  br label %5601

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

5602:                                             ; No predecessors!
  br label %5603

5603:                                             ; preds = %5602
  br label %5604

5604:                                             ; preds = %5603, %5545
  br label %5605

5605:                                             ; preds = %5604
  br label %5606

5606:                                             ; preds = %5605
  %5607 = load ptr, ptr %143, align 8, !tbaa !9
  %5608 = getelementptr inbounds %struct.s2n_connection, ptr %5607, i32 0, i32 52
  %5609 = getelementptr inbounds %struct.s2n_handshake, ptr %5608, i32 0, i32 6
  store i32 0, ptr %5609, align 4, !tbaa !60
  %5610 = load ptr, ptr %143, align 8, !tbaa !9
  %5611 = getelementptr inbounds %struct.s2n_connection, ptr %5610, i32 0, i32 52
  %5612 = getelementptr inbounds %struct.s2n_handshake, ptr %5611, i32 0, i32 7
  store i32 0, ptr %5612, align 8, !tbaa !61
  %5613 = load ptr, ptr %143, align 8, !tbaa !9
  %5614 = getelementptr inbounds %struct.s2n_connection, ptr %5613, i32 0, i32 27
  %5615 = load ptr, ptr %5614, align 8, !tbaa !75
  %5616 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5615, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %5616, align 8, !tbaa !76
  br label %5617

5617:                                             ; preds = %5606
  %5618 = load i32, ptr @test_count, align 4, !tbaa !5
  %5619 = add nsw i32 %5618, 1
  store i32 %5619, ptr @test_count, align 4, !tbaa !5
  %5620 = load ptr, ptr %143, align 8, !tbaa !9
  %5621 = getelementptr inbounds %struct.s2n_connection, ptr %5620, i32 0, i32 52
  %5622 = getelementptr inbounds %struct.s2n_handshake, ptr %5621, i32 0, i32 12
  %5623 = load i32, ptr %5622, align 4, !tbaa !59
  %5624 = icmp eq i32 %5623, 2
  %5625 = zext i1 %5624 to i64
  %5626 = select i1 %5624, ptr @tls13_handshakes, ptr @handshakes
  %5627 = load ptr, ptr %143, align 8, !tbaa !9
  %5628 = getelementptr inbounds %struct.s2n_connection, ptr %5627, i32 0, i32 52
  %5629 = getelementptr inbounds %struct.s2n_handshake, ptr %5628, i32 0, i32 6
  %5630 = load i32, ptr %5629, align 4, !tbaa !60
  %5631 = zext i32 %5630 to i64
  %5632 = getelementptr inbounds [32 x i32], ptr %5626, i64 %5631
  %5633 = load ptr, ptr %143, align 8, !tbaa !9
  %5634 = getelementptr inbounds %struct.s2n_connection, ptr %5633, i32 0, i32 52
  %5635 = getelementptr inbounds %struct.s2n_handshake, ptr %5634, i32 0, i32 7
  %5636 = load i32, ptr %5635, align 8, !tbaa !61
  %5637 = sext i32 %5636 to i64
  %5638 = getelementptr inbounds [32 x i32], ptr %5632, i64 0, i64 %5637
  %5639 = load i32, ptr %5638, align 4, !tbaa !5
  %5640 = icmp eq i32 %5639, 0
  br i1 %5640, label %5694, label %5641

5641:                                             ; preds = %5617
  br label %5642

5642:                                             ; preds = %5641
  br label %5643

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

5650:                                             ; preds = %5643
  %5651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5652 = call i32 @fileno(ptr noundef %5651) #11
  %5653 = call i32 @isatty(i32 noundef %5652) #11
  %5654 = icmp ne i32 %5653, 0
  br i1 %5654, label %5655, label %5672

5655:                                             ; preds = %5650
  %5656 = load i32, ptr %149, align 4, !tbaa !5
  %5657 = call ptr @__errno_location() #12
  store i32 %5656, ptr %5657, align 4, !tbaa !5
  %5658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5659 = load i32, ptr @test_count, align 4, !tbaa !5
  %5660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5661 = load i32, ptr %5660, align 4, !tbaa !5
  %5662 = call ptr @s2n_strerror(i32 noundef %5661, ptr noundef @.str.24)
  %5663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5664 = load i32, ptr %5663, align 4, !tbaa !5
  %5665 = call ptr @s2n_strerror_debug(i32 noundef %5664, ptr noundef @.str.24)
  %5666 = call ptr @__errno_location() #12
  %5667 = load i32, ptr %5666, align 4, !tbaa !5
  %5668 = call ptr @strerror(i32 noundef %5667) #11
  %5669 = call ptr @__errno_location() #12
  %5670 = load i32, ptr %5669, align 4, !tbaa !5
  %5671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5658, ptr noundef @.str.22, i32 noundef %5659, ptr noundef @.str.65, ptr noundef @.str.21, i32 noundef 524, ptr noundef %5662, ptr noundef %5665, ptr noundef %5668, i32 noundef %5670) #11
  br label %5689

5672:                                             ; preds = %5650, %5643
  %5673 = load i32, ptr %149, align 4, !tbaa !5
  %5674 = call ptr @__errno_location() #12
  store i32 %5673, ptr %5674, align 4, !tbaa !5
  %5675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5676 = load i32, ptr @test_count, align 4, !tbaa !5
  %5677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5678 = load i32, ptr %5677, align 4, !tbaa !5
  %5679 = call ptr @s2n_strerror(i32 noundef %5678, ptr noundef @.str.24)
  %5680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5681 = load i32, ptr %5680, align 4, !tbaa !5
  %5682 = call ptr @s2n_strerror_debug(i32 noundef %5681, ptr noundef @.str.24)
  %5683 = call ptr @__errno_location() #12
  %5684 = load i32, ptr %5683, align 4, !tbaa !5
  %5685 = call ptr @strerror(i32 noundef %5684) #11
  %5686 = call ptr @__errno_location() #12
  %5687 = load i32, ptr %5686, align 4, !tbaa !5
  %5688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5675, ptr noundef @.str.25, i32 noundef %5676, ptr noundef @.str.65, ptr noundef @.str.21, i32 noundef 524, ptr noundef %5679, ptr noundef %5682, ptr noundef %5685, i32 noundef %5687) #11
  br label %5689

5689:                                             ; preds = %5672, %5655
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %5690

5690:                                             ; preds = %5689
  br label %5691

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

5692:                                             ; No predecessors!
  br label %5693

5693:                                             ; preds = %5692
  br label %5694

5694:                                             ; preds = %5693, %5617
  br label %5695

5695:                                             ; preds = %5694
  br label %5696

5696:                                             ; preds = %5695
  br label %5697

5697:                                             ; preds = %5696
  %5698 = load i32, ptr @test_count, align 4, !tbaa !5
  %5699 = add nsw i32 %5698, 1
  store i32 %5699, ptr @test_count, align 4, !tbaa !5
  %5700 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %5701 = icmp eq i32 %5700, -1
  br i1 %5701, label %5702, label %5755

5702:                                             ; preds = %5697
  br label %5703

5703:                                             ; preds = %5702
  br label %5704

5704:                                             ; preds = %5703
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %5705 = call ptr @__errno_location() #12
  %5706 = load i32, ptr %5705, align 4, !tbaa !5
  store i32 %5706, ptr %150, align 4, !tbaa !5
  %5707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5708 = call i32 @s2n_print_stacktrace(ptr noundef %5707)
  %5709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5710 = trunc i8 %5709 to i1
  br i1 %5710, label %5711, label %5733

5711:                                             ; preds = %5704
  %5712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5713 = call i32 @fileno(ptr noundef %5712) #11
  %5714 = call i32 @isatty(i32 noundef %5713) #11
  %5715 = icmp ne i32 %5714, 0
  br i1 %5715, label %5716, label %5733

5716:                                             ; preds = %5711
  %5717 = load i32, ptr %150, align 4, !tbaa !5
  %5718 = call ptr @__errno_location() #12
  store i32 %5717, ptr %5718, align 4, !tbaa !5
  %5719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5720 = load i32, ptr @test_count, align 4, !tbaa !5
  %5721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5722 = load i32, ptr %5721, align 4, !tbaa !5
  %5723 = call ptr @s2n_strerror(i32 noundef %5722, ptr noundef @.str.24)
  %5724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5725 = load i32, ptr %5724, align 4, !tbaa !5
  %5726 = call ptr @s2n_strerror_debug(i32 noundef %5725, ptr noundef @.str.24)
  %5727 = call ptr @__errno_location() #12
  %5728 = load i32, ptr %5727, align 4, !tbaa !5
  %5729 = call ptr @strerror(i32 noundef %5728) #11
  %5730 = call ptr @__errno_location() #12
  %5731 = load i32, ptr %5730, align 4, !tbaa !5
  %5732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5719, ptr noundef @.str.22, i32 noundef %5720, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 525, ptr noundef %5723, ptr noundef %5726, ptr noundef %5729, i32 noundef %5731) #11
  br label %5750

5733:                                             ; preds = %5711, %5704
  %5734 = load i32, ptr %150, align 4, !tbaa !5
  %5735 = call ptr @__errno_location() #12
  store i32 %5734, ptr %5735, align 4, !tbaa !5
  %5736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5737 = load i32, ptr @test_count, align 4, !tbaa !5
  %5738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5739 = load i32, ptr %5738, align 4, !tbaa !5
  %5740 = call ptr @s2n_strerror(i32 noundef %5739, ptr noundef @.str.24)
  %5741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5742 = load i32, ptr %5741, align 4, !tbaa !5
  %5743 = call ptr @s2n_strerror_debug(i32 noundef %5742, ptr noundef @.str.24)
  %5744 = call ptr @__errno_location() #12
  %5745 = load i32, ptr %5744, align 4, !tbaa !5
  %5746 = call ptr @strerror(i32 noundef %5745) #11
  %5747 = call ptr @__errno_location() #12
  %5748 = load i32, ptr %5747, align 4, !tbaa !5
  %5749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5736, ptr noundef @.str.25, i32 noundef %5737, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 525, ptr noundef %5740, ptr noundef %5743, ptr noundef %5746, i32 noundef %5748) #11
  br label %5750

5750:                                             ; preds = %5733, %5716
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %5751

5751:                                             ; preds = %5750
  br label %5752

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

5753:                                             ; No predecessors!
  br label %5754

5754:                                             ; preds = %5753
  br label %5755

5755:                                             ; preds = %5754, %5697
  br label %5756

5756:                                             ; preds = %5755
  br label %5757

5757:                                             ; preds = %5756
  br label %5758

5758:                                             ; preds = %5757
  %5759 = load i32, ptr @test_count, align 4, !tbaa !5
  %5760 = add nsw i32 %5759, 1
  store i32 %5760, ptr @test_count, align 4, !tbaa !5
  %5761 = call i32 @s2n_test_write_header(ptr noundef %146, i8 noundef zeroext 22, i8 noundef zeroext 1)
  %5762 = icmp eq i32 %5761, -1
  br i1 %5762, label %5763, label %5816

5763:                                             ; preds = %5758
  br label %5764

5764:                                             ; preds = %5763
  br label %5765

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

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

5777:                                             ; preds = %5772
  %5778 = load i32, ptr %151, align 4, !tbaa !5
  %5779 = call ptr @__errno_location() #12
  store i32 %5778, ptr %5779, align 4, !tbaa !5
  %5780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5781 = load i32, ptr @test_count, align 4, !tbaa !5
  %5782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = call ptr @s2n_strerror(i32 noundef %5783, ptr noundef @.str.24)
  %5785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call ptr @s2n_strerror_debug(i32 noundef %5786, ptr noundef @.str.24)
  %5788 = call ptr @__errno_location() #12
  %5789 = load i32, ptr %5788, align 4, !tbaa !5
  %5790 = call ptr @strerror(i32 noundef %5789) #11
  %5791 = call ptr @__errno_location() #12
  %5792 = load i32, ptr %5791, align 4, !tbaa !5
  %5793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5780, ptr noundef @.str.22, i32 noundef %5781, ptr noundef @.str.67, ptr noundef @.str.21, i32 noundef 527, ptr noundef %5784, ptr noundef %5787, ptr noundef %5790, i32 noundef %5792) #11
  br label %5811

5794:                                             ; preds = %5772, %5765
  %5795 = load i32, ptr %151, align 4, !tbaa !5
  %5796 = call ptr @__errno_location() #12
  store i32 %5795, ptr %5796, align 4, !tbaa !5
  %5797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5798 = load i32, ptr @test_count, align 4, !tbaa !5
  %5799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5800 = load i32, ptr %5799, align 4, !tbaa !5
  %5801 = call ptr @s2n_strerror(i32 noundef %5800, ptr noundef @.str.24)
  %5802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5803 = load i32, ptr %5802, align 4, !tbaa !5
  %5804 = call ptr @s2n_strerror_debug(i32 noundef %5803, ptr noundef @.str.24)
  %5805 = call ptr @__errno_location() #12
  %5806 = load i32, ptr %5805, align 4, !tbaa !5
  %5807 = call ptr @strerror(i32 noundef %5806) #11
  %5808 = call ptr @__errno_location() #12
  %5809 = load i32, ptr %5808, align 4, !tbaa !5
  %5810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5797, ptr noundef @.str.25, i32 noundef %5798, ptr noundef @.str.67, ptr noundef @.str.21, i32 noundef 527, ptr noundef %5801, ptr noundef %5804, ptr noundef %5807, i32 noundef %5809) #11
  br label %5811

5811:                                             ; preds = %5794, %5777
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %5812

5812:                                             ; preds = %5811
  br label %5813

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

5814:                                             ; No predecessors!
  br label %5815

5815:                                             ; preds = %5814
  br label %5816

5816:                                             ; preds = %5815, %5758
  br label %5817

5817:                                             ; preds = %5816
  br label %5818

5818:                                             ; preds = %5817
  br label %5819

5819:                                             ; preds = %5818
  %5820 = load i32, ptr @test_count, align 4, !tbaa !5
  %5821 = add nsw i32 %5820, 1
  store i32 %5821, ptr @test_count, align 4, !tbaa !5
  %5822 = load ptr, ptr %143, align 8, !tbaa !9
  %5823 = call i32 @s2n_handshake_read_io(ptr noundef %5822)
  %5824 = icmp eq i32 %5823, -1
  br i1 %5824, label %5825, label %5878

5825:                                             ; preds = %5819
  br label %5826

5826:                                             ; preds = %5825
  br label %5827

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

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

5839:                                             ; preds = %5834
  %5840 = load i32, ptr %152, align 4, !tbaa !5
  %5841 = call ptr @__errno_location() #12
  store i32 %5840, ptr %5841, align 4, !tbaa !5
  %5842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5843 = load i32, ptr @test_count, align 4, !tbaa !5
  %5844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5845 = load i32, ptr %5844, align 4, !tbaa !5
  %5846 = call ptr @s2n_strerror(i32 noundef %5845, ptr noundef @.str.24)
  %5847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5848 = load i32, ptr %5847, align 4, !tbaa !5
  %5849 = call ptr @s2n_strerror_debug(i32 noundef %5848, ptr noundef @.str.24)
  %5850 = call ptr @__errno_location() #12
  %5851 = load i32, ptr %5850, align 4, !tbaa !5
  %5852 = call ptr @strerror(i32 noundef %5851) #11
  %5853 = call ptr @__errno_location() #12
  %5854 = load i32, ptr %5853, align 4, !tbaa !5
  %5855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5842, ptr noundef @.str.22, i32 noundef %5843, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 528, ptr noundef %5846, ptr noundef %5849, ptr noundef %5852, i32 noundef %5854) #11
  br label %5873

5856:                                             ; preds = %5834, %5827
  %5857 = load i32, ptr %152, align 4, !tbaa !5
  %5858 = call ptr @__errno_location() #12
  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() #12
  %5868 = load i32, ptr %5867, align 4, !tbaa !5
  %5869 = call ptr @strerror(i32 noundef %5868) #11
  %5870 = call ptr @__errno_location() #12
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  %5872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5859, ptr noundef @.str.25, i32 noundef %5860, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 528, ptr noundef %5863, ptr noundef %5866, ptr noundef %5869, i32 noundef %5871) #11
  br label %5873

5873:                                             ; preds = %5856, %5839
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %5874

5874:                                             ; preds = %5873
  br label %5875

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

5876:                                             ; No predecessors!
  br label %5877

5877:                                             ; preds = %5876
  br label %5878

5878:                                             ; preds = %5877, %5819
  br label %5879

5879:                                             ; preds = %5878
  br label %5880

5880:                                             ; preds = %5879
  br label %5881

5881:                                             ; preds = %5880
  %5882 = load i32, ptr @test_count, align 4, !tbaa !5
  %5883 = add nsw i32 %5882, 1
  store i32 %5883, ptr @test_count, align 4, !tbaa !5
  %5884 = load ptr, ptr %143, align 8, !tbaa !9
  %5885 = getelementptr inbounds %struct.s2n_connection, ptr %5884, i32 0, i32 52
  %5886 = getelementptr inbounds %struct.s2n_handshake, ptr %5885, i32 0, i32 7
  %5887 = load i32, ptr %5886, align 8, !tbaa !61
  %5888 = icmp eq i32 %5887, 1
  br i1 %5888, label %5942, label %5889

5889:                                             ; preds = %5881
  br label %5890

5890:                                             ; preds = %5889
  br label %5891

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

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

5903:                                             ; preds = %5898
  %5904 = load i32, ptr %153, align 4, !tbaa !5
  %5905 = call ptr @__errno_location() #12
  store i32 %5904, ptr %5905, align 4, !tbaa !5
  %5906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5907 = load i32, ptr @test_count, align 4, !tbaa !5
  %5908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5909 = load i32, ptr %5908, align 4, !tbaa !5
  %5910 = call ptr @s2n_strerror(i32 noundef %5909, ptr noundef @.str.24)
  %5911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5912 = load i32, ptr %5911, align 4, !tbaa !5
  %5913 = call ptr @s2n_strerror_debug(i32 noundef %5912, ptr noundef @.str.24)
  %5914 = call ptr @__errno_location() #12
  %5915 = load i32, ptr %5914, align 4, !tbaa !5
  %5916 = call ptr @strerror(i32 noundef %5915) #11
  %5917 = call ptr @__errno_location() #12
  %5918 = load i32, ptr %5917, align 4, !tbaa !5
  %5919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5906, ptr noundef @.str.22, i32 noundef %5907, ptr noundef @.str.68, ptr noundef @.str.21, i32 noundef 530, ptr noundef %5910, ptr noundef %5913, ptr noundef %5916, i32 noundef %5918) #11
  br label %5937

5920:                                             ; preds = %5898, %5891
  %5921 = load i32, ptr %153, align 4, !tbaa !5
  %5922 = call ptr @__errno_location() #12
  store i32 %5921, ptr %5922, align 4, !tbaa !5
  %5923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5924 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5926, ptr noundef @.str.24)
  %5928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  %5930 = call ptr @s2n_strerror_debug(i32 noundef %5929, ptr noundef @.str.24)
  %5931 = call ptr @__errno_location() #12
  %5932 = load i32, ptr %5931, align 4, !tbaa !5
  %5933 = call ptr @strerror(i32 noundef %5932) #11
  %5934 = call ptr @__errno_location() #12
  %5935 = load i32, ptr %5934, align 4, !tbaa !5
  %5936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5923, ptr noundef @.str.25, i32 noundef %5924, ptr noundef @.str.68, ptr noundef @.str.21, i32 noundef 530, ptr noundef %5927, ptr noundef %5930, ptr noundef %5933, i32 noundef %5935) #11
  br label %5937

5937:                                             ; preds = %5920, %5903
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #11
  br label %5938

5938:                                             ; preds = %5937
  br label %5939

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

5940:                                             ; No predecessors!
  br label %5941

5941:                                             ; preds = %5940
  br label %5942

5942:                                             ; preds = %5941, %5881
  br label %5943

5943:                                             ; preds = %5942
  br label %5944

5944:                                             ; preds = %5943
  br label %5945

5945:                                             ; preds = %5944
  %5946 = load i32, ptr @test_count, align 4, !tbaa !5
  %5947 = add nsw i32 %5946, 1
  store i32 %5947, ptr @test_count, align 4, !tbaa !5
  %5948 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %5949 = icmp ne i32 %5948, 0
  br i1 %5949, label %5950, label %6003

5950:                                             ; preds = %5945
  br label %5951

5951:                                             ; preds = %5950
  br label %5952

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

5959:                                             ; preds = %5952
  %5960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5961 = call i32 @fileno(ptr noundef %5960) #11
  %5962 = call i32 @isatty(i32 noundef %5961) #11
  %5963 = icmp ne i32 %5962, 0
  br i1 %5963, label %5964, label %5981

5964:                                             ; preds = %5959
  %5965 = load i32, ptr %154, align 4, !tbaa !5
  %5966 = call ptr @__errno_location() #12
  store i32 %5965, ptr %5966, align 4, !tbaa !5
  %5967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5968 = load i32, ptr @test_count, align 4, !tbaa !5
  %5969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5970 = load i32, ptr %5969, align 4, !tbaa !5
  %5971 = call ptr @s2n_strerror(i32 noundef %5970, ptr noundef @.str.24)
  %5972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5973 = load i32, ptr %5972, align 4, !tbaa !5
  %5974 = call ptr @s2n_strerror_debug(i32 noundef %5973, ptr noundef @.str.24)
  %5975 = call ptr @__errno_location() #12
  %5976 = load i32, ptr %5975, align 4, !tbaa !5
  %5977 = call ptr @strerror(i32 noundef %5976) #11
  %5978 = call ptr @__errno_location() #12
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  %5980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5967, ptr noundef @.str.22, i32 noundef %5968, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 531, ptr noundef %5971, ptr noundef %5974, ptr noundef %5977, i32 noundef %5979) #11
  br label %5998

5981:                                             ; preds = %5959, %5952
  %5982 = load i32, ptr %154, align 4, !tbaa !5
  %5983 = call ptr @__errno_location() #12
  store i32 %5982, ptr %5983, align 4, !tbaa !5
  %5984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5985 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5987, ptr noundef @.str.24)
  %5989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5990 = load i32, ptr %5989, align 4, !tbaa !5
  %5991 = call ptr @s2n_strerror_debug(i32 noundef %5990, ptr noundef @.str.24)
  %5992 = call ptr @__errno_location() #12
  %5993 = load i32, ptr %5992, align 4, !tbaa !5
  %5994 = call ptr @strerror(i32 noundef %5993) #11
  %5995 = call ptr @__errno_location() #12
  %5996 = load i32, ptr %5995, align 4, !tbaa !5
  %5997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5984, ptr noundef @.str.25, i32 noundef %5985, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 531, ptr noundef %5988, ptr noundef %5991, ptr noundef %5994, i32 noundef %5996) #11
  br label %5998

5998:                                             ; preds = %5981, %5964
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %5999

5999:                                             ; preds = %5998
  br label %6000

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

6001:                                             ; No predecessors!
  br label %6002

6002:                                             ; preds = %6001
  br label %6003

6003:                                             ; preds = %6002, %5945
  br label %6004

6004:                                             ; preds = %6003
  br label %6005

6005:                                             ; preds = %6004
  br label %6006

6006:                                             ; preds = %6005
  %6007 = load i32, ptr @test_count, align 4, !tbaa !5
  %6008 = add nsw i32 %6007, 1
  store i32 %6008, ptr @test_count, align 4, !tbaa !5
  %6009 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %6010 = icmp ne i32 %6009, 0
  br i1 %6010, label %6064, label %6011

6011:                                             ; preds = %6006
  br label %6012

6012:                                             ; preds = %6011
  br label %6013

6013:                                             ; preds = %6012
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %6014 = call ptr @__errno_location() #12
  %6015 = load i32, ptr %6014, align 4, !tbaa !5
  store i32 %6015, ptr %155, align 4, !tbaa !5
  %6016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6017 = call i32 @s2n_print_stacktrace(ptr noundef %6016)
  %6018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6019 = trunc i8 %6018 to i1
  br i1 %6019, label %6020, label %6042

6020:                                             ; preds = %6013
  %6021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6022 = call i32 @fileno(ptr noundef %6021) #11
  %6023 = call i32 @isatty(i32 noundef %6022) #11
  %6024 = icmp ne i32 %6023, 0
  br i1 %6024, label %6025, label %6042

6025:                                             ; preds = %6020
  %6026 = load i32, ptr %155, align 4, !tbaa !5
  %6027 = call ptr @__errno_location() #12
  store i32 %6026, ptr %6027, align 4, !tbaa !5
  %6028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6029 = load i32, ptr @test_count, align 4, !tbaa !5
  %6030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6031 = load i32, ptr %6030, align 4, !tbaa !5
  %6032 = call ptr @s2n_strerror(i32 noundef %6031, ptr noundef @.str.24)
  %6033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6034 = load i32, ptr %6033, align 4, !tbaa !5
  %6035 = call ptr @s2n_strerror_debug(i32 noundef %6034, ptr noundef @.str.24)
  %6036 = call ptr @__errno_location() #12
  %6037 = load i32, ptr %6036, align 4, !tbaa !5
  %6038 = call ptr @strerror(i32 noundef %6037) #11
  %6039 = call ptr @__errno_location() #12
  %6040 = load i32, ptr %6039, align 4, !tbaa !5
  %6041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6028, ptr noundef @.str.22, i32 noundef %6029, ptr noundef @.str.61, ptr noundef @.str.21, i32 noundef 532, ptr noundef %6032, ptr noundef %6035, ptr noundef %6038, i32 noundef %6040) #11
  br label %6059

6042:                                             ; preds = %6020, %6013
  %6043 = load i32, ptr %155, align 4, !tbaa !5
  %6044 = call ptr @__errno_location() #12
  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() #12
  %6054 = load i32, ptr %6053, align 4, !tbaa !5
  %6055 = call ptr @strerror(i32 noundef %6054) #11
  %6056 = call ptr @__errno_location() #12
  %6057 = load i32, ptr %6056, align 4, !tbaa !5
  %6058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6045, ptr noundef @.str.25, i32 noundef %6046, ptr noundef @.str.61, ptr noundef @.str.21, i32 noundef 532, ptr noundef %6049, ptr noundef %6052, ptr noundef %6055, i32 noundef %6057) #11
  br label %6059

6059:                                             ; preds = %6042, %6025
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %6060

6060:                                             ; preds = %6059
  br label %6061

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

6062:                                             ; No predecessors!
  br label %6063

6063:                                             ; preds = %6062
  br label %6064

6064:                                             ; preds = %6063, %6006
  br label %6065

6065:                                             ; preds = %6064
  br label %6066

6066:                                             ; preds = %6065
  br label %6067

6067:                                             ; preds = %6066
  %6068 = load i32, ptr @test_count, align 4, !tbaa !5
  %6069 = add nsw i32 %6068, 1
  store i32 %6069, ptr @test_count, align 4, !tbaa !5
  %6070 = call i32 @s2n_stuffer_free(ptr noundef %146)
  %6071 = icmp eq i32 %6070, -1
  br i1 %6071, label %6072, label %6125

6072:                                             ; preds = %6067
  br label %6073

6073:                                             ; preds = %6072
  br label %6074

6074:                                             ; preds = %6073
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %6075 = call ptr @__errno_location() #12
  %6076 = load i32, ptr %6075, align 4, !tbaa !5
  store i32 %6076, ptr %156, align 4, !tbaa !5
  %6077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6078 = call i32 @s2n_print_stacktrace(ptr noundef %6077)
  %6079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6080 = trunc i8 %6079 to i1
  br i1 %6080, label %6081, label %6103

6081:                                             ; preds = %6074
  %6082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6083 = call i32 @fileno(ptr noundef %6082) #11
  %6084 = call i32 @isatty(i32 noundef %6083) #11
  %6085 = icmp ne i32 %6084, 0
  br i1 %6085, label %6086, label %6103

6086:                                             ; preds = %6081
  %6087 = load i32, ptr %156, align 4, !tbaa !5
  %6088 = call ptr @__errno_location() #12
  store i32 %6087, ptr %6088, align 4, !tbaa !5
  %6089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6090 = load i32, ptr @test_count, align 4, !tbaa !5
  %6091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6092 = load i32, ptr %6091, align 4, !tbaa !5
  %6093 = call ptr @s2n_strerror(i32 noundef %6092, ptr noundef @.str.24)
  %6094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6095 = load i32, ptr %6094, align 4, !tbaa !5
  %6096 = call ptr @s2n_strerror_debug(i32 noundef %6095, ptr noundef @.str.24)
  %6097 = call ptr @__errno_location() #12
  %6098 = load i32, ptr %6097, align 4, !tbaa !5
  %6099 = call ptr @strerror(i32 noundef %6098) #11
  %6100 = call ptr @__errno_location() #12
  %6101 = load i32, ptr %6100, align 4, !tbaa !5
  %6102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6089, ptr noundef @.str.22, i32 noundef %6090, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 534, ptr noundef %6093, ptr noundef %6096, ptr noundef %6099, i32 noundef %6101) #11
  br label %6120

6103:                                             ; preds = %6081, %6074
  %6104 = load i32, ptr %156, align 4, !tbaa !5
  %6105 = call ptr @__errno_location() #12
  store i32 %6104, ptr %6105, align 4, !tbaa !5
  %6106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6107 = load i32, ptr @test_count, align 4, !tbaa !5
  %6108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6109 = load i32, ptr %6108, align 4, !tbaa !5
  %6110 = call ptr @s2n_strerror(i32 noundef %6109, ptr noundef @.str.24)
  %6111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6112 = load i32, ptr %6111, align 4, !tbaa !5
  %6113 = call ptr @s2n_strerror_debug(i32 noundef %6112, ptr noundef @.str.24)
  %6114 = call ptr @__errno_location() #12
  %6115 = load i32, ptr %6114, align 4, !tbaa !5
  %6116 = call ptr @strerror(i32 noundef %6115) #11
  %6117 = call ptr @__errno_location() #12
  %6118 = load i32, ptr %6117, align 4, !tbaa !5
  %6119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6106, ptr noundef @.str.25, i32 noundef %6107, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 534, ptr noundef %6110, ptr noundef %6113, ptr noundef %6116, i32 noundef %6118) #11
  br label %6120

6120:                                             ; preds = %6103, %6086
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %6121

6121:                                             ; preds = %6120
  br label %6122

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

6123:                                             ; No predecessors!
  br label %6124

6124:                                             ; preds = %6123
  br label %6125

6125:                                             ; preds = %6124, %6067
  br label %6126

6126:                                             ; preds = %6125
  br label %6127

6127:                                             ; preds = %6126
  br label %6128

6128:                                             ; preds = %6127
  %6129 = load i32, ptr @test_count, align 4, !tbaa !5
  %6130 = add nsw i32 %6129, 1
  store i32 %6130, ptr @test_count, align 4, !tbaa !5
  %6131 = load ptr, ptr %143, align 8, !tbaa !9
  %6132 = call i32 @s2n_connection_free(ptr noundef %6131)
  %6133 = icmp eq i32 %6132, -1
  br i1 %6133, label %6134, label %6187

6134:                                             ; preds = %6128
  br label %6135

6135:                                             ; preds = %6134
  br label %6136

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

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

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

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

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

6183:                                             ; preds = %6182
  br label %6184

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

6185:                                             ; No predecessors!
  br label %6186

6186:                                             ; preds = %6185
  br label %6187

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

6188:                                             ; preds = %6187
  br label %6189

6189:                                             ; preds = %6188
  call void @llvm.lifetime.end.p0(i64 40, ptr %146) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #11
  %6190 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6190, ptr %158, align 8, !tbaa !9
  %6191 = load ptr, ptr %158, align 8, !tbaa !9
  %6192 = getelementptr inbounds %struct.s2n_connection, ptr %6191, i32 0, i32 23
  store i8 34, ptr %6192, align 4, !tbaa !34
  br label %6193

6193:                                             ; preds = %6189
  %6194 = load i32, ptr @test_count, align 4, !tbaa !5
  %6195 = add nsw i32 %6194, 1
  store i32 %6195, ptr @test_count, align 4, !tbaa !5
  %6196 = load ptr, ptr %158, align 8, !tbaa !9
  %6197 = call i32 @s2n_conn_choose_state_machine(ptr noundef %6196, i8 noundef zeroext 34)
  %6198 = getelementptr inbounds %struct.s2n_result, ptr %159, i32 0, i32 0
  store i32 %6197, ptr %6198, align 4
  %6199 = getelementptr inbounds %struct.s2n_result, ptr %159, i32 0, i32 0
  %6200 = load i32, ptr %6199, align 4
  %6201 = call zeroext i1 @s2n_result_is_ok(i32 %6200)
  br i1 %6201, label %6255, label %6202

6202:                                             ; preds = %6193
  br label %6203

6203:                                             ; preds = %6202
  br label %6204

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

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

6216:                                             ; preds = %6211
  %6217 = load i32, ptr %160, align 4, !tbaa !5
  %6218 = call ptr @__errno_location() #12
  store i32 %6217, ptr %6218, align 4, !tbaa !5
  %6219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6220 = load i32, ptr @test_count, align 4, !tbaa !5
  %6221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6222 = load i32, ptr %6221, align 4, !tbaa !5
  %6223 = call ptr @s2n_strerror(i32 noundef %6222, ptr noundef @.str.24)
  %6224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6225 = load i32, ptr %6224, align 4, !tbaa !5
  %6226 = call ptr @s2n_strerror_debug(i32 noundef %6225, ptr noundef @.str.24)
  %6227 = call ptr @__errno_location() #12
  %6228 = load i32, ptr %6227, align 4, !tbaa !5
  %6229 = call ptr @strerror(i32 noundef %6228) #11
  %6230 = call ptr @__errno_location() #12
  %6231 = load i32, ptr %6230, align 4, !tbaa !5
  %6232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6219, ptr noundef @.str.22, i32 noundef %6220, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 542, ptr noundef %6223, ptr noundef %6226, ptr noundef %6229, i32 noundef %6231) #11
  br label %6250

6233:                                             ; preds = %6211, %6204
  %6234 = load i32, ptr %160, align 4, !tbaa !5
  %6235 = call ptr @__errno_location() #12
  store i32 %6234, ptr %6235, align 4, !tbaa !5
  %6236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6237 = load i32, ptr @test_count, align 4, !tbaa !5
  %6238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6239 = load i32, ptr %6238, align 4, !tbaa !5
  %6240 = call ptr @s2n_strerror(i32 noundef %6239, ptr noundef @.str.24)
  %6241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6242 = load i32, ptr %6241, align 4, !tbaa !5
  %6243 = call ptr @s2n_strerror_debug(i32 noundef %6242, ptr noundef @.str.24)
  %6244 = call ptr @__errno_location() #12
  %6245 = load i32, ptr %6244, align 4, !tbaa !5
  %6246 = call ptr @strerror(i32 noundef %6245) #11
  %6247 = call ptr @__errno_location() #12
  %6248 = load i32, ptr %6247, align 4, !tbaa !5
  %6249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6236, ptr noundef @.str.25, i32 noundef %6237, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 542, ptr noundef %6240, ptr noundef %6243, ptr noundef %6246, i32 noundef %6248) #11
  br label %6250

6250:                                             ; preds = %6233, %6216
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %6251

6251:                                             ; preds = %6250
  br label %6252

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

6253:                                             ; No predecessors!
  br label %6254

6254:                                             ; preds = %6253
  br label %6255

6255:                                             ; preds = %6254, %6193
  br label %6256

6256:                                             ; preds = %6255
  br label %6257

6257:                                             ; preds = %6256
  call void @llvm.lifetime.start.p0(i64 40, ptr %161) #11
  call void @llvm.memset.p0.i64(ptr align 8 %161, i8 0, i64 40, i1 false)
  br label %6258

6258:                                             ; preds = %6257
  %6259 = load i32, ptr @test_count, align 4, !tbaa !5
  %6260 = add nsw i32 %6259, 1
  store i32 %6260, ptr @test_count, align 4, !tbaa !5
  %6261 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %161, i32 noundef 0)
  %6262 = icmp eq i32 %6261, -1
  br i1 %6262, label %6263, label %6316

6263:                                             ; preds = %6258
  br label %6264

6264:                                             ; preds = %6263
  br label %6265

6265:                                             ; preds = %6264
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %6266 = call ptr @__errno_location() #12
  %6267 = load i32, ptr %6266, align 4, !tbaa !5
  store i32 %6267, ptr %162, align 4, !tbaa !5
  %6268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6269 = call i32 @s2n_print_stacktrace(ptr noundef %6268)
  %6270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6271 = trunc i8 %6270 to i1
  br i1 %6271, label %6272, label %6294

6272:                                             ; preds = %6265
  %6273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6274 = call i32 @fileno(ptr noundef %6273) #11
  %6275 = call i32 @isatty(i32 noundef %6274) #11
  %6276 = icmp ne i32 %6275, 0
  br i1 %6276, label %6277, label %6294

6277:                                             ; preds = %6272
  %6278 = load i32, ptr %162, align 4, !tbaa !5
  %6279 = call ptr @__errno_location() #12
  store i32 %6278, ptr %6279, align 4, !tbaa !5
  %6280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6281 = load i32, ptr @test_count, align 4, !tbaa !5
  %6282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6283 = load i32, ptr %6282, align 4, !tbaa !5
  %6284 = call ptr @s2n_strerror(i32 noundef %6283, ptr noundef @.str.24)
  %6285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6286 = load i32, ptr %6285, align 4, !tbaa !5
  %6287 = call ptr @s2n_strerror_debug(i32 noundef %6286, ptr noundef @.str.24)
  %6288 = call ptr @__errno_location() #12
  %6289 = load i32, ptr %6288, align 4, !tbaa !5
  %6290 = call ptr @strerror(i32 noundef %6289) #11
  %6291 = call ptr @__errno_location() #12
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  %6293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6280, ptr noundef @.str.22, i32 noundef %6281, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 545, ptr noundef %6284, ptr noundef %6287, ptr noundef %6290, i32 noundef %6292) #11
  br label %6311

6294:                                             ; preds = %6272, %6265
  %6295 = load i32, ptr %162, align 4, !tbaa !5
  %6296 = call ptr @__errno_location() #12
  store i32 %6295, ptr %6296, align 4, !tbaa !5
  %6297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6298 = load i32, ptr @test_count, align 4, !tbaa !5
  %6299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6300 = load i32, ptr %6299, align 4, !tbaa !5
  %6301 = call ptr @s2n_strerror(i32 noundef %6300, ptr noundef @.str.24)
  %6302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6303 = load i32, ptr %6302, align 4, !tbaa !5
  %6304 = call ptr @s2n_strerror_debug(i32 noundef %6303, ptr noundef @.str.24)
  %6305 = call ptr @__errno_location() #12
  %6306 = load i32, ptr %6305, align 4, !tbaa !5
  %6307 = call ptr @strerror(i32 noundef %6306) #11
  %6308 = call ptr @__errno_location() #12
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6297, ptr noundef @.str.25, i32 noundef %6298, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 545, ptr noundef %6301, ptr noundef %6304, ptr noundef %6307, i32 noundef %6309) #11
  br label %6311

6311:                                             ; preds = %6294, %6277
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %6312

6312:                                             ; preds = %6311
  br label %6313

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

6314:                                             ; No predecessors!
  br label %6315

6315:                                             ; preds = %6314
  br label %6316

6316:                                             ; preds = %6315, %6258
  br label %6317

6317:                                             ; preds = %6316
  br label %6318

6318:                                             ; preds = %6317
  br label %6319

6319:                                             ; preds = %6318
  %6320 = load i32, ptr @test_count, align 4, !tbaa !5
  %6321 = add nsw i32 %6320, 1
  store i32 %6321, ptr @test_count, align 4, !tbaa !5
  %6322 = load ptr, ptr %158, align 8, !tbaa !9
  %6323 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %161, ptr noundef null, ptr noundef %6322)
  %6324 = icmp eq i32 %6323, -1
  br i1 %6324, label %6325, label %6378

6325:                                             ; preds = %6319
  br label %6326

6326:                                             ; preds = %6325
  br label %6327

6327:                                             ; preds = %6326
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %6328 = call ptr @__errno_location() #12
  %6329 = load i32, ptr %6328, align 4, !tbaa !5
  store i32 %6329, ptr %163, align 4, !tbaa !5
  %6330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6331 = call i32 @s2n_print_stacktrace(ptr noundef %6330)
  %6332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6333 = trunc i8 %6332 to i1
  br i1 %6333, label %6334, label %6356

6334:                                             ; preds = %6327
  %6335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6336 = call i32 @fileno(ptr noundef %6335) #11
  %6337 = call i32 @isatty(i32 noundef %6336) #11
  %6338 = icmp ne i32 %6337, 0
  br i1 %6338, label %6339, label %6356

6339:                                             ; preds = %6334
  %6340 = load i32, ptr %163, align 4, !tbaa !5
  %6341 = call ptr @__errno_location() #12
  store i32 %6340, ptr %6341, align 4, !tbaa !5
  %6342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6343 = load i32, ptr @test_count, align 4, !tbaa !5
  %6344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6345 = load i32, ptr %6344, align 4, !tbaa !5
  %6346 = call ptr @s2n_strerror(i32 noundef %6345, ptr noundef @.str.24)
  %6347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6348 = load i32, ptr %6347, align 4, !tbaa !5
  %6349 = call ptr @s2n_strerror_debug(i32 noundef %6348, ptr noundef @.str.24)
  %6350 = call ptr @__errno_location() #12
  %6351 = load i32, ptr %6350, align 4, !tbaa !5
  %6352 = call ptr @strerror(i32 noundef %6351) #11
  %6353 = call ptr @__errno_location() #12
  %6354 = load i32, ptr %6353, align 4, !tbaa !5
  %6355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6342, ptr noundef @.str.22, i32 noundef %6343, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 546, ptr noundef %6346, ptr noundef %6349, ptr noundef %6352, i32 noundef %6354) #11
  br label %6373

6356:                                             ; preds = %6334, %6327
  %6357 = load i32, ptr %163, align 4, !tbaa !5
  %6358 = call ptr @__errno_location() #12
  store i32 %6357, ptr %6358, align 4, !tbaa !5
  %6359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6360 = load i32, ptr @test_count, align 4, !tbaa !5
  %6361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6362 = load i32, ptr %6361, align 4, !tbaa !5
  %6363 = call ptr @s2n_strerror(i32 noundef %6362, ptr noundef @.str.24)
  %6364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6365 = load i32, ptr %6364, align 4, !tbaa !5
  %6366 = call ptr @s2n_strerror_debug(i32 noundef %6365, ptr noundef @.str.24)
  %6367 = call ptr @__errno_location() #12
  %6368 = load i32, ptr %6367, align 4, !tbaa !5
  %6369 = call ptr @strerror(i32 noundef %6368) #11
  %6370 = call ptr @__errno_location() #12
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  %6372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6359, ptr noundef @.str.25, i32 noundef %6360, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 546, ptr noundef %6363, ptr noundef %6366, ptr noundef %6369, i32 noundef %6371) #11
  br label %6373

6373:                                             ; preds = %6356, %6339
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %6374

6374:                                             ; preds = %6373
  br label %6375

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

6376:                                             ; No predecessors!
  br label %6377

6377:                                             ; preds = %6376
  br label %6378

6378:                                             ; preds = %6377, %6319
  br label %6379

6379:                                             ; preds = %6378
  br label %6380

6380:                                             ; preds = %6379
  %6381 = load ptr, ptr %158, align 8, !tbaa !9
  %6382 = getelementptr inbounds %struct.s2n_connection, ptr %6381, i32 0, i32 52
  %6383 = getelementptr inbounds %struct.s2n_handshake, ptr %6382, i32 0, i32 6
  store i32 0, ptr %6383, align 4, !tbaa !60
  %6384 = load ptr, ptr %158, align 8, !tbaa !9
  %6385 = getelementptr inbounds %struct.s2n_connection, ptr %6384, i32 0, i32 52
  %6386 = getelementptr inbounds %struct.s2n_handshake, ptr %6385, i32 0, i32 7
  store i32 0, ptr %6386, align 8, !tbaa !61
  br label %6387

6387:                                             ; preds = %6380
  %6388 = load i32, ptr @test_count, align 4, !tbaa !5
  %6389 = add nsw i32 %6388, 1
  store i32 %6389, ptr @test_count, align 4, !tbaa !5
  %6390 = load ptr, ptr %158, align 8, !tbaa !9
  %6391 = getelementptr inbounds %struct.s2n_connection, ptr %6390, i32 0, i32 52
  %6392 = getelementptr inbounds %struct.s2n_handshake, ptr %6391, i32 0, i32 12
  %6393 = load i32, ptr %6392, align 4, !tbaa !59
  %6394 = icmp eq i32 %6393, 2
  %6395 = zext i1 %6394 to i64
  %6396 = select i1 %6394, ptr @tls13_handshakes, ptr @handshakes
  %6397 = load ptr, ptr %158, align 8, !tbaa !9
  %6398 = getelementptr inbounds %struct.s2n_connection, ptr %6397, i32 0, i32 52
  %6399 = getelementptr inbounds %struct.s2n_handshake, ptr %6398, i32 0, i32 6
  %6400 = load i32, ptr %6399, align 4, !tbaa !60
  %6401 = zext i32 %6400 to i64
  %6402 = getelementptr inbounds [32 x i32], ptr %6396, i64 %6401
  %6403 = load ptr, ptr %158, align 8, !tbaa !9
  %6404 = getelementptr inbounds %struct.s2n_connection, ptr %6403, i32 0, i32 52
  %6405 = getelementptr inbounds %struct.s2n_handshake, ptr %6404, i32 0, i32 7
  %6406 = load i32, ptr %6405, align 8, !tbaa !61
  %6407 = sext i32 %6406 to i64
  %6408 = getelementptr inbounds [32 x i32], ptr %6402, i64 0, i64 %6407
  %6409 = load i32, ptr %6408, align 4, !tbaa !5
  %6410 = icmp eq i32 %6409, 0
  br i1 %6410, label %6464, label %6411

6411:                                             ; preds = %6387
  br label %6412

6412:                                             ; preds = %6411
  br label %6413

6413:                                             ; preds = %6412
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %6414 = call ptr @__errno_location() #12
  %6415 = load i32, ptr %6414, align 4, !tbaa !5
  store i32 %6415, ptr %164, align 4, !tbaa !5
  %6416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6417 = call i32 @s2n_print_stacktrace(ptr noundef %6416)
  %6418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6419 = trunc i8 %6418 to i1
  br i1 %6419, label %6420, label %6442

6420:                                             ; preds = %6413
  %6421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6422 = call i32 @fileno(ptr noundef %6421) #11
  %6423 = call i32 @isatty(i32 noundef %6422) #11
  %6424 = icmp ne i32 %6423, 0
  br i1 %6424, label %6425, label %6442

6425:                                             ; preds = %6420
  %6426 = load i32, ptr %164, align 4, !tbaa !5
  %6427 = call ptr @__errno_location() #12
  store i32 %6426, ptr %6427, align 4, !tbaa !5
  %6428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6429 = load i32, ptr @test_count, align 4, !tbaa !5
  %6430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call ptr @s2n_strerror(i32 noundef %6431, ptr noundef @.str.24)
  %6433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call ptr @s2n_strerror_debug(i32 noundef %6434, ptr noundef @.str.24)
  %6436 = call ptr @__errno_location() #12
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call ptr @strerror(i32 noundef %6437) #11
  %6439 = call ptr @__errno_location() #12
  %6440 = load i32, ptr %6439, align 4, !tbaa !5
  %6441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6428, ptr noundef @.str.22, i32 noundef %6429, ptr noundef @.str.65, ptr noundef @.str.21, i32 noundef 550, ptr noundef %6432, ptr noundef %6435, ptr noundef %6438, i32 noundef %6440) #11
  br label %6459

6442:                                             ; preds = %6420, %6413
  %6443 = load i32, ptr %164, align 4, !tbaa !5
  %6444 = call ptr @__errno_location() #12
  store i32 %6443, ptr %6444, align 4, !tbaa !5
  %6445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6446 = load i32, ptr @test_count, align 4, !tbaa !5
  %6447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6448 = load i32, ptr %6447, align 4, !tbaa !5
  %6449 = call ptr @s2n_strerror(i32 noundef %6448, ptr noundef @.str.24)
  %6450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6451 = load i32, ptr %6450, align 4, !tbaa !5
  %6452 = call ptr @s2n_strerror_debug(i32 noundef %6451, ptr noundef @.str.24)
  %6453 = call ptr @__errno_location() #12
  %6454 = load i32, ptr %6453, align 4, !tbaa !5
  %6455 = call ptr @strerror(i32 noundef %6454) #11
  %6456 = call ptr @__errno_location() #12
  %6457 = load i32, ptr %6456, align 4, !tbaa !5
  %6458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6445, ptr noundef @.str.25, i32 noundef %6446, ptr noundef @.str.65, ptr noundef @.str.21, i32 noundef 550, ptr noundef %6449, ptr noundef %6452, ptr noundef %6455, i32 noundef %6457) #11
  br label %6459

6459:                                             ; preds = %6442, %6425
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %6460

6460:                                             ; preds = %6459
  br label %6461

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

6462:                                             ; No predecessors!
  br label %6463

6463:                                             ; preds = %6462
  br label %6464

6464:                                             ; preds = %6463, %6387
  br label %6465

6465:                                             ; preds = %6464
  br label %6466

6466:                                             ; preds = %6465
  br label %6467

6467:                                             ; preds = %6466
  %6468 = load i32, ptr @test_count, align 4, !tbaa !5
  %6469 = add nsw i32 %6468, 1
  store i32 %6469, ptr @test_count, align 4, !tbaa !5
  %6470 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %6471 = icmp eq i32 %6470, -1
  br i1 %6471, label %6472, label %6525

6472:                                             ; preds = %6467
  br label %6473

6473:                                             ; preds = %6472
  br label %6474

6474:                                             ; preds = %6473
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %6475 = call ptr @__errno_location() #12
  %6476 = load i32, ptr %6475, align 4, !tbaa !5
  store i32 %6476, ptr %165, align 4, !tbaa !5
  %6477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6478 = call i32 @s2n_print_stacktrace(ptr noundef %6477)
  %6479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6480 = trunc i8 %6479 to i1
  br i1 %6480, label %6481, label %6503

6481:                                             ; preds = %6474
  %6482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6483 = call i32 @fileno(ptr noundef %6482) #11
  %6484 = call i32 @isatty(i32 noundef %6483) #11
  %6485 = icmp ne i32 %6484, 0
  br i1 %6485, label %6486, label %6503

6486:                                             ; preds = %6481
  %6487 = load i32, ptr %165, align 4, !tbaa !5
  %6488 = call ptr @__errno_location() #12
  store i32 %6487, ptr %6488, align 4, !tbaa !5
  %6489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6490 = load i32, ptr @test_count, align 4, !tbaa !5
  %6491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6492 = load i32, ptr %6491, align 4, !tbaa !5
  %6493 = call ptr @s2n_strerror(i32 noundef %6492, ptr noundef @.str.24)
  %6494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6495 = load i32, ptr %6494, align 4, !tbaa !5
  %6496 = call ptr @s2n_strerror_debug(i32 noundef %6495, ptr noundef @.str.24)
  %6497 = call ptr @__errno_location() #12
  %6498 = load i32, ptr %6497, align 4, !tbaa !5
  %6499 = call ptr @strerror(i32 noundef %6498) #11
  %6500 = call ptr @__errno_location() #12
  %6501 = load i32, ptr %6500, align 4, !tbaa !5
  %6502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6489, ptr noundef @.str.22, i32 noundef %6490, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 551, ptr noundef %6493, ptr noundef %6496, ptr noundef %6499, i32 noundef %6501) #11
  br label %6520

6503:                                             ; preds = %6481, %6474
  %6504 = load i32, ptr %165, align 4, !tbaa !5
  %6505 = call ptr @__errno_location() #12
  store i32 %6504, ptr %6505, align 4, !tbaa !5
  %6506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6507 = load i32, ptr @test_count, align 4, !tbaa !5
  %6508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6509 = load i32, ptr %6508, align 4, !tbaa !5
  %6510 = call ptr @s2n_strerror(i32 noundef %6509, ptr noundef @.str.24)
  %6511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6512 = load i32, ptr %6511, align 4, !tbaa !5
  %6513 = call ptr @s2n_strerror_debug(i32 noundef %6512, ptr noundef @.str.24)
  %6514 = call ptr @__errno_location() #12
  %6515 = load i32, ptr %6514, align 4, !tbaa !5
  %6516 = call ptr @strerror(i32 noundef %6515) #11
  %6517 = call ptr @__errno_location() #12
  %6518 = load i32, ptr %6517, align 4, !tbaa !5
  %6519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6506, ptr noundef @.str.25, i32 noundef %6507, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 551, ptr noundef %6510, ptr noundef %6513, ptr noundef %6516, i32 noundef %6518) #11
  br label %6520

6520:                                             ; preds = %6503, %6486
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %6521

6521:                                             ; preds = %6520
  br label %6522

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

6523:                                             ; No predecessors!
  br label %6524

6524:                                             ; preds = %6523
  br label %6525

6525:                                             ; preds = %6524, %6467
  br label %6526

6526:                                             ; preds = %6525
  br label %6527

6527:                                             ; preds = %6526
  br label %6528

6528:                                             ; preds = %6527
  %6529 = load i32, ptr @test_count, align 4, !tbaa !5
  %6530 = add nsw i32 %6529, 1
  store i32 %6530, ptr @test_count, align 4, !tbaa !5
  %6531 = call i32 @s2n_test_write_header(ptr noundef %161, i8 noundef zeroext 22, i8 noundef zeroext 11)
  %6532 = icmp eq i32 %6531, -1
  br i1 %6532, label %6533, label %6586

6533:                                             ; preds = %6528
  br label %6534

6534:                                             ; preds = %6533
  br label %6535

6535:                                             ; preds = %6534
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %6536 = call ptr @__errno_location() #12
  %6537 = load i32, ptr %6536, align 4, !tbaa !5
  store i32 %6537, ptr %166, align 4, !tbaa !5
  %6538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6539 = call i32 @s2n_print_stacktrace(ptr noundef %6538)
  %6540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6541 = trunc i8 %6540 to i1
  br i1 %6541, label %6542, label %6564

6542:                                             ; preds = %6535
  %6543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6544 = call i32 @fileno(ptr noundef %6543) #11
  %6545 = call i32 @isatty(i32 noundef %6544) #11
  %6546 = icmp ne i32 %6545, 0
  br i1 %6546, label %6547, label %6564

6547:                                             ; preds = %6542
  %6548 = load i32, ptr %166, align 4, !tbaa !5
  %6549 = call ptr @__errno_location() #12
  store i32 %6548, ptr %6549, align 4, !tbaa !5
  %6550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6551 = load i32, ptr @test_count, align 4, !tbaa !5
  %6552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6553 = load i32, ptr %6552, align 4, !tbaa !5
  %6554 = call ptr @s2n_strerror(i32 noundef %6553, ptr noundef @.str.24)
  %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_debug(i32 noundef %6556, ptr noundef @.str.24)
  %6558 = call ptr @__errno_location() #12
  %6559 = load i32, ptr %6558, align 4, !tbaa !5
  %6560 = call ptr @strerror(i32 noundef %6559) #11
  %6561 = call ptr @__errno_location() #12
  %6562 = load i32, ptr %6561, align 4, !tbaa !5
  %6563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6550, ptr noundef @.str.22, i32 noundef %6551, ptr noundef @.str.69, ptr noundef @.str.21, i32 noundef 553, ptr noundef %6554, ptr noundef %6557, ptr noundef %6560, i32 noundef %6562) #11
  br label %6581

6564:                                             ; preds = %6542, %6535
  %6565 = load i32, ptr %166, align 4, !tbaa !5
  %6566 = call ptr @__errno_location() #12
  store i32 %6565, ptr %6566, align 4, !tbaa !5
  %6567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6568 = load i32, ptr @test_count, align 4, !tbaa !5
  %6569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6570 = load i32, ptr %6569, align 4, !tbaa !5
  %6571 = call ptr @s2n_strerror(i32 noundef %6570, ptr noundef @.str.24)
  %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_debug(i32 noundef %6573, ptr noundef @.str.24)
  %6575 = call ptr @__errno_location() #12
  %6576 = load i32, ptr %6575, align 4, !tbaa !5
  %6577 = call ptr @strerror(i32 noundef %6576) #11
  %6578 = call ptr @__errno_location() #12
  %6579 = load i32, ptr %6578, align 4, !tbaa !5
  %6580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6567, ptr noundef @.str.25, i32 noundef %6568, ptr noundef @.str.69, ptr noundef @.str.21, i32 noundef 553, ptr noundef %6571, ptr noundef %6574, ptr noundef %6577, i32 noundef %6579) #11
  br label %6581

6581:                                             ; preds = %6564, %6547
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %6582

6582:                                             ; preds = %6581
  br label %6583

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

6584:                                             ; No predecessors!
  br label %6585

6585:                                             ; preds = %6584
  br label %6586

6586:                                             ; preds = %6585, %6528
  br label %6587

6587:                                             ; preds = %6586
  br label %6588

6588:                                             ; preds = %6587
  br label %6589

6589:                                             ; preds = %6588
  br label %6590

6590:                                             ; preds = %6589
  br label %6591

6591:                                             ; preds = %6590
  %6592 = load i32, ptr @test_count, align 4, !tbaa !5
  %6593 = add nsw i32 %6592, 1
  store i32 %6593, ptr @test_count, align 4, !tbaa !5
  %6594 = load ptr, ptr %158, align 8, !tbaa !9
  %6595 = call i32 @s2n_handshake_read_io(ptr noundef %6594)
  %6596 = icmp eq i32 %6595, -1
  br i1 %6596, label %6650, label %6597

6597:                                             ; preds = %6591
  br label %6598

6598:                                             ; preds = %6597
  br label %6599

6599:                                             ; preds = %6598
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %6600 = call ptr @__errno_location() #12
  %6601 = load i32, ptr %6600, align 4, !tbaa !5
  store i32 %6601, ptr %167, align 4, !tbaa !5
  %6602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6603 = call i32 @s2n_print_stacktrace(ptr noundef %6602)
  %6604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6605 = trunc i8 %6604 to i1
  br i1 %6605, label %6606, label %6628

6606:                                             ; preds = %6599
  %6607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6608 = call i32 @fileno(ptr noundef %6607) #11
  %6609 = call i32 @isatty(i32 noundef %6608) #11
  %6610 = icmp ne i32 %6609, 0
  br i1 %6610, label %6611, label %6628

6611:                                             ; preds = %6606
  %6612 = load i32, ptr %167, align 4, !tbaa !5
  %6613 = call ptr @__errno_location() #12
  store i32 %6612, ptr %6613, align 4, !tbaa !5
  %6614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6615 = load i32, ptr @test_count, align 4, !tbaa !5
  %6616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6617 = load i32, ptr %6616, align 4, !tbaa !5
  %6618 = call ptr @s2n_strerror(i32 noundef %6617, ptr noundef @.str.24)
  %6619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6620 = load i32, ptr %6619, align 4, !tbaa !5
  %6621 = call ptr @s2n_strerror_debug(i32 noundef %6620, ptr noundef @.str.24)
  %6622 = call ptr @__errno_location() #12
  %6623 = load i32, ptr %6622, align 4, !tbaa !5
  %6624 = call ptr @strerror(i32 noundef %6623) #11
  %6625 = call ptr @__errno_location() #12
  %6626 = load i32, ptr %6625, align 4, !tbaa !5
  %6627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6614, ptr noundef @.str.22, i32 noundef %6615, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 554, ptr noundef %6618, ptr noundef %6621, ptr noundef %6624, i32 noundef %6626) #11
  br label %6645

6628:                                             ; preds = %6606, %6599
  %6629 = load i32, ptr %167, align 4, !tbaa !5
  %6630 = call ptr @__errno_location() #12
  store i32 %6629, ptr %6630, align 4, !tbaa !5
  %6631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6632 = load i32, ptr @test_count, align 4, !tbaa !5
  %6633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6634 = load i32, ptr %6633, align 4, !tbaa !5
  %6635 = call ptr @s2n_strerror(i32 noundef %6634, ptr noundef @.str.24)
  %6636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6637 = load i32, ptr %6636, align 4, !tbaa !5
  %6638 = call ptr @s2n_strerror_debug(i32 noundef %6637, ptr noundef @.str.24)
  %6639 = call ptr @__errno_location() #12
  %6640 = load i32, ptr %6639, align 4, !tbaa !5
  %6641 = call ptr @strerror(i32 noundef %6640) #11
  %6642 = call ptr @__errno_location() #12
  %6643 = load i32, ptr %6642, align 4, !tbaa !5
  %6644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6631, ptr noundef @.str.25, i32 noundef %6632, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 554, ptr noundef %6635, ptr noundef %6638, ptr noundef %6641, i32 noundef %6643) #11
  br label %6645

6645:                                             ; preds = %6628, %6611
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %6646

6646:                                             ; preds = %6645
  br label %6647

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

6648:                                             ; No predecessors!
  br label %6649

6649:                                             ; preds = %6648
  br label %6650

6650:                                             ; preds = %6649, %6591
  br label %6651

6651:                                             ; preds = %6650
  br label %6652

6652:                                             ; preds = %6651
  br label %6653

6653:                                             ; preds = %6652
  %6654 = load i32, ptr @test_count, align 4, !tbaa !5
  %6655 = add nsw i32 %6654, 1
  store i32 %6655, ptr @test_count, align 4, !tbaa !5
  %6656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6657 = load i32, ptr %6656, align 4, !tbaa !5
  %6658 = icmp eq i32 %6657, 335544322
  br i1 %6658, label %6712, label %6659

6659:                                             ; preds = %6653
  br label %6660

6660:                                             ; preds = %6659
  br label %6661

6661:                                             ; preds = %6660
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %6662 = call ptr @__errno_location() #12
  %6663 = load i32, ptr %6662, align 4, !tbaa !5
  store i32 %6663, ptr %168, align 4, !tbaa !5
  %6664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6665 = call i32 @s2n_print_stacktrace(ptr noundef %6664)
  %6666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6667 = trunc i8 %6666 to i1
  br i1 %6667, label %6668, label %6690

6668:                                             ; preds = %6661
  %6669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6670 = call i32 @fileno(ptr noundef %6669) #11
  %6671 = call i32 @isatty(i32 noundef %6670) #11
  %6672 = icmp ne i32 %6671, 0
  br i1 %6672, label %6673, label %6690

6673:                                             ; preds = %6668
  %6674 = load i32, ptr %168, align 4, !tbaa !5
  %6675 = call ptr @__errno_location() #12
  store i32 %6674, ptr %6675, align 4, !tbaa !5
  %6676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6677 = load i32, ptr @test_count, align 4, !tbaa !5
  %6678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6679 = load i32, ptr %6678, align 4, !tbaa !5
  %6680 = call ptr @s2n_strerror(i32 noundef %6679, ptr noundef @.str.24)
  %6681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  %6683 = call ptr @s2n_strerror_debug(i32 noundef %6682, ptr noundef @.str.24)
  %6684 = call ptr @__errno_location() #12
  %6685 = load i32, ptr %6684, align 4, !tbaa !5
  %6686 = call ptr @strerror(i32 noundef %6685) #11
  %6687 = call ptr @__errno_location() #12
  %6688 = load i32, ptr %6687, align 4, !tbaa !5
  %6689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6676, ptr noundef @.str.22, i32 noundef %6677, ptr noundef @.str.71, ptr noundef @.str.21, i32 noundef 554, ptr noundef %6680, ptr noundef %6683, ptr noundef %6686, i32 noundef %6688) #11
  br label %6707

6690:                                             ; preds = %6668, %6661
  %6691 = load i32, ptr %168, align 4, !tbaa !5
  %6692 = call ptr @__errno_location() #12
  store i32 %6691, ptr %6692, align 4, !tbaa !5
  %6693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6694 = load i32, ptr @test_count, align 4, !tbaa !5
  %6695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6696 = load i32, ptr %6695, align 4, !tbaa !5
  %6697 = call ptr @s2n_strerror(i32 noundef %6696, ptr noundef @.str.24)
  %6698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6699 = load i32, ptr %6698, align 4, !tbaa !5
  %6700 = call ptr @s2n_strerror_debug(i32 noundef %6699, ptr noundef @.str.24)
  %6701 = call ptr @__errno_location() #12
  %6702 = load i32, ptr %6701, align 4, !tbaa !5
  %6703 = call ptr @strerror(i32 noundef %6702) #11
  %6704 = call ptr @__errno_location() #12
  %6705 = load i32, ptr %6704, align 4, !tbaa !5
  %6706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6693, ptr noundef @.str.25, i32 noundef %6694, ptr noundef @.str.71, ptr noundef @.str.21, i32 noundef 554, ptr noundef %6697, ptr noundef %6700, ptr noundef %6703, i32 noundef %6705) #11
  br label %6707

6707:                                             ; preds = %6690, %6673
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %6708

6708:                                             ; preds = %6707
  br label %6709

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

6710:                                             ; No predecessors!
  br label %6711

6711:                                             ; preds = %6710
  br label %6712

6712:                                             ; preds = %6711, %6653
  br label %6713

6713:                                             ; preds = %6712
  br label %6714

6714:                                             ; preds = %6713
  br label %6715

6715:                                             ; preds = %6714
  %6716 = load i32, ptr @test_count, align 4, !tbaa !5
  %6717 = add nsw i32 %6716, 1
  store i32 %6717, ptr @test_count, align 4, !tbaa !5
  %6718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6719 = load i32, ptr %6718, align 4, !tbaa !5
  %6720 = call ptr @s2n_strerror_debug(i32 noundef %6719, ptr noundef @.str.24)
  %6721 = icmp eq ptr %6720, null
  br i1 %6721, label %6722, label %6775

6722:                                             ; preds = %6715
  br label %6723

6723:                                             ; preds = %6722
  br label %6724

6724:                                             ; preds = %6723
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %6725 = call ptr @__errno_location() #12
  %6726 = load i32, ptr %6725, align 4, !tbaa !5
  store i32 %6726, ptr %169, align 4, !tbaa !5
  %6727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6728 = call i32 @s2n_print_stacktrace(ptr noundef %6727)
  %6729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6730 = trunc i8 %6729 to i1
  br i1 %6730, label %6731, label %6753

6731:                                             ; preds = %6724
  %6732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6733 = call i32 @fileno(ptr noundef %6732) #11
  %6734 = call i32 @isatty(i32 noundef %6733) #11
  %6735 = icmp ne i32 %6734, 0
  br i1 %6735, label %6736, label %6753

6736:                                             ; preds = %6731
  %6737 = load i32, ptr %169, align 4, !tbaa !5
  %6738 = call ptr @__errno_location() #12
  store i32 %6737, ptr %6738, align 4, !tbaa !5
  %6739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6740 = load i32, ptr @test_count, align 4, !tbaa !5
  %6741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6742 = load i32, ptr %6741, align 4, !tbaa !5
  %6743 = call ptr @s2n_strerror(i32 noundef %6742, ptr noundef @.str.24)
  %6744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6745 = load i32, ptr %6744, align 4, !tbaa !5
  %6746 = call ptr @s2n_strerror_debug(i32 noundef %6745, ptr noundef @.str.24)
  %6747 = call ptr @__errno_location() #12
  %6748 = load i32, ptr %6747, align 4, !tbaa !5
  %6749 = call ptr @strerror(i32 noundef %6748) #11
  %6750 = call ptr @__errno_location() #12
  %6751 = load i32, ptr %6750, align 4, !tbaa !5
  %6752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6739, ptr noundef @.str.22, i32 noundef %6740, ptr noundef @.str.72, ptr noundef @.str.21, i32 noundef 554, ptr noundef %6743, ptr noundef %6746, ptr noundef %6749, i32 noundef %6751) #11
  br label %6770

6753:                                             ; preds = %6731, %6724
  %6754 = load i32, ptr %169, align 4, !tbaa !5
  %6755 = call ptr @__errno_location() #12
  store i32 %6754, ptr %6755, align 4, !tbaa !5
  %6756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6757 = load i32, ptr @test_count, align 4, !tbaa !5
  %6758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6759 = load i32, ptr %6758, align 4, !tbaa !5
  %6760 = call ptr @s2n_strerror(i32 noundef %6759, ptr noundef @.str.24)
  %6761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6762 = load i32, ptr %6761, align 4, !tbaa !5
  %6763 = call ptr @s2n_strerror_debug(i32 noundef %6762, ptr noundef @.str.24)
  %6764 = call ptr @__errno_location() #12
  %6765 = load i32, ptr %6764, align 4, !tbaa !5
  %6766 = call ptr @strerror(i32 noundef %6765) #11
  %6767 = call ptr @__errno_location() #12
  %6768 = load i32, ptr %6767, align 4, !tbaa !5
  %6769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6756, ptr noundef @.str.25, i32 noundef %6757, ptr noundef @.str.72, ptr noundef @.str.21, i32 noundef 554, ptr noundef %6760, ptr noundef %6763, ptr noundef %6766, i32 noundef %6768) #11
  br label %6770

6770:                                             ; preds = %6753, %6736
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %6771

6771:                                             ; preds = %6770
  br label %6772

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

6773:                                             ; No predecessors!
  br label %6774

6774:                                             ; preds = %6773
  br label %6775

6775:                                             ; preds = %6774, %6715
  br label %6776

6776:                                             ; preds = %6775
  br label %6777

6777:                                             ; preds = %6776
  br label %6778

6778:                                             ; preds = %6777
  br label %6779

6779:                                             ; preds = %6778
  br label %6780

6780:                                             ; preds = %6779
  %6781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6781, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6782 = call ptr @__errno_location() #12
  store i32 0, ptr %6782, align 4, !tbaa !5
  br label %6783

6783:                                             ; preds = %6780
  br label %6784

6784:                                             ; preds = %6783
  br label %6785

6785:                                             ; preds = %6784
  br label %6786

6786:                                             ; preds = %6785
  br label %6787

6787:                                             ; preds = %6786
  %6788 = load i32, ptr @test_count, align 4, !tbaa !5
  %6789 = add nsw i32 %6788, 1
  store i32 %6789, ptr @test_count, align 4, !tbaa !5
  %6790 = load ptr, ptr %158, align 8, !tbaa !9
  %6791 = getelementptr inbounds %struct.s2n_connection, ptr %6790, i32 0, i32 52
  %6792 = getelementptr inbounds %struct.s2n_handshake, ptr %6791, i32 0, i32 7
  %6793 = load i32, ptr %6792, align 8, !tbaa !61
  %6794 = icmp eq i32 %6793, 0
  br i1 %6794, label %6848, label %6795

6795:                                             ; preds = %6787
  br label %6796

6796:                                             ; preds = %6795
  br label %6797

6797:                                             ; preds = %6796
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %6798 = call ptr @__errno_location() #12
  %6799 = load i32, ptr %6798, align 4, !tbaa !5
  store i32 %6799, ptr %170, align 4, !tbaa !5
  %6800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6801 = call i32 @s2n_print_stacktrace(ptr noundef %6800)
  %6802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6803 = trunc i8 %6802 to i1
  br i1 %6803, label %6804, label %6826

6804:                                             ; preds = %6797
  %6805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6806 = call i32 @fileno(ptr noundef %6805) #11
  %6807 = call i32 @isatty(i32 noundef %6806) #11
  %6808 = icmp ne i32 %6807, 0
  br i1 %6808, label %6809, label %6826

6809:                                             ; preds = %6804
  %6810 = load i32, ptr %170, align 4, !tbaa !5
  %6811 = call ptr @__errno_location() #12
  store i32 %6810, ptr %6811, align 4, !tbaa !5
  %6812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6813 = load i32, ptr @test_count, align 4, !tbaa !5
  %6814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  %6816 = call ptr @s2n_strerror(i32 noundef %6815, ptr noundef @.str.24)
  %6817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6818 = load i32, ptr %6817, align 4, !tbaa !5
  %6819 = call ptr @s2n_strerror_debug(i32 noundef %6818, ptr noundef @.str.24)
  %6820 = call ptr @__errno_location() #12
  %6821 = load i32, ptr %6820, align 4, !tbaa !5
  %6822 = call ptr @strerror(i32 noundef %6821) #11
  %6823 = call ptr @__errno_location() #12
  %6824 = load i32, ptr %6823, align 4, !tbaa !5
  %6825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6812, ptr noundef @.str.22, i32 noundef %6813, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 556, ptr noundef %6816, ptr noundef %6819, ptr noundef %6822, i32 noundef %6824) #11
  br label %6843

6826:                                             ; preds = %6804, %6797
  %6827 = load i32, ptr %170, align 4, !tbaa !5
  %6828 = call ptr @__errno_location() #12
  store i32 %6827, ptr %6828, align 4, !tbaa !5
  %6829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6830 = load i32, ptr @test_count, align 4, !tbaa !5
  %6831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6832 = load i32, ptr %6831, align 4, !tbaa !5
  %6833 = call ptr @s2n_strerror(i32 noundef %6832, ptr noundef @.str.24)
  %6834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6835 = load i32, ptr %6834, align 4, !tbaa !5
  %6836 = call ptr @s2n_strerror_debug(i32 noundef %6835, ptr noundef @.str.24)
  %6837 = call ptr @__errno_location() #12
  %6838 = load i32, ptr %6837, align 4, !tbaa !5
  %6839 = call ptr @strerror(i32 noundef %6838) #11
  %6840 = call ptr @__errno_location() #12
  %6841 = load i32, ptr %6840, align 4, !tbaa !5
  %6842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6829, ptr noundef @.str.25, i32 noundef %6830, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 556, ptr noundef %6833, ptr noundef %6836, ptr noundef %6839, i32 noundef %6841) #11
  br label %6843

6843:                                             ; preds = %6826, %6809
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %6844

6844:                                             ; preds = %6843
  br label %6845

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

6846:                                             ; No predecessors!
  br label %6847

6847:                                             ; preds = %6846
  br label %6848

6848:                                             ; preds = %6847, %6787
  br label %6849

6849:                                             ; preds = %6848
  br label %6850

6850:                                             ; preds = %6849
  br label %6851

6851:                                             ; preds = %6850
  %6852 = load i32, ptr @test_count, align 4, !tbaa !5
  %6853 = add nsw i32 %6852, 1
  store i32 %6853, ptr @test_count, align 4, !tbaa !5
  %6854 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %6855 = icmp ne i32 %6854, 0
  br i1 %6855, label %6856, label %6909

6856:                                             ; preds = %6851
  br label %6857

6857:                                             ; preds = %6856
  br label %6858

6858:                                             ; preds = %6857
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %6859 = call ptr @__errno_location() #12
  %6860 = load i32, ptr %6859, align 4, !tbaa !5
  store i32 %6860, ptr %171, align 4, !tbaa !5
  %6861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6862 = call i32 @s2n_print_stacktrace(ptr noundef %6861)
  %6863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6864 = trunc i8 %6863 to i1
  br i1 %6864, label %6865, label %6887

6865:                                             ; preds = %6858
  %6866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6867 = call i32 @fileno(ptr noundef %6866) #11
  %6868 = call i32 @isatty(i32 noundef %6867) #11
  %6869 = icmp ne i32 %6868, 0
  br i1 %6869, label %6870, label %6887

6870:                                             ; preds = %6865
  %6871 = load i32, ptr %171, align 4, !tbaa !5
  %6872 = call ptr @__errno_location() #12
  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() #12
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  %6883 = call ptr @strerror(i32 noundef %6882) #11
  %6884 = call ptr @__errno_location() #12
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6873, ptr noundef @.str.22, i32 noundef %6874, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 557, ptr noundef %6877, ptr noundef %6880, ptr noundef %6883, i32 noundef %6885) #11
  br label %6904

6887:                                             ; preds = %6865, %6858
  %6888 = load i32, ptr %171, align 4, !tbaa !5
  %6889 = call ptr @__errno_location() #12
  store i32 %6888, ptr %6889, align 4, !tbaa !5
  %6890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6891 = load i32, ptr @test_count, align 4, !tbaa !5
  %6892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6893 = load i32, ptr %6892, align 4, !tbaa !5
  %6894 = call ptr @s2n_strerror(i32 noundef %6893, ptr noundef @.str.24)
  %6895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6896 = load i32, ptr %6895, align 4, !tbaa !5
  %6897 = call ptr @s2n_strerror_debug(i32 noundef %6896, ptr noundef @.str.24)
  %6898 = call ptr @__errno_location() #12
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  %6900 = call ptr @strerror(i32 noundef %6899) #11
  %6901 = call ptr @__errno_location() #12
  %6902 = load i32, ptr %6901, align 4, !tbaa !5
  %6903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6890, ptr noundef @.str.25, i32 noundef %6891, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 557, ptr noundef %6894, ptr noundef %6897, ptr noundef %6900, i32 noundef %6902) #11
  br label %6904

6904:                                             ; preds = %6887, %6870
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %6905

6905:                                             ; preds = %6904
  br label %6906

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

6907:                                             ; No predecessors!
  br label %6908

6908:                                             ; preds = %6907
  br label %6909

6909:                                             ; preds = %6908, %6851
  br label %6910

6910:                                             ; preds = %6909
  br label %6911

6911:                                             ; preds = %6910
  br label %6912

6912:                                             ; preds = %6911
  %6913 = load i32, ptr @test_count, align 4, !tbaa !5
  %6914 = add nsw i32 %6913, 1
  store i32 %6914, ptr @test_count, align 4, !tbaa !5
  %6915 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %6916 = icmp ne i32 %6915, 0
  br i1 %6916, label %6917, label %6970

6917:                                             ; preds = %6912
  br label %6918

6918:                                             ; preds = %6917
  br label %6919

6919:                                             ; preds = %6918
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %6920 = call ptr @__errno_location() #12
  %6921 = load i32, ptr %6920, align 4, !tbaa !5
  store i32 %6921, ptr %172, align 4, !tbaa !5
  %6922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6923 = call i32 @s2n_print_stacktrace(ptr noundef %6922)
  %6924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6925 = trunc i8 %6924 to i1
  br i1 %6925, label %6926, label %6948

6926:                                             ; preds = %6919
  %6927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6928 = call i32 @fileno(ptr noundef %6927) #11
  %6929 = call i32 @isatty(i32 noundef %6928) #11
  %6930 = icmp ne i32 %6929, 0
  br i1 %6930, label %6931, label %6948

6931:                                             ; preds = %6926
  %6932 = load i32, ptr %172, align 4, !tbaa !5
  %6933 = call ptr @__errno_location() #12
  store i32 %6932, ptr %6933, align 4, !tbaa !5
  %6934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6935 = load i32, ptr @test_count, align 4, !tbaa !5
  %6936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6937 = load i32, ptr %6936, align 4, !tbaa !5
  %6938 = call ptr @s2n_strerror(i32 noundef %6937, ptr noundef @.str.24)
  %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_debug(i32 noundef %6940, ptr noundef @.str.24)
  %6942 = call ptr @__errno_location() #12
  %6943 = load i32, ptr %6942, align 4, !tbaa !5
  %6944 = call ptr @strerror(i32 noundef %6943) #11
  %6945 = call ptr @__errno_location() #12
  %6946 = load i32, ptr %6945, align 4, !tbaa !5
  %6947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6934, ptr noundef @.str.22, i32 noundef %6935, ptr noundef @.str.74, ptr noundef @.str.21, i32 noundef 558, ptr noundef %6938, ptr noundef %6941, ptr noundef %6944, i32 noundef %6946) #11
  br label %6965

6948:                                             ; preds = %6926, %6919
  %6949 = load i32, ptr %172, align 4, !tbaa !5
  %6950 = call ptr @__errno_location() #12
  store i32 %6949, ptr %6950, align 4, !tbaa !5
  %6951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6952 = load i32, ptr @test_count, align 4, !tbaa !5
  %6953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6954 = load i32, ptr %6953, align 4, !tbaa !5
  %6955 = call ptr @s2n_strerror(i32 noundef %6954, ptr noundef @.str.24)
  %6956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6957 = load i32, ptr %6956, align 4, !tbaa !5
  %6958 = call ptr @s2n_strerror_debug(i32 noundef %6957, ptr noundef @.str.24)
  %6959 = call ptr @__errno_location() #12
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call ptr @strerror(i32 noundef %6960) #11
  %6962 = call ptr @__errno_location() #12
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6951, ptr noundef @.str.25, i32 noundef %6952, ptr noundef @.str.74, ptr noundef @.str.21, i32 noundef 558, ptr noundef %6955, ptr noundef %6958, ptr noundef %6961, i32 noundef %6963) #11
  br label %6965

6965:                                             ; preds = %6948, %6931
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %6966

6966:                                             ; preds = %6965
  br label %6967

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

6968:                                             ; No predecessors!
  br label %6969

6969:                                             ; preds = %6968
  br label %6970

6970:                                             ; preds = %6969, %6912
  br label %6971

6971:                                             ; preds = %6970
  br label %6972

6972:                                             ; preds = %6971
  br label %6973

6973:                                             ; preds = %6972
  %6974 = load i32, ptr @test_count, align 4, !tbaa !5
  %6975 = add nsw i32 %6974, 1
  store i32 %6975, ptr @test_count, align 4, !tbaa !5
  %6976 = call i32 @s2n_stuffer_free(ptr noundef %161)
  %6977 = icmp eq i32 %6976, -1
  br i1 %6977, label %6978, label %7031

6978:                                             ; preds = %6973
  br label %6979

6979:                                             ; preds = %6978
  br label %6980

6980:                                             ; preds = %6979
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %6981 = call ptr @__errno_location() #12
  %6982 = load i32, ptr %6981, align 4, !tbaa !5
  store i32 %6982, ptr %173, align 4, !tbaa !5
  %6983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6984 = call i32 @s2n_print_stacktrace(ptr noundef %6983)
  %6985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6986 = trunc i8 %6985 to i1
  br i1 %6986, label %6987, label %7009

6987:                                             ; preds = %6980
  %6988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6989 = call i32 @fileno(ptr noundef %6988) #11
  %6990 = call i32 @isatty(i32 noundef %6989) #11
  %6991 = icmp ne i32 %6990, 0
  br i1 %6991, label %6992, label %7009

6992:                                             ; preds = %6987
  %6993 = load i32, ptr %173, align 4, !tbaa !5
  %6994 = call ptr @__errno_location() #12
  store i32 %6993, ptr %6994, align 4, !tbaa !5
  %6995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6996 = load i32, ptr @test_count, align 4, !tbaa !5
  %6997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6998 = load i32, ptr %6997, align 4, !tbaa !5
  %6999 = call ptr @s2n_strerror(i32 noundef %6998, ptr noundef @.str.24)
  %7000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7001 = load i32, ptr %7000, align 4, !tbaa !5
  %7002 = call ptr @s2n_strerror_debug(i32 noundef %7001, ptr noundef @.str.24)
  %7003 = call ptr @__errno_location() #12
  %7004 = load i32, ptr %7003, align 4, !tbaa !5
  %7005 = call ptr @strerror(i32 noundef %7004) #11
  %7006 = call ptr @__errno_location() #12
  %7007 = load i32, ptr %7006, align 4, !tbaa !5
  %7008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6995, ptr noundef @.str.22, i32 noundef %6996, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 560, ptr noundef %6999, ptr noundef %7002, ptr noundef %7005, i32 noundef %7007) #11
  br label %7026

7009:                                             ; preds = %6987, %6980
  %7010 = load i32, ptr %173, align 4, !tbaa !5
  %7011 = call ptr @__errno_location() #12
  store i32 %7010, ptr %7011, align 4, !tbaa !5
  %7012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7013 = load i32, ptr @test_count, align 4, !tbaa !5
  %7014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7015 = load i32, ptr %7014, align 4, !tbaa !5
  %7016 = call ptr @s2n_strerror(i32 noundef %7015, ptr noundef @.str.24)
  %7017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7018 = load i32, ptr %7017, align 4, !tbaa !5
  %7019 = call ptr @s2n_strerror_debug(i32 noundef %7018, ptr noundef @.str.24)
  %7020 = call ptr @__errno_location() #12
  %7021 = load i32, ptr %7020, align 4, !tbaa !5
  %7022 = call ptr @strerror(i32 noundef %7021) #11
  %7023 = call ptr @__errno_location() #12
  %7024 = load i32, ptr %7023, align 4, !tbaa !5
  %7025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7012, ptr noundef @.str.25, i32 noundef %7013, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 560, ptr noundef %7016, ptr noundef %7019, ptr noundef %7022, i32 noundef %7024) #11
  br label %7026

7026:                                             ; preds = %7009, %6992
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %7027

7027:                                             ; preds = %7026
  br label %7028

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

7029:                                             ; No predecessors!
  br label %7030

7030:                                             ; preds = %7029
  br label %7031

7031:                                             ; preds = %7030, %6973
  br label %7032

7032:                                             ; preds = %7031
  br label %7033

7033:                                             ; preds = %7032
  br label %7034

7034:                                             ; preds = %7033
  %7035 = load i32, ptr @test_count, align 4, !tbaa !5
  %7036 = add nsw i32 %7035, 1
  store i32 %7036, ptr @test_count, align 4, !tbaa !5
  %7037 = load ptr, ptr %158, align 8, !tbaa !9
  %7038 = call i32 @s2n_connection_free(ptr noundef %7037)
  %7039 = icmp eq i32 %7038, -1
  br i1 %7039, label %7040, label %7093

7040:                                             ; preds = %7034
  br label %7041

7041:                                             ; preds = %7040
  br label %7042

7042:                                             ; preds = %7041
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %7043 = call ptr @__errno_location() #12
  %7044 = load i32, ptr %7043, align 4, !tbaa !5
  store i32 %7044, ptr %174, align 4, !tbaa !5
  %7045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7046 = call i32 @s2n_print_stacktrace(ptr noundef %7045)
  %7047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7048 = trunc i8 %7047 to i1
  br i1 %7048, label %7049, label %7071

7049:                                             ; preds = %7042
  %7050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7051 = call i32 @fileno(ptr noundef %7050) #11
  %7052 = call i32 @isatty(i32 noundef %7051) #11
  %7053 = icmp ne i32 %7052, 0
  br i1 %7053, label %7054, label %7071

7054:                                             ; preds = %7049
  %7055 = load i32, ptr %174, align 4, !tbaa !5
  %7056 = call ptr @__errno_location() #12
  store i32 %7055, ptr %7056, align 4, !tbaa !5
  %7057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7058 = load i32, ptr @test_count, align 4, !tbaa !5
  %7059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7060 = load i32, ptr %7059, align 4, !tbaa !5
  %7061 = call ptr @s2n_strerror(i32 noundef %7060, ptr noundef @.str.24)
  %7062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7063 = load i32, ptr %7062, align 4, !tbaa !5
  %7064 = call ptr @s2n_strerror_debug(i32 noundef %7063, ptr noundef @.str.24)
  %7065 = call ptr @__errno_location() #12
  %7066 = load i32, ptr %7065, align 4, !tbaa !5
  %7067 = call ptr @strerror(i32 noundef %7066) #11
  %7068 = call ptr @__errno_location() #12
  %7069 = load i32, ptr %7068, align 4, !tbaa !5
  %7070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7057, ptr noundef @.str.22, i32 noundef %7058, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 561, ptr noundef %7061, ptr noundef %7064, ptr noundef %7067, i32 noundef %7069) #11
  br label %7088

7071:                                             ; preds = %7049, %7042
  %7072 = load i32, ptr %174, align 4, !tbaa !5
  %7073 = call ptr @__errno_location() #12
  store i32 %7072, ptr %7073, align 4, !tbaa !5
  %7074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7075 = load i32, ptr @test_count, align 4, !tbaa !5
  %7076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7077 = load i32, ptr %7076, align 4, !tbaa !5
  %7078 = call ptr @s2n_strerror(i32 noundef %7077, ptr noundef @.str.24)
  %7079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7080 = load i32, ptr %7079, align 4, !tbaa !5
  %7081 = call ptr @s2n_strerror_debug(i32 noundef %7080, ptr noundef @.str.24)
  %7082 = call ptr @__errno_location() #12
  %7083 = load i32, ptr %7082, align 4, !tbaa !5
  %7084 = call ptr @strerror(i32 noundef %7083) #11
  %7085 = call ptr @__errno_location() #12
  %7086 = load i32, ptr %7085, align 4, !tbaa !5
  %7087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7074, ptr noundef @.str.25, i32 noundef %7075, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 561, ptr noundef %7078, ptr noundef %7081, ptr noundef %7084, i32 noundef %7086) #11
  br label %7088

7088:                                             ; preds = %7071, %7054
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %7089

7089:                                             ; preds = %7088
  br label %7090

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

7091:                                             ; No predecessors!
  br label %7092

7092:                                             ; preds = %7091
  br label %7093

7093:                                             ; preds = %7092, %7034
  br label %7094

7094:                                             ; preds = %7093
  br label %7095

7095:                                             ; preds = %7094
  call void @llvm.lifetime.end.p0(i64 40, ptr %161) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #11
  %7096 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7096, ptr %175, align 8, !tbaa !9
  %7097 = load ptr, ptr %175, align 8, !tbaa !9
  %7098 = getelementptr inbounds %struct.s2n_connection, ptr %7097, i32 0, i32 23
  store i8 34, ptr %7098, align 4, !tbaa !34
  br label %7099

7099:                                             ; preds = %7095
  %7100 = load i32, ptr @test_count, align 4, !tbaa !5
  %7101 = add nsw i32 %7100, 1
  store i32 %7101, ptr @test_count, align 4, !tbaa !5
  %7102 = load ptr, ptr %175, align 8, !tbaa !9
  %7103 = call i32 @s2n_conn_choose_state_machine(ptr noundef %7102, i8 noundef zeroext 34)
  %7104 = getelementptr inbounds %struct.s2n_result, ptr %176, i32 0, i32 0
  store i32 %7103, ptr %7104, align 4
  %7105 = getelementptr inbounds %struct.s2n_result, ptr %176, i32 0, i32 0
  %7106 = load i32, ptr %7105, align 4
  %7107 = call zeroext i1 @s2n_result_is_ok(i32 %7106)
  br i1 %7107, label %7161, label %7108

7108:                                             ; preds = %7099
  br label %7109

7109:                                             ; preds = %7108
  br label %7110

7110:                                             ; preds = %7109
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %7111 = call ptr @__errno_location() #12
  %7112 = load i32, ptr %7111, align 4, !tbaa !5
  store i32 %7112, ptr %177, align 4, !tbaa !5
  %7113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7114 = call i32 @s2n_print_stacktrace(ptr noundef %7113)
  %7115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7116 = trunc i8 %7115 to i1
  br i1 %7116, label %7117, label %7139

7117:                                             ; preds = %7110
  %7118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7119 = call i32 @fileno(ptr noundef %7118) #11
  %7120 = call i32 @isatty(i32 noundef %7119) #11
  %7121 = icmp ne i32 %7120, 0
  br i1 %7121, label %7122, label %7139

7122:                                             ; preds = %7117
  %7123 = load i32, ptr %177, align 4, !tbaa !5
  %7124 = call ptr @__errno_location() #12
  store i32 %7123, ptr %7124, align 4, !tbaa !5
  %7125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7126 = load i32, ptr @test_count, align 4, !tbaa !5
  %7127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7128 = load i32, ptr %7127, align 4, !tbaa !5
  %7129 = call ptr @s2n_strerror(i32 noundef %7128, ptr noundef @.str.24)
  %7130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7131 = load i32, ptr %7130, align 4, !tbaa !5
  %7132 = call ptr @s2n_strerror_debug(i32 noundef %7131, ptr noundef @.str.24)
  %7133 = call ptr @__errno_location() #12
  %7134 = load i32, ptr %7133, align 4, !tbaa !5
  %7135 = call ptr @strerror(i32 noundef %7134) #11
  %7136 = call ptr @__errno_location() #12
  %7137 = load i32, ptr %7136, align 4, !tbaa !5
  %7138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7125, ptr noundef @.str.22, i32 noundef %7126, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 568, ptr noundef %7129, ptr noundef %7132, ptr noundef %7135, i32 noundef %7137) #11
  br label %7156

7139:                                             ; preds = %7117, %7110
  %7140 = load i32, ptr %177, align 4, !tbaa !5
  %7141 = call ptr @__errno_location() #12
  store i32 %7140, ptr %7141, align 4, !tbaa !5
  %7142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7143 = load i32, ptr @test_count, align 4, !tbaa !5
  %7144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7145 = load i32, ptr %7144, align 4, !tbaa !5
  %7146 = call ptr @s2n_strerror(i32 noundef %7145, ptr noundef @.str.24)
  %7147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @s2n_strerror_debug(i32 noundef %7148, ptr noundef @.str.24)
  %7150 = call ptr @__errno_location() #12
  %7151 = load i32, ptr %7150, align 4, !tbaa !5
  %7152 = call ptr @strerror(i32 noundef %7151) #11
  %7153 = call ptr @__errno_location() #12
  %7154 = load i32, ptr %7153, align 4, !tbaa !5
  %7155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7142, ptr noundef @.str.25, i32 noundef %7143, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 568, ptr noundef %7146, ptr noundef %7149, ptr noundef %7152, i32 noundef %7154) #11
  br label %7156

7156:                                             ; preds = %7139, %7122
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %7157

7157:                                             ; preds = %7156
  br label %7158

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

7159:                                             ; No predecessors!
  br label %7160

7160:                                             ; preds = %7159
  br label %7161

7161:                                             ; preds = %7160, %7099
  br label %7162

7162:                                             ; preds = %7161
  br label %7163

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

7164:                                             ; preds = %7163
  %7165 = load i32, ptr @test_count, align 4, !tbaa !5
  %7166 = add nsw i32 %7165, 1
  store i32 %7166, ptr @test_count, align 4, !tbaa !5
  %7167 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %178, i32 noundef 0)
  %7168 = icmp eq i32 %7167, -1
  br i1 %7168, label %7169, label %7222

7169:                                             ; preds = %7164
  br label %7170

7170:                                             ; preds = %7169
  br label %7171

7171:                                             ; preds = %7170
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %7172 = call ptr @__errno_location() #12
  %7173 = load i32, ptr %7172, align 4, !tbaa !5
  store i32 %7173, ptr %179, align 4, !tbaa !5
  %7174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7175 = call i32 @s2n_print_stacktrace(ptr noundef %7174)
  %7176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7177 = trunc i8 %7176 to i1
  br i1 %7177, label %7178, label %7200

7178:                                             ; preds = %7171
  %7179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7180 = call i32 @fileno(ptr noundef %7179) #11
  %7181 = call i32 @isatty(i32 noundef %7180) #11
  %7182 = icmp ne i32 %7181, 0
  br i1 %7182, label %7183, label %7200

7183:                                             ; preds = %7178
  %7184 = load i32, ptr %179, align 4, !tbaa !5
  %7185 = call ptr @__errno_location() #12
  store i32 %7184, ptr %7185, align 4, !tbaa !5
  %7186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7187 = load i32, ptr @test_count, align 4, !tbaa !5
  %7188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7189 = load i32, ptr %7188, align 4, !tbaa !5
  %7190 = call ptr @s2n_strerror(i32 noundef %7189, ptr noundef @.str.24)
  %7191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7192 = load i32, ptr %7191, align 4, !tbaa !5
  %7193 = call ptr @s2n_strerror_debug(i32 noundef %7192, ptr noundef @.str.24)
  %7194 = call ptr @__errno_location() #12
  %7195 = load i32, ptr %7194, align 4, !tbaa !5
  %7196 = call ptr @strerror(i32 noundef %7195) #11
  %7197 = call ptr @__errno_location() #12
  %7198 = load i32, ptr %7197, align 4, !tbaa !5
  %7199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7186, ptr noundef @.str.22, i32 noundef %7187, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 571, ptr noundef %7190, ptr noundef %7193, ptr noundef %7196, i32 noundef %7198) #11
  br label %7217

7200:                                             ; preds = %7178, %7171
  %7201 = load i32, ptr %179, align 4, !tbaa !5
  %7202 = call ptr @__errno_location() #12
  store i32 %7201, ptr %7202, align 4, !tbaa !5
  %7203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7204 = load i32, ptr @test_count, align 4, !tbaa !5
  %7205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7206 = load i32, ptr %7205, align 4, !tbaa !5
  %7207 = call ptr @s2n_strerror(i32 noundef %7206, ptr noundef @.str.24)
  %7208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7209 = load i32, ptr %7208, align 4, !tbaa !5
  %7210 = call ptr @s2n_strerror_debug(i32 noundef %7209, ptr noundef @.str.24)
  %7211 = call ptr @__errno_location() #12
  %7212 = load i32, ptr %7211, align 4, !tbaa !5
  %7213 = call ptr @strerror(i32 noundef %7212) #11
  %7214 = call ptr @__errno_location() #12
  %7215 = load i32, ptr %7214, align 4, !tbaa !5
  %7216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7203, ptr noundef @.str.25, i32 noundef %7204, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 571, ptr noundef %7207, ptr noundef %7210, ptr noundef %7213, i32 noundef %7215) #11
  br label %7217

7217:                                             ; preds = %7200, %7183
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %7218

7218:                                             ; preds = %7217
  br label %7219

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

7220:                                             ; No predecessors!
  br label %7221

7221:                                             ; preds = %7220
  br label %7222

7222:                                             ; preds = %7221, %7164
  br label %7223

7223:                                             ; preds = %7222
  br label %7224

7224:                                             ; preds = %7223
  br label %7225

7225:                                             ; preds = %7224
  %7226 = load i32, ptr @test_count, align 4, !tbaa !5
  %7227 = add nsw i32 %7226, 1
  store i32 %7227, ptr @test_count, align 4, !tbaa !5
  %7228 = load ptr, ptr %175, align 8, !tbaa !9
  %7229 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %178, ptr noundef null, ptr noundef %7228)
  %7230 = icmp eq i32 %7229, -1
  br i1 %7230, label %7231, label %7284

7231:                                             ; preds = %7225
  br label %7232

7232:                                             ; preds = %7231
  br label %7233

7233:                                             ; preds = %7232
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %7234 = call ptr @__errno_location() #12
  %7235 = load i32, ptr %7234, align 4, !tbaa !5
  store i32 %7235, ptr %180, align 4, !tbaa !5
  %7236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7237 = call i32 @s2n_print_stacktrace(ptr noundef %7236)
  %7238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7239 = trunc i8 %7238 to i1
  br i1 %7239, label %7240, label %7262

7240:                                             ; preds = %7233
  %7241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7242 = call i32 @fileno(ptr noundef %7241) #11
  %7243 = call i32 @isatty(i32 noundef %7242) #11
  %7244 = icmp ne i32 %7243, 0
  br i1 %7244, label %7245, label %7262

7245:                                             ; preds = %7240
  %7246 = load i32, ptr %180, align 4, !tbaa !5
  %7247 = call ptr @__errno_location() #12
  store i32 %7246, ptr %7247, align 4, !tbaa !5
  %7248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7249 = load i32, ptr @test_count, align 4, !tbaa !5
  %7250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7251 = load i32, ptr %7250, align 4, !tbaa !5
  %7252 = call ptr @s2n_strerror(i32 noundef %7251, ptr noundef @.str.24)
  %7253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7254 = load i32, ptr %7253, align 4, !tbaa !5
  %7255 = call ptr @s2n_strerror_debug(i32 noundef %7254, ptr noundef @.str.24)
  %7256 = call ptr @__errno_location() #12
  %7257 = load i32, ptr %7256, align 4, !tbaa !5
  %7258 = call ptr @strerror(i32 noundef %7257) #11
  %7259 = call ptr @__errno_location() #12
  %7260 = load i32, ptr %7259, align 4, !tbaa !5
  %7261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7248, ptr noundef @.str.22, i32 noundef %7249, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 572, ptr noundef %7252, ptr noundef %7255, ptr noundef %7258, i32 noundef %7260) #11
  br label %7279

7262:                                             ; preds = %7240, %7233
  %7263 = load i32, ptr %180, align 4, !tbaa !5
  %7264 = call ptr @__errno_location() #12
  store i32 %7263, ptr %7264, align 4, !tbaa !5
  %7265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7266 = load i32, ptr @test_count, align 4, !tbaa !5
  %7267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  %7269 = call ptr @s2n_strerror(i32 noundef %7268, ptr noundef @.str.24)
  %7270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call ptr @s2n_strerror_debug(i32 noundef %7271, ptr noundef @.str.24)
  %7273 = call ptr @__errno_location() #12
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  %7275 = call ptr @strerror(i32 noundef %7274) #11
  %7276 = call ptr @__errno_location() #12
  %7277 = load i32, ptr %7276, align 4, !tbaa !5
  %7278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7265, ptr noundef @.str.25, i32 noundef %7266, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 572, ptr noundef %7269, ptr noundef %7272, ptr noundef %7275, i32 noundef %7277) #11
  br label %7279

7279:                                             ; preds = %7262, %7245
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %7280

7280:                                             ; preds = %7279
  br label %7281

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

7282:                                             ; No predecessors!
  br label %7283

7283:                                             ; preds = %7282
  br label %7284

7284:                                             ; preds = %7283, %7225
  br label %7285

7285:                                             ; preds = %7284
  br label %7286

7286:                                             ; preds = %7285
  %7287 = load ptr, ptr %175, align 8, !tbaa !9
  %7288 = getelementptr inbounds %struct.s2n_connection, ptr %7287, i32 0, i32 52
  %7289 = getelementptr inbounds %struct.s2n_handshake, ptr %7288, i32 0, i32 6
  store i32 0, ptr %7289, align 4, !tbaa !60
  %7290 = load ptr, ptr %175, align 8, !tbaa !9
  %7291 = getelementptr inbounds %struct.s2n_connection, ptr %7290, i32 0, i32 52
  %7292 = getelementptr inbounds %struct.s2n_handshake, ptr %7291, i32 0, i32 7
  store i32 0, ptr %7292, align 8, !tbaa !61
  br label %7293

7293:                                             ; preds = %7286
  %7294 = load i32, ptr @test_count, align 4, !tbaa !5
  %7295 = add nsw i32 %7294, 1
  store i32 %7295, ptr @test_count, align 4, !tbaa !5
  %7296 = load ptr, ptr %175, align 8, !tbaa !9
  %7297 = getelementptr inbounds %struct.s2n_connection, ptr %7296, i32 0, i32 52
  %7298 = getelementptr inbounds %struct.s2n_handshake, ptr %7297, i32 0, i32 12
  %7299 = load i32, ptr %7298, align 4, !tbaa !59
  %7300 = icmp eq i32 %7299, 2
  %7301 = zext i1 %7300 to i64
  %7302 = select i1 %7300, ptr @tls13_handshakes, ptr @handshakes
  %7303 = load ptr, ptr %175, align 8, !tbaa !9
  %7304 = getelementptr inbounds %struct.s2n_connection, ptr %7303, i32 0, i32 52
  %7305 = getelementptr inbounds %struct.s2n_handshake, ptr %7304, i32 0, i32 6
  %7306 = load i32, ptr %7305, align 4, !tbaa !60
  %7307 = zext i32 %7306 to i64
  %7308 = getelementptr inbounds [32 x i32], ptr %7302, i64 %7307
  %7309 = load ptr, ptr %175, align 8, !tbaa !9
  %7310 = getelementptr inbounds %struct.s2n_connection, ptr %7309, i32 0, i32 52
  %7311 = getelementptr inbounds %struct.s2n_handshake, ptr %7310, i32 0, i32 7
  %7312 = load i32, ptr %7311, align 8, !tbaa !61
  %7313 = sext i32 %7312 to i64
  %7314 = getelementptr inbounds [32 x i32], ptr %7308, i64 0, i64 %7313
  %7315 = load i32, ptr %7314, align 4, !tbaa !5
  %7316 = icmp eq i32 %7315, 0
  br i1 %7316, label %7370, label %7317

7317:                                             ; preds = %7293
  br label %7318

7318:                                             ; preds = %7317
  br label %7319

7319:                                             ; preds = %7318
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %7320 = call ptr @__errno_location() #12
  %7321 = load i32, ptr %7320, align 4, !tbaa !5
  store i32 %7321, ptr %181, align 4, !tbaa !5
  %7322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7323 = call i32 @s2n_print_stacktrace(ptr noundef %7322)
  %7324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7325 = trunc i8 %7324 to i1
  br i1 %7325, label %7326, label %7348

7326:                                             ; preds = %7319
  %7327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7328 = call i32 @fileno(ptr noundef %7327) #11
  %7329 = call i32 @isatty(i32 noundef %7328) #11
  %7330 = icmp ne i32 %7329, 0
  br i1 %7330, label %7331, label %7348

7331:                                             ; preds = %7326
  %7332 = load i32, ptr %181, align 4, !tbaa !5
  %7333 = call ptr @__errno_location() #12
  store i32 %7332, ptr %7333, align 4, !tbaa !5
  %7334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7335 = load i32, ptr @test_count, align 4, !tbaa !5
  %7336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7337 = load i32, ptr %7336, align 4, !tbaa !5
  %7338 = call ptr @s2n_strerror(i32 noundef %7337, ptr noundef @.str.24)
  %7339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7340 = load i32, ptr %7339, align 4, !tbaa !5
  %7341 = call ptr @s2n_strerror_debug(i32 noundef %7340, ptr noundef @.str.24)
  %7342 = call ptr @__errno_location() #12
  %7343 = load i32, ptr %7342, align 4, !tbaa !5
  %7344 = call ptr @strerror(i32 noundef %7343) #11
  %7345 = call ptr @__errno_location() #12
  %7346 = load i32, ptr %7345, align 4, !tbaa !5
  %7347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7334, ptr noundef @.str.22, i32 noundef %7335, ptr noundef @.str.65, ptr noundef @.str.21, i32 noundef 576, ptr noundef %7338, ptr noundef %7341, ptr noundef %7344, i32 noundef %7346) #11
  br label %7365

7348:                                             ; preds = %7326, %7319
  %7349 = load i32, ptr %181, align 4, !tbaa !5
  %7350 = call ptr @__errno_location() #12
  store i32 %7349, ptr %7350, align 4, !tbaa !5
  %7351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7352 = load i32, ptr @test_count, align 4, !tbaa !5
  %7353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7354 = load i32, ptr %7353, align 4, !tbaa !5
  %7355 = call ptr @s2n_strerror(i32 noundef %7354, ptr noundef @.str.24)
  %7356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7357 = load i32, ptr %7356, align 4, !tbaa !5
  %7358 = call ptr @s2n_strerror_debug(i32 noundef %7357, ptr noundef @.str.24)
  %7359 = call ptr @__errno_location() #12
  %7360 = load i32, ptr %7359, align 4, !tbaa !5
  %7361 = call ptr @strerror(i32 noundef %7360) #11
  %7362 = call ptr @__errno_location() #12
  %7363 = load i32, ptr %7362, align 4, !tbaa !5
  %7364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7351, ptr noundef @.str.25, i32 noundef %7352, ptr noundef @.str.65, ptr noundef @.str.21, i32 noundef 576, ptr noundef %7355, ptr noundef %7358, ptr noundef %7361, i32 noundef %7363) #11
  br label %7365

7365:                                             ; preds = %7348, %7331
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %7366

7366:                                             ; preds = %7365
  br label %7367

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

7368:                                             ; No predecessors!
  br label %7369

7369:                                             ; preds = %7368
  br label %7370

7370:                                             ; preds = %7369, %7293
  br label %7371

7371:                                             ; preds = %7370
  br label %7372

7372:                                             ; preds = %7371
  br label %7373

7373:                                             ; preds = %7372
  %7374 = load i32, ptr @test_count, align 4, !tbaa !5
  %7375 = add nsw i32 %7374, 1
  store i32 %7375, ptr @test_count, align 4, !tbaa !5
  %7376 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %7377 = icmp eq i32 %7376, -1
  br i1 %7377, label %7378, label %7431

7378:                                             ; preds = %7373
  br label %7379

7379:                                             ; preds = %7378
  br label %7380

7380:                                             ; preds = %7379
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %7381 = call ptr @__errno_location() #12
  %7382 = load i32, ptr %7381, align 4, !tbaa !5
  store i32 %7382, ptr %182, align 4, !tbaa !5
  %7383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7384 = call i32 @s2n_print_stacktrace(ptr noundef %7383)
  %7385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7386 = trunc i8 %7385 to i1
  br i1 %7386, label %7387, label %7409

7387:                                             ; preds = %7380
  %7388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7389 = call i32 @fileno(ptr noundef %7388) #11
  %7390 = call i32 @isatty(i32 noundef %7389) #11
  %7391 = icmp ne i32 %7390, 0
  br i1 %7391, label %7392, label %7409

7392:                                             ; preds = %7387
  %7393 = load i32, ptr %182, align 4, !tbaa !5
  %7394 = call ptr @__errno_location() #12
  store i32 %7393, ptr %7394, align 4, !tbaa !5
  %7395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7396 = load i32, ptr @test_count, align 4, !tbaa !5
  %7397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7398 = load i32, ptr %7397, align 4, !tbaa !5
  %7399 = call ptr @s2n_strerror(i32 noundef %7398, ptr noundef @.str.24)
  %7400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7401 = load i32, ptr %7400, align 4, !tbaa !5
  %7402 = call ptr @s2n_strerror_debug(i32 noundef %7401, ptr noundef @.str.24)
  %7403 = call ptr @__errno_location() #12
  %7404 = load i32, ptr %7403, align 4, !tbaa !5
  %7405 = call ptr @strerror(i32 noundef %7404) #11
  %7406 = call ptr @__errno_location() #12
  %7407 = load i32, ptr %7406, align 4, !tbaa !5
  %7408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7395, ptr noundef @.str.22, i32 noundef %7396, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 577, ptr noundef %7399, ptr noundef %7402, ptr noundef %7405, i32 noundef %7407) #11
  br label %7426

7409:                                             ; preds = %7387, %7380
  %7410 = load i32, ptr %182, align 4, !tbaa !5
  %7411 = call ptr @__errno_location() #12
  store i32 %7410, ptr %7411, align 4, !tbaa !5
  %7412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7413 = load i32, ptr @test_count, align 4, !tbaa !5
  %7414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7415 = load i32, ptr %7414, align 4, !tbaa !5
  %7416 = call ptr @s2n_strerror(i32 noundef %7415, ptr noundef @.str.24)
  %7417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7418 = load i32, ptr %7417, align 4, !tbaa !5
  %7419 = call ptr @s2n_strerror_debug(i32 noundef %7418, ptr noundef @.str.24)
  %7420 = call ptr @__errno_location() #12
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  %7422 = call ptr @strerror(i32 noundef %7421) #11
  %7423 = call ptr @__errno_location() #12
  %7424 = load i32, ptr %7423, align 4, !tbaa !5
  %7425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7412, ptr noundef @.str.25, i32 noundef %7413, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 577, ptr noundef %7416, ptr noundef %7419, ptr noundef %7422, i32 noundef %7424) #11
  br label %7426

7426:                                             ; preds = %7409, %7392
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %7427

7427:                                             ; preds = %7426
  br label %7428

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

7429:                                             ; No predecessors!
  br label %7430

7430:                                             ; preds = %7429
  br label %7431

7431:                                             ; preds = %7430, %7373
  br label %7432

7432:                                             ; preds = %7431
  br label %7433

7433:                                             ; preds = %7432
  br label %7434

7434:                                             ; preds = %7433
  %7435 = load i32, ptr @test_count, align 4, !tbaa !5
  %7436 = add nsw i32 %7435, 1
  store i32 %7436, ptr @test_count, align 4, !tbaa !5
  %7437 = call i32 @s2n_test_write_header(ptr noundef %178, i8 noundef zeroext 22, i8 noundef zeroext 1)
  %7438 = icmp eq i32 %7437, -1
  br i1 %7438, label %7439, label %7492

7439:                                             ; preds = %7434
  br label %7440

7440:                                             ; preds = %7439
  br label %7441

7441:                                             ; preds = %7440
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  %7442 = call ptr @__errno_location() #12
  %7443 = load i32, ptr %7442, align 4, !tbaa !5
  store i32 %7443, ptr %183, align 4, !tbaa !5
  %7444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7445 = call i32 @s2n_print_stacktrace(ptr noundef %7444)
  %7446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7447 = trunc i8 %7446 to i1
  br i1 %7447, label %7448, label %7470

7448:                                             ; preds = %7441
  %7449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7450 = call i32 @fileno(ptr noundef %7449) #11
  %7451 = call i32 @isatty(i32 noundef %7450) #11
  %7452 = icmp ne i32 %7451, 0
  br i1 %7452, label %7453, label %7470

7453:                                             ; preds = %7448
  %7454 = load i32, ptr %183, align 4, !tbaa !5
  %7455 = call ptr @__errno_location() #12
  store i32 %7454, ptr %7455, align 4, !tbaa !5
  %7456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7457 = load i32, ptr @test_count, align 4, !tbaa !5
  %7458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7459 = load i32, ptr %7458, align 4, !tbaa !5
  %7460 = call ptr @s2n_strerror(i32 noundef %7459, ptr noundef @.str.24)
  %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_debug(i32 noundef %7462, ptr noundef @.str.24)
  %7464 = call ptr @__errno_location() #12
  %7465 = load i32, ptr %7464, align 4, !tbaa !5
  %7466 = call ptr @strerror(i32 noundef %7465) #11
  %7467 = call ptr @__errno_location() #12
  %7468 = load i32, ptr %7467, align 4, !tbaa !5
  %7469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7456, ptr noundef @.str.22, i32 noundef %7457, ptr noundef @.str.67, ptr noundef @.str.21, i32 noundef 579, ptr noundef %7460, ptr noundef %7463, ptr noundef %7466, i32 noundef %7468) #11
  br label %7487

7470:                                             ; preds = %7448, %7441
  %7471 = load i32, ptr %183, align 4, !tbaa !5
  %7472 = call ptr @__errno_location() #12
  store i32 %7471, ptr %7472, align 4, !tbaa !5
  %7473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7474 = load i32, ptr @test_count, align 4, !tbaa !5
  %7475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7476 = load i32, ptr %7475, align 4, !tbaa !5
  %7477 = call ptr @s2n_strerror(i32 noundef %7476, ptr noundef @.str.24)
  %7478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7479 = load i32, ptr %7478, align 4, !tbaa !5
  %7480 = call ptr @s2n_strerror_debug(i32 noundef %7479, ptr noundef @.str.24)
  %7481 = call ptr @__errno_location() #12
  %7482 = load i32, ptr %7481, align 4, !tbaa !5
  %7483 = call ptr @strerror(i32 noundef %7482) #11
  %7484 = call ptr @__errno_location() #12
  %7485 = load i32, ptr %7484, align 4, !tbaa !5
  %7486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7473, ptr noundef @.str.25, i32 noundef %7474, ptr noundef @.str.67, ptr noundef @.str.21, i32 noundef 579, ptr noundef %7477, ptr noundef %7480, ptr noundef %7483, i32 noundef %7485) #11
  br label %7487

7487:                                             ; preds = %7470, %7453
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %7488

7488:                                             ; preds = %7487
  br label %7489

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

7490:                                             ; No predecessors!
  br label %7491

7491:                                             ; preds = %7490
  br label %7492

7492:                                             ; preds = %7491, %7434
  br label %7493

7493:                                             ; preds = %7492
  br label %7494

7494:                                             ; preds = %7493
  br label %7495

7495:                                             ; preds = %7494
  br label %7496

7496:                                             ; preds = %7495
  br label %7497

7497:                                             ; preds = %7496
  %7498 = load i32, ptr @test_count, align 4, !tbaa !5
  %7499 = add nsw i32 %7498, 1
  store i32 %7499, ptr @test_count, align 4, !tbaa !5
  %7500 = load ptr, ptr %175, align 8, !tbaa !9
  %7501 = call i32 @s2n_handshake_read_io(ptr noundef %7500)
  %7502 = icmp eq i32 %7501, -1
  br i1 %7502, label %7556, label %7503

7503:                                             ; preds = %7497
  br label %7504

7504:                                             ; preds = %7503
  br label %7505

7505:                                             ; preds = %7504
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  %7506 = call ptr @__errno_location() #12
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  store i32 %7507, ptr %184, align 4, !tbaa !5
  %7508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7509 = call i32 @s2n_print_stacktrace(ptr noundef %7508)
  %7510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7511 = trunc i8 %7510 to i1
  br i1 %7511, label %7512, label %7534

7512:                                             ; preds = %7505
  %7513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7514 = call i32 @fileno(ptr noundef %7513) #11
  %7515 = call i32 @isatty(i32 noundef %7514) #11
  %7516 = icmp ne i32 %7515, 0
  br i1 %7516, label %7517, label %7534

7517:                                             ; preds = %7512
  %7518 = load i32, ptr %184, align 4, !tbaa !5
  %7519 = call ptr @__errno_location() #12
  store i32 %7518, ptr %7519, align 4, !tbaa !5
  %7520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7521 = load i32, ptr @test_count, align 4, !tbaa !5
  %7522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7523 = load i32, ptr %7522, align 4, !tbaa !5
  %7524 = call ptr @s2n_strerror(i32 noundef %7523, ptr noundef @.str.24)
  %7525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7526 = load i32, ptr %7525, align 4, !tbaa !5
  %7527 = call ptr @s2n_strerror_debug(i32 noundef %7526, ptr noundef @.str.24)
  %7528 = call ptr @__errno_location() #12
  %7529 = load i32, ptr %7528, align 4, !tbaa !5
  %7530 = call ptr @strerror(i32 noundef %7529) #11
  %7531 = call ptr @__errno_location() #12
  %7532 = load i32, ptr %7531, align 4, !tbaa !5
  %7533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7520, ptr noundef @.str.22, i32 noundef %7521, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 580, ptr noundef %7524, ptr noundef %7527, ptr noundef %7530, i32 noundef %7532) #11
  br label %7551

7534:                                             ; preds = %7512, %7505
  %7535 = load i32, ptr %184, align 4, !tbaa !5
  %7536 = call ptr @__errno_location() #12
  store i32 %7535, ptr %7536, align 4, !tbaa !5
  %7537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7538 = load i32, ptr @test_count, align 4, !tbaa !5
  %7539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7540 = load i32, ptr %7539, align 4, !tbaa !5
  %7541 = call ptr @s2n_strerror(i32 noundef %7540, ptr noundef @.str.24)
  %7542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7543 = load i32, ptr %7542, align 4, !tbaa !5
  %7544 = call ptr @s2n_strerror_debug(i32 noundef %7543, ptr noundef @.str.24)
  %7545 = call ptr @__errno_location() #12
  %7546 = load i32, ptr %7545, align 4, !tbaa !5
  %7547 = call ptr @strerror(i32 noundef %7546) #11
  %7548 = call ptr @__errno_location() #12
  %7549 = load i32, ptr %7548, align 4, !tbaa !5
  %7550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7537, ptr noundef @.str.25, i32 noundef %7538, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 580, ptr noundef %7541, ptr noundef %7544, ptr noundef %7547, i32 noundef %7549) #11
  br label %7551

7551:                                             ; preds = %7534, %7517
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %7552

7552:                                             ; preds = %7551
  br label %7553

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

7554:                                             ; No predecessors!
  br label %7555

7555:                                             ; preds = %7554
  br label %7556

7556:                                             ; preds = %7555, %7497
  br label %7557

7557:                                             ; preds = %7556
  br label %7558

7558:                                             ; preds = %7557
  br label %7559

7559:                                             ; preds = %7558
  %7560 = load i32, ptr @test_count, align 4, !tbaa !5
  %7561 = add nsw i32 %7560, 1
  store i32 %7561, ptr @test_count, align 4, !tbaa !5
  %7562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7563 = load i32, ptr %7562, align 4, !tbaa !5
  %7564 = icmp eq i32 %7563, 335544322
  br i1 %7564, label %7618, label %7565

7565:                                             ; preds = %7559
  br label %7566

7566:                                             ; preds = %7565
  br label %7567

7567:                                             ; preds = %7566
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %7568 = call ptr @__errno_location() #12
  %7569 = load i32, ptr %7568, align 4, !tbaa !5
  store i32 %7569, ptr %185, align 4, !tbaa !5
  %7570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7571 = call i32 @s2n_print_stacktrace(ptr noundef %7570)
  %7572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7573 = trunc i8 %7572 to i1
  br i1 %7573, label %7574, label %7596

7574:                                             ; preds = %7567
  %7575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7576 = call i32 @fileno(ptr noundef %7575) #11
  %7577 = call i32 @isatty(i32 noundef %7576) #11
  %7578 = icmp ne i32 %7577, 0
  br i1 %7578, label %7579, label %7596

7579:                                             ; preds = %7574
  %7580 = load i32, ptr %185, align 4, !tbaa !5
  %7581 = call ptr @__errno_location() #12
  store i32 %7580, ptr %7581, align 4, !tbaa !5
  %7582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7583 = load i32, ptr @test_count, align 4, !tbaa !5
  %7584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7585 = load i32, ptr %7584, align 4, !tbaa !5
  %7586 = call ptr @s2n_strerror(i32 noundef %7585, ptr noundef @.str.24)
  %7587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7588 = load i32, ptr %7587, align 4, !tbaa !5
  %7589 = call ptr @s2n_strerror_debug(i32 noundef %7588, ptr noundef @.str.24)
  %7590 = call ptr @__errno_location() #12
  %7591 = load i32, ptr %7590, align 4, !tbaa !5
  %7592 = call ptr @strerror(i32 noundef %7591) #11
  %7593 = call ptr @__errno_location() #12
  %7594 = load i32, ptr %7593, align 4, !tbaa !5
  %7595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7582, ptr noundef @.str.22, i32 noundef %7583, ptr noundef @.str.71, ptr noundef @.str.21, i32 noundef 580, ptr noundef %7586, ptr noundef %7589, ptr noundef %7592, i32 noundef %7594) #11
  br label %7613

7596:                                             ; preds = %7574, %7567
  %7597 = load i32, ptr %185, align 4, !tbaa !5
  %7598 = call ptr @__errno_location() #12
  store i32 %7597, ptr %7598, align 4, !tbaa !5
  %7599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7600 = load i32, ptr @test_count, align 4, !tbaa !5
  %7601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7602 = load i32, ptr %7601, align 4, !tbaa !5
  %7603 = call ptr @s2n_strerror(i32 noundef %7602, ptr noundef @.str.24)
  %7604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7605 = load i32, ptr %7604, align 4, !tbaa !5
  %7606 = call ptr @s2n_strerror_debug(i32 noundef %7605, ptr noundef @.str.24)
  %7607 = call ptr @__errno_location() #12
  %7608 = load i32, ptr %7607, align 4, !tbaa !5
  %7609 = call ptr @strerror(i32 noundef %7608) #11
  %7610 = call ptr @__errno_location() #12
  %7611 = load i32, ptr %7610, align 4, !tbaa !5
  %7612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7599, ptr noundef @.str.25, i32 noundef %7600, ptr noundef @.str.71, ptr noundef @.str.21, i32 noundef 580, ptr noundef %7603, ptr noundef %7606, ptr noundef %7609, i32 noundef %7611) #11
  br label %7613

7613:                                             ; preds = %7596, %7579
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %7614

7614:                                             ; preds = %7613
  br label %7615

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

7616:                                             ; No predecessors!
  br label %7617

7617:                                             ; preds = %7616
  br label %7618

7618:                                             ; preds = %7617, %7559
  br label %7619

7619:                                             ; preds = %7618
  br label %7620

7620:                                             ; preds = %7619
  br label %7621

7621:                                             ; preds = %7620
  %7622 = load i32, ptr @test_count, align 4, !tbaa !5
  %7623 = add nsw i32 %7622, 1
  store i32 %7623, ptr @test_count, align 4, !tbaa !5
  %7624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7625 = load i32, ptr %7624, align 4, !tbaa !5
  %7626 = call ptr @s2n_strerror_debug(i32 noundef %7625, ptr noundef @.str.24)
  %7627 = icmp eq ptr %7626, null
  br i1 %7627, label %7628, label %7681

7628:                                             ; preds = %7621
  br label %7629

7629:                                             ; preds = %7628
  br label %7630

7630:                                             ; preds = %7629
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %7631 = call ptr @__errno_location() #12
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  store i32 %7632, ptr %186, align 4, !tbaa !5
  %7633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7634 = call i32 @s2n_print_stacktrace(ptr noundef %7633)
  %7635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7636 = trunc i8 %7635 to i1
  br i1 %7636, label %7637, label %7659

7637:                                             ; preds = %7630
  %7638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7639 = call i32 @fileno(ptr noundef %7638) #11
  %7640 = call i32 @isatty(i32 noundef %7639) #11
  %7641 = icmp ne i32 %7640, 0
  br i1 %7641, label %7642, label %7659

7642:                                             ; preds = %7637
  %7643 = load i32, ptr %186, align 4, !tbaa !5
  %7644 = call ptr @__errno_location() #12
  store i32 %7643, ptr %7644, align 4, !tbaa !5
  %7645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7646 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7648, ptr noundef @.str.24)
  %7650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7651 = load i32, ptr %7650, align 4, !tbaa !5
  %7652 = call ptr @s2n_strerror_debug(i32 noundef %7651, ptr noundef @.str.24)
  %7653 = call ptr @__errno_location() #12
  %7654 = load i32, ptr %7653, align 4, !tbaa !5
  %7655 = call ptr @strerror(i32 noundef %7654) #11
  %7656 = call ptr @__errno_location() #12
  %7657 = load i32, ptr %7656, align 4, !tbaa !5
  %7658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7645, ptr noundef @.str.22, i32 noundef %7646, ptr noundef @.str.72, ptr noundef @.str.21, i32 noundef 580, ptr noundef %7649, ptr noundef %7652, ptr noundef %7655, i32 noundef %7657) #11
  br label %7676

7659:                                             ; preds = %7637, %7630
  %7660 = load i32, ptr %186, align 4, !tbaa !5
  %7661 = call ptr @__errno_location() #12
  store i32 %7660, ptr %7661, align 4, !tbaa !5
  %7662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7663 = load i32, ptr @test_count, align 4, !tbaa !5
  %7664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7665 = load i32, ptr %7664, align 4, !tbaa !5
  %7666 = call ptr @s2n_strerror(i32 noundef %7665, ptr noundef @.str.24)
  %7667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7668 = load i32, ptr %7667, align 4, !tbaa !5
  %7669 = call ptr @s2n_strerror_debug(i32 noundef %7668, ptr noundef @.str.24)
  %7670 = call ptr @__errno_location() #12
  %7671 = load i32, ptr %7670, align 4, !tbaa !5
  %7672 = call ptr @strerror(i32 noundef %7671) #11
  %7673 = call ptr @__errno_location() #12
  %7674 = load i32, ptr %7673, align 4, !tbaa !5
  %7675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7662, ptr noundef @.str.25, i32 noundef %7663, ptr noundef @.str.72, ptr noundef @.str.21, i32 noundef 580, ptr noundef %7666, ptr noundef %7669, ptr noundef %7672, i32 noundef %7674) #11
  br label %7676

7676:                                             ; preds = %7659, %7642
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %7677

7677:                                             ; preds = %7676
  br label %7678

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

7679:                                             ; No predecessors!
  br label %7680

7680:                                             ; preds = %7679
  br label %7681

7681:                                             ; preds = %7680, %7621
  br label %7682

7682:                                             ; preds = %7681
  br label %7683

7683:                                             ; preds = %7682
  br label %7684

7684:                                             ; preds = %7683
  br label %7685

7685:                                             ; preds = %7684
  br label %7686

7686:                                             ; preds = %7685
  %7687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7687, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7688 = call ptr @__errno_location() #12
  store i32 0, ptr %7688, align 4, !tbaa !5
  br label %7689

7689:                                             ; preds = %7686
  br label %7690

7690:                                             ; preds = %7689
  br label %7691

7691:                                             ; preds = %7690
  br label %7692

7692:                                             ; preds = %7691
  br label %7693

7693:                                             ; preds = %7692
  %7694 = load i32, ptr @test_count, align 4, !tbaa !5
  %7695 = add nsw i32 %7694, 1
  store i32 %7695, ptr @test_count, align 4, !tbaa !5
  %7696 = load ptr, ptr %175, align 8, !tbaa !9
  %7697 = getelementptr inbounds %struct.s2n_connection, ptr %7696, i32 0, i32 52
  %7698 = getelementptr inbounds %struct.s2n_handshake, ptr %7697, i32 0, i32 7
  %7699 = load i32, ptr %7698, align 8, !tbaa !61
  %7700 = icmp eq i32 %7699, 0
  br i1 %7700, label %7754, label %7701

7701:                                             ; preds = %7693
  br label %7702

7702:                                             ; preds = %7701
  br label %7703

7703:                                             ; preds = %7702
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %7704 = call ptr @__errno_location() #12
  %7705 = load i32, ptr %7704, align 4, !tbaa !5
  store i32 %7705, ptr %187, align 4, !tbaa !5
  %7706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7707 = call i32 @s2n_print_stacktrace(ptr noundef %7706)
  %7708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7709 = trunc i8 %7708 to i1
  br i1 %7709, label %7710, label %7732

7710:                                             ; preds = %7703
  %7711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7712 = call i32 @fileno(ptr noundef %7711) #11
  %7713 = call i32 @isatty(i32 noundef %7712) #11
  %7714 = icmp ne i32 %7713, 0
  br i1 %7714, label %7715, label %7732

7715:                                             ; preds = %7710
  %7716 = load i32, ptr %187, align 4, !tbaa !5
  %7717 = call ptr @__errno_location() #12
  store i32 %7716, ptr %7717, align 4, !tbaa !5
  %7718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7719 = load i32, ptr @test_count, align 4, !tbaa !5
  %7720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7721 = load i32, ptr %7720, align 4, !tbaa !5
  %7722 = call ptr @s2n_strerror(i32 noundef %7721, ptr noundef @.str.24)
  %7723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7724 = load i32, ptr %7723, align 4, !tbaa !5
  %7725 = call ptr @s2n_strerror_debug(i32 noundef %7724, ptr noundef @.str.24)
  %7726 = call ptr @__errno_location() #12
  %7727 = load i32, ptr %7726, align 4, !tbaa !5
  %7728 = call ptr @strerror(i32 noundef %7727) #11
  %7729 = call ptr @__errno_location() #12
  %7730 = load i32, ptr %7729, align 4, !tbaa !5
  %7731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7718, ptr noundef @.str.22, i32 noundef %7719, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 582, ptr noundef %7722, ptr noundef %7725, ptr noundef %7728, i32 noundef %7730) #11
  br label %7749

7732:                                             ; preds = %7710, %7703
  %7733 = load i32, ptr %187, align 4, !tbaa !5
  %7734 = call ptr @__errno_location() #12
  store i32 %7733, ptr %7734, align 4, !tbaa !5
  %7735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7736 = load i32, ptr @test_count, align 4, !tbaa !5
  %7737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7738 = load i32, ptr %7737, align 4, !tbaa !5
  %7739 = call ptr @s2n_strerror(i32 noundef %7738, ptr noundef @.str.24)
  %7740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7741 = load i32, ptr %7740, align 4, !tbaa !5
  %7742 = call ptr @s2n_strerror_debug(i32 noundef %7741, ptr noundef @.str.24)
  %7743 = call ptr @__errno_location() #12
  %7744 = load i32, ptr %7743, align 4, !tbaa !5
  %7745 = call ptr @strerror(i32 noundef %7744) #11
  %7746 = call ptr @__errno_location() #12
  %7747 = load i32, ptr %7746, align 4, !tbaa !5
  %7748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7735, ptr noundef @.str.25, i32 noundef %7736, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 582, ptr noundef %7739, ptr noundef %7742, ptr noundef %7745, i32 noundef %7747) #11
  br label %7749

7749:                                             ; preds = %7732, %7715
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %7750

7750:                                             ; preds = %7749
  br label %7751

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

7752:                                             ; No predecessors!
  br label %7753

7753:                                             ; preds = %7752
  br label %7754

7754:                                             ; preds = %7753, %7693
  br label %7755

7755:                                             ; preds = %7754
  br label %7756

7756:                                             ; preds = %7755
  br label %7757

7757:                                             ; preds = %7756
  %7758 = load i32, ptr @test_count, align 4, !tbaa !5
  %7759 = add nsw i32 %7758, 1
  store i32 %7759, ptr @test_count, align 4, !tbaa !5
  %7760 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %7761 = icmp ne i32 %7760, 0
  br i1 %7761, label %7762, label %7815

7762:                                             ; preds = %7757
  br label %7763

7763:                                             ; preds = %7762
  br label %7764

7764:                                             ; preds = %7763
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %7765 = call ptr @__errno_location() #12
  %7766 = load i32, ptr %7765, align 4, !tbaa !5
  store i32 %7766, ptr %188, align 4, !tbaa !5
  %7767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7768 = call i32 @s2n_print_stacktrace(ptr noundef %7767)
  %7769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7770 = trunc i8 %7769 to i1
  br i1 %7770, label %7771, label %7793

7771:                                             ; preds = %7764
  %7772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7773 = call i32 @fileno(ptr noundef %7772) #11
  %7774 = call i32 @isatty(i32 noundef %7773) #11
  %7775 = icmp ne i32 %7774, 0
  br i1 %7775, label %7776, label %7793

7776:                                             ; preds = %7771
  %7777 = load i32, ptr %188, align 4, !tbaa !5
  %7778 = call ptr @__errno_location() #12
  store i32 %7777, ptr %7778, align 4, !tbaa !5
  %7779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7780 = load i32, ptr @test_count, align 4, !tbaa !5
  %7781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call ptr @s2n_strerror(i32 noundef %7782, ptr noundef @.str.24)
  %7784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7785 = load i32, ptr %7784, align 4, !tbaa !5
  %7786 = call ptr @s2n_strerror_debug(i32 noundef %7785, ptr noundef @.str.24)
  %7787 = call ptr @__errno_location() #12
  %7788 = load i32, ptr %7787, align 4, !tbaa !5
  %7789 = call ptr @strerror(i32 noundef %7788) #11
  %7790 = call ptr @__errno_location() #12
  %7791 = load i32, ptr %7790, align 4, !tbaa !5
  %7792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7779, ptr noundef @.str.22, i32 noundef %7780, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 583, ptr noundef %7783, ptr noundef %7786, ptr noundef %7789, i32 noundef %7791) #11
  br label %7810

7793:                                             ; preds = %7771, %7764
  %7794 = load i32, ptr %188, align 4, !tbaa !5
  %7795 = call ptr @__errno_location() #12
  store i32 %7794, ptr %7795, align 4, !tbaa !5
  %7796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7797 = load i32, ptr @test_count, align 4, !tbaa !5
  %7798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7799 = load i32, ptr %7798, align 4, !tbaa !5
  %7800 = call ptr @s2n_strerror(i32 noundef %7799, ptr noundef @.str.24)
  %7801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7802 = load i32, ptr %7801, align 4, !tbaa !5
  %7803 = call ptr @s2n_strerror_debug(i32 noundef %7802, ptr noundef @.str.24)
  %7804 = call ptr @__errno_location() #12
  %7805 = load i32, ptr %7804, align 4, !tbaa !5
  %7806 = call ptr @strerror(i32 noundef %7805) #11
  %7807 = call ptr @__errno_location() #12
  %7808 = load i32, ptr %7807, align 4, !tbaa !5
  %7809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7796, ptr noundef @.str.25, i32 noundef %7797, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 583, ptr noundef %7800, ptr noundef %7803, ptr noundef %7806, i32 noundef %7808) #11
  br label %7810

7810:                                             ; preds = %7793, %7776
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %7811

7811:                                             ; preds = %7810
  br label %7812

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

7813:                                             ; No predecessors!
  br label %7814

7814:                                             ; preds = %7813
  br label %7815

7815:                                             ; preds = %7814, %7757
  br label %7816

7816:                                             ; preds = %7815
  br label %7817

7817:                                             ; preds = %7816
  br label %7818

7818:                                             ; preds = %7817
  %7819 = load i32, ptr @test_count, align 4, !tbaa !5
  %7820 = add nsw i32 %7819, 1
  store i32 %7820, ptr @test_count, align 4, !tbaa !5
  %7821 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %7822 = icmp ne i32 %7821, 0
  br i1 %7822, label %7823, label %7876

7823:                                             ; preds = %7818
  br label %7824

7824:                                             ; preds = %7823
  br label %7825

7825:                                             ; preds = %7824
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %7826 = call ptr @__errno_location() #12
  %7827 = load i32, ptr %7826, align 4, !tbaa !5
  store i32 %7827, ptr %189, align 4, !tbaa !5
  %7828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7829 = call i32 @s2n_print_stacktrace(ptr noundef %7828)
  %7830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7831 = trunc i8 %7830 to i1
  br i1 %7831, label %7832, label %7854

7832:                                             ; preds = %7825
  %7833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7834 = call i32 @fileno(ptr noundef %7833) #11
  %7835 = call i32 @isatty(i32 noundef %7834) #11
  %7836 = icmp ne i32 %7835, 0
  br i1 %7836, label %7837, label %7854

7837:                                             ; preds = %7832
  %7838 = load i32, ptr %189, align 4, !tbaa !5
  %7839 = call ptr @__errno_location() #12
  store i32 %7838, ptr %7839, align 4, !tbaa !5
  %7840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7841 = load i32, ptr @test_count, align 4, !tbaa !5
  %7842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7843 = load i32, ptr %7842, align 4, !tbaa !5
  %7844 = call ptr @s2n_strerror(i32 noundef %7843, ptr noundef @.str.24)
  %7845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7846 = load i32, ptr %7845, align 4, !tbaa !5
  %7847 = call ptr @s2n_strerror_debug(i32 noundef %7846, ptr noundef @.str.24)
  %7848 = call ptr @__errno_location() #12
  %7849 = load i32, ptr %7848, align 4, !tbaa !5
  %7850 = call ptr @strerror(i32 noundef %7849) #11
  %7851 = call ptr @__errno_location() #12
  %7852 = load i32, ptr %7851, align 4, !tbaa !5
  %7853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7840, ptr noundef @.str.22, i32 noundef %7841, ptr noundef @.str.74, ptr noundef @.str.21, i32 noundef 584, ptr noundef %7844, ptr noundef %7847, ptr noundef %7850, i32 noundef %7852) #11
  br label %7871

7854:                                             ; preds = %7832, %7825
  %7855 = load i32, ptr %189, align 4, !tbaa !5
  %7856 = call ptr @__errno_location() #12
  store i32 %7855, ptr %7856, align 4, !tbaa !5
  %7857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7858 = load i32, ptr @test_count, align 4, !tbaa !5
  %7859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7860 = load i32, ptr %7859, align 4, !tbaa !5
  %7861 = call ptr @s2n_strerror(i32 noundef %7860, ptr noundef @.str.24)
  %7862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7863 = load i32, ptr %7862, align 4, !tbaa !5
  %7864 = call ptr @s2n_strerror_debug(i32 noundef %7863, ptr noundef @.str.24)
  %7865 = call ptr @__errno_location() #12
  %7866 = load i32, ptr %7865, align 4, !tbaa !5
  %7867 = call ptr @strerror(i32 noundef %7866) #11
  %7868 = call ptr @__errno_location() #12
  %7869 = load i32, ptr %7868, align 4, !tbaa !5
  %7870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7857, ptr noundef @.str.25, i32 noundef %7858, ptr noundef @.str.74, ptr noundef @.str.21, i32 noundef 584, ptr noundef %7861, ptr noundef %7864, ptr noundef %7867, i32 noundef %7869) #11
  br label %7871

7871:                                             ; preds = %7854, %7837
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %7872

7872:                                             ; preds = %7871
  br label %7873

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

7874:                                             ; No predecessors!
  br label %7875

7875:                                             ; preds = %7874
  br label %7876

7876:                                             ; preds = %7875, %7818
  br label %7877

7877:                                             ; preds = %7876
  br label %7878

7878:                                             ; preds = %7877
  br label %7879

7879:                                             ; preds = %7878
  %7880 = load i32, ptr @test_count, align 4, !tbaa !5
  %7881 = add nsw i32 %7880, 1
  store i32 %7881, ptr @test_count, align 4, !tbaa !5
  %7882 = call i32 @s2n_stuffer_free(ptr noundef %178)
  %7883 = icmp eq i32 %7882, -1
  br i1 %7883, label %7884, label %7937

7884:                                             ; preds = %7879
  br label %7885

7885:                                             ; preds = %7884
  br label %7886

7886:                                             ; preds = %7885
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %7887 = call ptr @__errno_location() #12
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  store i32 %7888, ptr %190, align 4, !tbaa !5
  %7889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7890 = call i32 @s2n_print_stacktrace(ptr noundef %7889)
  %7891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7892 = trunc i8 %7891 to i1
  br i1 %7892, label %7893, label %7915

7893:                                             ; preds = %7886
  %7894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7895 = call i32 @fileno(ptr noundef %7894) #11
  %7896 = call i32 @isatty(i32 noundef %7895) #11
  %7897 = icmp ne i32 %7896, 0
  br i1 %7897, label %7898, label %7915

7898:                                             ; preds = %7893
  %7899 = load i32, ptr %190, align 4, !tbaa !5
  %7900 = call ptr @__errno_location() #12
  store i32 %7899, ptr %7900, align 4, !tbaa !5
  %7901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7902 = load i32, ptr @test_count, align 4, !tbaa !5
  %7903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7904 = load i32, ptr %7903, align 4, !tbaa !5
  %7905 = call ptr @s2n_strerror(i32 noundef %7904, ptr noundef @.str.24)
  %7906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7907 = load i32, ptr %7906, align 4, !tbaa !5
  %7908 = call ptr @s2n_strerror_debug(i32 noundef %7907, ptr noundef @.str.24)
  %7909 = call ptr @__errno_location() #12
  %7910 = load i32, ptr %7909, align 4, !tbaa !5
  %7911 = call ptr @strerror(i32 noundef %7910) #11
  %7912 = call ptr @__errno_location() #12
  %7913 = load i32, ptr %7912, align 4, !tbaa !5
  %7914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7901, ptr noundef @.str.22, i32 noundef %7902, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 586, ptr noundef %7905, ptr noundef %7908, ptr noundef %7911, i32 noundef %7913) #11
  br label %7932

7915:                                             ; preds = %7893, %7886
  %7916 = load i32, ptr %190, align 4, !tbaa !5
  %7917 = call ptr @__errno_location() #12
  store i32 %7916, ptr %7917, align 4, !tbaa !5
  %7918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7919 = load i32, ptr @test_count, align 4, !tbaa !5
  %7920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7921 = load i32, ptr %7920, align 4, !tbaa !5
  %7922 = call ptr @s2n_strerror(i32 noundef %7921, ptr noundef @.str.24)
  %7923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7924 = load i32, ptr %7923, align 4, !tbaa !5
  %7925 = call ptr @s2n_strerror_debug(i32 noundef %7924, ptr noundef @.str.24)
  %7926 = call ptr @__errno_location() #12
  %7927 = load i32, ptr %7926, align 4, !tbaa !5
  %7928 = call ptr @strerror(i32 noundef %7927) #11
  %7929 = call ptr @__errno_location() #12
  %7930 = load i32, ptr %7929, align 4, !tbaa !5
  %7931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7918, ptr noundef @.str.25, i32 noundef %7919, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 586, ptr noundef %7922, ptr noundef %7925, ptr noundef %7928, i32 noundef %7930) #11
  br label %7932

7932:                                             ; preds = %7915, %7898
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %7933

7933:                                             ; preds = %7932
  br label %7934

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

7935:                                             ; No predecessors!
  br label %7936

7936:                                             ; preds = %7935
  br label %7937

7937:                                             ; preds = %7936, %7879
  br label %7938

7938:                                             ; preds = %7937
  br label %7939

7939:                                             ; preds = %7938
  br label %7940

7940:                                             ; preds = %7939
  %7941 = load i32, ptr @test_count, align 4, !tbaa !5
  %7942 = add nsw i32 %7941, 1
  store i32 %7942, ptr @test_count, align 4, !tbaa !5
  %7943 = load ptr, ptr %175, align 8, !tbaa !9
  %7944 = call i32 @s2n_connection_free(ptr noundef %7943)
  %7945 = icmp eq i32 %7944, -1
  br i1 %7945, label %7946, label %7999

7946:                                             ; preds = %7940
  br label %7947

7947:                                             ; preds = %7946
  br label %7948

7948:                                             ; preds = %7947
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %7949 = call ptr @__errno_location() #12
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  store i32 %7950, ptr %191, align 4, !tbaa !5
  %7951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7952 = call i32 @s2n_print_stacktrace(ptr noundef %7951)
  %7953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7954 = trunc i8 %7953 to i1
  br i1 %7954, label %7955, label %7977

7955:                                             ; preds = %7948
  %7956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7957 = call i32 @fileno(ptr noundef %7956) #11
  %7958 = call i32 @isatty(i32 noundef %7957) #11
  %7959 = icmp ne i32 %7958, 0
  br i1 %7959, label %7960, label %7977

7960:                                             ; preds = %7955
  %7961 = load i32, ptr %191, align 4, !tbaa !5
  %7962 = call ptr @__errno_location() #12
  store i32 %7961, ptr %7962, align 4, !tbaa !5
  %7963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7964 = load i32, ptr @test_count, align 4, !tbaa !5
  %7965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7966 = load i32, ptr %7965, align 4, !tbaa !5
  %7967 = call ptr @s2n_strerror(i32 noundef %7966, ptr noundef @.str.24)
  %7968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7969 = load i32, ptr %7968, align 4, !tbaa !5
  %7970 = call ptr @s2n_strerror_debug(i32 noundef %7969, ptr noundef @.str.24)
  %7971 = call ptr @__errno_location() #12
  %7972 = load i32, ptr %7971, align 4, !tbaa !5
  %7973 = call ptr @strerror(i32 noundef %7972) #11
  %7974 = call ptr @__errno_location() #12
  %7975 = load i32, ptr %7974, align 4, !tbaa !5
  %7976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7963, ptr noundef @.str.22, i32 noundef %7964, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 587, ptr noundef %7967, ptr noundef %7970, ptr noundef %7973, i32 noundef %7975) #11
  br label %7994

7977:                                             ; preds = %7955, %7948
  %7978 = load i32, ptr %191, align 4, !tbaa !5
  %7979 = call ptr @__errno_location() #12
  store i32 %7978, ptr %7979, align 4, !tbaa !5
  %7980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7981 = load i32, ptr @test_count, align 4, !tbaa !5
  %7982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7983 = load i32, ptr %7982, align 4, !tbaa !5
  %7984 = call ptr @s2n_strerror(i32 noundef %7983, ptr noundef @.str.24)
  %7985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7986 = load i32, ptr %7985, align 4, !tbaa !5
  %7987 = call ptr @s2n_strerror_debug(i32 noundef %7986, ptr noundef @.str.24)
  %7988 = call ptr @__errno_location() #12
  %7989 = load i32, ptr %7988, align 4, !tbaa !5
  %7990 = call ptr @strerror(i32 noundef %7989) #11
  %7991 = call ptr @__errno_location() #12
  %7992 = load i32, ptr %7991, align 4, !tbaa !5
  %7993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7980, ptr noundef @.str.25, i32 noundef %7981, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 587, ptr noundef %7984, ptr noundef %7987, ptr noundef %7990, i32 noundef %7992) #11
  br label %7994

7994:                                             ; preds = %7977, %7960
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %7995

7995:                                             ; preds = %7994
  br label %7996

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

7997:                                             ; No predecessors!
  br label %7998

7998:                                             ; preds = %7997
  br label %7999

7999:                                             ; preds = %7998, %7940
  br label %8000

8000:                                             ; preds = %7999
  br label %8001

8001:                                             ; preds = %8000
  call void @llvm.lifetime.end.p0(i64 40, ptr %178) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %192) #11
  %8002 = 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 !81
  store i8 %8002, ptr %192, align 1, !tbaa !83
  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 !81
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #11
  %8003 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8003, ptr %193, align 8, !tbaa !9
  %8004 = load ptr, ptr %193, align 8, !tbaa !9
  %8005 = getelementptr inbounds %struct.s2n_connection, ptr %8004, i32 0, i32 23
  store i8 34, ptr %8005, align 4, !tbaa !34
  br label %8006

8006:                                             ; preds = %8001
  %8007 = load i32, ptr @test_count, align 4, !tbaa !5
  %8008 = add nsw i32 %8007, 1
  store i32 %8008, ptr @test_count, align 4, !tbaa !5
  %8009 = load ptr, ptr %193, align 8, !tbaa !9
  %8010 = call i32 @s2n_conn_choose_state_machine(ptr noundef %8009, i8 noundef zeroext 34)
  %8011 = getelementptr inbounds %struct.s2n_result, ptr %194, i32 0, i32 0
  store i32 %8010, ptr %8011, align 4
  %8012 = getelementptr inbounds %struct.s2n_result, ptr %194, i32 0, i32 0
  %8013 = load i32, ptr %8012, align 4
  %8014 = call zeroext i1 @s2n_result_is_ok(i32 %8013)
  br i1 %8014, label %8068, label %8015

8015:                                             ; preds = %8006
  br label %8016

8016:                                             ; preds = %8015
  br label %8017

8017:                                             ; preds = %8016
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %8018 = call ptr @__errno_location() #12
  %8019 = load i32, ptr %8018, align 4, !tbaa !5
  store i32 %8019, ptr %195, align 4, !tbaa !5
  %8020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8021 = call i32 @s2n_print_stacktrace(ptr noundef %8020)
  %8022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8023 = trunc i8 %8022 to i1
  br i1 %8023, label %8024, label %8046

8024:                                             ; preds = %8017
  %8025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8026 = call i32 @fileno(ptr noundef %8025) #11
  %8027 = call i32 @isatty(i32 noundef %8026) #11
  %8028 = icmp ne i32 %8027, 0
  br i1 %8028, label %8029, label %8046

8029:                                             ; preds = %8024
  %8030 = load i32, ptr %195, align 4, !tbaa !5
  %8031 = call ptr @__errno_location() #12
  store i32 %8030, ptr %8031, align 4, !tbaa !5
  %8032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8033 = load i32, ptr @test_count, align 4, !tbaa !5
  %8034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8035 = load i32, ptr %8034, align 4, !tbaa !5
  %8036 = call ptr @s2n_strerror(i32 noundef %8035, ptr noundef @.str.24)
  %8037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8038 = load i32, ptr %8037, align 4, !tbaa !5
  %8039 = call ptr @s2n_strerror_debug(i32 noundef %8038, ptr noundef @.str.24)
  %8040 = call ptr @__errno_location() #12
  %8041 = load i32, ptr %8040, align 4, !tbaa !5
  %8042 = call ptr @strerror(i32 noundef %8041) #11
  %8043 = call ptr @__errno_location() #12
  %8044 = load i32, ptr %8043, align 4, !tbaa !5
  %8045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8032, ptr noundef @.str.22, i32 noundef %8033, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 604, ptr noundef %8036, ptr noundef %8039, ptr noundef %8042, i32 noundef %8044) #11
  br label %8063

8046:                                             ; preds = %8024, %8017
  %8047 = load i32, ptr %195, align 4, !tbaa !5
  %8048 = call ptr @__errno_location() #12
  store i32 %8047, ptr %8048, align 4, !tbaa !5
  %8049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8050 = load i32, ptr @test_count, align 4, !tbaa !5
  %8051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8052 = load i32, ptr %8051, align 4, !tbaa !5
  %8053 = call ptr @s2n_strerror(i32 noundef %8052, ptr noundef @.str.24)
  %8054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8055 = load i32, ptr %8054, align 4, !tbaa !5
  %8056 = call ptr @s2n_strerror_debug(i32 noundef %8055, ptr noundef @.str.24)
  %8057 = call ptr @__errno_location() #12
  %8058 = load i32, ptr %8057, align 4, !tbaa !5
  %8059 = call ptr @strerror(i32 noundef %8058) #11
  %8060 = call ptr @__errno_location() #12
  %8061 = load i32, ptr %8060, align 4, !tbaa !5
  %8062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8049, ptr noundef @.str.25, i32 noundef %8050, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 604, ptr noundef %8053, ptr noundef %8056, ptr noundef %8059, i32 noundef %8061) #11
  br label %8063

8063:                                             ; preds = %8046, %8029
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %8064

8064:                                             ; preds = %8063
  br label %8065

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

8066:                                             ; No predecessors!
  br label %8067

8067:                                             ; preds = %8066
  br label %8068

8068:                                             ; preds = %8067, %8006
  br label %8069

8069:                                             ; preds = %8068
  br label %8070

8070:                                             ; preds = %8069
  call void @llvm.lifetime.start.p0(i64 40, ptr %196) #11
  call void @llvm.memset.p0.i64(ptr align 8 %196, i8 0, i64 40, i1 false)
  br label %8071

8071:                                             ; preds = %8070
  %8072 = load i32, ptr @test_count, align 4, !tbaa !5
  %8073 = add nsw i32 %8072, 1
  store i32 %8073, ptr @test_count, align 4, !tbaa !5
  %8074 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %196, i32 noundef 0)
  %8075 = icmp eq i32 %8074, -1
  br i1 %8075, label %8076, label %8129

8076:                                             ; preds = %8071
  br label %8077

8077:                                             ; preds = %8076
  br label %8078

8078:                                             ; preds = %8077
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %8079 = call ptr @__errno_location() #12
  %8080 = load i32, ptr %8079, align 4, !tbaa !5
  store i32 %8080, ptr %197, align 4, !tbaa !5
  %8081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8082 = call i32 @s2n_print_stacktrace(ptr noundef %8081)
  %8083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8084 = trunc i8 %8083 to i1
  br i1 %8084, label %8085, label %8107

8085:                                             ; preds = %8078
  %8086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8087 = call i32 @fileno(ptr noundef %8086) #11
  %8088 = call i32 @isatty(i32 noundef %8087) #11
  %8089 = icmp ne i32 %8088, 0
  br i1 %8089, label %8090, label %8107

8090:                                             ; preds = %8085
  %8091 = load i32, ptr %197, align 4, !tbaa !5
  %8092 = call ptr @__errno_location() #12
  store i32 %8091, ptr %8092, align 4, !tbaa !5
  %8093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8094 = load i32, ptr @test_count, align 4, !tbaa !5
  %8095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8096 = load i32, ptr %8095, align 4, !tbaa !5
  %8097 = call ptr @s2n_strerror(i32 noundef %8096, ptr noundef @.str.24)
  %8098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8099 = load i32, ptr %8098, align 4, !tbaa !5
  %8100 = call ptr @s2n_strerror_debug(i32 noundef %8099, ptr noundef @.str.24)
  %8101 = call ptr @__errno_location() #12
  %8102 = load i32, ptr %8101, align 4, !tbaa !5
  %8103 = call ptr @strerror(i32 noundef %8102) #11
  %8104 = call ptr @__errno_location() #12
  %8105 = load i32, ptr %8104, align 4, !tbaa !5
  %8106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8093, ptr noundef @.str.22, i32 noundef %8094, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 607, ptr noundef %8097, ptr noundef %8100, ptr noundef %8103, i32 noundef %8105) #11
  br label %8124

8107:                                             ; preds = %8085, %8078
  %8108 = load i32, ptr %197, align 4, !tbaa !5
  %8109 = call ptr @__errno_location() #12
  store i32 %8108, ptr %8109, align 4, !tbaa !5
  %8110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8111 = load i32, ptr @test_count, align 4, !tbaa !5
  %8112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8113 = load i32, ptr %8112, align 4, !tbaa !5
  %8114 = call ptr @s2n_strerror(i32 noundef %8113, ptr noundef @.str.24)
  %8115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8116 = load i32, ptr %8115, align 4, !tbaa !5
  %8117 = call ptr @s2n_strerror_debug(i32 noundef %8116, ptr noundef @.str.24)
  %8118 = call ptr @__errno_location() #12
  %8119 = load i32, ptr %8118, align 4, !tbaa !5
  %8120 = call ptr @strerror(i32 noundef %8119) #11
  %8121 = call ptr @__errno_location() #12
  %8122 = load i32, ptr %8121, align 4, !tbaa !5
  %8123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8110, ptr noundef @.str.25, i32 noundef %8111, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 607, ptr noundef %8114, ptr noundef %8117, ptr noundef %8120, i32 noundef %8122) #11
  br label %8124

8124:                                             ; preds = %8107, %8090
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %8125

8125:                                             ; preds = %8124
  br label %8126

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

8127:                                             ; No predecessors!
  br label %8128

8128:                                             ; preds = %8127
  br label %8129

8129:                                             ; preds = %8128, %8071
  br label %8130

8130:                                             ; preds = %8129
  br label %8131

8131:                                             ; preds = %8130
  br label %8132

8132:                                             ; preds = %8131
  %8133 = load i32, ptr @test_count, align 4, !tbaa !5
  %8134 = add nsw i32 %8133, 1
  store i32 %8134, ptr @test_count, align 4, !tbaa !5
  %8135 = load ptr, ptr %193, align 8, !tbaa !9
  %8136 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %196, ptr noundef null, ptr noundef %8135)
  %8137 = icmp eq i32 %8136, -1
  br i1 %8137, label %8138, label %8191

8138:                                             ; preds = %8132
  br label %8139

8139:                                             ; preds = %8138
  br label %8140

8140:                                             ; preds = %8139
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #11
  %8141 = call ptr @__errno_location() #12
  %8142 = load i32, ptr %8141, align 4, !tbaa !5
  store i32 %8142, ptr %198, align 4, !tbaa !5
  %8143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8144 = call i32 @s2n_print_stacktrace(ptr noundef %8143)
  %8145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8146 = trunc i8 %8145 to i1
  br i1 %8146, label %8147, label %8169

8147:                                             ; preds = %8140
  %8148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8149 = call i32 @fileno(ptr noundef %8148) #11
  %8150 = call i32 @isatty(i32 noundef %8149) #11
  %8151 = icmp ne i32 %8150, 0
  br i1 %8151, label %8152, label %8169

8152:                                             ; preds = %8147
  %8153 = load i32, ptr %198, align 4, !tbaa !5
  %8154 = call ptr @__errno_location() #12
  store i32 %8153, ptr %8154, align 4, !tbaa !5
  %8155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8156 = load i32, ptr @test_count, align 4, !tbaa !5
  %8157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8158 = load i32, ptr %8157, align 4, !tbaa !5
  %8159 = call ptr @s2n_strerror(i32 noundef %8158, ptr noundef @.str.24)
  %8160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8161 = load i32, ptr %8160, align 4, !tbaa !5
  %8162 = call ptr @s2n_strerror_debug(i32 noundef %8161, ptr noundef @.str.24)
  %8163 = call ptr @__errno_location() #12
  %8164 = load i32, ptr %8163, align 4, !tbaa !5
  %8165 = call ptr @strerror(i32 noundef %8164) #11
  %8166 = call ptr @__errno_location() #12
  %8167 = load i32, ptr %8166, align 4, !tbaa !5
  %8168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8155, ptr noundef @.str.22, i32 noundef %8156, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 608, ptr noundef %8159, ptr noundef %8162, ptr noundef %8165, i32 noundef %8167) #11
  br label %8186

8169:                                             ; preds = %8147, %8140
  %8170 = load i32, ptr %198, align 4, !tbaa !5
  %8171 = call ptr @__errno_location() #12
  store i32 %8170, ptr %8171, align 4, !tbaa !5
  %8172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8173 = load i32, ptr @test_count, align 4, !tbaa !5
  %8174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8175 = load i32, ptr %8174, align 4, !tbaa !5
  %8176 = call ptr @s2n_strerror(i32 noundef %8175, ptr noundef @.str.24)
  %8177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8178 = load i32, ptr %8177, align 4, !tbaa !5
  %8179 = call ptr @s2n_strerror_debug(i32 noundef %8178, ptr noundef @.str.24)
  %8180 = call ptr @__errno_location() #12
  %8181 = load i32, ptr %8180, align 4, !tbaa !5
  %8182 = call ptr @strerror(i32 noundef %8181) #11
  %8183 = call ptr @__errno_location() #12
  %8184 = load i32, ptr %8183, align 4, !tbaa !5
  %8185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8172, ptr noundef @.str.25, i32 noundef %8173, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 608, ptr noundef %8176, ptr noundef %8179, ptr noundef %8182, i32 noundef %8184) #11
  br label %8186

8186:                                             ; preds = %8169, %8152
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #11
  br label %8187

8187:                                             ; preds = %8186
  br label %8188

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

8189:                                             ; No predecessors!
  br label %8190

8190:                                             ; preds = %8189
  br label %8191

8191:                                             ; preds = %8190, %8132
  br label %8192

8192:                                             ; preds = %8191
  br label %8193

8193:                                             ; preds = %8192
  call void @llvm.lifetime.start.p0(i64 1, ptr %199) #11
  store i8 2, ptr %199, align 1, !tbaa !83
  %8194 = load ptr, ptr %193, align 8, !tbaa !9
  %8195 = getelementptr inbounds %struct.s2n_connection, ptr %8194, i32 0, i32 52
  %8196 = getelementptr inbounds %struct.s2n_handshake, ptr %8195, i32 0, i32 6
  store i32 35, ptr %8196, align 4, !tbaa !60
  %8197 = load i8, ptr %199, align 1, !tbaa !83
  %8198 = zext i8 %8197 to i32
  %8199 = load ptr, ptr %193, align 8, !tbaa !9
  %8200 = getelementptr inbounds %struct.s2n_connection, ptr %8199, i32 0, i32 52
  %8201 = getelementptr inbounds %struct.s2n_handshake, ptr %8200, i32 0, i32 7
  store i32 %8198, ptr %8201, align 8, !tbaa !61
  br label %8202

8202:                                             ; preds = %8193
  %8203 = load i32, ptr @test_count, align 4, !tbaa !5
  %8204 = add nsw i32 %8203, 1
  store i32 %8204, ptr @test_count, align 4, !tbaa !5
  %8205 = load ptr, ptr %193, align 8, !tbaa !9
  %8206 = getelementptr inbounds %struct.s2n_connection, ptr %8205, i32 0, i32 52
  %8207 = getelementptr inbounds %struct.s2n_handshake, ptr %8206, i32 0, i32 12
  %8208 = load i32, ptr %8207, align 4, !tbaa !59
  %8209 = icmp eq i32 %8208, 2
  %8210 = zext i1 %8209 to i64
  %8211 = select i1 %8209, ptr @tls13_handshakes, ptr @handshakes
  %8212 = load ptr, ptr %193, align 8, !tbaa !9
  %8213 = getelementptr inbounds %struct.s2n_connection, ptr %8212, i32 0, i32 52
  %8214 = getelementptr inbounds %struct.s2n_handshake, ptr %8213, i32 0, i32 6
  %8215 = load i32, ptr %8214, align 4, !tbaa !60
  %8216 = zext i32 %8215 to i64
  %8217 = getelementptr inbounds [32 x i32], ptr %8211, i64 %8216
  %8218 = load ptr, ptr %193, align 8, !tbaa !9
  %8219 = getelementptr inbounds %struct.s2n_connection, ptr %8218, i32 0, i32 52
  %8220 = getelementptr inbounds %struct.s2n_handshake, ptr %8219, i32 0, i32 7
  %8221 = load i32, ptr %8220, align 8, !tbaa !61
  %8222 = sext i32 %8221 to i64
  %8223 = getelementptr inbounds [32 x i32], ptr %8217, i64 0, i64 %8222
  %8224 = load i32, ptr %8223, align 4, !tbaa !5
  %8225 = icmp eq i32 %8224, 14
  br i1 %8225, label %8279, label %8226

8226:                                             ; preds = %8202
  br label %8227

8227:                                             ; preds = %8226
  br label %8228

8228:                                             ; preds = %8227
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %8229 = call ptr @__errno_location() #12
  %8230 = load i32, ptr %8229, align 4, !tbaa !5
  store i32 %8230, ptr %200, align 4, !tbaa !5
  %8231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8232 = call i32 @s2n_print_stacktrace(ptr noundef %8231)
  %8233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8234 = trunc i8 %8233 to i1
  br i1 %8234, label %8235, label %8257

8235:                                             ; preds = %8228
  %8236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8237 = call i32 @fileno(ptr noundef %8236) #11
  %8238 = call i32 @isatty(i32 noundef %8237) #11
  %8239 = icmp ne i32 %8238, 0
  br i1 %8239, label %8240, label %8257

8240:                                             ; preds = %8235
  %8241 = load i32, ptr %200, align 4, !tbaa !5
  %8242 = call ptr @__errno_location() #12
  store i32 %8241, ptr %8242, align 4, !tbaa !5
  %8243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8244 = load i32, ptr @test_count, align 4, !tbaa !5
  %8245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8246 = load i32, ptr %8245, align 4, !tbaa !5
  %8247 = call ptr @s2n_strerror(i32 noundef %8246, ptr noundef @.str.24)
  %8248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8249 = load i32, ptr %8248, align 4, !tbaa !5
  %8250 = call ptr @s2n_strerror_debug(i32 noundef %8249, ptr noundef @.str.24)
  %8251 = call ptr @__errno_location() #12
  %8252 = load i32, ptr %8251, align 4, !tbaa !5
  %8253 = call ptr @strerror(i32 noundef %8252) #11
  %8254 = call ptr @__errno_location() #12
  %8255 = load i32, ptr %8254, align 4, !tbaa !5
  %8256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8243, ptr noundef @.str.22, i32 noundef %8244, ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 613, ptr noundef %8247, ptr noundef %8250, ptr noundef %8253, i32 noundef %8255) #11
  br label %8274

8257:                                             ; preds = %8235, %8228
  %8258 = load i32, ptr %200, align 4, !tbaa !5
  %8259 = call ptr @__errno_location() #12
  store i32 %8258, ptr %8259, align 4, !tbaa !5
  %8260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8261 = load i32, ptr @test_count, align 4, !tbaa !5
  %8262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8263 = load i32, ptr %8262, align 4, !tbaa !5
  %8264 = call ptr @s2n_strerror(i32 noundef %8263, ptr noundef @.str.24)
  %8265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8266 = load i32, ptr %8265, align 4, !tbaa !5
  %8267 = call ptr @s2n_strerror_debug(i32 noundef %8266, ptr noundef @.str.24)
  %8268 = call ptr @__errno_location() #12
  %8269 = load i32, ptr %8268, align 4, !tbaa !5
  %8270 = call ptr @strerror(i32 noundef %8269) #11
  %8271 = call ptr @__errno_location() #12
  %8272 = load i32, ptr %8271, align 4, !tbaa !5
  %8273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8260, ptr noundef @.str.25, i32 noundef %8261, ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 613, ptr noundef %8264, ptr noundef %8267, ptr noundef %8270, i32 noundef %8272) #11
  br label %8274

8274:                                             ; preds = %8257, %8240
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %8275

8275:                                             ; preds = %8274
  br label %8276

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

8277:                                             ; No predecessors!
  br label %8278

8278:                                             ; preds = %8277
  br label %8279

8279:                                             ; preds = %8278, %8202
  br label %8280

8280:                                             ; preds = %8279
  br label %8281

8281:                                             ; preds = %8280
  br label %8282

8282:                                             ; preds = %8281
  %8283 = load i32, ptr @test_count, align 4, !tbaa !5
  %8284 = add nsw i32 %8283, 1
  store i32 %8284, ptr @test_count, align 4, !tbaa !5
  %8285 = call i32 @s2n_setup_handler_to_expect(i32 noundef 14, i8 noundef zeroext 1)
  %8286 = icmp eq i32 %8285, -1
  br i1 %8286, label %8287, label %8340

8287:                                             ; preds = %8282
  br label %8288

8288:                                             ; preds = %8287
  br label %8289

8289:                                             ; preds = %8288
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %8290 = call ptr @__errno_location() #12
  %8291 = load i32, ptr %8290, align 4, !tbaa !5
  store i32 %8291, ptr %201, align 4, !tbaa !5
  %8292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8293 = call i32 @s2n_print_stacktrace(ptr noundef %8292)
  %8294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8295 = trunc i8 %8294 to i1
  br i1 %8295, label %8296, label %8318

8296:                                             ; preds = %8289
  %8297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8298 = call i32 @fileno(ptr noundef %8297) #11
  %8299 = call i32 @isatty(i32 noundef %8298) #11
  %8300 = icmp ne i32 %8299, 0
  br i1 %8300, label %8301, label %8318

8301:                                             ; preds = %8296
  %8302 = load i32, ptr %201, align 4, !tbaa !5
  %8303 = call ptr @__errno_location() #12
  store i32 %8302, ptr %8303, align 4, !tbaa !5
  %8304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8305 = load i32, ptr @test_count, align 4, !tbaa !5
  %8306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8307 = load i32, ptr %8306, align 4, !tbaa !5
  %8308 = call ptr @s2n_strerror(i32 noundef %8307, ptr noundef @.str.24)
  %8309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8310 = load i32, ptr %8309, align 4, !tbaa !5
  %8311 = call ptr @s2n_strerror_debug(i32 noundef %8310, ptr noundef @.str.24)
  %8312 = call ptr @__errno_location() #12
  %8313 = load i32, ptr %8312, align 4, !tbaa !5
  %8314 = call ptr @strerror(i32 noundef %8313) #11
  %8315 = call ptr @__errno_location() #12
  %8316 = load i32, ptr %8315, align 4, !tbaa !5
  %8317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8304, ptr noundef @.str.22, i32 noundef %8305, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 614, ptr noundef %8308, ptr noundef %8311, ptr noundef %8314, i32 noundef %8316) #11
  br label %8335

8318:                                             ; preds = %8296, %8289
  %8319 = load i32, ptr %201, align 4, !tbaa !5
  %8320 = call ptr @__errno_location() #12
  store i32 %8319, ptr %8320, align 4, !tbaa !5
  %8321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8322 = load i32, ptr @test_count, align 4, !tbaa !5
  %8323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  %8325 = call ptr @s2n_strerror(i32 noundef %8324, ptr noundef @.str.24)
  %8326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8327 = load i32, ptr %8326, align 4, !tbaa !5
  %8328 = call ptr @s2n_strerror_debug(i32 noundef %8327, ptr noundef @.str.24)
  %8329 = call ptr @__errno_location() #12
  %8330 = load i32, ptr %8329, align 4, !tbaa !5
  %8331 = call ptr @strerror(i32 noundef %8330) #11
  %8332 = call ptr @__errno_location() #12
  %8333 = load i32, ptr %8332, align 4, !tbaa !5
  %8334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8321, ptr noundef @.str.25, i32 noundef %8322, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 614, ptr noundef %8325, ptr noundef %8328, ptr noundef %8331, i32 noundef %8333) #11
  br label %8335

8335:                                             ; preds = %8318, %8301
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %8336

8336:                                             ; preds = %8335
  br label %8337

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

8338:                                             ; No predecessors!
  br label %8339

8339:                                             ; preds = %8338
  br label %8340

8340:                                             ; preds = %8339, %8282
  br label %8341

8341:                                             ; preds = %8340
  br label %8342

8342:                                             ; preds = %8341
  br label %8343

8343:                                             ; preds = %8342
  %8344 = load i32, ptr @test_count, align 4, !tbaa !5
  %8345 = add nsw i32 %8344, 1
  store i32 %8345, ptr @test_count, align 4, !tbaa !5
  %8346 = load ptr, ptr %193, align 8, !tbaa !9
  %8347 = getelementptr inbounds %struct.s2n_connection, ptr %8346, i32 0, i32 52
  %8348 = getelementptr inbounds %struct.s2n_handshake, ptr %8347, i32 0, i32 12
  %8349 = load i32, ptr %8348, align 4, !tbaa !59
  %8350 = icmp eq i32 %8349, 2
  %8351 = zext i1 %8350 to i64
  %8352 = select i1 %8350, ptr @tls13_state_machine, ptr @state_machine
  %8353 = load ptr, ptr %193, align 8, !tbaa !9
  %8354 = getelementptr inbounds %struct.s2n_connection, ptr %8353, i32 0, i32 52
  %8355 = getelementptr inbounds %struct.s2n_handshake, ptr %8354, i32 0, i32 12
  %8356 = load i32, ptr %8355, align 4, !tbaa !59
  %8357 = icmp eq i32 %8356, 2
  %8358 = zext i1 %8357 to i64
  %8359 = select i1 %8357, ptr @tls13_handshakes, ptr @handshakes
  %8360 = load ptr, ptr %193, align 8, !tbaa !9
  %8361 = getelementptr inbounds %struct.s2n_connection, ptr %8360, i32 0, i32 52
  %8362 = getelementptr inbounds %struct.s2n_handshake, ptr %8361, i32 0, i32 6
  %8363 = load i32, ptr %8362, align 4, !tbaa !60
  %8364 = zext i32 %8363 to i64
  %8365 = getelementptr inbounds [32 x i32], ptr %8359, i64 %8364
  %8366 = load ptr, ptr %193, align 8, !tbaa !9
  %8367 = getelementptr inbounds %struct.s2n_connection, ptr %8366, i32 0, i32 52
  %8368 = getelementptr inbounds %struct.s2n_handshake, ptr %8367, i32 0, i32 7
  %8369 = load i32, ptr %8368, align 8, !tbaa !61
  %8370 = sext i32 %8369 to i64
  %8371 = getelementptr inbounds [32 x i32], ptr %8365, i64 0, i64 %8370
  %8372 = load i32, ptr %8371, align 4, !tbaa !5
  %8373 = zext i32 %8372 to i64
  %8374 = getelementptr inbounds %struct.s2n_handshake_action, ptr %8352, i64 %8373
  %8375 = getelementptr inbounds %struct.s2n_handshake_action, ptr %8374, i32 0, i32 1
  %8376 = load i8, ptr %8375, align 1, !tbaa !81
  %8377 = call i32 @s2n_test_write_header(ptr noundef %196, i8 noundef zeroext 22, i8 noundef zeroext %8376)
  %8378 = icmp eq i32 %8377, -1
  br i1 %8378, label %8379, label %8432

8379:                                             ; preds = %8343
  br label %8380

8380:                                             ; preds = %8379
  br label %8381

8381:                                             ; preds = %8380
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %8382 = call ptr @__errno_location() #12
  %8383 = load i32, ptr %8382, align 4, !tbaa !5
  store i32 %8383, ptr %202, align 4, !tbaa !5
  %8384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8385 = call i32 @s2n_print_stacktrace(ptr noundef %8384)
  %8386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8387 = trunc i8 %8386 to i1
  br i1 %8387, label %8388, label %8410

8388:                                             ; preds = %8381
  %8389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8390 = call i32 @fileno(ptr noundef %8389) #11
  %8391 = call i32 @isatty(i32 noundef %8390) #11
  %8392 = icmp ne i32 %8391, 0
  br i1 %8392, label %8393, label %8410

8393:                                             ; preds = %8388
  %8394 = load i32, ptr %202, align 4, !tbaa !5
  %8395 = call ptr @__errno_location() #12
  store i32 %8394, ptr %8395, align 4, !tbaa !5
  %8396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8397 = load i32, ptr @test_count, align 4, !tbaa !5
  %8398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8399 = load i32, ptr %8398, align 4, !tbaa !5
  %8400 = call ptr @s2n_strerror(i32 noundef %8399, ptr noundef @.str.24)
  %8401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @s2n_strerror_debug(i32 noundef %8402, ptr noundef @.str.24)
  %8404 = call ptr @__errno_location() #12
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call ptr @strerror(i32 noundef %8405) #11
  %8407 = call ptr @__errno_location() #12
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  %8409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8396, ptr noundef @.str.22, i32 noundef %8397, ptr noundef @.str.75, ptr noundef @.str.21, i32 noundef 616, ptr noundef %8400, ptr noundef %8403, ptr noundef %8406, i32 noundef %8408) #11
  br label %8427

8410:                                             ; preds = %8388, %8381
  %8411 = load i32, ptr %202, align 4, !tbaa !5
  %8412 = call ptr @__errno_location() #12
  store i32 %8411, ptr %8412, align 4, !tbaa !5
  %8413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8414 = load i32, ptr @test_count, align 4, !tbaa !5
  %8415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8416 = load i32, ptr %8415, align 4, !tbaa !5
  %8417 = call ptr @s2n_strerror(i32 noundef %8416, ptr noundef @.str.24)
  %8418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8419 = load i32, ptr %8418, align 4, !tbaa !5
  %8420 = call ptr @s2n_strerror_debug(i32 noundef %8419, ptr noundef @.str.24)
  %8421 = call ptr @__errno_location() #12
  %8422 = load i32, ptr %8421, align 4, !tbaa !5
  %8423 = call ptr @strerror(i32 noundef %8422) #11
  %8424 = call ptr @__errno_location() #12
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  %8426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8413, ptr noundef @.str.25, i32 noundef %8414, ptr noundef @.str.75, ptr noundef @.str.21, i32 noundef 616, ptr noundef %8417, ptr noundef %8420, ptr noundef %8423, i32 noundef %8425) #11
  br label %8427

8427:                                             ; preds = %8410, %8393
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %8428

8428:                                             ; preds = %8427
  br label %8429

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

8430:                                             ; No predecessors!
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

8432:                                             ; preds = %8431, %8343
  br label %8433

8433:                                             ; preds = %8432
  br label %8434

8434:                                             ; preds = %8433
  br label %8435

8435:                                             ; preds = %8434
  br label %8436

8436:                                             ; preds = %8435
  br label %8437

8437:                                             ; preds = %8436
  %8438 = load i32, ptr @test_count, align 4, !tbaa !5
  %8439 = add nsw i32 %8438, 1
  store i32 %8439, ptr @test_count, align 4, !tbaa !5
  %8440 = load ptr, ptr %193, align 8, !tbaa !9
  %8441 = call i32 @s2n_handshake_read_io(ptr noundef %8440)
  %8442 = icmp eq i32 %8441, -1
  br i1 %8442, label %8496, label %8443

8443:                                             ; preds = %8437
  br label %8444

8444:                                             ; preds = %8443
  br label %8445

8445:                                             ; preds = %8444
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %8446 = call ptr @__errno_location() #12
  %8447 = load i32, ptr %8446, align 4, !tbaa !5
  store i32 %8447, ptr %203, align 4, !tbaa !5
  %8448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8449 = call i32 @s2n_print_stacktrace(ptr noundef %8448)
  %8450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8451 = trunc i8 %8450 to i1
  br i1 %8451, label %8452, label %8474

8452:                                             ; preds = %8445
  %8453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8454 = call i32 @fileno(ptr noundef %8453) #11
  %8455 = call i32 @isatty(i32 noundef %8454) #11
  %8456 = icmp ne i32 %8455, 0
  br i1 %8456, label %8457, label %8474

8457:                                             ; preds = %8452
  %8458 = load i32, ptr %203, align 4, !tbaa !5
  %8459 = call ptr @__errno_location() #12
  store i32 %8458, ptr %8459, align 4, !tbaa !5
  %8460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8461 = load i32, ptr @test_count, align 4, !tbaa !5
  %8462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8463 = load i32, ptr %8462, align 4, !tbaa !5
  %8464 = call ptr @s2n_strerror(i32 noundef %8463, ptr noundef @.str.24)
  %8465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8466 = load i32, ptr %8465, align 4, !tbaa !5
  %8467 = call ptr @s2n_strerror_debug(i32 noundef %8466, ptr noundef @.str.24)
  %8468 = call ptr @__errno_location() #12
  %8469 = load i32, ptr %8468, align 4, !tbaa !5
  %8470 = call ptr @strerror(i32 noundef %8469) #11
  %8471 = call ptr @__errno_location() #12
  %8472 = load i32, ptr %8471, align 4, !tbaa !5
  %8473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8460, ptr noundef @.str.22, i32 noundef %8461, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 617, ptr noundef %8464, ptr noundef %8467, ptr noundef %8470, i32 noundef %8472) #11
  br label %8491

8474:                                             ; preds = %8452, %8445
  %8475 = load i32, ptr %203, align 4, !tbaa !5
  %8476 = call ptr @__errno_location() #12
  store i32 %8475, ptr %8476, align 4, !tbaa !5
  %8477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8478 = load i32, ptr @test_count, align 4, !tbaa !5
  %8479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8480 = load i32, ptr %8479, align 4, !tbaa !5
  %8481 = call ptr @s2n_strerror(i32 noundef %8480, ptr noundef @.str.24)
  %8482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8483 = load i32, ptr %8482, align 4, !tbaa !5
  %8484 = call ptr @s2n_strerror_debug(i32 noundef %8483, ptr noundef @.str.24)
  %8485 = call ptr @__errno_location() #12
  %8486 = load i32, ptr %8485, align 4, !tbaa !5
  %8487 = call ptr @strerror(i32 noundef %8486) #11
  %8488 = call ptr @__errno_location() #12
  %8489 = load i32, ptr %8488, align 4, !tbaa !5
  %8490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8477, ptr noundef @.str.25, i32 noundef %8478, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 617, ptr noundef %8481, ptr noundef %8484, ptr noundef %8487, i32 noundef %8489) #11
  br label %8491

8491:                                             ; preds = %8474, %8457
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %8492

8492:                                             ; preds = %8491
  br label %8493

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

8494:                                             ; No predecessors!
  br label %8495

8495:                                             ; preds = %8494
  br label %8496

8496:                                             ; preds = %8495, %8437
  br label %8497

8497:                                             ; preds = %8496
  br label %8498

8498:                                             ; preds = %8497
  br label %8499

8499:                                             ; preds = %8498
  %8500 = load i32, ptr @test_count, align 4, !tbaa !5
  %8501 = add nsw i32 %8500, 1
  store i32 %8501, ptr @test_count, align 4, !tbaa !5
  %8502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8503 = load i32, ptr %8502, align 4, !tbaa !5
  %8504 = icmp eq i32 %8503, 335544322
  br i1 %8504, label %8558, label %8505

8505:                                             ; preds = %8499
  br label %8506

8506:                                             ; preds = %8505
  br label %8507

8507:                                             ; preds = %8506
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %8508 = call ptr @__errno_location() #12
  %8509 = load i32, ptr %8508, align 4, !tbaa !5
  store i32 %8509, ptr %204, align 4, !tbaa !5
  %8510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8511 = call i32 @s2n_print_stacktrace(ptr noundef %8510)
  %8512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8513 = trunc i8 %8512 to i1
  br i1 %8513, label %8514, label %8536

8514:                                             ; preds = %8507
  %8515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8516 = call i32 @fileno(ptr noundef %8515) #11
  %8517 = call i32 @isatty(i32 noundef %8516) #11
  %8518 = icmp ne i32 %8517, 0
  br i1 %8518, label %8519, label %8536

8519:                                             ; preds = %8514
  %8520 = load i32, ptr %204, align 4, !tbaa !5
  %8521 = call ptr @__errno_location() #12
  store i32 %8520, ptr %8521, align 4, !tbaa !5
  %8522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8523 = load i32, ptr @test_count, align 4, !tbaa !5
  %8524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8525 = load i32, ptr %8524, align 4, !tbaa !5
  %8526 = call ptr @s2n_strerror(i32 noundef %8525, ptr noundef @.str.24)
  %8527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8528 = load i32, ptr %8527, align 4, !tbaa !5
  %8529 = call ptr @s2n_strerror_debug(i32 noundef %8528, ptr noundef @.str.24)
  %8530 = call ptr @__errno_location() #12
  %8531 = load i32, ptr %8530, align 4, !tbaa !5
  %8532 = call ptr @strerror(i32 noundef %8531) #11
  %8533 = call ptr @__errno_location() #12
  %8534 = load i32, ptr %8533, align 4, !tbaa !5
  %8535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8522, ptr noundef @.str.22, i32 noundef %8523, ptr noundef @.str.71, ptr noundef @.str.21, i32 noundef 617, ptr noundef %8526, ptr noundef %8529, ptr noundef %8532, i32 noundef %8534) #11
  br label %8553

8536:                                             ; preds = %8514, %8507
  %8537 = load i32, ptr %204, align 4, !tbaa !5
  %8538 = call ptr @__errno_location() #12
  store i32 %8537, ptr %8538, align 4, !tbaa !5
  %8539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8540 = load i32, ptr @test_count, align 4, !tbaa !5
  %8541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8542 = load i32, ptr %8541, align 4, !tbaa !5
  %8543 = call ptr @s2n_strerror(i32 noundef %8542, ptr noundef @.str.24)
  %8544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  %8546 = call ptr @s2n_strerror_debug(i32 noundef %8545, ptr noundef @.str.24)
  %8547 = call ptr @__errno_location() #12
  %8548 = load i32, ptr %8547, align 4, !tbaa !5
  %8549 = call ptr @strerror(i32 noundef %8548) #11
  %8550 = call ptr @__errno_location() #12
  %8551 = load i32, ptr %8550, align 4, !tbaa !5
  %8552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8539, ptr noundef @.str.25, i32 noundef %8540, ptr noundef @.str.71, ptr noundef @.str.21, i32 noundef 617, ptr noundef %8543, ptr noundef %8546, ptr noundef %8549, i32 noundef %8551) #11
  br label %8553

8553:                                             ; preds = %8536, %8519
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %8554

8554:                                             ; preds = %8553
  br label %8555

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

8556:                                             ; No predecessors!
  br label %8557

8557:                                             ; preds = %8556
  br label %8558

8558:                                             ; preds = %8557, %8499
  br label %8559

8559:                                             ; preds = %8558
  br label %8560

8560:                                             ; preds = %8559
  br label %8561

8561:                                             ; preds = %8560
  %8562 = load i32, ptr @test_count, align 4, !tbaa !5
  %8563 = add nsw i32 %8562, 1
  store i32 %8563, ptr @test_count, align 4, !tbaa !5
  %8564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8565 = load i32, ptr %8564, align 4, !tbaa !5
  %8566 = call ptr @s2n_strerror_debug(i32 noundef %8565, ptr noundef @.str.24)
  %8567 = icmp eq ptr %8566, null
  br i1 %8567, label %8568, label %8621

8568:                                             ; preds = %8561
  br label %8569

8569:                                             ; preds = %8568
  br label %8570

8570:                                             ; preds = %8569
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %8571 = call ptr @__errno_location() #12
  %8572 = load i32, ptr %8571, align 4, !tbaa !5
  store i32 %8572, ptr %205, align 4, !tbaa !5
  %8573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8574 = call i32 @s2n_print_stacktrace(ptr noundef %8573)
  %8575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8576 = trunc i8 %8575 to i1
  br i1 %8576, label %8577, label %8599

8577:                                             ; preds = %8570
  %8578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8579 = call i32 @fileno(ptr noundef %8578) #11
  %8580 = call i32 @isatty(i32 noundef %8579) #11
  %8581 = icmp ne i32 %8580, 0
  br i1 %8581, label %8582, label %8599

8582:                                             ; preds = %8577
  %8583 = load i32, ptr %205, align 4, !tbaa !5
  %8584 = call ptr @__errno_location() #12
  store i32 %8583, ptr %8584, align 4, !tbaa !5
  %8585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8586 = load i32, ptr @test_count, align 4, !tbaa !5
  %8587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8588 = load i32, ptr %8587, align 4, !tbaa !5
  %8589 = call ptr @s2n_strerror(i32 noundef %8588, ptr noundef @.str.24)
  %8590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8591 = load i32, ptr %8590, align 4, !tbaa !5
  %8592 = call ptr @s2n_strerror_debug(i32 noundef %8591, ptr noundef @.str.24)
  %8593 = call ptr @__errno_location() #12
  %8594 = load i32, ptr %8593, align 4, !tbaa !5
  %8595 = call ptr @strerror(i32 noundef %8594) #11
  %8596 = call ptr @__errno_location() #12
  %8597 = load i32, ptr %8596, align 4, !tbaa !5
  %8598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8585, ptr noundef @.str.22, i32 noundef %8586, ptr noundef @.str.72, ptr noundef @.str.21, i32 noundef 617, ptr noundef %8589, ptr noundef %8592, ptr noundef %8595, i32 noundef %8597) #11
  br label %8616

8599:                                             ; preds = %8577, %8570
  %8600 = load i32, ptr %205, align 4, !tbaa !5
  %8601 = call ptr @__errno_location() #12
  store i32 %8600, ptr %8601, align 4, !tbaa !5
  %8602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8603 = load i32, ptr @test_count, align 4, !tbaa !5
  %8604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8605 = load i32, ptr %8604, align 4, !tbaa !5
  %8606 = call ptr @s2n_strerror(i32 noundef %8605, ptr noundef @.str.24)
  %8607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8608 = load i32, ptr %8607, align 4, !tbaa !5
  %8609 = call ptr @s2n_strerror_debug(i32 noundef %8608, ptr noundef @.str.24)
  %8610 = call ptr @__errno_location() #12
  %8611 = load i32, ptr %8610, align 4, !tbaa !5
  %8612 = call ptr @strerror(i32 noundef %8611) #11
  %8613 = call ptr @__errno_location() #12
  %8614 = load i32, ptr %8613, align 4, !tbaa !5
  %8615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8602, ptr noundef @.str.25, i32 noundef %8603, ptr noundef @.str.72, ptr noundef @.str.21, i32 noundef 617, ptr noundef %8606, ptr noundef %8609, ptr noundef %8612, i32 noundef %8614) #11
  br label %8616

8616:                                             ; preds = %8599, %8582
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %8617

8617:                                             ; preds = %8616
  br label %8618

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

8619:                                             ; No predecessors!
  br label %8620

8620:                                             ; preds = %8619
  br label %8621

8621:                                             ; preds = %8620, %8561
  br label %8622

8622:                                             ; preds = %8621
  br label %8623

8623:                                             ; preds = %8622
  br label %8624

8624:                                             ; preds = %8623
  br label %8625

8625:                                             ; preds = %8624
  br label %8626

8626:                                             ; preds = %8625
  %8627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8627, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8628 = call ptr @__errno_location() #12
  store i32 0, ptr %8628, align 4, !tbaa !5
  br label %8629

8629:                                             ; preds = %8626
  br label %8630

8630:                                             ; preds = %8629
  br label %8631

8631:                                             ; preds = %8630
  br label %8632

8632:                                             ; preds = %8631
  br label %8633

8633:                                             ; preds = %8632
  %8634 = load i32, ptr @test_count, align 4, !tbaa !5
  %8635 = add nsw i32 %8634, 1
  store i32 %8635, ptr @test_count, align 4, !tbaa !5
  %8636 = load ptr, ptr %193, align 8, !tbaa !9
  %8637 = getelementptr inbounds %struct.s2n_connection, ptr %8636, i32 0, i32 52
  %8638 = getelementptr inbounds %struct.s2n_handshake, ptr %8637, i32 0, i32 7
  %8639 = load i32, ptr %8638, align 8, !tbaa !61
  %8640 = load i8, ptr %199, align 1, !tbaa !83
  %8641 = zext i8 %8640 to i32
  %8642 = icmp eq i32 %8639, %8641
  br i1 %8642, label %8696, label %8643

8643:                                             ; preds = %8633
  br label %8644

8644:                                             ; preds = %8643
  br label %8645

8645:                                             ; preds = %8644
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %8646 = call ptr @__errno_location() #12
  %8647 = load i32, ptr %8646, align 4, !tbaa !5
  store i32 %8647, ptr %206, align 4, !tbaa !5
  %8648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8649 = call i32 @s2n_print_stacktrace(ptr noundef %8648)
  %8650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8651 = trunc i8 %8650 to i1
  br i1 %8651, label %8652, label %8674

8652:                                             ; preds = %8645
  %8653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8654 = call i32 @fileno(ptr noundef %8653) #11
  %8655 = call i32 @isatty(i32 noundef %8654) #11
  %8656 = icmp ne i32 %8655, 0
  br i1 %8656, label %8657, label %8674

8657:                                             ; preds = %8652
  %8658 = load i32, ptr %206, align 4, !tbaa !5
  %8659 = call ptr @__errno_location() #12
  store i32 %8658, ptr %8659, align 4, !tbaa !5
  %8660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8661 = load i32, ptr @test_count, align 4, !tbaa !5
  %8662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8663 = load i32, ptr %8662, align 4, !tbaa !5
  %8664 = call ptr @s2n_strerror(i32 noundef %8663, ptr noundef @.str.24)
  %8665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8666 = load i32, ptr %8665, align 4, !tbaa !5
  %8667 = call ptr @s2n_strerror_debug(i32 noundef %8666, ptr noundef @.str.24)
  %8668 = call ptr @__errno_location() #12
  %8669 = load i32, ptr %8668, align 4, !tbaa !5
  %8670 = call ptr @strerror(i32 noundef %8669) #11
  %8671 = call ptr @__errno_location() #12
  %8672 = load i32, ptr %8671, align 4, !tbaa !5
  %8673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8660, ptr noundef @.str.22, i32 noundef %8661, ptr noundef @.str.76, ptr noundef @.str.21, i32 noundef 619, ptr noundef %8664, ptr noundef %8667, ptr noundef %8670, i32 noundef %8672) #11
  br label %8691

8674:                                             ; preds = %8652, %8645
  %8675 = load i32, ptr %206, align 4, !tbaa !5
  %8676 = call ptr @__errno_location() #12
  store i32 %8675, ptr %8676, align 4, !tbaa !5
  %8677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8678 = load i32, ptr @test_count, align 4, !tbaa !5
  %8679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8680 = load i32, ptr %8679, align 4, !tbaa !5
  %8681 = call ptr @s2n_strerror(i32 noundef %8680, ptr noundef @.str.24)
  %8682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8683 = load i32, ptr %8682, align 4, !tbaa !5
  %8684 = call ptr @s2n_strerror_debug(i32 noundef %8683, ptr noundef @.str.24)
  %8685 = call ptr @__errno_location() #12
  %8686 = load i32, ptr %8685, align 4, !tbaa !5
  %8687 = call ptr @strerror(i32 noundef %8686) #11
  %8688 = call ptr @__errno_location() #12
  %8689 = load i32, ptr %8688, align 4, !tbaa !5
  %8690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8677, ptr noundef @.str.25, i32 noundef %8678, ptr noundef @.str.76, ptr noundef @.str.21, i32 noundef 619, ptr noundef %8681, ptr noundef %8684, ptr noundef %8687, i32 noundef %8689) #11
  br label %8691

8691:                                             ; preds = %8674, %8657
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %8692

8692:                                             ; preds = %8691
  br label %8693

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

8694:                                             ; No predecessors!
  br label %8695

8695:                                             ; preds = %8694
  br label %8696

8696:                                             ; preds = %8695, %8633
  br label %8697

8697:                                             ; preds = %8696
  br label %8698

8698:                                             ; preds = %8697
  br label %8699

8699:                                             ; preds = %8698
  %8700 = load i32, ptr @test_count, align 4, !tbaa !5
  %8701 = add nsw i32 %8700, 1
  store i32 %8701, ptr @test_count, align 4, !tbaa !5
  %8702 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %8703 = icmp ne i32 %8702, 0
  br i1 %8703, label %8704, label %8757

8704:                                             ; preds = %8699
  br label %8705

8705:                                             ; preds = %8704
  br label %8706

8706:                                             ; preds = %8705
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %8707 = call ptr @__errno_location() #12
  %8708 = load i32, ptr %8707, align 4, !tbaa !5
  store i32 %8708, ptr %207, align 4, !tbaa !5
  %8709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8710 = call i32 @s2n_print_stacktrace(ptr noundef %8709)
  %8711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8712 = trunc i8 %8711 to i1
  br i1 %8712, label %8713, label %8735

8713:                                             ; preds = %8706
  %8714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8715 = call i32 @fileno(ptr noundef %8714) #11
  %8716 = call i32 @isatty(i32 noundef %8715) #11
  %8717 = icmp ne i32 %8716, 0
  br i1 %8717, label %8718, label %8735

8718:                                             ; preds = %8713
  %8719 = load i32, ptr %207, align 4, !tbaa !5
  %8720 = call ptr @__errno_location() #12
  store i32 %8719, ptr %8720, align 4, !tbaa !5
  %8721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8722 = load i32, ptr @test_count, align 4, !tbaa !5
  %8723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8724 = load i32, ptr %8723, align 4, !tbaa !5
  %8725 = call ptr @s2n_strerror(i32 noundef %8724, ptr noundef @.str.24)
  %8726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8727 = load i32, ptr %8726, align 4, !tbaa !5
  %8728 = call ptr @s2n_strerror_debug(i32 noundef %8727, ptr noundef @.str.24)
  %8729 = call ptr @__errno_location() #12
  %8730 = load i32, ptr %8729, align 4, !tbaa !5
  %8731 = call ptr @strerror(i32 noundef %8730) #11
  %8732 = call ptr @__errno_location() #12
  %8733 = load i32, ptr %8732, align 4, !tbaa !5
  %8734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8721, ptr noundef @.str.22, i32 noundef %8722, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 620, ptr noundef %8725, ptr noundef %8728, ptr noundef %8731, i32 noundef %8733) #11
  br label %8752

8735:                                             ; preds = %8713, %8706
  %8736 = load i32, ptr %207, align 4, !tbaa !5
  %8737 = call ptr @__errno_location() #12
  store i32 %8736, ptr %8737, align 4, !tbaa !5
  %8738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8739 = load i32, ptr @test_count, align 4, !tbaa !5
  %8740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8741 = load i32, ptr %8740, align 4, !tbaa !5
  %8742 = call ptr @s2n_strerror(i32 noundef %8741, ptr noundef @.str.24)
  %8743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8744 = load i32, ptr %8743, align 4, !tbaa !5
  %8745 = call ptr @s2n_strerror_debug(i32 noundef %8744, ptr noundef @.str.24)
  %8746 = call ptr @__errno_location() #12
  %8747 = load i32, ptr %8746, align 4, !tbaa !5
  %8748 = call ptr @strerror(i32 noundef %8747) #11
  %8749 = call ptr @__errno_location() #12
  %8750 = load i32, ptr %8749, align 4, !tbaa !5
  %8751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8738, ptr noundef @.str.25, i32 noundef %8739, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 620, ptr noundef %8742, ptr noundef %8745, ptr noundef %8748, i32 noundef %8750) #11
  br label %8752

8752:                                             ; preds = %8735, %8718
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %8753

8753:                                             ; preds = %8752
  br label %8754

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

8755:                                             ; No predecessors!
  br label %8756

8756:                                             ; preds = %8755
  br label %8757

8757:                                             ; preds = %8756, %8699
  br label %8758

8758:                                             ; preds = %8757
  br label %8759

8759:                                             ; preds = %8758
  br label %8760

8760:                                             ; preds = %8759
  %8761 = load i32, ptr @test_count, align 4, !tbaa !5
  %8762 = add nsw i32 %8761, 1
  store i32 %8762, ptr @test_count, align 4, !tbaa !5
  %8763 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %8764 = icmp ne i32 %8763, 0
  br i1 %8764, label %8765, label %8818

8765:                                             ; preds = %8760
  br label %8766

8766:                                             ; preds = %8765
  br label %8767

8767:                                             ; preds = %8766
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %8768 = call ptr @__errno_location() #12
  %8769 = load i32, ptr %8768, align 4, !tbaa !5
  store i32 %8769, ptr %208, align 4, !tbaa !5
  %8770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8771 = call i32 @s2n_print_stacktrace(ptr noundef %8770)
  %8772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8773 = trunc i8 %8772 to i1
  br i1 %8773, label %8774, label %8796

8774:                                             ; preds = %8767
  %8775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8776 = call i32 @fileno(ptr noundef %8775) #11
  %8777 = call i32 @isatty(i32 noundef %8776) #11
  %8778 = icmp ne i32 %8777, 0
  br i1 %8778, label %8779, label %8796

8779:                                             ; preds = %8774
  %8780 = load i32, ptr %208, align 4, !tbaa !5
  %8781 = call ptr @__errno_location() #12
  store i32 %8780, ptr %8781, align 4, !tbaa !5
  %8782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8783 = load i32, ptr @test_count, align 4, !tbaa !5
  %8784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8785 = load i32, ptr %8784, align 4, !tbaa !5
  %8786 = call ptr @s2n_strerror(i32 noundef %8785, ptr noundef @.str.24)
  %8787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8788 = load i32, ptr %8787, align 4, !tbaa !5
  %8789 = call ptr @s2n_strerror_debug(i32 noundef %8788, ptr noundef @.str.24)
  %8790 = call ptr @__errno_location() #12
  %8791 = load i32, ptr %8790, align 4, !tbaa !5
  %8792 = call ptr @strerror(i32 noundef %8791) #11
  %8793 = call ptr @__errno_location() #12
  %8794 = load i32, ptr %8793, align 4, !tbaa !5
  %8795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8782, ptr noundef @.str.22, i32 noundef %8783, ptr noundef @.str.74, ptr noundef @.str.21, i32 noundef 621, ptr noundef %8786, ptr noundef %8789, ptr noundef %8792, i32 noundef %8794) #11
  br label %8813

8796:                                             ; preds = %8774, %8767
  %8797 = load i32, ptr %208, align 4, !tbaa !5
  %8798 = call ptr @__errno_location() #12
  store i32 %8797, ptr %8798, align 4, !tbaa !5
  %8799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8800 = load i32, ptr @test_count, align 4, !tbaa !5
  %8801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8802 = load i32, ptr %8801, align 4, !tbaa !5
  %8803 = call ptr @s2n_strerror(i32 noundef %8802, ptr noundef @.str.24)
  %8804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8805 = load i32, ptr %8804, align 4, !tbaa !5
  %8806 = call ptr @s2n_strerror_debug(i32 noundef %8805, ptr noundef @.str.24)
  %8807 = call ptr @__errno_location() #12
  %8808 = load i32, ptr %8807, align 4, !tbaa !5
  %8809 = call ptr @strerror(i32 noundef %8808) #11
  %8810 = call ptr @__errno_location() #12
  %8811 = load i32, ptr %8810, align 4, !tbaa !5
  %8812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8799, ptr noundef @.str.25, i32 noundef %8800, ptr noundef @.str.74, ptr noundef @.str.21, i32 noundef 621, ptr noundef %8803, ptr noundef %8806, ptr noundef %8809, i32 noundef %8811) #11
  br label %8813

8813:                                             ; preds = %8796, %8779
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %8814

8814:                                             ; preds = %8813
  br label %8815

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

8816:                                             ; No predecessors!
  br label %8817

8817:                                             ; preds = %8816
  br label %8818

8818:                                             ; preds = %8817, %8760
  br label %8819

8819:                                             ; preds = %8818
  br label %8820

8820:                                             ; preds = %8819
  br label %8821

8821:                                             ; preds = %8820
  %8822 = load i32, ptr @test_count, align 4, !tbaa !5
  %8823 = add nsw i32 %8822, 1
  store i32 %8823, ptr @test_count, align 4, !tbaa !5
  %8824 = call i32 @s2n_stuffer_free(ptr noundef %196)
  %8825 = icmp eq i32 %8824, -1
  br i1 %8825, label %8826, label %8879

8826:                                             ; preds = %8821
  br label %8827

8827:                                             ; preds = %8826
  br label %8828

8828:                                             ; preds = %8827
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #11
  %8829 = call ptr @__errno_location() #12
  %8830 = load i32, ptr %8829, align 4, !tbaa !5
  store i32 %8830, ptr %209, align 4, !tbaa !5
  %8831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8832 = call i32 @s2n_print_stacktrace(ptr noundef %8831)
  %8833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8834 = trunc i8 %8833 to i1
  br i1 %8834, label %8835, label %8857

8835:                                             ; preds = %8828
  %8836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8837 = call i32 @fileno(ptr noundef %8836) #11
  %8838 = call i32 @isatty(i32 noundef %8837) #11
  %8839 = icmp ne i32 %8838, 0
  br i1 %8839, label %8840, label %8857

8840:                                             ; preds = %8835
  %8841 = load i32, ptr %209, align 4, !tbaa !5
  %8842 = call ptr @__errno_location() #12
  store i32 %8841, ptr %8842, align 4, !tbaa !5
  %8843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8844 = load i32, ptr @test_count, align 4, !tbaa !5
  %8845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8846 = load i32, ptr %8845, align 4, !tbaa !5
  %8847 = call ptr @s2n_strerror(i32 noundef %8846, ptr noundef @.str.24)
  %8848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8849 = load i32, ptr %8848, align 4, !tbaa !5
  %8850 = call ptr @s2n_strerror_debug(i32 noundef %8849, ptr noundef @.str.24)
  %8851 = call ptr @__errno_location() #12
  %8852 = load i32, ptr %8851, align 4, !tbaa !5
  %8853 = call ptr @strerror(i32 noundef %8852) #11
  %8854 = call ptr @__errno_location() #12
  %8855 = load i32, ptr %8854, align 4, !tbaa !5
  %8856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8843, ptr noundef @.str.22, i32 noundef %8844, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 623, ptr noundef %8847, ptr noundef %8850, ptr noundef %8853, i32 noundef %8855) #11
  br label %8874

8857:                                             ; preds = %8835, %8828
  %8858 = load i32, ptr %209, align 4, !tbaa !5
  %8859 = call ptr @__errno_location() #12
  store i32 %8858, ptr %8859, align 4, !tbaa !5
  %8860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8861 = load i32, ptr @test_count, align 4, !tbaa !5
  %8862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8863 = load i32, ptr %8862, align 4, !tbaa !5
  %8864 = call ptr @s2n_strerror(i32 noundef %8863, ptr noundef @.str.24)
  %8865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8866 = load i32, ptr %8865, align 4, !tbaa !5
  %8867 = call ptr @s2n_strerror_debug(i32 noundef %8866, ptr noundef @.str.24)
  %8868 = call ptr @__errno_location() #12
  %8869 = load i32, ptr %8868, align 4, !tbaa !5
  %8870 = call ptr @strerror(i32 noundef %8869) #11
  %8871 = call ptr @__errno_location() #12
  %8872 = load i32, ptr %8871, align 4, !tbaa !5
  %8873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8860, ptr noundef @.str.25, i32 noundef %8861, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 623, ptr noundef %8864, ptr noundef %8867, ptr noundef %8870, i32 noundef %8872) #11
  br label %8874

8874:                                             ; preds = %8857, %8840
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #11
  br label %8875

8875:                                             ; preds = %8874
  br label %8876

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

8877:                                             ; No predecessors!
  br label %8878

8878:                                             ; preds = %8877
  br label %8879

8879:                                             ; preds = %8878, %8821
  br label %8880

8880:                                             ; preds = %8879
  br label %8881

8881:                                             ; preds = %8880
  br label %8882

8882:                                             ; preds = %8881
  %8883 = load i32, ptr @test_count, align 4, !tbaa !5
  %8884 = add nsw i32 %8883, 1
  store i32 %8884, ptr @test_count, align 4, !tbaa !5
  %8885 = load ptr, ptr %193, align 8, !tbaa !9
  %8886 = call i32 @s2n_connection_free(ptr noundef %8885)
  %8887 = icmp eq i32 %8886, -1
  br i1 %8887, label %8888, label %8941

8888:                                             ; preds = %8882
  br label %8889

8889:                                             ; preds = %8888
  br label %8890

8890:                                             ; preds = %8889
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %8891 = call ptr @__errno_location() #12
  %8892 = load i32, ptr %8891, align 4, !tbaa !5
  store i32 %8892, ptr %210, align 4, !tbaa !5
  %8893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8894 = call i32 @s2n_print_stacktrace(ptr noundef %8893)
  %8895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8896 = trunc i8 %8895 to i1
  br i1 %8896, label %8897, label %8919

8897:                                             ; preds = %8890
  %8898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8899 = call i32 @fileno(ptr noundef %8898) #11
  %8900 = call i32 @isatty(i32 noundef %8899) #11
  %8901 = icmp ne i32 %8900, 0
  br i1 %8901, label %8902, label %8919

8902:                                             ; preds = %8897
  %8903 = load i32, ptr %210, align 4, !tbaa !5
  %8904 = call ptr @__errno_location() #12
  store i32 %8903, ptr %8904, align 4, !tbaa !5
  %8905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8906 = load i32, ptr @test_count, align 4, !tbaa !5
  %8907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8908 = load i32, ptr %8907, align 4, !tbaa !5
  %8909 = call ptr @s2n_strerror(i32 noundef %8908, ptr noundef @.str.24)
  %8910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8911 = load i32, ptr %8910, align 4, !tbaa !5
  %8912 = call ptr @s2n_strerror_debug(i32 noundef %8911, ptr noundef @.str.24)
  %8913 = call ptr @__errno_location() #12
  %8914 = load i32, ptr %8913, align 4, !tbaa !5
  %8915 = call ptr @strerror(i32 noundef %8914) #11
  %8916 = call ptr @__errno_location() #12
  %8917 = load i32, ptr %8916, align 4, !tbaa !5
  %8918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8905, ptr noundef @.str.22, i32 noundef %8906, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 624, ptr noundef %8909, ptr noundef %8912, ptr noundef %8915, i32 noundef %8917) #11
  br label %8936

8919:                                             ; preds = %8897, %8890
  %8920 = load i32, ptr %210, align 4, !tbaa !5
  %8921 = call ptr @__errno_location() #12
  store i32 %8920, ptr %8921, align 4, !tbaa !5
  %8922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8923 = load i32, ptr @test_count, align 4, !tbaa !5
  %8924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8925 = load i32, ptr %8924, align 4, !tbaa !5
  %8926 = call ptr @s2n_strerror(i32 noundef %8925, ptr noundef @.str.24)
  %8927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8928 = load i32, ptr %8927, align 4, !tbaa !5
  %8929 = call ptr @s2n_strerror_debug(i32 noundef %8928, ptr noundef @.str.24)
  %8930 = call ptr @__errno_location() #12
  %8931 = load i32, ptr %8930, align 4, !tbaa !5
  %8932 = call ptr @strerror(i32 noundef %8931) #11
  %8933 = call ptr @__errno_location() #12
  %8934 = load i32, ptr %8933, align 4, !tbaa !5
  %8935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8922, ptr noundef @.str.25, i32 noundef %8923, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 624, ptr noundef %8926, ptr noundef %8929, ptr noundef %8932, i32 noundef %8934) #11
  br label %8936

8936:                                             ; preds = %8919, %8902
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %8937

8937:                                             ; preds = %8936
  br label %8938

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

8939:                                             ; No predecessors!
  br label %8940

8940:                                             ; preds = %8939
  br label %8941

8941:                                             ; preds = %8940, %8882
  br label %8942

8942:                                             ; preds = %8941
  br label %8943

8943:                                             ; preds = %8942
  %8944 = load i8, ptr %192, align 1, !tbaa !83
  store i8 %8944, 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 !81
  call void @llvm.lifetime.end.p0(i64 1, ptr %199) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %196) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %192) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %211) #11
  %8945 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8945, ptr %211, align 8, !tbaa !9
  %8946 = load ptr, ptr %211, align 8, !tbaa !9
  %8947 = getelementptr inbounds %struct.s2n_connection, ptr %8946, i32 0, i32 23
  store i8 34, ptr %8947, align 4, !tbaa !34
  br label %8948

8948:                                             ; preds = %8943
  %8949 = load i32, ptr @test_count, align 4, !tbaa !5
  %8950 = add nsw i32 %8949, 1
  store i32 %8950, ptr @test_count, align 4, !tbaa !5
  %8951 = load ptr, ptr %211, align 8, !tbaa !9
  %8952 = call i32 @s2n_conn_choose_state_machine(ptr noundef %8951, i8 noundef zeroext 34)
  %8953 = getelementptr inbounds %struct.s2n_result, ptr %212, i32 0, i32 0
  store i32 %8952, ptr %8953, align 4
  %8954 = getelementptr inbounds %struct.s2n_result, ptr %212, i32 0, i32 0
  %8955 = load i32, ptr %8954, align 4
  %8956 = call zeroext i1 @s2n_result_is_ok(i32 %8955)
  br i1 %8956, label %9010, label %8957

8957:                                             ; preds = %8948
  br label %8958

8958:                                             ; preds = %8957
  br label %8959

8959:                                             ; preds = %8958
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #11
  %8960 = call ptr @__errno_location() #12
  %8961 = load i32, ptr %8960, align 4, !tbaa !5
  store i32 %8961, ptr %213, align 4, !tbaa !5
  %8962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8963 = call i32 @s2n_print_stacktrace(ptr noundef %8962)
  %8964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8965 = trunc i8 %8964 to i1
  br i1 %8965, label %8966, label %8988

8966:                                             ; preds = %8959
  %8967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8968 = call i32 @fileno(ptr noundef %8967) #11
  %8969 = call i32 @isatty(i32 noundef %8968) #11
  %8970 = icmp ne i32 %8969, 0
  br i1 %8970, label %8971, label %8988

8971:                                             ; preds = %8966
  %8972 = load i32, ptr %213, align 4, !tbaa !5
  %8973 = call ptr @__errno_location() #12
  store i32 %8972, ptr %8973, align 4, !tbaa !5
  %8974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8975 = load i32, ptr @test_count, align 4, !tbaa !5
  %8976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8977 = load i32, ptr %8976, align 4, !tbaa !5
  %8978 = call ptr @s2n_strerror(i32 noundef %8977, ptr noundef @.str.24)
  %8979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8980 = load i32, ptr %8979, align 4, !tbaa !5
  %8981 = call ptr @s2n_strerror_debug(i32 noundef %8980, ptr noundef @.str.24)
  %8982 = call ptr @__errno_location() #12
  %8983 = load i32, ptr %8982, align 4, !tbaa !5
  %8984 = call ptr @strerror(i32 noundef %8983) #11
  %8985 = call ptr @__errno_location() #12
  %8986 = load i32, ptr %8985, align 4, !tbaa !5
  %8987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8974, ptr noundef @.str.22, i32 noundef %8975, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 632, ptr noundef %8978, ptr noundef %8981, ptr noundef %8984, i32 noundef %8986) #11
  br label %9005

8988:                                             ; preds = %8966, %8959
  %8989 = load i32, ptr %213, align 4, !tbaa !5
  %8990 = call ptr @__errno_location() #12
  store i32 %8989, ptr %8990, align 4, !tbaa !5
  %8991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8992 = load i32, ptr @test_count, align 4, !tbaa !5
  %8993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8994 = load i32, ptr %8993, align 4, !tbaa !5
  %8995 = call ptr @s2n_strerror(i32 noundef %8994, ptr noundef @.str.24)
  %8996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8997 = load i32, ptr %8996, align 4, !tbaa !5
  %8998 = call ptr @s2n_strerror_debug(i32 noundef %8997, ptr noundef @.str.24)
  %8999 = call ptr @__errno_location() #12
  %9000 = load i32, ptr %8999, align 4, !tbaa !5
  %9001 = call ptr @strerror(i32 noundef %9000) #11
  %9002 = call ptr @__errno_location() #12
  %9003 = load i32, ptr %9002, align 4, !tbaa !5
  %9004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8991, ptr noundef @.str.25, i32 noundef %8992, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 632, ptr noundef %8995, ptr noundef %8998, ptr noundef %9001, i32 noundef %9003) #11
  br label %9005

9005:                                             ; preds = %8988, %8971
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #11
  br label %9006

9006:                                             ; preds = %9005
  br label %9007

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

9008:                                             ; No predecessors!
  br label %9009

9009:                                             ; preds = %9008
  br label %9010

9010:                                             ; preds = %9009, %8948
  br label %9011

9011:                                             ; preds = %9010
  br label %9012

9012:                                             ; preds = %9011
  br label %9013

9013:                                             ; preds = %9012
  %9014 = load ptr, ptr %211, align 8, !tbaa !9
  %9015 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %9014, i32 noundef 2)
  %9016 = icmp sgt i32 %9015, -1
  br i1 %9016, label %9018, label %9017

9017:                                             ; preds = %9013
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %34, align 4
  br label %9526

9018:                                             ; preds = %9013
  br label %9019

9019:                                             ; preds = %9018
  br label %9020

9020:                                             ; preds = %9019
  call void @llvm.lifetime.start.p0(i64 40, ptr %214) #11
  call void @llvm.memset.p0.i64(ptr align 8 %214, i8 0, i64 40, i1 false)
  br label %9021

9021:                                             ; preds = %9020
  %9022 = load i32, ptr @test_count, align 4, !tbaa !5
  %9023 = add nsw i32 %9022, 1
  store i32 %9023, ptr @test_count, align 4, !tbaa !5
  %9024 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %214, i32 noundef 0)
  %9025 = icmp eq i32 %9024, -1
  br i1 %9025, label %9026, label %9079

9026:                                             ; preds = %9021
  br label %9027

9027:                                             ; preds = %9026
  br label %9028

9028:                                             ; preds = %9027
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %9029 = call ptr @__errno_location() #12
  %9030 = load i32, ptr %9029, align 4, !tbaa !5
  store i32 %9030, ptr %215, align 4, !tbaa !5
  %9031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9032 = call i32 @s2n_print_stacktrace(ptr noundef %9031)
  %9033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9034 = trunc i8 %9033 to i1
  br i1 %9034, label %9035, label %9057

9035:                                             ; preds = %9028
  %9036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9037 = call i32 @fileno(ptr noundef %9036) #11
  %9038 = call i32 @isatty(i32 noundef %9037) #11
  %9039 = icmp ne i32 %9038, 0
  br i1 %9039, label %9040, label %9057

9040:                                             ; preds = %9035
  %9041 = load i32, ptr %215, align 4, !tbaa !5
  %9042 = call ptr @__errno_location() #12
  store i32 %9041, ptr %9042, align 4, !tbaa !5
  %9043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9044 = load i32, ptr @test_count, align 4, !tbaa !5
  %9045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9046 = load i32, ptr %9045, align 4, !tbaa !5
  %9047 = call ptr @s2n_strerror(i32 noundef %9046, ptr noundef @.str.24)
  %9048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9049 = load i32, ptr %9048, align 4, !tbaa !5
  %9050 = call ptr @s2n_strerror_debug(i32 noundef %9049, ptr noundef @.str.24)
  %9051 = call ptr @__errno_location() #12
  %9052 = load i32, ptr %9051, align 4, !tbaa !5
  %9053 = call ptr @strerror(i32 noundef %9052) #11
  %9054 = call ptr @__errno_location() #12
  %9055 = load i32, ptr %9054, align 4, !tbaa !5
  %9056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9043, ptr noundef @.str.22, i32 noundef %9044, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 636, ptr noundef %9047, ptr noundef %9050, ptr noundef %9053, i32 noundef %9055) #11
  br label %9074

9057:                                             ; preds = %9035, %9028
  %9058 = load i32, ptr %215, align 4, !tbaa !5
  %9059 = call ptr @__errno_location() #12
  store i32 %9058, ptr %9059, align 4, !tbaa !5
  %9060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9061 = load i32, ptr @test_count, align 4, !tbaa !5
  %9062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  %9064 = call ptr @s2n_strerror(i32 noundef %9063, ptr noundef @.str.24)
  %9065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9066 = load i32, ptr %9065, align 4, !tbaa !5
  %9067 = call ptr @s2n_strerror_debug(i32 noundef %9066, ptr noundef @.str.24)
  %9068 = call ptr @__errno_location() #12
  %9069 = load i32, ptr %9068, align 4, !tbaa !5
  %9070 = call ptr @strerror(i32 noundef %9069) #11
  %9071 = call ptr @__errno_location() #12
  %9072 = load i32, ptr %9071, align 4, !tbaa !5
  %9073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9060, ptr noundef @.str.25, i32 noundef %9061, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 636, ptr noundef %9064, ptr noundef %9067, ptr noundef %9070, i32 noundef %9072) #11
  br label %9074

9074:                                             ; preds = %9057, %9040
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %9075

9075:                                             ; preds = %9074
  br label %9076

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

9077:                                             ; No predecessors!
  br label %9078

9078:                                             ; preds = %9077
  br label %9079

9079:                                             ; preds = %9078, %9021
  br label %9080

9080:                                             ; preds = %9079
  br label %9081

9081:                                             ; preds = %9080
  br label %9082

9082:                                             ; preds = %9081
  %9083 = load i32, ptr @test_count, align 4, !tbaa !5
  %9084 = add nsw i32 %9083, 1
  store i32 %9084, ptr @test_count, align 4, !tbaa !5
  %9085 = load ptr, ptr %211, align 8, !tbaa !9
  %9086 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %214, ptr noundef null, ptr noundef %9085)
  %9087 = icmp eq i32 %9086, -1
  br i1 %9087, label %9088, label %9141

9088:                                             ; preds = %9082
  br label %9089

9089:                                             ; preds = %9088
  br label %9090

9090:                                             ; preds = %9089
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %9091 = call ptr @__errno_location() #12
  %9092 = load i32, ptr %9091, align 4, !tbaa !5
  store i32 %9092, ptr %216, align 4, !tbaa !5
  %9093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9094 = call i32 @s2n_print_stacktrace(ptr noundef %9093)
  %9095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9096 = trunc i8 %9095 to i1
  br i1 %9096, label %9097, label %9119

9097:                                             ; preds = %9090
  %9098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9099 = call i32 @fileno(ptr noundef %9098) #11
  %9100 = call i32 @isatty(i32 noundef %9099) #11
  %9101 = icmp ne i32 %9100, 0
  br i1 %9101, label %9102, label %9119

9102:                                             ; preds = %9097
  %9103 = load i32, ptr %216, align 4, !tbaa !5
  %9104 = call ptr @__errno_location() #12
  store i32 %9103, ptr %9104, align 4, !tbaa !5
  %9105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9106 = load i32, ptr @test_count, align 4, !tbaa !5
  %9107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9108 = load i32, ptr %9107, align 4, !tbaa !5
  %9109 = call ptr @s2n_strerror(i32 noundef %9108, ptr noundef @.str.24)
  %9110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9111 = load i32, ptr %9110, align 4, !tbaa !5
  %9112 = call ptr @s2n_strerror_debug(i32 noundef %9111, ptr noundef @.str.24)
  %9113 = call ptr @__errno_location() #12
  %9114 = load i32, ptr %9113, align 4, !tbaa !5
  %9115 = call ptr @strerror(i32 noundef %9114) #11
  %9116 = call ptr @__errno_location() #12
  %9117 = load i32, ptr %9116, align 4, !tbaa !5
  %9118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9105, ptr noundef @.str.22, i32 noundef %9106, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 637, ptr noundef %9109, ptr noundef %9112, ptr noundef %9115, i32 noundef %9117) #11
  br label %9136

9119:                                             ; preds = %9097, %9090
  %9120 = load i32, ptr %216, align 4, !tbaa !5
  %9121 = call ptr @__errno_location() #12
  store i32 %9120, ptr %9121, align 4, !tbaa !5
  %9122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9123 = load i32, ptr @test_count, align 4, !tbaa !5
  %9124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9125 = load i32, ptr %9124, align 4, !tbaa !5
  %9126 = call ptr @s2n_strerror(i32 noundef %9125, ptr noundef @.str.24)
  %9127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9128 = load i32, ptr %9127, align 4, !tbaa !5
  %9129 = call ptr @s2n_strerror_debug(i32 noundef %9128, ptr noundef @.str.24)
  %9130 = call ptr @__errno_location() #12
  %9131 = load i32, ptr %9130, align 4, !tbaa !5
  %9132 = call ptr @strerror(i32 noundef %9131) #11
  %9133 = call ptr @__errno_location() #12
  %9134 = load i32, ptr %9133, align 4, !tbaa !5
  %9135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9122, ptr noundef @.str.25, i32 noundef %9123, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 637, ptr noundef %9126, ptr noundef %9129, ptr noundef %9132, i32 noundef %9134) #11
  br label %9136

9136:                                             ; preds = %9119, %9102
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %9137

9137:                                             ; preds = %9136
  br label %9138

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

9139:                                             ; No predecessors!
  br label %9140

9140:                                             ; preds = %9139
  br label %9141

9141:                                             ; preds = %9140, %9082
  br label %9142

9142:                                             ; preds = %9141
  br label %9143

9143:                                             ; preds = %9142
  br label %9144

9144:                                             ; preds = %9143
  %9145 = load i32, ptr @test_count, align 4, !tbaa !5
  %9146 = add nsw i32 %9145, 1
  store i32 %9146, ptr @test_count, align 4, !tbaa !5
  %9147 = call i32 @s2n_test_write_header(ptr noundef %214, i8 noundef zeroext 22, i8 noundef zeroext 13)
  %9148 = icmp eq i32 %9147, -1
  br i1 %9148, label %9149, label %9202

9149:                                             ; preds = %9144
  br label %9150

9150:                                             ; preds = %9149
  br label %9151

9151:                                             ; preds = %9150
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #11
  %9152 = call ptr @__errno_location() #12
  %9153 = load i32, ptr %9152, align 4, !tbaa !5
  store i32 %9153, ptr %217, align 4, !tbaa !5
  %9154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9155 = call i32 @s2n_print_stacktrace(ptr noundef %9154)
  %9156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9157 = trunc i8 %9156 to i1
  br i1 %9157, label %9158, label %9180

9158:                                             ; preds = %9151
  %9159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9160 = call i32 @fileno(ptr noundef %9159) #11
  %9161 = call i32 @isatty(i32 noundef %9160) #11
  %9162 = icmp ne i32 %9161, 0
  br i1 %9162, label %9163, label %9180

9163:                                             ; preds = %9158
  %9164 = load i32, ptr %217, align 4, !tbaa !5
  %9165 = call ptr @__errno_location() #12
  store i32 %9164, ptr %9165, align 4, !tbaa !5
  %9166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9167 = load i32, ptr @test_count, align 4, !tbaa !5
  %9168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9169 = load i32, ptr %9168, align 4, !tbaa !5
  %9170 = call ptr @s2n_strerror(i32 noundef %9169, ptr noundef @.str.24)
  %9171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9172 = load i32, ptr %9171, align 4, !tbaa !5
  %9173 = call ptr @s2n_strerror_debug(i32 noundef %9172, ptr noundef @.str.24)
  %9174 = call ptr @__errno_location() #12
  %9175 = load i32, ptr %9174, align 4, !tbaa !5
  %9176 = call ptr @strerror(i32 noundef %9175) #11
  %9177 = call ptr @__errno_location() #12
  %9178 = load i32, ptr %9177, align 4, !tbaa !5
  %9179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9166, ptr noundef @.str.22, i32 noundef %9167, ptr noundef @.str.77, ptr noundef @.str.21, i32 noundef 639, ptr noundef %9170, ptr noundef %9173, ptr noundef %9176, i32 noundef %9178) #11
  br label %9197

9180:                                             ; preds = %9158, %9151
  %9181 = load i32, ptr %217, align 4, !tbaa !5
  %9182 = call ptr @__errno_location() #12
  store i32 %9181, ptr %9182, align 4, !tbaa !5
  %9183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9184 = load i32, ptr @test_count, align 4, !tbaa !5
  %9185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9186 = load i32, ptr %9185, align 4, !tbaa !5
  %9187 = call ptr @s2n_strerror(i32 noundef %9186, ptr noundef @.str.24)
  %9188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9189 = load i32, ptr %9188, align 4, !tbaa !5
  %9190 = call ptr @s2n_strerror_debug(i32 noundef %9189, ptr noundef @.str.24)
  %9191 = call ptr @__errno_location() #12
  %9192 = load i32, ptr %9191, align 4, !tbaa !5
  %9193 = call ptr @strerror(i32 noundef %9192) #11
  %9194 = call ptr @__errno_location() #12
  %9195 = load i32, ptr %9194, align 4, !tbaa !5
  %9196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9183, ptr noundef @.str.25, i32 noundef %9184, ptr noundef @.str.77, ptr noundef @.str.21, i32 noundef 639, ptr noundef %9187, ptr noundef %9190, ptr noundef %9193, i32 noundef %9195) #11
  br label %9197

9197:                                             ; preds = %9180, %9163
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #11
  br label %9198

9198:                                             ; preds = %9197
  br label %9199

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

9200:                                             ; No predecessors!
  br label %9201

9201:                                             ; preds = %9200
  br label %9202

9202:                                             ; preds = %9201, %9144
  br label %9203

9203:                                             ; preds = %9202
  br label %9204

9204:                                             ; preds = %9203
  br label %9205

9205:                                             ; preds = %9204
  br label %9206

9206:                                             ; preds = %9205
  br label %9207

9207:                                             ; preds = %9206
  %9208 = load i32, ptr @test_count, align 4, !tbaa !5
  %9209 = add nsw i32 %9208, 1
  store i32 %9209, ptr @test_count, align 4, !tbaa !5
  %9210 = load ptr, ptr %211, align 8, !tbaa !9
  %9211 = call i32 @s2n_handshake_read_io(ptr noundef %9210)
  %9212 = icmp eq i32 %9211, -1
  br i1 %9212, label %9266, label %9213

9213:                                             ; preds = %9207
  br label %9214

9214:                                             ; preds = %9213
  br label %9215

9215:                                             ; preds = %9214
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %9216 = call ptr @__errno_location() #12
  %9217 = load i32, ptr %9216, align 4, !tbaa !5
  store i32 %9217, ptr %218, align 4, !tbaa !5
  %9218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9219 = call i32 @s2n_print_stacktrace(ptr noundef %9218)
  %9220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9221 = trunc i8 %9220 to i1
  br i1 %9221, label %9222, label %9244

9222:                                             ; preds = %9215
  %9223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9224 = call i32 @fileno(ptr noundef %9223) #11
  %9225 = call i32 @isatty(i32 noundef %9224) #11
  %9226 = icmp ne i32 %9225, 0
  br i1 %9226, label %9227, label %9244

9227:                                             ; preds = %9222
  %9228 = load i32, ptr %218, align 4, !tbaa !5
  %9229 = call ptr @__errno_location() #12
  store i32 %9228, ptr %9229, align 4, !tbaa !5
  %9230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9231 = load i32, ptr @test_count, align 4, !tbaa !5
  %9232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9233 = load i32, ptr %9232, align 4, !tbaa !5
  %9234 = call ptr @s2n_strerror(i32 noundef %9233, ptr noundef @.str.24)
  %9235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9236 = load i32, ptr %9235, align 4, !tbaa !5
  %9237 = call ptr @s2n_strerror_debug(i32 noundef %9236, ptr noundef @.str.24)
  %9238 = call ptr @__errno_location() #12
  %9239 = load i32, ptr %9238, align 4, !tbaa !5
  %9240 = call ptr @strerror(i32 noundef %9239) #11
  %9241 = call ptr @__errno_location() #12
  %9242 = load i32, ptr %9241, align 4, !tbaa !5
  %9243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9230, ptr noundef @.str.22, i32 noundef %9231, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 640, ptr noundef %9234, ptr noundef %9237, ptr noundef %9240, i32 noundef %9242) #11
  br label %9261

9244:                                             ; preds = %9222, %9215
  %9245 = load i32, ptr %218, align 4, !tbaa !5
  %9246 = call ptr @__errno_location() #12
  store i32 %9245, ptr %9246, align 4, !tbaa !5
  %9247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9248 = load i32, ptr @test_count, align 4, !tbaa !5
  %9249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9250 = load i32, ptr %9249, align 4, !tbaa !5
  %9251 = call ptr @s2n_strerror(i32 noundef %9250, ptr noundef @.str.24)
  %9252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9253 = load i32, ptr %9252, align 4, !tbaa !5
  %9254 = call ptr @s2n_strerror_debug(i32 noundef %9253, ptr noundef @.str.24)
  %9255 = call ptr @__errno_location() #12
  %9256 = load i32, ptr %9255, align 4, !tbaa !5
  %9257 = call ptr @strerror(i32 noundef %9256) #11
  %9258 = call ptr @__errno_location() #12
  %9259 = load i32, ptr %9258, align 4, !tbaa !5
  %9260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9247, ptr noundef @.str.25, i32 noundef %9248, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 640, ptr noundef %9251, ptr noundef %9254, ptr noundef %9257, i32 noundef %9259) #11
  br label %9261

9261:                                             ; preds = %9244, %9227
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %9262

9262:                                             ; preds = %9261
  br label %9263

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

9264:                                             ; No predecessors!
  br label %9265

9265:                                             ; preds = %9264
  br label %9266

9266:                                             ; preds = %9265, %9207
  br label %9267

9267:                                             ; preds = %9266
  br label %9268

9268:                                             ; preds = %9267
  br label %9269

9269:                                             ; preds = %9268
  %9270 = load i32, ptr @test_count, align 4, !tbaa !5
  %9271 = add nsw i32 %9270, 1
  store i32 %9271, ptr @test_count, align 4, !tbaa !5
  %9272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9273 = load i32, ptr %9272, align 4, !tbaa !5
  %9274 = icmp eq i32 %9273, 402653218
  br i1 %9274, label %9328, label %9275

9275:                                             ; preds = %9269
  br label %9276

9276:                                             ; preds = %9275
  br label %9277

9277:                                             ; preds = %9276
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #11
  %9278 = call ptr @__errno_location() #12
  %9279 = load i32, ptr %9278, align 4, !tbaa !5
  store i32 %9279, ptr %219, align 4, !tbaa !5
  %9280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9281 = call i32 @s2n_print_stacktrace(ptr noundef %9280)
  %9282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9283 = trunc i8 %9282 to i1
  br i1 %9283, label %9284, label %9306

9284:                                             ; preds = %9277
  %9285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9286 = call i32 @fileno(ptr noundef %9285) #11
  %9287 = call i32 @isatty(i32 noundef %9286) #11
  %9288 = icmp ne i32 %9287, 0
  br i1 %9288, label %9289, label %9306

9289:                                             ; preds = %9284
  %9290 = load i32, ptr %219, align 4, !tbaa !5
  %9291 = call ptr @__errno_location() #12
  store i32 %9290, ptr %9291, align 4, !tbaa !5
  %9292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9293 = load i32, ptr @test_count, align 4, !tbaa !5
  %9294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9295 = load i32, ptr %9294, align 4, !tbaa !5
  %9296 = call ptr @s2n_strerror(i32 noundef %9295, ptr noundef @.str.24)
  %9297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9298 = load i32, ptr %9297, align 4, !tbaa !5
  %9299 = call ptr @s2n_strerror_debug(i32 noundef %9298, ptr noundef @.str.24)
  %9300 = call ptr @__errno_location() #12
  %9301 = load i32, ptr %9300, align 4, !tbaa !5
  %9302 = call ptr @strerror(i32 noundef %9301) #11
  %9303 = call ptr @__errno_location() #12
  %9304 = load i32, ptr %9303, align 4, !tbaa !5
  %9305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9292, ptr noundef @.str.22, i32 noundef %9293, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 640, ptr noundef %9296, ptr noundef %9299, ptr noundef %9302, i32 noundef %9304) #11
  br label %9323

9306:                                             ; preds = %9284, %9277
  %9307 = load i32, ptr %219, align 4, !tbaa !5
  %9308 = call ptr @__errno_location() #12
  store i32 %9307, ptr %9308, align 4, !tbaa !5
  %9309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9310 = load i32, ptr @test_count, align 4, !tbaa !5
  %9311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9312 = load i32, ptr %9311, align 4, !tbaa !5
  %9313 = call ptr @s2n_strerror(i32 noundef %9312, ptr noundef @.str.24)
  %9314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9315 = load i32, ptr %9314, align 4, !tbaa !5
  %9316 = call ptr @s2n_strerror_debug(i32 noundef %9315, ptr noundef @.str.24)
  %9317 = call ptr @__errno_location() #12
  %9318 = load i32, ptr %9317, align 4, !tbaa !5
  %9319 = call ptr @strerror(i32 noundef %9318) #11
  %9320 = call ptr @__errno_location() #12
  %9321 = load i32, ptr %9320, align 4, !tbaa !5
  %9322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9309, ptr noundef @.str.25, i32 noundef %9310, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 640, ptr noundef %9313, ptr noundef %9316, ptr noundef %9319, i32 noundef %9321) #11
  br label %9323

9323:                                             ; preds = %9306, %9289
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #11
  br label %9324

9324:                                             ; preds = %9323
  br label %9325

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

9326:                                             ; No predecessors!
  br label %9327

9327:                                             ; preds = %9326
  br label %9328

9328:                                             ; preds = %9327, %9269
  br label %9329

9329:                                             ; preds = %9328
  br label %9330

9330:                                             ; preds = %9329
  br label %9331

9331:                                             ; preds = %9330
  %9332 = load i32, ptr @test_count, align 4, !tbaa !5
  %9333 = add nsw i32 %9332, 1
  store i32 %9333, ptr @test_count, align 4, !tbaa !5
  %9334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9335 = load i32, ptr %9334, align 4, !tbaa !5
  %9336 = call ptr @s2n_strerror_debug(i32 noundef %9335, ptr noundef @.str.24)
  %9337 = icmp eq ptr %9336, null
  br i1 %9337, label %9338, label %9391

9338:                                             ; preds = %9331
  br label %9339

9339:                                             ; preds = %9338
  br label %9340

9340:                                             ; preds = %9339
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %9341 = call ptr @__errno_location() #12
  %9342 = load i32, ptr %9341, align 4, !tbaa !5
  store i32 %9342, ptr %220, align 4, !tbaa !5
  %9343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9344 = call i32 @s2n_print_stacktrace(ptr noundef %9343)
  %9345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9346 = trunc i8 %9345 to i1
  br i1 %9346, label %9347, label %9369

9347:                                             ; preds = %9340
  %9348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9349 = call i32 @fileno(ptr noundef %9348) #11
  %9350 = call i32 @isatty(i32 noundef %9349) #11
  %9351 = icmp ne i32 %9350, 0
  br i1 %9351, label %9352, label %9369

9352:                                             ; preds = %9347
  %9353 = load i32, ptr %220, align 4, !tbaa !5
  %9354 = call ptr @__errno_location() #12
  store i32 %9353, ptr %9354, align 4, !tbaa !5
  %9355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9356 = load i32, ptr @test_count, align 4, !tbaa !5
  %9357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9358 = load i32, ptr %9357, align 4, !tbaa !5
  %9359 = call ptr @s2n_strerror(i32 noundef %9358, ptr noundef @.str.24)
  %9360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9361 = load i32, ptr %9360, align 4, !tbaa !5
  %9362 = call ptr @s2n_strerror_debug(i32 noundef %9361, ptr noundef @.str.24)
  %9363 = call ptr @__errno_location() #12
  %9364 = load i32, ptr %9363, align 4, !tbaa !5
  %9365 = call ptr @strerror(i32 noundef %9364) #11
  %9366 = call ptr @__errno_location() #12
  %9367 = load i32, ptr %9366, align 4, !tbaa !5
  %9368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9355, ptr noundef @.str.22, i32 noundef %9356, ptr noundef @.str.72, ptr noundef @.str.21, i32 noundef 640, ptr noundef %9359, ptr noundef %9362, ptr noundef %9365, i32 noundef %9367) #11
  br label %9386

9369:                                             ; preds = %9347, %9340
  %9370 = load i32, ptr %220, align 4, !tbaa !5
  %9371 = call ptr @__errno_location() #12
  store i32 %9370, ptr %9371, align 4, !tbaa !5
  %9372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9373 = load i32, ptr @test_count, align 4, !tbaa !5
  %9374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9375 = load i32, ptr %9374, align 4, !tbaa !5
  %9376 = call ptr @s2n_strerror(i32 noundef %9375, ptr noundef @.str.24)
  %9377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9378 = load i32, ptr %9377, align 4, !tbaa !5
  %9379 = call ptr @s2n_strerror_debug(i32 noundef %9378, ptr noundef @.str.24)
  %9380 = call ptr @__errno_location() #12
  %9381 = load i32, ptr %9380, align 4, !tbaa !5
  %9382 = call ptr @strerror(i32 noundef %9381) #11
  %9383 = call ptr @__errno_location() #12
  %9384 = load i32, ptr %9383, align 4, !tbaa !5
  %9385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9372, ptr noundef @.str.25, i32 noundef %9373, ptr noundef @.str.72, ptr noundef @.str.21, i32 noundef 640, ptr noundef %9376, ptr noundef %9379, ptr noundef %9382, i32 noundef %9384) #11
  br label %9386

9386:                                             ; preds = %9369, %9352
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %9387

9387:                                             ; preds = %9386
  br label %9388

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

9389:                                             ; No predecessors!
  br label %9390

9390:                                             ; preds = %9389
  br label %9391

9391:                                             ; preds = %9390, %9331
  br label %9392

9392:                                             ; preds = %9391
  br label %9393

9393:                                             ; preds = %9392
  br label %9394

9394:                                             ; preds = %9393
  br label %9395

9395:                                             ; preds = %9394
  br label %9396

9396:                                             ; preds = %9395
  %9397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9397, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9398 = call ptr @__errno_location() #12
  store i32 0, ptr %9398, align 4, !tbaa !5
  br label %9399

9399:                                             ; preds = %9396
  br label %9400

9400:                                             ; preds = %9399
  br label %9401

9401:                                             ; preds = %9400
  br label %9402

9402:                                             ; preds = %9401
  br label %9403

9403:                                             ; preds = %9402
  %9404 = load i32, ptr @test_count, align 4, !tbaa !5
  %9405 = add nsw i32 %9404, 1
  store i32 %9405, ptr @test_count, align 4, !tbaa !5
  %9406 = call i32 @s2n_stuffer_free(ptr noundef %214)
  %9407 = icmp eq i32 %9406, -1
  br i1 %9407, label %9408, label %9461

9408:                                             ; preds = %9403
  br label %9409

9409:                                             ; preds = %9408
  br label %9410

9410:                                             ; preds = %9409
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #11
  %9411 = call ptr @__errno_location() #12
  %9412 = load i32, ptr %9411, align 4, !tbaa !5
  store i32 %9412, ptr %221, align 4, !tbaa !5
  %9413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9414 = call i32 @s2n_print_stacktrace(ptr noundef %9413)
  %9415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9416 = trunc i8 %9415 to i1
  br i1 %9416, label %9417, label %9439

9417:                                             ; preds = %9410
  %9418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9419 = call i32 @fileno(ptr noundef %9418) #11
  %9420 = call i32 @isatty(i32 noundef %9419) #11
  %9421 = icmp ne i32 %9420, 0
  br i1 %9421, label %9422, label %9439

9422:                                             ; preds = %9417
  %9423 = load i32, ptr %221, align 4, !tbaa !5
  %9424 = call ptr @__errno_location() #12
  store i32 %9423, ptr %9424, align 4, !tbaa !5
  %9425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9426 = load i32, ptr @test_count, align 4, !tbaa !5
  %9427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9428 = load i32, ptr %9427, align 4, !tbaa !5
  %9429 = call ptr @s2n_strerror(i32 noundef %9428, ptr noundef @.str.24)
  %9430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9431 = load i32, ptr %9430, align 4, !tbaa !5
  %9432 = call ptr @s2n_strerror_debug(i32 noundef %9431, ptr noundef @.str.24)
  %9433 = call ptr @__errno_location() #12
  %9434 = load i32, ptr %9433, align 4, !tbaa !5
  %9435 = call ptr @strerror(i32 noundef %9434) #11
  %9436 = call ptr @__errno_location() #12
  %9437 = load i32, ptr %9436, align 4, !tbaa !5
  %9438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9425, ptr noundef @.str.22, i32 noundef %9426, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 642, ptr noundef %9429, ptr noundef %9432, ptr noundef %9435, i32 noundef %9437) #11
  br label %9456

9439:                                             ; preds = %9417, %9410
  %9440 = load i32, ptr %221, align 4, !tbaa !5
  %9441 = call ptr @__errno_location() #12
  store i32 %9440, ptr %9441, align 4, !tbaa !5
  %9442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9443 = load i32, ptr @test_count, align 4, !tbaa !5
  %9444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9445 = load i32, ptr %9444, align 4, !tbaa !5
  %9446 = call ptr @s2n_strerror(i32 noundef %9445, ptr noundef @.str.24)
  %9447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9448 = load i32, ptr %9447, align 4, !tbaa !5
  %9449 = call ptr @s2n_strerror_debug(i32 noundef %9448, ptr noundef @.str.24)
  %9450 = call ptr @__errno_location() #12
  %9451 = load i32, ptr %9450, align 4, !tbaa !5
  %9452 = call ptr @strerror(i32 noundef %9451) #11
  %9453 = call ptr @__errno_location() #12
  %9454 = load i32, ptr %9453, align 4, !tbaa !5
  %9455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9442, ptr noundef @.str.25, i32 noundef %9443, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 642, ptr noundef %9446, ptr noundef %9449, ptr noundef %9452, i32 noundef %9454) #11
  br label %9456

9456:                                             ; preds = %9439, %9422
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #11
  br label %9457

9457:                                             ; preds = %9456
  br label %9458

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

9459:                                             ; No predecessors!
  br label %9460

9460:                                             ; preds = %9459
  br label %9461

9461:                                             ; preds = %9460, %9403
  br label %9462

9462:                                             ; preds = %9461
  br label %9463

9463:                                             ; preds = %9462
  br label %9464

9464:                                             ; preds = %9463
  %9465 = load i32, ptr @test_count, align 4, !tbaa !5
  %9466 = add nsw i32 %9465, 1
  store i32 %9466, ptr @test_count, align 4, !tbaa !5
  %9467 = load ptr, ptr %211, align 8, !tbaa !9
  %9468 = call i32 @s2n_connection_free(ptr noundef %9467)
  %9469 = icmp eq i32 %9468, -1
  br i1 %9469, label %9470, label %9523

9470:                                             ; preds = %9464
  br label %9471

9471:                                             ; preds = %9470
  br label %9472

9472:                                             ; preds = %9471
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #11
  %9473 = call ptr @__errno_location() #12
  %9474 = load i32, ptr %9473, align 4, !tbaa !5
  store i32 %9474, ptr %222, align 4, !tbaa !5
  %9475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9476 = call i32 @s2n_print_stacktrace(ptr noundef %9475)
  %9477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9478 = trunc i8 %9477 to i1
  br i1 %9478, label %9479, label %9501

9479:                                             ; preds = %9472
  %9480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9481 = call i32 @fileno(ptr noundef %9480) #11
  %9482 = call i32 @isatty(i32 noundef %9481) #11
  %9483 = icmp ne i32 %9482, 0
  br i1 %9483, label %9484, label %9501

9484:                                             ; preds = %9479
  %9485 = load i32, ptr %222, align 4, !tbaa !5
  %9486 = call ptr @__errno_location() #12
  store i32 %9485, ptr %9486, align 4, !tbaa !5
  %9487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9488 = load i32, ptr @test_count, align 4, !tbaa !5
  %9489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9490 = load i32, ptr %9489, align 4, !tbaa !5
  %9491 = call ptr @s2n_strerror(i32 noundef %9490, ptr noundef @.str.24)
  %9492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9493 = load i32, ptr %9492, align 4, !tbaa !5
  %9494 = call ptr @s2n_strerror_debug(i32 noundef %9493, ptr noundef @.str.24)
  %9495 = call ptr @__errno_location() #12
  %9496 = load i32, ptr %9495, align 4, !tbaa !5
  %9497 = call ptr @strerror(i32 noundef %9496) #11
  %9498 = call ptr @__errno_location() #12
  %9499 = load i32, ptr %9498, align 4, !tbaa !5
  %9500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9487, ptr noundef @.str.22, i32 noundef %9488, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 643, ptr noundef %9491, ptr noundef %9494, ptr noundef %9497, i32 noundef %9499) #11
  br label %9518

9501:                                             ; preds = %9479, %9472
  %9502 = load i32, ptr %222, align 4, !tbaa !5
  %9503 = call ptr @__errno_location() #12
  store i32 %9502, ptr %9503, align 4, !tbaa !5
  %9504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9505 = load i32, ptr @test_count, align 4, !tbaa !5
  %9506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9507 = load i32, ptr %9506, align 4, !tbaa !5
  %9508 = call ptr @s2n_strerror(i32 noundef %9507, ptr noundef @.str.24)
  %9509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9510 = load i32, ptr %9509, align 4, !tbaa !5
  %9511 = call ptr @s2n_strerror_debug(i32 noundef %9510, ptr noundef @.str.24)
  %9512 = call ptr @__errno_location() #12
  %9513 = load i32, ptr %9512, align 4, !tbaa !5
  %9514 = call ptr @strerror(i32 noundef %9513) #11
  %9515 = call ptr @__errno_location() #12
  %9516 = load i32, ptr %9515, align 4, !tbaa !5
  %9517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9504, ptr noundef @.str.25, i32 noundef %9505, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 643, ptr noundef %9508, ptr noundef %9511, ptr noundef %9514, i32 noundef %9516) #11
  br label %9518

9518:                                             ; preds = %9501, %9484
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #11
  br label %9519

9519:                                             ; preds = %9518
  br label %9520

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

9521:                                             ; No predecessors!
  br label %9522

9522:                                             ; preds = %9521
  br label %9523

9523:                                             ; preds = %9522, %9464
  br label %9524

9524:                                             ; preds = %9523
  br label %9525

9525:                                             ; preds = %9524
  call void @llvm.lifetime.end.p0(i64 40, ptr %214) #11
  store i32 0, ptr %34, align 4
  br label %9526

9526:                                             ; preds = %9525, %9017
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #11
  %9527 = load i32, ptr %34, align 4
  switch i32 %9527, label %14659 [
    i32 0, label %9528
  ]

9528:                                             ; preds = %9526
  call void @llvm.lifetime.start.p0(i64 8, ptr %223) #11
  store i64 0, ptr %223, align 8, !tbaa !20
  br label %9529

9529:                                             ; preds = %9789, %9528
  %9530 = load i64, ptr %223, align 8, !tbaa !20
  %9531 = load i32, ptr %11, align 4, !tbaa !5
  %9532 = sext i32 %9531 to i64
  %9533 = icmp ult i64 %9530, %9532
  br i1 %9533, label %9535, label %9534

9534:                                             ; preds = %9529
  store i32 901, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #11
  br label %9792

9535:                                             ; preds = %9529
  call void @llvm.lifetime.start.p0(i64 1, ptr %224) #11
  store i8 0, ptr %224, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #11
  %9536 = load i64, ptr %223, align 8, !tbaa !20
  %9537 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %9536
  %9538 = load i16, ptr %9537, align 2, !tbaa !15
  %9539 = zext i16 %9538 to i32
  store i32 %9539, ptr %225, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #11
  %9540 = load i32, ptr %225, align 4, !tbaa !5
  %9541 = zext i32 %9540 to i64
  %9542 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %9541
  %9543 = getelementptr inbounds [32 x i32], ptr %9542, i64 0, i64 0
  store ptr %9543, ptr %226, align 8, !tbaa !9
  %9544 = load i32, ptr %225, align 4, !tbaa !5
  %9545 = and i32 %9544, 1
  %9546 = icmp ne i32 %9545, 0
  br i1 %9546, label %9547, label %9555

9547:                                             ; preds = %9535
  %9548 = load i32, ptr %225, align 4, !tbaa !5
  %9549 = and i32 %9548, 32
  %9550 = icmp ne i32 %9549, 0
  br i1 %9550, label %9551, label %9555

9551:                                             ; preds = %9547
  %9552 = load i32, ptr %225, align 4, !tbaa !5
  %9553 = and i32 %9552, 128
  %9554 = icmp ne i32 %9553, 0
  br i1 %9554, label %9555, label %9556

9555:                                             ; preds = %9551, %9547, %9535
  store i32 903, ptr %34, align 4
  br label %9786

9556:                                             ; preds = %9551
  call void @llvm.lifetime.start.p0(i64 8, ptr %227) #11
  store i64 1, ptr %227, align 8, !tbaa !20
  br label %9557

9557:                                             ; preds = %9720, %9556
  %9558 = load i64, ptr %227, align 8, !tbaa !20
  %9559 = icmp ult i64 %9558, 32
  br i1 %9559, label %9561, label %9560

9560:                                             ; preds = %9557
  store i32 904, ptr %34, align 4
  br label %9723

9561:                                             ; preds = %9557
  %9562 = load ptr, ptr %226, align 8, !tbaa !9
  %9563 = load i64, ptr %227, align 8, !tbaa !20
  %9564 = getelementptr inbounds i32, ptr %9562, i64 %9563
  %9565 = load i32, ptr %9564, align 4, !tbaa !5
  %9566 = zext i32 %9565 to i64
  %9567 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %9566
  %9568 = getelementptr inbounds %struct.s2n_handshake_action, ptr %9567, i32 0, i32 2
  %9569 = load i8, ptr %9568, align 2, !tbaa !84
  %9570 = sext i8 %9569 to i32
  %9571 = icmp ne i32 %9570, 67
  br i1 %9571, label %9584, label %9572

9572:                                             ; preds = %9561
  %9573 = load ptr, ptr %226, align 8, !tbaa !9
  %9574 = load i64, ptr %227, align 8, !tbaa !20
  %9575 = sub i64 %9574, 1
  %9576 = getelementptr inbounds i32, ptr %9573, i64 %9575
  %9577 = load i32, ptr %9576, align 4, !tbaa !5
  %9578 = zext i32 %9577 to i64
  %9579 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %9578
  %9580 = getelementptr inbounds %struct.s2n_handshake_action, ptr %9579, i32 0, i32 2
  %9581 = load i8, ptr %9580, align 2, !tbaa !84
  %9582 = sext i8 %9581 to i32
  %9583 = icmp ne i32 %9582, 83
  br i1 %9583, label %9584, label %9585

9584:                                             ; preds = %9572, %9561
  br label %9720

9585:                                             ; preds = %9572
  br label %9586

9586:                                             ; preds = %9585
  %9587 = load i32, ptr @test_count, align 4, !tbaa !5
  %9588 = add nsw i32 %9587, 1
  store i32 %9588, ptr @test_count, align 4, !tbaa !5
  %9589 = load ptr, ptr %226, align 8, !tbaa !9
  %9590 = load i64, ptr %227, align 8, !tbaa !20
  %9591 = getelementptr inbounds i32, ptr %9589, i64 %9590
  %9592 = load i32, ptr %9591, align 4, !tbaa !5
  %9593 = icmp eq i32 %9592, 11
  br i1 %9593, label %9647, label %9594

9594:                                             ; preds = %9586
  br label %9595

9595:                                             ; preds = %9594
  br label %9596

9596:                                             ; preds = %9595
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #11
  %9597 = call ptr @__errno_location() #12
  %9598 = load i32, ptr %9597, align 4, !tbaa !5
  store i32 %9598, ptr %228, align 4, !tbaa !5
  %9599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9600 = call i32 @s2n_print_stacktrace(ptr noundef %9599)
  %9601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9602 = trunc i8 %9601 to i1
  br i1 %9602, label %9603, label %9625

9603:                                             ; preds = %9596
  %9604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9605 = call i32 @fileno(ptr noundef %9604) #11
  %9606 = call i32 @isatty(i32 noundef %9605) #11
  %9607 = icmp ne i32 %9606, 0
  br i1 %9607, label %9608, label %9625

9608:                                             ; preds = %9603
  %9609 = load i32, ptr %228, align 4, !tbaa !5
  %9610 = call ptr @__errno_location() #12
  store i32 %9609, ptr %9610, align 4, !tbaa !5
  %9611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9612 = load i32, ptr @test_count, align 4, !tbaa !5
  %9613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9614 = load i32, ptr %9613, align 4, !tbaa !5
  %9615 = call ptr @s2n_strerror(i32 noundef %9614, ptr noundef @.str.24)
  %9616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9617 = load i32, ptr %9616, align 4, !tbaa !5
  %9618 = call ptr @s2n_strerror_debug(i32 noundef %9617, ptr noundef @.str.24)
  %9619 = call ptr @__errno_location() #12
  %9620 = load i32, ptr %9619, align 4, !tbaa !5
  %9621 = call ptr @strerror(i32 noundef %9620) #11
  %9622 = call ptr @__errno_location() #12
  %9623 = load i32, ptr %9622, align 4, !tbaa !5
  %9624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9611, ptr noundef @.str.22, i32 noundef %9612, ptr noundef @.str.79, ptr noundef @.str.21, i32 noundef 686, ptr noundef %9615, ptr noundef %9618, ptr noundef %9621, i32 noundef %9623) #11
  br label %9642

9625:                                             ; preds = %9603, %9596
  %9626 = load i32, ptr %228, align 4, !tbaa !5
  %9627 = call ptr @__errno_location() #12
  store i32 %9626, ptr %9627, align 4, !tbaa !5
  %9628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9629 = load i32, ptr @test_count, align 4, !tbaa !5
  %9630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9631 = load i32, ptr %9630, align 4, !tbaa !5
  %9632 = call ptr @s2n_strerror(i32 noundef %9631, ptr noundef @.str.24)
  %9633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9634 = load i32, ptr %9633, align 4, !tbaa !5
  %9635 = call ptr @s2n_strerror_debug(i32 noundef %9634, ptr noundef @.str.24)
  %9636 = call ptr @__errno_location() #12
  %9637 = load i32, ptr %9636, align 4, !tbaa !5
  %9638 = call ptr @strerror(i32 noundef %9637) #11
  %9639 = call ptr @__errno_location() #12
  %9640 = load i32, ptr %9639, align 4, !tbaa !5
  %9641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9628, ptr noundef @.str.25, i32 noundef %9629, ptr noundef @.str.79, ptr noundef @.str.21, i32 noundef 686, ptr noundef %9632, ptr noundef %9635, ptr noundef %9638, i32 noundef %9640) #11
  br label %9642

9642:                                             ; preds = %9625, %9608
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #11
  br label %9643

9643:                                             ; preds = %9642
  br label %9644

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

9645:                                             ; No predecessors!
  br label %9646

9646:                                             ; preds = %9645
  br label %9647

9647:                                             ; preds = %9646, %9586
  br label %9648

9648:                                             ; preds = %9647
  br label %9649

9649:                                             ; preds = %9648
  br label %9650

9650:                                             ; preds = %9649
  %9651 = load i32, ptr @test_count, align 4, !tbaa !5
  %9652 = add nsw i32 %9651, 1
  store i32 %9652, ptr @test_count, align 4, !tbaa !5
  %9653 = load ptr, ptr %226, align 8, !tbaa !9
  %9654 = load i64, ptr %227, align 8, !tbaa !20
  %9655 = add i64 %9654, 1
  %9656 = getelementptr inbounds i32, ptr %9653, i64 %9655
  %9657 = load i32, ptr %9656, align 4, !tbaa !5
  %9658 = zext i32 %9657 to i64
  %9659 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %9658
  %9660 = getelementptr inbounds %struct.s2n_handshake_action, ptr %9659, i32 0, i32 2
  %9661 = load i8, ptr %9660, align 2, !tbaa !84
  %9662 = sext i8 %9661 to i32
  %9663 = icmp eq i32 %9662, 67
  br i1 %9663, label %9717, label %9664

9664:                                             ; preds = %9650
  br label %9665

9665:                                             ; preds = %9664
  br label %9666

9666:                                             ; preds = %9665
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #11
  %9667 = call ptr @__errno_location() #12
  %9668 = load i32, ptr %9667, align 4, !tbaa !5
  store i32 %9668, ptr %229, align 4, !tbaa !5
  %9669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9670 = call i32 @s2n_print_stacktrace(ptr noundef %9669)
  %9671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9672 = trunc i8 %9671 to i1
  br i1 %9672, label %9673, label %9695

9673:                                             ; preds = %9666
  %9674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9675 = call i32 @fileno(ptr noundef %9674) #11
  %9676 = call i32 @isatty(i32 noundef %9675) #11
  %9677 = icmp ne i32 %9676, 0
  br i1 %9677, label %9678, label %9695

9678:                                             ; preds = %9673
  %9679 = load i32, ptr %229, align 4, !tbaa !5
  %9680 = call ptr @__errno_location() #12
  store i32 %9679, ptr %9680, align 4, !tbaa !5
  %9681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9682 = load i32, ptr @test_count, align 4, !tbaa !5
  %9683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9684 = load i32, ptr %9683, align 4, !tbaa !5
  %9685 = call ptr @s2n_strerror(i32 noundef %9684, ptr noundef @.str.24)
  %9686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9687 = load i32, ptr %9686, align 4, !tbaa !5
  %9688 = call ptr @s2n_strerror_debug(i32 noundef %9687, ptr noundef @.str.24)
  %9689 = call ptr @__errno_location() #12
  %9690 = load i32, ptr %9689, align 4, !tbaa !5
  %9691 = call ptr @strerror(i32 noundef %9690) #11
  %9692 = call ptr @__errno_location() #12
  %9693 = load i32, ptr %9692, align 4, !tbaa !5
  %9694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9681, ptr noundef @.str.22, i32 noundef %9682, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 687, ptr noundef %9685, ptr noundef %9688, ptr noundef %9691, i32 noundef %9693) #11
  br label %9712

9695:                                             ; preds = %9673, %9666
  %9696 = load i32, ptr %229, align 4, !tbaa !5
  %9697 = call ptr @__errno_location() #12
  store i32 %9696, ptr %9697, align 4, !tbaa !5
  %9698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9699 = load i32, ptr @test_count, align 4, !tbaa !5
  %9700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9701 = load i32, ptr %9700, align 4, !tbaa !5
  %9702 = call ptr @s2n_strerror(i32 noundef %9701, ptr noundef @.str.24)
  %9703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9704 = load i32, ptr %9703, align 4, !tbaa !5
  %9705 = call ptr @s2n_strerror_debug(i32 noundef %9704, ptr noundef @.str.24)
  %9706 = call ptr @__errno_location() #12
  %9707 = load i32, ptr %9706, align 4, !tbaa !5
  %9708 = call ptr @strerror(i32 noundef %9707) #11
  %9709 = call ptr @__errno_location() #12
  %9710 = load i32, ptr %9709, align 4, !tbaa !5
  %9711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9698, ptr noundef @.str.25, i32 noundef %9699, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 687, ptr noundef %9702, ptr noundef %9705, ptr noundef %9708, i32 noundef %9710) #11
  br label %9712

9712:                                             ; preds = %9695, %9678
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #11
  br label %9713

9713:                                             ; preds = %9712
  br label %9714

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

9715:                                             ; No predecessors!
  br label %9716

9716:                                             ; preds = %9715
  br label %9717

9717:                                             ; preds = %9716, %9650
  br label %9718

9718:                                             ; preds = %9717
  br label %9719

9719:                                             ; preds = %9718
  store i8 1, ptr %224, align 1, !tbaa !11
  store i32 904, ptr %34, align 4
  br label %9723

9720:                                             ; preds = %9584
  %9721 = load i64, ptr %227, align 8, !tbaa !20
  %9722 = add i64 %9721, 1
  store i64 %9722, ptr %227, align 8, !tbaa !20
  br label %9557, !llvm.loop !85

9723:                                             ; preds = %9719, %9560
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #11
  br label %9724

9724:                                             ; preds = %9723
  br label %9725

9725:                                             ; preds = %9724
  %9726 = load i32, ptr @test_count, align 4, !tbaa !5
  %9727 = add nsw i32 %9726, 1
  store i32 %9727, ptr @test_count, align 4, !tbaa !5
  %9728 = load i8, ptr %224, align 1, !tbaa !11, !range !13, !noundef !14
  %9729 = trunc i8 %9728 to i1
  br i1 %9729, label %9783, label %9730

9730:                                             ; preds = %9725
  br label %9731

9731:                                             ; preds = %9730
  br label %9732

9732:                                             ; preds = %9731
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #11
  %9733 = call ptr @__errno_location() #12
  %9734 = load i32, ptr %9733, align 4, !tbaa !5
  store i32 %9734, ptr %230, align 4, !tbaa !5
  %9735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9736 = call i32 @s2n_print_stacktrace(ptr noundef %9735)
  %9737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9738 = trunc i8 %9737 to i1
  br i1 %9738, label %9739, label %9761

9739:                                             ; preds = %9732
  %9740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9741 = call i32 @fileno(ptr noundef %9740) #11
  %9742 = call i32 @isatty(i32 noundef %9741) #11
  %9743 = icmp ne i32 %9742, 0
  br i1 %9743, label %9744, label %9761

9744:                                             ; preds = %9739
  %9745 = load i32, ptr %230, align 4, !tbaa !5
  %9746 = call ptr @__errno_location() #12
  store i32 %9745, ptr %9746, align 4, !tbaa !5
  %9747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9748 = load i32, ptr @test_count, align 4, !tbaa !5
  %9749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9750 = load i32, ptr %9749, align 4, !tbaa !5
  %9751 = call ptr @s2n_strerror(i32 noundef %9750, ptr noundef @.str.24)
  %9752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9753 = load i32, ptr %9752, align 4, !tbaa !5
  %9754 = call ptr @s2n_strerror_debug(i32 noundef %9753, ptr noundef @.str.24)
  %9755 = call ptr @__errno_location() #12
  %9756 = load i32, ptr %9755, align 4, !tbaa !5
  %9757 = call ptr @strerror(i32 noundef %9756) #11
  %9758 = call ptr @__errno_location() #12
  %9759 = load i32, ptr %9758, align 4, !tbaa !5
  %9760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9747, ptr noundef @.str.22, i32 noundef %9748, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 694, ptr noundef %9751, ptr noundef %9754, ptr noundef %9757, i32 noundef %9759) #11
  br label %9778

9761:                                             ; preds = %9739, %9732
  %9762 = load i32, ptr %230, align 4, !tbaa !5
  %9763 = call ptr @__errno_location() #12
  store i32 %9762, ptr %9763, align 4, !tbaa !5
  %9764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9765 = load i32, ptr @test_count, align 4, !tbaa !5
  %9766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9767 = load i32, ptr %9766, align 4, !tbaa !5
  %9768 = call ptr @s2n_strerror(i32 noundef %9767, ptr noundef @.str.24)
  %9769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9770 = load i32, ptr %9769, align 4, !tbaa !5
  %9771 = call ptr @s2n_strerror_debug(i32 noundef %9770, ptr noundef @.str.24)
  %9772 = call ptr @__errno_location() #12
  %9773 = load i32, ptr %9772, align 4, !tbaa !5
  %9774 = call ptr @strerror(i32 noundef %9773) #11
  %9775 = call ptr @__errno_location() #12
  %9776 = load i32, ptr %9775, align 4, !tbaa !5
  %9777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9764, ptr noundef @.str.25, i32 noundef %9765, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 694, ptr noundef %9768, ptr noundef %9771, ptr noundef %9774, i32 noundef %9776) #11
  br label %9778

9778:                                             ; preds = %9761, %9744
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #11
  br label %9779

9779:                                             ; preds = %9778
  br label %9780

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

9781:                                             ; No predecessors!
  br label %9782

9782:                                             ; preds = %9781
  br label %9783

9783:                                             ; preds = %9782, %9725
  br label %9784

9784:                                             ; preds = %9783
  br label %9785

9785:                                             ; preds = %9784
  store i32 0, ptr %34, align 4
  br label %9786

9786:                                             ; preds = %9785, %9555
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %224) #11
  %9787 = load i32, ptr %34, align 4
  switch i32 %9787, label %14663 [
    i32 0, label %9788
    i32 903, label %9789
  ]

9788:                                             ; preds = %9786
  br label %9789

9789:                                             ; preds = %9788, %9786
  %9790 = load i64, ptr %223, align 8, !tbaa !20
  %9791 = add i64 %9790, 1
  store i64 %9791, ptr %223, align 8, !tbaa !20
  br label %9529, !llvm.loop !86

9792:                                             ; preds = %9534
  call void @llvm.lifetime.start.p0(i64 8, ptr %231) #11
  store i64 0, ptr %231, align 8, !tbaa !20
  br label %9793

9793:                                             ; preds = %10015, %9792
  %9794 = load i64, ptr %231, align 8, !tbaa !20
  %9795 = load i32, ptr %11, align 4, !tbaa !5
  %9796 = sext i32 %9795 to i64
  %9797 = icmp ult i64 %9794, %9796
  br i1 %9797, label %9799, label %9798

9798:                                             ; preds = %9793
  store i32 925, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #11
  br label %10018

9799:                                             ; preds = %9793
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #11
  %9800 = load i64, ptr %231, align 8, !tbaa !20
  %9801 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %9800
  %9802 = load i16, ptr %9801, align 2, !tbaa !15
  %9803 = zext i16 %9802 to i32
  store i32 %9803, ptr %232, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #11
  %9804 = load i32, ptr %232, align 4, !tbaa !5
  %9805 = zext i32 %9804 to i64
  %9806 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %9805
  %9807 = getelementptr inbounds [32 x i32], ptr %9806, i64 0, i64 0
  store ptr %9807, ptr %233, align 8, !tbaa !9
  %9808 = load i32, ptr %232, align 4, !tbaa !5
  %9809 = and i32 %9808, 128
  %9810 = icmp ne i32 %9809, 0
  br i1 %9810, label %9812, label %9811

9811:                                             ; preds = %9799
  store i32 927, ptr %34, align 4
  br label %10012

9812:                                             ; preds = %9799
  br label %9813

9813:                                             ; preds = %9812
  %9814 = load i32, ptr @test_count, align 4, !tbaa !5
  %9815 = add nsw i32 %9814, 1
  store i32 %9815, ptr @test_count, align 4, !tbaa !5
  %9816 = load ptr, ptr %233, align 8, !tbaa !9
  %9817 = getelementptr inbounds i32, ptr %9816, i64 0
  %9818 = load i32, ptr %9817, align 4, !tbaa !5
  %9819 = icmp eq i32 %9818, 0
  br i1 %9819, label %9873, label %9820

9820:                                             ; preds = %9813
  br label %9821

9821:                                             ; preds = %9820
  br label %9822

9822:                                             ; preds = %9821
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #11
  %9823 = call ptr @__errno_location() #12
  %9824 = load i32, ptr %9823, align 4, !tbaa !5
  store i32 %9824, ptr %234, align 4, !tbaa !5
  %9825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9826 = call i32 @s2n_print_stacktrace(ptr noundef %9825)
  %9827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9828 = trunc i8 %9827 to i1
  br i1 %9828, label %9829, label %9851

9829:                                             ; preds = %9822
  %9830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9831 = call i32 @fileno(ptr noundef %9830) #11
  %9832 = call i32 @isatty(i32 noundef %9831) #11
  %9833 = icmp ne i32 %9832, 0
  br i1 %9833, label %9834, label %9851

9834:                                             ; preds = %9829
  %9835 = load i32, ptr %234, align 4, !tbaa !5
  %9836 = call ptr @__errno_location() #12
  store i32 %9835, ptr %9836, align 4, !tbaa !5
  %9837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9838 = load i32, ptr @test_count, align 4, !tbaa !5
  %9839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9840 = load i32, ptr %9839, align 4, !tbaa !5
  %9841 = call ptr @s2n_strerror(i32 noundef %9840, ptr noundef @.str.24)
  %9842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9843 = load i32, ptr %9842, align 4, !tbaa !5
  %9844 = call ptr @s2n_strerror_debug(i32 noundef %9843, ptr noundef @.str.24)
  %9845 = call ptr @__errno_location() #12
  %9846 = load i32, ptr %9845, align 4, !tbaa !5
  %9847 = call ptr @strerror(i32 noundef %9846) #11
  %9848 = call ptr @__errno_location() #12
  %9849 = load i32, ptr %9848, align 4, !tbaa !5
  %9850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9837, ptr noundef @.str.22, i32 noundef %9838, ptr noundef @.str.82, ptr noundef @.str.21, i32 noundef 712, ptr noundef %9841, ptr noundef %9844, ptr noundef %9847, i32 noundef %9849) #11
  br label %9868

9851:                                             ; preds = %9829, %9822
  %9852 = load i32, ptr %234, align 4, !tbaa !5
  %9853 = call ptr @__errno_location() #12
  store i32 %9852, ptr %9853, align 4, !tbaa !5
  %9854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9855 = load i32, ptr @test_count, align 4, !tbaa !5
  %9856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9857 = load i32, ptr %9856, align 4, !tbaa !5
  %9858 = call ptr @s2n_strerror(i32 noundef %9857, ptr noundef @.str.24)
  %9859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9860 = load i32, ptr %9859, align 4, !tbaa !5
  %9861 = call ptr @s2n_strerror_debug(i32 noundef %9860, ptr noundef @.str.24)
  %9862 = call ptr @__errno_location() #12
  %9863 = load i32, ptr %9862, align 4, !tbaa !5
  %9864 = call ptr @strerror(i32 noundef %9863) #11
  %9865 = call ptr @__errno_location() #12
  %9866 = load i32, ptr %9865, align 4, !tbaa !5
  %9867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9854, ptr noundef @.str.25, i32 noundef %9855, ptr noundef @.str.82, ptr noundef @.str.21, i32 noundef 712, ptr noundef %9858, ptr noundef %9861, ptr noundef %9864, i32 noundef %9866) #11
  br label %9868

9868:                                             ; preds = %9851, %9834
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #11
  br label %9869

9869:                                             ; preds = %9868
  br label %9870

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

9871:                                             ; No predecessors!
  br label %9872

9872:                                             ; preds = %9871
  br label %9873

9873:                                             ; preds = %9872, %9813
  br label %9874

9874:                                             ; preds = %9873
  br label %9875

9875:                                             ; preds = %9874
  br label %9876

9876:                                             ; preds = %9875
  %9877 = load i32, ptr @test_count, align 4, !tbaa !5
  %9878 = add nsw i32 %9877, 1
  store i32 %9878, ptr @test_count, align 4, !tbaa !5
  %9879 = load ptr, ptr %233, align 8, !tbaa !9
  %9880 = getelementptr inbounds i32, ptr %9879, i64 1
  %9881 = load i32, ptr %9880, align 4, !tbaa !5
  %9882 = icmp eq i32 %9881, 11
  br i1 %9882, label %9936, label %9883

9883:                                             ; preds = %9876
  br label %9884

9884:                                             ; preds = %9883
  br label %9885

9885:                                             ; preds = %9884
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #11
  %9886 = call ptr @__errno_location() #12
  %9887 = load i32, ptr %9886, align 4, !tbaa !5
  store i32 %9887, ptr %235, align 4, !tbaa !5
  %9888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9889 = call i32 @s2n_print_stacktrace(ptr noundef %9888)
  %9890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9891 = trunc i8 %9890 to i1
  br i1 %9891, label %9892, label %9914

9892:                                             ; preds = %9885
  %9893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9894 = call i32 @fileno(ptr noundef %9893) #11
  %9895 = call i32 @isatty(i32 noundef %9894) #11
  %9896 = icmp ne i32 %9895, 0
  br i1 %9896, label %9897, label %9914

9897:                                             ; preds = %9892
  %9898 = load i32, ptr %235, align 4, !tbaa !5
  %9899 = call ptr @__errno_location() #12
  store i32 %9898, ptr %9899, align 4, !tbaa !5
  %9900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9901 = load i32, ptr @test_count, align 4, !tbaa !5
  %9902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9903 = load i32, ptr %9902, align 4, !tbaa !5
  %9904 = call ptr @s2n_strerror(i32 noundef %9903, ptr noundef @.str.24)
  %9905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9906 = load i32, ptr %9905, align 4, !tbaa !5
  %9907 = call ptr @s2n_strerror_debug(i32 noundef %9906, ptr noundef @.str.24)
  %9908 = call ptr @__errno_location() #12
  %9909 = load i32, ptr %9908, align 4, !tbaa !5
  %9910 = call ptr @strerror(i32 noundef %9909) #11
  %9911 = call ptr @__errno_location() #12
  %9912 = load i32, ptr %9911, align 4, !tbaa !5
  %9913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9900, ptr noundef @.str.22, i32 noundef %9901, ptr noundef @.str.83, ptr noundef @.str.21, i32 noundef 713, ptr noundef %9904, ptr noundef %9907, ptr noundef %9910, i32 noundef %9912) #11
  br label %9931

9914:                                             ; preds = %9892, %9885
  %9915 = load i32, ptr %235, align 4, !tbaa !5
  %9916 = call ptr @__errno_location() #12
  store i32 %9915, ptr %9916, align 4, !tbaa !5
  %9917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9918 = load i32, ptr @test_count, align 4, !tbaa !5
  %9919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9920 = load i32, ptr %9919, align 4, !tbaa !5
  %9921 = call ptr @s2n_strerror(i32 noundef %9920, ptr noundef @.str.24)
  %9922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9923 = load i32, ptr %9922, align 4, !tbaa !5
  %9924 = call ptr @s2n_strerror_debug(i32 noundef %9923, ptr noundef @.str.24)
  %9925 = call ptr @__errno_location() #12
  %9926 = load i32, ptr %9925, align 4, !tbaa !5
  %9927 = call ptr @strerror(i32 noundef %9926) #11
  %9928 = call ptr @__errno_location() #12
  %9929 = load i32, ptr %9928, align 4, !tbaa !5
  %9930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9917, ptr noundef @.str.25, i32 noundef %9918, ptr noundef @.str.83, ptr noundef @.str.21, i32 noundef 713, ptr noundef %9921, ptr noundef %9924, ptr noundef %9927, i32 noundef %9929) #11
  br label %9931

9931:                                             ; preds = %9914, %9897
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #11
  br label %9932

9932:                                             ; preds = %9931
  br label %9933

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

9934:                                             ; No predecessors!
  br label %9935

9935:                                             ; preds = %9934
  br label %9936

9936:                                             ; preds = %9935, %9876
  br label %9937

9937:                                             ; preds = %9936
  br label %9938

9938:                                             ; preds = %9937
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #11
  store i64 2, ptr %236, align 8, !tbaa !20
  br label %9939

9939:                                             ; preds = %10008, %9938
  %9940 = load i64, ptr %236, align 8, !tbaa !20
  %9941 = icmp ult i64 %9940, 32
  br i1 %9941, label %9943, label %9942

9942:                                             ; preds = %9939
  store i32 940, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #11
  br label %10011

9943:                                             ; preds = %9939
  br label %9944

9944:                                             ; preds = %9943
  %9945 = load i32, ptr @test_count, align 4, !tbaa !5
  %9946 = add nsw i32 %9945, 1
  store i32 %9946, ptr @test_count, align 4, !tbaa !5
  %9947 = load ptr, ptr %233, align 8, !tbaa !9
  %9948 = load i64, ptr %236, align 8, !tbaa !20
  %9949 = getelementptr inbounds i32, ptr %9947, i64 %9948
  %9950 = load i32, ptr %9949, align 4, !tbaa !5
  %9951 = icmp eq i32 %9950, 11
  br i1 %9951, label %9952, label %10005

9952:                                             ; preds = %9944
  br label %9953

9953:                                             ; preds = %9952
  br label %9954

9954:                                             ; preds = %9953
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #11
  %9955 = call ptr @__errno_location() #12
  %9956 = load i32, ptr %9955, align 4, !tbaa !5
  store i32 %9956, ptr %237, align 4, !tbaa !5
  %9957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9958 = call i32 @s2n_print_stacktrace(ptr noundef %9957)
  %9959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9960 = trunc i8 %9959 to i1
  br i1 %9960, label %9961, label %9983

9961:                                             ; preds = %9954
  %9962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9963 = call i32 @fileno(ptr noundef %9962) #11
  %9964 = call i32 @isatty(i32 noundef %9963) #11
  %9965 = icmp ne i32 %9964, 0
  br i1 %9965, label %9966, label %9983

9966:                                             ; preds = %9961
  %9967 = load i32, ptr %237, align 4, !tbaa !5
  %9968 = call ptr @__errno_location() #12
  store i32 %9967, ptr %9968, align 4, !tbaa !5
  %9969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9970 = load i32, ptr @test_count, align 4, !tbaa !5
  %9971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9972 = load i32, ptr %9971, align 4, !tbaa !5
  %9973 = call ptr @s2n_strerror(i32 noundef %9972, ptr noundef @.str.24)
  %9974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9975 = load i32, ptr %9974, align 4, !tbaa !5
  %9976 = call ptr @s2n_strerror_debug(i32 noundef %9975, ptr noundef @.str.24)
  %9977 = call ptr @__errno_location() #12
  %9978 = load i32, ptr %9977, align 4, !tbaa !5
  %9979 = call ptr @strerror(i32 noundef %9978) #11
  %9980 = call ptr @__errno_location() #12
  %9981 = load i32, ptr %9980, align 4, !tbaa !5
  %9982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9969, ptr noundef @.str.22, i32 noundef %9970, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 715, ptr noundef %9973, ptr noundef %9976, ptr noundef %9979, i32 noundef %9981) #11
  br label %10000

9983:                                             ; preds = %9961, %9954
  %9984 = load i32, ptr %237, align 4, !tbaa !5
  %9985 = call ptr @__errno_location() #12
  store i32 %9984, ptr %9985, align 4, !tbaa !5
  %9986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9987 = load i32, ptr @test_count, align 4, !tbaa !5
  %9988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9989 = load i32, ptr %9988, align 4, !tbaa !5
  %9990 = call ptr @s2n_strerror(i32 noundef %9989, ptr noundef @.str.24)
  %9991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9992 = load i32, ptr %9991, align 4, !tbaa !5
  %9993 = call ptr @s2n_strerror_debug(i32 noundef %9992, ptr noundef @.str.24)
  %9994 = call ptr @__errno_location() #12
  %9995 = load i32, ptr %9994, align 4, !tbaa !5
  %9996 = call ptr @strerror(i32 noundef %9995) #11
  %9997 = call ptr @__errno_location() #12
  %9998 = load i32, ptr %9997, align 4, !tbaa !5
  %9999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9986, ptr noundef @.str.25, i32 noundef %9987, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 715, ptr noundef %9990, ptr noundef %9993, ptr noundef %9996, i32 noundef %9998) #11
  br label %10000

10000:                                            ; preds = %9983, %9966
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #11
  br label %10001

10001:                                            ; preds = %10000
  br label %10002

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

10003:                                            ; No predecessors!
  br label %10004

10004:                                            ; preds = %10003
  br label %10005

10005:                                            ; preds = %10004, %9944
  br label %10006

10006:                                            ; preds = %10005
  br label %10007

10007:                                            ; preds = %10006
  br label %10008

10008:                                            ; preds = %10007
  %10009 = load i64, ptr %236, align 8, !tbaa !20
  %10010 = add i64 %10009, 1
  store i64 %10010, ptr %236, align 8, !tbaa !20
  br label %9939, !llvm.loop !87

10011:                                            ; preds = %9942
  store i32 0, ptr %34, align 4
  br label %10012

10012:                                            ; preds = %10011, %9811
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #11
  %10013 = load i32, ptr %34, align 4
  switch i32 %10013, label %14663 [
    i32 0, label %10014
    i32 927, label %10015
  ]

10014:                                            ; preds = %10012
  br label %10015

10015:                                            ; preds = %10014, %10012
  %10016 = load i64, ptr %231, align 8, !tbaa !20
  %10017 = add i64 %10016, 1
  store i64 %10017, ptr %231, align 8, !tbaa !20
  br label %9793, !llvm.loop !88

10018:                                            ; preds = %9798
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #11
  store i64 0, ptr %238, align 8, !tbaa !20
  br label %10019

10019:                                            ; preds = %10276, %10018
  %10020 = load i64, ptr %238, align 8, !tbaa !20
  %10021 = load i32, ptr %11, align 4, !tbaa !5
  %10022 = sext i32 %10021 to i64
  %10023 = icmp ult i64 %10020, %10022
  br i1 %10023, label %10025, label %10024

10024:                                            ; preds = %10019
  store i32 949, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #11
  br label %10279

10025:                                            ; preds = %10019
  call void @llvm.lifetime.start.p0(i64 1, ptr %239) #11
  store i8 0, ptr %239, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #11
  %10026 = load i64, ptr %238, align 8, !tbaa !20
  %10027 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %10026
  %10028 = load i16, ptr %10027, align 2, !tbaa !15
  %10029 = zext i16 %10028 to i32
  store i32 %10029, ptr %240, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %241) #11
  %10030 = load i32, ptr %240, align 4, !tbaa !5
  %10031 = zext i32 %10030 to i64
  %10032 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %10031
  %10033 = getelementptr inbounds [32 x i32], ptr %10032, i64 0, i64 0
  store ptr %10033, ptr %241, align 8, !tbaa !9
  %10034 = load i32, ptr %240, align 4, !tbaa !5
  %10035 = and i32 %10034, 1
  %10036 = icmp ne i32 %10035, 0
  br i1 %10036, label %10037, label %10041

10037:                                            ; preds = %10025
  %10038 = load i32, ptr %240, align 4, !tbaa !5
  %10039 = and i32 %10038, 32
  %10040 = icmp ne i32 %10039, 0
  br i1 %10040, label %10042, label %10041

10041:                                            ; preds = %10037, %10025
  store i32 951, ptr %34, align 4
  br label %10273

10042:                                            ; preds = %10037
  call void @llvm.lifetime.start.p0(i64 8, ptr %242) #11
  store i64 1, ptr %242, align 8, !tbaa !20
  br label %10043

10043:                                            ; preds = %10207, %10042
  %10044 = load i64, ptr %242, align 8, !tbaa !20
  %10045 = icmp ult i64 %10044, 32
  br i1 %10045, label %10047, label %10046

10046:                                            ; preds = %10043
  store i32 952, ptr %34, align 4
  br label %10210

10047:                                            ; preds = %10043
  %10048 = load ptr, ptr %241, align 8, !tbaa !9
  %10049 = load i64, ptr %242, align 8, !tbaa !20
  %10050 = getelementptr inbounds i32, ptr %10048, i64 %10049
  %10051 = load i32, ptr %10050, align 4, !tbaa !5
  %10052 = zext i32 %10051 to i64
  %10053 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %10052
  %10054 = getelementptr inbounds %struct.s2n_handshake_action, ptr %10053, i32 0, i32 2
  %10055 = load i8, ptr %10054, align 2, !tbaa !84
  %10056 = sext i8 %10055 to i32
  %10057 = icmp ne i32 %10056, 83
  br i1 %10057, label %10070, label %10058

10058:                                            ; preds = %10047
  %10059 = load ptr, ptr %241, align 8, !tbaa !9
  %10060 = load i64, ptr %242, align 8, !tbaa !20
  %10061 = sub i64 %10060, 1
  %10062 = getelementptr inbounds i32, ptr %10059, i64 %10061
  %10063 = load i32, ptr %10062, align 4, !tbaa !5
  %10064 = zext i32 %10063 to i64
  %10065 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %10064
  %10066 = getelementptr inbounds %struct.s2n_handshake_action, ptr %10065, i32 0, i32 2
  %10067 = load i8, ptr %10066, align 2, !tbaa !84
  %10068 = sext i8 %10067 to i32
  %10069 = icmp ne i32 %10068, 67
  br i1 %10069, label %10070, label %10071

10070:                                            ; preds = %10058, %10047
  br label %10207

10071:                                            ; preds = %10058
  br label %10072

10072:                                            ; preds = %10071
  %10073 = load i32, ptr @test_count, align 4, !tbaa !5
  %10074 = add nsw i32 %10073, 1
  store i32 %10074, ptr @test_count, align 4, !tbaa !5
  %10075 = load ptr, ptr %241, align 8, !tbaa !9
  %10076 = load i64, ptr %242, align 8, !tbaa !20
  %10077 = add i64 %10076, 1
  %10078 = getelementptr inbounds i32, ptr %10075, i64 %10077
  %10079 = load i32, ptr %10078, align 4, !tbaa !5
  %10080 = icmp eq i32 %10079, 14
  br i1 %10080, label %10134, label %10081

10081:                                            ; preds = %10072
  br label %10082

10082:                                            ; preds = %10081
  br label %10083

10083:                                            ; preds = %10082
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  %10084 = call ptr @__errno_location() #12
  %10085 = load i32, ptr %10084, align 4, !tbaa !5
  store i32 %10085, ptr %243, align 4, !tbaa !5
  %10086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10087 = call i32 @s2n_print_stacktrace(ptr noundef %10086)
  %10088 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10089 = trunc i8 %10088 to i1
  br i1 %10089, label %10090, label %10112

10090:                                            ; preds = %10083
  %10091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10092 = call i32 @fileno(ptr noundef %10091) #11
  %10093 = call i32 @isatty(i32 noundef %10092) #11
  %10094 = icmp ne i32 %10093, 0
  br i1 %10094, label %10095, label %10112

10095:                                            ; preds = %10090
  %10096 = load i32, ptr %243, align 4, !tbaa !5
  %10097 = call ptr @__errno_location() #12
  store i32 %10096, ptr %10097, align 4, !tbaa !5
  %10098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10099 = load i32, ptr @test_count, align 4, !tbaa !5
  %10100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10101 = load i32, ptr %10100, align 4, !tbaa !5
  %10102 = call ptr @s2n_strerror(i32 noundef %10101, ptr noundef @.str.24)
  %10103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10104 = load i32, ptr %10103, align 4, !tbaa !5
  %10105 = call ptr @s2n_strerror_debug(i32 noundef %10104, ptr noundef @.str.24)
  %10106 = call ptr @__errno_location() #12
  %10107 = load i32, ptr %10106, align 4, !tbaa !5
  %10108 = call ptr @strerror(i32 noundef %10107) #11
  %10109 = call ptr @__errno_location() #12
  %10110 = load i32, ptr %10109, align 4, !tbaa !5
  %10111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10098, ptr noundef @.str.22, i32 noundef %10099, ptr noundef @.str.85, ptr noundef @.str.21, i32 noundef 744, ptr noundef %10102, ptr noundef %10105, ptr noundef %10108, i32 noundef %10110) #11
  br label %10129

10112:                                            ; preds = %10090, %10083
  %10113 = load i32, ptr %243, align 4, !tbaa !5
  %10114 = call ptr @__errno_location() #12
  store i32 %10113, ptr %10114, align 4, !tbaa !5
  %10115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10116 = load i32, ptr @test_count, align 4, !tbaa !5
  %10117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10118 = load i32, ptr %10117, align 4, !tbaa !5
  %10119 = call ptr @s2n_strerror(i32 noundef %10118, ptr noundef @.str.24)
  %10120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10121 = load i32, ptr %10120, align 4, !tbaa !5
  %10122 = call ptr @s2n_strerror_debug(i32 noundef %10121, ptr noundef @.str.24)
  %10123 = call ptr @__errno_location() #12
  %10124 = load i32, ptr %10123, align 4, !tbaa !5
  %10125 = call ptr @strerror(i32 noundef %10124) #11
  %10126 = call ptr @__errno_location() #12
  %10127 = load i32, ptr %10126, align 4, !tbaa !5
  %10128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10115, ptr noundef @.str.25, i32 noundef %10116, ptr noundef @.str.85, ptr noundef @.str.21, i32 noundef 744, ptr noundef %10119, ptr noundef %10122, ptr noundef %10125, i32 noundef %10127) #11
  br label %10129

10129:                                            ; preds = %10112, %10095
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  br label %10130

10130:                                            ; preds = %10129
  br label %10131

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

10132:                                            ; No predecessors!
  br label %10133

10133:                                            ; preds = %10132
  br label %10134

10134:                                            ; preds = %10133, %10072
  br label %10135

10135:                                            ; preds = %10134
  br label %10136

10136:                                            ; preds = %10135
  br label %10137

10137:                                            ; preds = %10136
  %10138 = load i32, ptr @test_count, align 4, !tbaa !5
  %10139 = add nsw i32 %10138, 1
  store i32 %10139, ptr @test_count, align 4, !tbaa !5
  %10140 = load ptr, ptr %241, align 8, !tbaa !9
  %10141 = load i64, ptr %242, align 8, !tbaa !20
  %10142 = getelementptr inbounds i32, ptr %10140, i64 %10141
  %10143 = load i32, ptr %10142, align 4, !tbaa !5
  %10144 = icmp eq i32 %10143, 1
  br i1 %10144, label %10204, label %10145

10145:                                            ; preds = %10137
  %10146 = load ptr, ptr %241, align 8, !tbaa !9
  %10147 = load i64, ptr %242, align 8, !tbaa !20
  %10148 = getelementptr inbounds i32, ptr %10146, i64 %10147
  %10149 = load i32, ptr %10148, align 4, !tbaa !5
  %10150 = icmp eq i32 %10149, 18
  br i1 %10150, label %10204, label %10151

10151:                                            ; preds = %10145
  br label %10152

10152:                                            ; preds = %10151
  br label %10153

10153:                                            ; preds = %10152
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #11
  %10154 = call ptr @__errno_location() #12
  %10155 = load i32, ptr %10154, align 4, !tbaa !5
  store i32 %10155, ptr %244, align 4, !tbaa !5
  %10156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10157 = call i32 @s2n_print_stacktrace(ptr noundef %10156)
  %10158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10159 = trunc i8 %10158 to i1
  br i1 %10159, label %10160, label %10182

10160:                                            ; preds = %10153
  %10161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10162 = call i32 @fileno(ptr noundef %10161) #11
  %10163 = call i32 @isatty(i32 noundef %10162) #11
  %10164 = icmp ne i32 %10163, 0
  br i1 %10164, label %10165, label %10182

10165:                                            ; preds = %10160
  %10166 = load i32, ptr %244, align 4, !tbaa !5
  %10167 = call ptr @__errno_location() #12
  store i32 %10166, ptr %10167, align 4, !tbaa !5
  %10168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10169 = load i32, ptr @test_count, align 4, !tbaa !5
  %10170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10171 = load i32, ptr %10170, align 4, !tbaa !5
  %10172 = call ptr @s2n_strerror(i32 noundef %10171, ptr noundef @.str.24)
  %10173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10174 = load i32, ptr %10173, align 4, !tbaa !5
  %10175 = call ptr @s2n_strerror_debug(i32 noundef %10174, ptr noundef @.str.24)
  %10176 = call ptr @__errno_location() #12
  %10177 = load i32, ptr %10176, align 4, !tbaa !5
  %10178 = call ptr @strerror(i32 noundef %10177) #11
  %10179 = call ptr @__errno_location() #12
  %10180 = load i32, ptr %10179, align 4, !tbaa !5
  %10181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10168, ptr noundef @.str.22, i32 noundef %10169, ptr noundef @.str.86, ptr noundef @.str.21, i32 noundef 745, ptr noundef %10172, ptr noundef %10175, ptr noundef %10178, i32 noundef %10180) #11
  br label %10199

10182:                                            ; preds = %10160, %10153
  %10183 = load i32, ptr %244, align 4, !tbaa !5
  %10184 = call ptr @__errno_location() #12
  store i32 %10183, ptr %10184, align 4, !tbaa !5
  %10185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10186 = load i32, ptr @test_count, align 4, !tbaa !5
  %10187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10188 = load i32, ptr %10187, align 4, !tbaa !5
  %10189 = call ptr @s2n_strerror(i32 noundef %10188, ptr noundef @.str.24)
  %10190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10191 = load i32, ptr %10190, align 4, !tbaa !5
  %10192 = call ptr @s2n_strerror_debug(i32 noundef %10191, ptr noundef @.str.24)
  %10193 = call ptr @__errno_location() #12
  %10194 = load i32, ptr %10193, align 4, !tbaa !5
  %10195 = call ptr @strerror(i32 noundef %10194) #11
  %10196 = call ptr @__errno_location() #12
  %10197 = load i32, ptr %10196, align 4, !tbaa !5
  %10198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10185, ptr noundef @.str.25, i32 noundef %10186, ptr noundef @.str.86, ptr noundef @.str.21, i32 noundef 745, ptr noundef %10189, ptr noundef %10192, ptr noundef %10195, i32 noundef %10197) #11
  br label %10199

10199:                                            ; preds = %10182, %10165
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #11
  br label %10200

10200:                                            ; preds = %10199
  br label %10201

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

10202:                                            ; No predecessors!
  br label %10203

10203:                                            ; preds = %10202
  br label %10204

10204:                                            ; preds = %10203, %10145, %10137
  br label %10205

10205:                                            ; preds = %10204
  br label %10206

10206:                                            ; preds = %10205
  store i8 1, ptr %239, align 1, !tbaa !11
  store i32 952, ptr %34, align 4
  br label %10210

10207:                                            ; preds = %10070
  %10208 = load i64, ptr %242, align 8, !tbaa !20
  %10209 = add i64 %10208, 1
  store i64 %10209, ptr %242, align 8, !tbaa !20
  br label %10043, !llvm.loop !89

10210:                                            ; preds = %10206, %10046
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #11
  br label %10211

10211:                                            ; preds = %10210
  br label %10212

10212:                                            ; preds = %10211
  %10213 = load i32, ptr @test_count, align 4, !tbaa !5
  %10214 = add nsw i32 %10213, 1
  store i32 %10214, ptr @test_count, align 4, !tbaa !5
  %10215 = load i8, ptr %239, align 1, !tbaa !11, !range !13, !noundef !14
  %10216 = trunc i8 %10215 to i1
  br i1 %10216, label %10270, label %10217

10217:                                            ; preds = %10212
  br label %10218

10218:                                            ; preds = %10217
  br label %10219

10219:                                            ; preds = %10218
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #11
  %10220 = call ptr @__errno_location() #12
  %10221 = load i32, ptr %10220, align 4, !tbaa !5
  store i32 %10221, ptr %245, align 4, !tbaa !5
  %10222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10223 = call i32 @s2n_print_stacktrace(ptr noundef %10222)
  %10224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10225 = trunc i8 %10224 to i1
  br i1 %10225, label %10226, label %10248

10226:                                            ; preds = %10219
  %10227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10228 = call i32 @fileno(ptr noundef %10227) #11
  %10229 = call i32 @isatty(i32 noundef %10228) #11
  %10230 = icmp ne i32 %10229, 0
  br i1 %10230, label %10231, label %10248

10231:                                            ; preds = %10226
  %10232 = load i32, ptr %245, align 4, !tbaa !5
  %10233 = call ptr @__errno_location() #12
  store i32 %10232, ptr %10233, align 4, !tbaa !5
  %10234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10235 = load i32, ptr @test_count, align 4, !tbaa !5
  %10236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10237 = load i32, ptr %10236, align 4, !tbaa !5
  %10238 = call ptr @s2n_strerror(i32 noundef %10237, ptr noundef @.str.24)
  %10239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10240 = load i32, ptr %10239, align 4, !tbaa !5
  %10241 = call ptr @s2n_strerror_debug(i32 noundef %10240, ptr noundef @.str.24)
  %10242 = call ptr @__errno_location() #12
  %10243 = load i32, ptr %10242, align 4, !tbaa !5
  %10244 = call ptr @strerror(i32 noundef %10243) #11
  %10245 = call ptr @__errno_location() #12
  %10246 = load i32, ptr %10245, align 4, !tbaa !5
  %10247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10234, ptr noundef @.str.22, i32 noundef %10235, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 752, ptr noundef %10238, ptr noundef %10241, ptr noundef %10244, i32 noundef %10246) #11
  br label %10265

10248:                                            ; preds = %10226, %10219
  %10249 = load i32, ptr %245, align 4, !tbaa !5
  %10250 = call ptr @__errno_location() #12
  store i32 %10249, ptr %10250, align 4, !tbaa !5
  %10251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10252 = load i32, ptr @test_count, align 4, !tbaa !5
  %10253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10254 = load i32, ptr %10253, align 4, !tbaa !5
  %10255 = call ptr @s2n_strerror(i32 noundef %10254, ptr noundef @.str.24)
  %10256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10257 = load i32, ptr %10256, align 4, !tbaa !5
  %10258 = call ptr @s2n_strerror_debug(i32 noundef %10257, ptr noundef @.str.24)
  %10259 = call ptr @__errno_location() #12
  %10260 = load i32, ptr %10259, align 4, !tbaa !5
  %10261 = call ptr @strerror(i32 noundef %10260) #11
  %10262 = call ptr @__errno_location() #12
  %10263 = load i32, ptr %10262, align 4, !tbaa !5
  %10264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10251, ptr noundef @.str.25, i32 noundef %10252, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 752, ptr noundef %10255, ptr noundef %10258, ptr noundef %10261, i32 noundef %10263) #11
  br label %10265

10265:                                            ; preds = %10248, %10231
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #11
  br label %10266

10266:                                            ; preds = %10265
  br label %10267

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

10268:                                            ; No predecessors!
  br label %10269

10269:                                            ; preds = %10268
  br label %10270

10270:                                            ; preds = %10269, %10212
  br label %10271

10271:                                            ; preds = %10270
  br label %10272

10272:                                            ; preds = %10271
  store i32 0, ptr %34, align 4
  br label %10273

10273:                                            ; preds = %10272, %10041
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #11
  %10274 = load i32, ptr %34, align 4
  switch i32 %10274, label %14663 [
    i32 0, label %10275
    i32 951, label %10276
  ]

10275:                                            ; preds = %10273
  br label %10276

10276:                                            ; preds = %10275, %10273
  %10277 = load i64, ptr %238, align 8, !tbaa !20
  %10278 = add i64 %10277, 1
  store i64 %10278, ptr %238, align 8, !tbaa !20
  br label %10019, !llvm.loop !90

10279:                                            ; preds = %10024
  call void @llvm.lifetime.start.p0(i64 8, ptr %246) #11
  %10280 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10280, ptr %246, align 8, !tbaa !9
  %10281 = load ptr, ptr %246, align 8, !tbaa !9
  %10282 = getelementptr inbounds %struct.s2n_connection, ptr %10281, i32 0, i32 1
  %10283 = load ptr, ptr %10282, align 8, !tbaa !91
  %10284 = load i32, ptr %10283, align 8
  %10285 = and i32 %10284, -2
  %10286 = or i32 %10285, 1
  store i32 %10286, ptr %10283, align 8
  %10287 = load ptr, ptr %246, align 8, !tbaa !9
  %10288 = getelementptr inbounds %struct.s2n_connection, ptr %10287, i32 0, i32 76
  store i32 2, ptr %10288, align 4, !tbaa !92
  br label %10289

10289:                                            ; preds = %10279
  %10290 = load i32, ptr @test_count, align 4, !tbaa !5
  %10291 = add nsw i32 %10290, 1
  store i32 %10291, ptr @test_count, align 4, !tbaa !5
  %10292 = load ptr, ptr %246, align 8, !tbaa !9
  %10293 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %10292, i32 noundef 1)
  %10294 = icmp eq i32 %10293, -1
  br i1 %10294, label %10295, label %10348

10295:                                            ; preds = %10289
  br label %10296

10296:                                            ; preds = %10295
  br label %10297

10297:                                            ; preds = %10296
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #11
  %10298 = call ptr @__errno_location() #12
  %10299 = load i32, ptr %10298, align 4, !tbaa !5
  store i32 %10299, ptr %247, align 4, !tbaa !5
  %10300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10301 = call i32 @s2n_print_stacktrace(ptr noundef %10300)
  %10302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10303 = trunc i8 %10302 to i1
  br i1 %10303, label %10304, label %10326

10304:                                            ; preds = %10297
  %10305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10306 = call i32 @fileno(ptr noundef %10305) #11
  %10307 = call i32 @isatty(i32 noundef %10306) #11
  %10308 = icmp ne i32 %10307, 0
  br i1 %10308, label %10309, label %10326

10309:                                            ; preds = %10304
  %10310 = load i32, ptr %247, align 4, !tbaa !5
  %10311 = call ptr @__errno_location() #12
  store i32 %10310, ptr %10311, align 4, !tbaa !5
  %10312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10313 = load i32, ptr @test_count, align 4, !tbaa !5
  %10314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10315 = load i32, ptr %10314, align 4, !tbaa !5
  %10316 = call ptr @s2n_strerror(i32 noundef %10315, ptr noundef @.str.24)
  %10317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10318 = load i32, ptr %10317, align 4, !tbaa !5
  %10319 = call ptr @s2n_strerror_debug(i32 noundef %10318, ptr noundef @.str.24)
  %10320 = call ptr @__errno_location() #12
  %10321 = load i32, ptr %10320, align 4, !tbaa !5
  %10322 = call ptr @strerror(i32 noundef %10321) #11
  %10323 = call ptr @__errno_location() #12
  %10324 = load i32, ptr %10323, align 4, !tbaa !5
  %10325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10312, ptr noundef @.str.22, i32 noundef %10313, ptr noundef @.str.87, ptr noundef @.str.21, i32 noundef 765, ptr noundef %10316, ptr noundef %10319, ptr noundef %10322, i32 noundef %10324) #11
  br label %10343

10326:                                            ; preds = %10304, %10297
  %10327 = load i32, ptr %247, align 4, !tbaa !5
  %10328 = call ptr @__errno_location() #12
  store i32 %10327, ptr %10328, align 4, !tbaa !5
  %10329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10330 = load i32, ptr @test_count, align 4, !tbaa !5
  %10331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10332 = load i32, ptr %10331, align 4, !tbaa !5
  %10333 = call ptr @s2n_strerror(i32 noundef %10332, ptr noundef @.str.24)
  %10334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10335 = load i32, ptr %10334, align 4, !tbaa !5
  %10336 = call ptr @s2n_strerror_debug(i32 noundef %10335, ptr noundef @.str.24)
  %10337 = call ptr @__errno_location() #12
  %10338 = load i32, ptr %10337, align 4, !tbaa !5
  %10339 = call ptr @strerror(i32 noundef %10338) #11
  %10340 = call ptr @__errno_location() #12
  %10341 = load i32, ptr %10340, align 4, !tbaa !5
  %10342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10329, ptr noundef @.str.25, i32 noundef %10330, ptr noundef @.str.87, ptr noundef @.str.21, i32 noundef 765, ptr noundef %10333, ptr noundef %10336, ptr noundef %10339, i32 noundef %10341) #11
  br label %10343

10343:                                            ; preds = %10326, %10309
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #11
  br label %10344

10344:                                            ; preds = %10343
  br label %10345

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

10346:                                            ; No predecessors!
  br label %10347

10347:                                            ; preds = %10346
  br label %10348

10348:                                            ; preds = %10347, %10289
  br label %10349

10349:                                            ; preds = %10348
  br label %10350

10350:                                            ; preds = %10349
  %10351 = load ptr, ptr %246, align 8, !tbaa !9
  %10352 = getelementptr inbounds %struct.s2n_connection, ptr %10351, i32 0, i32 27
  %10353 = load ptr, ptr %10352, align 8, !tbaa !75
  %10354 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10353, i32 0, i32 0
  store ptr @s2n_dhe_rsa_with_chacha20_poly1305_sha256, ptr %10354, align 8, !tbaa !76
  %10355 = load ptr, ptr %246, align 8, !tbaa !9
  %10356 = getelementptr inbounds %struct.s2n_connection, ptr %10355, i32 0, i32 65
  store i32 1, ptr %10356, align 8, !tbaa !93
  %10357 = load ptr, ptr %246, align 8, !tbaa !9
  %10358 = getelementptr inbounds %struct.s2n_connection, ptr %10357, i32 0, i32 23
  store i8 33, ptr %10358, align 4, !tbaa !34
  br label %10359

10359:                                            ; preds = %10350
  %10360 = load i32, ptr @test_count, align 4, !tbaa !5
  %10361 = add nsw i32 %10360, 1
  store i32 %10361, ptr @test_count, align 4, !tbaa !5
  %10362 = load ptr, ptr %246, align 8, !tbaa !9
  %10363 = call i32 @s2n_conn_set_handshake_type(ptr noundef %10362)
  %10364 = icmp eq i32 %10363, -1
  br i1 %10364, label %10365, label %10418

10365:                                            ; preds = %10359
  br label %10366

10366:                                            ; preds = %10365
  br label %10367

10367:                                            ; preds = %10366
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #11
  %10368 = call ptr @__errno_location() #12
  %10369 = load i32, ptr %10368, align 4, !tbaa !5
  store i32 %10369, ptr %248, align 4, !tbaa !5
  %10370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10371 = call i32 @s2n_print_stacktrace(ptr noundef %10370)
  %10372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10373 = trunc i8 %10372 to i1
  br i1 %10373, label %10374, label %10396

10374:                                            ; preds = %10367
  %10375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10376 = call i32 @fileno(ptr noundef %10375) #11
  %10377 = call i32 @isatty(i32 noundef %10376) #11
  %10378 = icmp ne i32 %10377, 0
  br i1 %10378, label %10379, label %10396

10379:                                            ; preds = %10374
  %10380 = load i32, ptr %248, align 4, !tbaa !5
  %10381 = call ptr @__errno_location() #12
  store i32 %10380, ptr %10381, align 4, !tbaa !5
  %10382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10383 = load i32, ptr @test_count, align 4, !tbaa !5
  %10384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10385 = load i32, ptr %10384, align 4, !tbaa !5
  %10386 = call ptr @s2n_strerror(i32 noundef %10385, ptr noundef @.str.24)
  %10387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10388 = load i32, ptr %10387, align 4, !tbaa !5
  %10389 = call ptr @s2n_strerror_debug(i32 noundef %10388, ptr noundef @.str.24)
  %10390 = call ptr @__errno_location() #12
  %10391 = load i32, ptr %10390, align 4, !tbaa !5
  %10392 = call ptr @strerror(i32 noundef %10391) #11
  %10393 = call ptr @__errno_location() #12
  %10394 = load i32, ptr %10393, align 4, !tbaa !5
  %10395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10382, ptr noundef @.str.22, i32 noundef %10383, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 775, ptr noundef %10386, ptr noundef %10389, ptr noundef %10392, i32 noundef %10394) #11
  br label %10413

10396:                                            ; preds = %10374, %10367
  %10397 = load i32, ptr %248, align 4, !tbaa !5
  %10398 = call ptr @__errno_location() #12
  store i32 %10397, ptr %10398, align 4, !tbaa !5
  %10399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10400 = load i32, ptr @test_count, align 4, !tbaa !5
  %10401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10402 = load i32, ptr %10401, align 4, !tbaa !5
  %10403 = call ptr @s2n_strerror(i32 noundef %10402, ptr noundef @.str.24)
  %10404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10405 = load i32, ptr %10404, align 4, !tbaa !5
  %10406 = call ptr @s2n_strerror_debug(i32 noundef %10405, ptr noundef @.str.24)
  %10407 = call ptr @__errno_location() #12
  %10408 = load i32, ptr %10407, align 4, !tbaa !5
  %10409 = call ptr @strerror(i32 noundef %10408) #11
  %10410 = call ptr @__errno_location() #12
  %10411 = load i32, ptr %10410, align 4, !tbaa !5
  %10412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10399, ptr noundef @.str.25, i32 noundef %10400, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 775, ptr noundef %10403, ptr noundef %10406, ptr noundef %10409, i32 noundef %10411) #11
  br label %10413

10413:                                            ; preds = %10396, %10379
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #11
  br label %10414

10414:                                            ; preds = %10413
  br label %10415

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

10416:                                            ; No predecessors!
  br label %10417

10417:                                            ; preds = %10416
  br label %10418

10418:                                            ; preds = %10417, %10359
  br label %10419

10419:                                            ; preds = %10418
  br label %10420

10420:                                            ; preds = %10419
  br label %10421

10421:                                            ; preds = %10420
  %10422 = load i32, ptr @test_count, align 4, !tbaa !5
  %10423 = add nsw i32 %10422, 1
  store i32 %10423, ptr @test_count, align 4, !tbaa !5
  %10424 = load ptr, ptr %246, align 8, !tbaa !9
  %10425 = getelementptr inbounds %struct.s2n_connection, ptr %10424, i32 0, i32 52
  %10426 = getelementptr inbounds %struct.s2n_handshake, ptr %10425, i32 0, i32 6
  %10427 = load i32, ptr %10426, align 4, !tbaa !60
  %10428 = and i32 %10427, 16
  %10429 = icmp ne i32 %10428, 0
  br i1 %10429, label %10483, label %10430

10430:                                            ; preds = %10421
  br label %10431

10431:                                            ; preds = %10430
  br label %10432

10432:                                            ; preds = %10431
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #11
  %10433 = call ptr @__errno_location() #12
  %10434 = load i32, ptr %10433, align 4, !tbaa !5
  store i32 %10434, ptr %249, align 4, !tbaa !5
  %10435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10436 = call i32 @s2n_print_stacktrace(ptr noundef %10435)
  %10437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10438 = trunc i8 %10437 to i1
  br i1 %10438, label %10439, label %10461

10439:                                            ; preds = %10432
  %10440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10441 = call i32 @fileno(ptr noundef %10440) #11
  %10442 = call i32 @isatty(i32 noundef %10441) #11
  %10443 = icmp ne i32 %10442, 0
  br i1 %10443, label %10444, label %10461

10444:                                            ; preds = %10439
  %10445 = load i32, ptr %249, align 4, !tbaa !5
  %10446 = call ptr @__errno_location() #12
  store i32 %10445, ptr %10446, align 4, !tbaa !5
  %10447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10448 = load i32, ptr @test_count, align 4, !tbaa !5
  %10449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10450 = load i32, ptr %10449, align 4, !tbaa !5
  %10451 = call ptr @s2n_strerror(i32 noundef %10450, ptr noundef @.str.24)
  %10452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10453 = load i32, ptr %10452, align 4, !tbaa !5
  %10454 = call ptr @s2n_strerror_debug(i32 noundef %10453, ptr noundef @.str.24)
  %10455 = call ptr @__errno_location() #12
  %10456 = load i32, ptr %10455, align 4, !tbaa !5
  %10457 = call ptr @strerror(i32 noundef %10456) #11
  %10458 = call ptr @__errno_location() #12
  %10459 = load i32, ptr %10458, align 4, !tbaa !5
  %10460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10447, ptr noundef @.str.22, i32 noundef %10448, ptr noundef @.str.89, ptr noundef @.str.21, i32 noundef 776, ptr noundef %10451, ptr noundef %10454, ptr noundef %10457, i32 noundef %10459) #11
  br label %10478

10461:                                            ; preds = %10439, %10432
  %10462 = load i32, ptr %249, align 4, !tbaa !5
  %10463 = call ptr @__errno_location() #12
  store i32 %10462, ptr %10463, align 4, !tbaa !5
  %10464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10465 = load i32, ptr @test_count, align 4, !tbaa !5
  %10466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10467 = load i32, ptr %10466, align 4, !tbaa !5
  %10468 = call ptr @s2n_strerror(i32 noundef %10467, ptr noundef @.str.24)
  %10469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10470 = load i32, ptr %10469, align 4, !tbaa !5
  %10471 = call ptr @s2n_strerror_debug(i32 noundef %10470, ptr noundef @.str.24)
  %10472 = call ptr @__errno_location() #12
  %10473 = load i32, ptr %10472, align 4, !tbaa !5
  %10474 = call ptr @strerror(i32 noundef %10473) #11
  %10475 = call ptr @__errno_location() #12
  %10476 = load i32, ptr %10475, align 4, !tbaa !5
  %10477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10464, ptr noundef @.str.25, i32 noundef %10465, ptr noundef @.str.89, ptr noundef @.str.21, i32 noundef 776, ptr noundef %10468, ptr noundef %10471, ptr noundef %10474, i32 noundef %10476) #11
  br label %10478

10478:                                            ; preds = %10461, %10444
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #11
  br label %10479

10479:                                            ; preds = %10478
  br label %10480

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

10481:                                            ; No predecessors!
  br label %10482

10482:                                            ; preds = %10481
  br label %10483

10483:                                            ; preds = %10482, %10421
  br label %10484

10484:                                            ; preds = %10483
  br label %10485

10485:                                            ; preds = %10484
  br label %10486

10486:                                            ; preds = %10485
  %10487 = load i32, ptr @test_count, align 4, !tbaa !5
  %10488 = add nsw i32 %10487, 1
  store i32 %10488, ptr @test_count, align 4, !tbaa !5
  %10489 = load ptr, ptr %246, align 8, !tbaa !9
  %10490 = getelementptr inbounds %struct.s2n_connection, ptr %10489, i32 0, i32 52
  %10491 = getelementptr inbounds %struct.s2n_handshake, ptr %10490, i32 0, i32 6
  %10492 = load i32, ptr %10491, align 4, !tbaa !60
  %10493 = and i32 %10492, 32
  %10494 = icmp ne i32 %10493, 0
  br i1 %10494, label %10548, label %10495

10495:                                            ; preds = %10486
  br label %10496

10496:                                            ; preds = %10495
  br label %10497

10497:                                            ; preds = %10496
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #11
  %10498 = call ptr @__errno_location() #12
  %10499 = load i32, ptr %10498, align 4, !tbaa !5
  store i32 %10499, ptr %250, align 4, !tbaa !5
  %10500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10501 = call i32 @s2n_print_stacktrace(ptr noundef %10500)
  %10502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10503 = trunc i8 %10502 to i1
  br i1 %10503, label %10504, label %10526

10504:                                            ; preds = %10497
  %10505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10506 = call i32 @fileno(ptr noundef %10505) #11
  %10507 = call i32 @isatty(i32 noundef %10506) #11
  %10508 = icmp ne i32 %10507, 0
  br i1 %10508, label %10509, label %10526

10509:                                            ; preds = %10504
  %10510 = load i32, ptr %250, align 4, !tbaa !5
  %10511 = call ptr @__errno_location() #12
  store i32 %10510, ptr %10511, align 4, !tbaa !5
  %10512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10513 = load i32, ptr @test_count, align 4, !tbaa !5
  %10514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10515 = load i32, ptr %10514, align 4, !tbaa !5
  %10516 = call ptr @s2n_strerror(i32 noundef %10515, ptr noundef @.str.24)
  %10517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10518 = load i32, ptr %10517, align 4, !tbaa !5
  %10519 = call ptr @s2n_strerror_debug(i32 noundef %10518, ptr noundef @.str.24)
  %10520 = call ptr @__errno_location() #12
  %10521 = load i32, ptr %10520, align 4, !tbaa !5
  %10522 = call ptr @strerror(i32 noundef %10521) #11
  %10523 = call ptr @__errno_location() #12
  %10524 = load i32, ptr %10523, align 4, !tbaa !5
  %10525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10512, ptr noundef @.str.22, i32 noundef %10513, ptr noundef @.str.90, ptr noundef @.str.21, i32 noundef 777, ptr noundef %10516, ptr noundef %10519, ptr noundef %10522, i32 noundef %10524) #11
  br label %10543

10526:                                            ; preds = %10504, %10497
  %10527 = load i32, ptr %250, align 4, !tbaa !5
  %10528 = call ptr @__errno_location() #12
  store i32 %10527, ptr %10528, align 4, !tbaa !5
  %10529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10530 = load i32, ptr @test_count, align 4, !tbaa !5
  %10531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10532 = load i32, ptr %10531, align 4, !tbaa !5
  %10533 = call ptr @s2n_strerror(i32 noundef %10532, ptr noundef @.str.24)
  %10534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10535 = load i32, ptr %10534, align 4, !tbaa !5
  %10536 = call ptr @s2n_strerror_debug(i32 noundef %10535, ptr noundef @.str.24)
  %10537 = call ptr @__errno_location() #12
  %10538 = load i32, ptr %10537, align 4, !tbaa !5
  %10539 = call ptr @strerror(i32 noundef %10538) #11
  %10540 = call ptr @__errno_location() #12
  %10541 = load i32, ptr %10540, align 4, !tbaa !5
  %10542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10529, ptr noundef @.str.25, i32 noundef %10530, ptr noundef @.str.90, ptr noundef @.str.21, i32 noundef 777, ptr noundef %10533, ptr noundef %10536, ptr noundef %10539, i32 noundef %10541) #11
  br label %10543

10543:                                            ; preds = %10526, %10509
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #11
  br label %10544

10544:                                            ; preds = %10543
  br label %10545

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

10546:                                            ; No predecessors!
  br label %10547

10547:                                            ; preds = %10546
  br label %10548

10548:                                            ; preds = %10547, %10486
  br label %10549

10549:                                            ; preds = %10548
  br label %10550

10550:                                            ; preds = %10549
  br label %10551

10551:                                            ; preds = %10550
  %10552 = load i32, ptr @test_count, align 4, !tbaa !5
  %10553 = add nsw i32 %10552, 1
  store i32 %10553, ptr @test_count, align 4, !tbaa !5
  %10554 = load ptr, ptr %246, align 8, !tbaa !9
  %10555 = getelementptr inbounds %struct.s2n_connection, ptr %10554, i32 0, i32 52
  %10556 = getelementptr inbounds %struct.s2n_handshake, ptr %10555, i32 0, i32 6
  %10557 = load i32, ptr %10556, align 4, !tbaa !60
  %10558 = and i32 %10557, 64
  %10559 = icmp ne i32 %10558, 0
  br i1 %10559, label %10613, label %10560

10560:                                            ; preds = %10551
  br label %10561

10561:                                            ; preds = %10560
  br label %10562

10562:                                            ; preds = %10561
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %10563 = call ptr @__errno_location() #12
  %10564 = load i32, ptr %10563, align 4, !tbaa !5
  store i32 %10564, ptr %251, align 4, !tbaa !5
  %10565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10566 = call i32 @s2n_print_stacktrace(ptr noundef %10565)
  %10567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10568 = trunc i8 %10567 to i1
  br i1 %10568, label %10569, label %10591

10569:                                            ; preds = %10562
  %10570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10571 = call i32 @fileno(ptr noundef %10570) #11
  %10572 = call i32 @isatty(i32 noundef %10571) #11
  %10573 = icmp ne i32 %10572, 0
  br i1 %10573, label %10574, label %10591

10574:                                            ; preds = %10569
  %10575 = load i32, ptr %251, align 4, !tbaa !5
  %10576 = call ptr @__errno_location() #12
  store i32 %10575, ptr %10576, align 4, !tbaa !5
  %10577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10578 = load i32, ptr @test_count, align 4, !tbaa !5
  %10579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10580 = load i32, ptr %10579, align 4, !tbaa !5
  %10581 = call ptr @s2n_strerror(i32 noundef %10580, ptr noundef @.str.24)
  %10582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10583 = load i32, ptr %10582, align 4, !tbaa !5
  %10584 = call ptr @s2n_strerror_debug(i32 noundef %10583, ptr noundef @.str.24)
  %10585 = call ptr @__errno_location() #12
  %10586 = load i32, ptr %10585, align 4, !tbaa !5
  %10587 = call ptr @strerror(i32 noundef %10586) #11
  %10588 = call ptr @__errno_location() #12
  %10589 = load i32, ptr %10588, align 4, !tbaa !5
  %10590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10577, ptr noundef @.str.22, i32 noundef %10578, ptr noundef @.str.91, ptr noundef @.str.21, i32 noundef 778, ptr noundef %10581, ptr noundef %10584, ptr noundef %10587, i32 noundef %10589) #11
  br label %10608

10591:                                            ; preds = %10569, %10562
  %10592 = load i32, ptr %251, align 4, !tbaa !5
  %10593 = call ptr @__errno_location() #12
  store i32 %10592, ptr %10593, align 4, !tbaa !5
  %10594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10595 = load i32, ptr @test_count, align 4, !tbaa !5
  %10596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10597 = load i32, ptr %10596, align 4, !tbaa !5
  %10598 = call ptr @s2n_strerror(i32 noundef %10597, ptr noundef @.str.24)
  %10599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10600 = load i32, ptr %10599, align 4, !tbaa !5
  %10601 = call ptr @s2n_strerror_debug(i32 noundef %10600, ptr noundef @.str.24)
  %10602 = call ptr @__errno_location() #12
  %10603 = load i32, ptr %10602, align 4, !tbaa !5
  %10604 = call ptr @strerror(i32 noundef %10603) #11
  %10605 = call ptr @__errno_location() #12
  %10606 = load i32, ptr %10605, align 4, !tbaa !5
  %10607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10594, ptr noundef @.str.25, i32 noundef %10595, ptr noundef @.str.91, ptr noundef @.str.21, i32 noundef 778, ptr noundef %10598, ptr noundef %10601, ptr noundef %10604, i32 noundef %10606) #11
  br label %10608

10608:                                            ; preds = %10591, %10574
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %10609

10609:                                            ; preds = %10608
  br label %10610

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

10611:                                            ; No predecessors!
  br label %10612

10612:                                            ; preds = %10611
  br label %10613

10613:                                            ; preds = %10612, %10551
  br label %10614

10614:                                            ; preds = %10613
  br label %10615

10615:                                            ; preds = %10614
  br label %10616

10616:                                            ; preds = %10615
  %10617 = load i32, ptr @test_count, align 4, !tbaa !5
  %10618 = add nsw i32 %10617, 1
  store i32 %10618, ptr @test_count, align 4, !tbaa !5
  %10619 = load ptr, ptr %246, align 8, !tbaa !9
  %10620 = getelementptr inbounds %struct.s2n_connection, ptr %10619, i32 0, i32 52
  %10621 = getelementptr inbounds %struct.s2n_handshake, ptr %10620, i32 0, i32 6
  %10622 = load i32, ptr %10621, align 4, !tbaa !60
  %10623 = and i32 %10622, 4
  %10624 = icmp ne i32 %10623, 0
  br i1 %10624, label %10678, label %10625

10625:                                            ; preds = %10616
  br label %10626

10626:                                            ; preds = %10625
  br label %10627

10627:                                            ; preds = %10626
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #11
  %10628 = call ptr @__errno_location() #12
  %10629 = load i32, ptr %10628, align 4, !tbaa !5
  store i32 %10629, ptr %252, align 4, !tbaa !5
  %10630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10631 = call i32 @s2n_print_stacktrace(ptr noundef %10630)
  %10632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10633 = trunc i8 %10632 to i1
  br i1 %10633, label %10634, label %10656

10634:                                            ; preds = %10627
  %10635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10636 = call i32 @fileno(ptr noundef %10635) #11
  %10637 = call i32 @isatty(i32 noundef %10636) #11
  %10638 = icmp ne i32 %10637, 0
  br i1 %10638, label %10639, label %10656

10639:                                            ; preds = %10634
  %10640 = load i32, ptr %252, align 4, !tbaa !5
  %10641 = call ptr @__errno_location() #12
  store i32 %10640, ptr %10641, align 4, !tbaa !5
  %10642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10643 = load i32, ptr @test_count, align 4, !tbaa !5
  %10644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10645 = load i32, ptr %10644, align 4, !tbaa !5
  %10646 = call ptr @s2n_strerror(i32 noundef %10645, ptr noundef @.str.24)
  %10647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10648 = load i32, ptr %10647, align 4, !tbaa !5
  %10649 = call ptr @s2n_strerror_debug(i32 noundef %10648, ptr noundef @.str.24)
  %10650 = call ptr @__errno_location() #12
  %10651 = load i32, ptr %10650, align 4, !tbaa !5
  %10652 = call ptr @strerror(i32 noundef %10651) #11
  %10653 = call ptr @__errno_location() #12
  %10654 = load i32, ptr %10653, align 4, !tbaa !5
  %10655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10642, ptr noundef @.str.22, i32 noundef %10643, ptr noundef @.str.92, ptr noundef @.str.21, i32 noundef 779, ptr noundef %10646, ptr noundef %10649, ptr noundef %10652, i32 noundef %10654) #11
  br label %10673

10656:                                            ; preds = %10634, %10627
  %10657 = load i32, ptr %252, align 4, !tbaa !5
  %10658 = call ptr @__errno_location() #12
  store i32 %10657, ptr %10658, align 4, !tbaa !5
  %10659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10660 = load i32, ptr @test_count, align 4, !tbaa !5
  %10661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10662 = load i32, ptr %10661, align 4, !tbaa !5
  %10663 = call ptr @s2n_strerror(i32 noundef %10662, ptr noundef @.str.24)
  %10664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10665 = load i32, ptr %10664, align 4, !tbaa !5
  %10666 = call ptr @s2n_strerror_debug(i32 noundef %10665, ptr noundef @.str.24)
  %10667 = call ptr @__errno_location() #12
  %10668 = load i32, ptr %10667, align 4, !tbaa !5
  %10669 = call ptr @strerror(i32 noundef %10668) #11
  %10670 = call ptr @__errno_location() #12
  %10671 = load i32, ptr %10670, align 4, !tbaa !5
  %10672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10659, ptr noundef @.str.25, i32 noundef %10660, ptr noundef @.str.92, ptr noundef @.str.21, i32 noundef 779, ptr noundef %10663, ptr noundef %10666, ptr noundef %10669, i32 noundef %10671) #11
  br label %10673

10673:                                            ; preds = %10656, %10639
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #11
  br label %10674

10674:                                            ; preds = %10673
  br label %10675

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

10676:                                            ; No predecessors!
  br label %10677

10677:                                            ; preds = %10676
  br label %10678

10678:                                            ; preds = %10677, %10616
  br label %10679

10679:                                            ; preds = %10678
  br label %10680

10680:                                            ; preds = %10679
  br label %10681

10681:                                            ; preds = %10680
  %10682 = load i32, ptr @test_count, align 4, !tbaa !5
  %10683 = add nsw i32 %10682, 1
  store i32 %10683, ptr @test_count, align 4, !tbaa !5
  %10684 = load ptr, ptr %246, align 8, !tbaa !9
  %10685 = call i32 @s2n_handshake_type_reset(ptr noundef %10684)
  %10686 = getelementptr inbounds %struct.s2n_result, ptr %253, i32 0, i32 0
  store i32 %10685, ptr %10686, align 4
  %10687 = getelementptr inbounds %struct.s2n_result, ptr %253, i32 0, i32 0
  %10688 = load i32, ptr %10687, align 4
  %10689 = call zeroext i1 @s2n_result_is_ok(i32 %10688)
  br i1 %10689, label %10743, label %10690

10690:                                            ; preds = %10681
  br label %10691

10691:                                            ; preds = %10690
  br label %10692

10692:                                            ; preds = %10691
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #11
  %10693 = call ptr @__errno_location() #12
  %10694 = load i32, ptr %10693, align 4, !tbaa !5
  store i32 %10694, ptr %254, align 4, !tbaa !5
  %10695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10696 = call i32 @s2n_print_stacktrace(ptr noundef %10695)
  %10697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10698 = trunc i8 %10697 to i1
  br i1 %10698, label %10699, label %10721

10699:                                            ; preds = %10692
  %10700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10701 = call i32 @fileno(ptr noundef %10700) #11
  %10702 = call i32 @isatty(i32 noundef %10701) #11
  %10703 = icmp ne i32 %10702, 0
  br i1 %10703, label %10704, label %10721

10704:                                            ; preds = %10699
  %10705 = load i32, ptr %254, align 4, !tbaa !5
  %10706 = call ptr @__errno_location() #12
  store i32 %10705, ptr %10706, align 4, !tbaa !5
  %10707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10708 = load i32, ptr @test_count, align 4, !tbaa !5
  %10709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10710 = load i32, ptr %10709, align 4, !tbaa !5
  %10711 = call ptr @s2n_strerror(i32 noundef %10710, ptr noundef @.str.24)
  %10712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10713 = load i32, ptr %10712, align 4, !tbaa !5
  %10714 = call ptr @s2n_strerror_debug(i32 noundef %10713, ptr noundef @.str.24)
  %10715 = call ptr @__errno_location() #12
  %10716 = load i32, ptr %10715, align 4, !tbaa !5
  %10717 = call ptr @strerror(i32 noundef %10716) #11
  %10718 = call ptr @__errno_location() #12
  %10719 = load i32, ptr %10718, align 4, !tbaa !5
  %10720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10707, ptr noundef @.str.22, i32 noundef %10708, ptr noundef @.str.93, ptr noundef @.str.21, i32 noundef 782, ptr noundef %10711, ptr noundef %10714, ptr noundef %10717, i32 noundef %10719) #11
  br label %10738

10721:                                            ; preds = %10699, %10692
  %10722 = load i32, ptr %254, align 4, !tbaa !5
  %10723 = call ptr @__errno_location() #12
  store i32 %10722, ptr %10723, align 4, !tbaa !5
  %10724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10725 = load i32, ptr @test_count, align 4, !tbaa !5
  %10726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10727 = load i32, ptr %10726, align 4, !tbaa !5
  %10728 = call ptr @s2n_strerror(i32 noundef %10727, ptr noundef @.str.24)
  %10729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10730 = load i32, ptr %10729, align 4, !tbaa !5
  %10731 = call ptr @s2n_strerror_debug(i32 noundef %10730, ptr noundef @.str.24)
  %10732 = call ptr @__errno_location() #12
  %10733 = load i32, ptr %10732, align 4, !tbaa !5
  %10734 = call ptr @strerror(i32 noundef %10733) #11
  %10735 = call ptr @__errno_location() #12
  %10736 = load i32, ptr %10735, align 4, !tbaa !5
  %10737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10724, ptr noundef @.str.25, i32 noundef %10725, ptr noundef @.str.93, ptr noundef @.str.21, i32 noundef 782, ptr noundef %10728, ptr noundef %10731, ptr noundef %10734, i32 noundef %10736) #11
  br label %10738

10738:                                            ; preds = %10721, %10704
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #11
  br label %10739

10739:                                            ; preds = %10738
  br label %10740

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

10741:                                            ; No predecessors!
  br label %10742

10742:                                            ; preds = %10741
  br label %10743

10743:                                            ; preds = %10742, %10681
  br label %10744

10744:                                            ; preds = %10743
  br label %10745

10745:                                            ; preds = %10744
  %10746 = load ptr, ptr %246, align 8, !tbaa !9
  %10747 = getelementptr inbounds %struct.s2n_connection, ptr %10746, i32 0, i32 52
  %10748 = getelementptr inbounds %struct.s2n_handshake, ptr %10747, i32 0, i32 12
  store i32 0, ptr %10748, align 4, !tbaa !59
  %10749 = load ptr, ptr %246, align 8, !tbaa !9
  %10750 = getelementptr inbounds %struct.s2n_connection, ptr %10749, i32 0, i32 23
  store i8 34, ptr %10750, align 4, !tbaa !34
  br label %10751

10751:                                            ; preds = %10745
  %10752 = load i32, ptr @test_count, align 4, !tbaa !5
  %10753 = add nsw i32 %10752, 1
  store i32 %10753, ptr @test_count, align 4, !tbaa !5
  %10754 = load ptr, ptr %246, align 8, !tbaa !9
  %10755 = call i32 @s2n_conn_choose_state_machine(ptr noundef %10754, i8 noundef zeroext 34)
  %10756 = getelementptr inbounds %struct.s2n_result, ptr %255, i32 0, i32 0
  store i32 %10755, ptr %10756, align 4
  %10757 = getelementptr inbounds %struct.s2n_result, ptr %255, i32 0, i32 0
  %10758 = load i32, ptr %10757, align 4
  %10759 = call zeroext i1 @s2n_result_is_ok(i32 %10758)
  br i1 %10759, label %10813, label %10760

10760:                                            ; preds = %10751
  br label %10761

10761:                                            ; preds = %10760
  br label %10762

10762:                                            ; preds = %10761
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #11
  %10763 = call ptr @__errno_location() #12
  %10764 = load i32, ptr %10763, align 4, !tbaa !5
  store i32 %10764, ptr %256, align 4, !tbaa !5
  %10765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10766 = call i32 @s2n_print_stacktrace(ptr noundef %10765)
  %10767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10768 = trunc i8 %10767 to i1
  br i1 %10768, label %10769, label %10791

10769:                                            ; preds = %10762
  %10770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10771 = call i32 @fileno(ptr noundef %10770) #11
  %10772 = call i32 @isatty(i32 noundef %10771) #11
  %10773 = icmp ne i32 %10772, 0
  br i1 %10773, label %10774, label %10791

10774:                                            ; preds = %10769
  %10775 = load i32, ptr %256, align 4, !tbaa !5
  %10776 = call ptr @__errno_location() #12
  store i32 %10775, ptr %10776, align 4, !tbaa !5
  %10777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10778 = load i32, ptr @test_count, align 4, !tbaa !5
  %10779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10780 = load i32, ptr %10779, align 4, !tbaa !5
  %10781 = call ptr @s2n_strerror(i32 noundef %10780, ptr noundef @.str.24)
  %10782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10783 = load i32, ptr %10782, align 4, !tbaa !5
  %10784 = call ptr @s2n_strerror_debug(i32 noundef %10783, ptr noundef @.str.24)
  %10785 = call ptr @__errno_location() #12
  %10786 = load i32, ptr %10785, align 4, !tbaa !5
  %10787 = call ptr @strerror(i32 noundef %10786) #11
  %10788 = call ptr @__errno_location() #12
  %10789 = load i32, ptr %10788, align 4, !tbaa !5
  %10790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10777, ptr noundef @.str.22, i32 noundef %10778, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 787, ptr noundef %10781, ptr noundef %10784, ptr noundef %10787, i32 noundef %10789) #11
  br label %10808

10791:                                            ; preds = %10769, %10762
  %10792 = load i32, ptr %256, align 4, !tbaa !5
  %10793 = call ptr @__errno_location() #12
  store i32 %10792, ptr %10793, align 4, !tbaa !5
  %10794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10795 = load i32, ptr @test_count, align 4, !tbaa !5
  %10796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10797 = load i32, ptr %10796, align 4, !tbaa !5
  %10798 = call ptr @s2n_strerror(i32 noundef %10797, ptr noundef @.str.24)
  %10799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10800 = load i32, ptr %10799, align 4, !tbaa !5
  %10801 = call ptr @s2n_strerror_debug(i32 noundef %10800, ptr noundef @.str.24)
  %10802 = call ptr @__errno_location() #12
  %10803 = load i32, ptr %10802, align 4, !tbaa !5
  %10804 = call ptr @strerror(i32 noundef %10803) #11
  %10805 = call ptr @__errno_location() #12
  %10806 = load i32, ptr %10805, align 4, !tbaa !5
  %10807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10794, ptr noundef @.str.25, i32 noundef %10795, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 787, ptr noundef %10798, ptr noundef %10801, ptr noundef %10804, i32 noundef %10806) #11
  br label %10808

10808:                                            ; preds = %10791, %10774
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #11
  br label %10809

10809:                                            ; preds = %10808
  br label %10810

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

10811:                                            ; No predecessors!
  br label %10812

10812:                                            ; preds = %10811
  br label %10813

10813:                                            ; preds = %10812, %10751
  br label %10814

10814:                                            ; preds = %10813
  br label %10815

10815:                                            ; preds = %10814
  br label %10816

10816:                                            ; preds = %10815
  %10817 = load i32, ptr @test_count, align 4, !tbaa !5
  %10818 = add nsw i32 %10817, 1
  store i32 %10818, ptr @test_count, align 4, !tbaa !5
  %10819 = load ptr, ptr %246, align 8, !tbaa !9
  %10820 = call i32 @s2n_conn_set_handshake_type(ptr noundef %10819)
  %10821 = icmp eq i32 %10820, -1
  br i1 %10821, label %10822, label %10875

10822:                                            ; preds = %10816
  br label %10823

10823:                                            ; preds = %10822
  br label %10824

10824:                                            ; preds = %10823
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #11
  %10825 = call ptr @__errno_location() #12
  %10826 = load i32, ptr %10825, align 4, !tbaa !5
  store i32 %10826, ptr %257, align 4, !tbaa !5
  %10827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10828 = call i32 @s2n_print_stacktrace(ptr noundef %10827)
  %10829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10830 = trunc i8 %10829 to i1
  br i1 %10830, label %10831, label %10853

10831:                                            ; preds = %10824
  %10832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10833 = call i32 @fileno(ptr noundef %10832) #11
  %10834 = call i32 @isatty(i32 noundef %10833) #11
  %10835 = icmp ne i32 %10834, 0
  br i1 %10835, label %10836, label %10853

10836:                                            ; preds = %10831
  %10837 = load i32, ptr %257, align 4, !tbaa !5
  %10838 = call ptr @__errno_location() #12
  store i32 %10837, ptr %10838, align 4, !tbaa !5
  %10839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10840 = load i32, ptr @test_count, align 4, !tbaa !5
  %10841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10842 = load i32, ptr %10841, align 4, !tbaa !5
  %10843 = call ptr @s2n_strerror(i32 noundef %10842, ptr noundef @.str.24)
  %10844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10845 = load i32, ptr %10844, align 4, !tbaa !5
  %10846 = call ptr @s2n_strerror_debug(i32 noundef %10845, ptr noundef @.str.24)
  %10847 = call ptr @__errno_location() #12
  %10848 = load i32, ptr %10847, align 4, !tbaa !5
  %10849 = call ptr @strerror(i32 noundef %10848) #11
  %10850 = call ptr @__errno_location() #12
  %10851 = load i32, ptr %10850, align 4, !tbaa !5
  %10852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10839, ptr noundef @.str.22, i32 noundef %10840, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 788, ptr noundef %10843, ptr noundef %10846, ptr noundef %10849, i32 noundef %10851) #11
  br label %10870

10853:                                            ; preds = %10831, %10824
  %10854 = load i32, ptr %257, align 4, !tbaa !5
  %10855 = call ptr @__errno_location() #12
  store i32 %10854, ptr %10855, align 4, !tbaa !5
  %10856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10857 = load i32, ptr @test_count, align 4, !tbaa !5
  %10858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10859 = load i32, ptr %10858, align 4, !tbaa !5
  %10860 = call ptr @s2n_strerror(i32 noundef %10859, ptr noundef @.str.24)
  %10861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10862 = load i32, ptr %10861, align 4, !tbaa !5
  %10863 = call ptr @s2n_strerror_debug(i32 noundef %10862, ptr noundef @.str.24)
  %10864 = call ptr @__errno_location() #12
  %10865 = load i32, ptr %10864, align 4, !tbaa !5
  %10866 = call ptr @strerror(i32 noundef %10865) #11
  %10867 = call ptr @__errno_location() #12
  %10868 = load i32, ptr %10867, align 4, !tbaa !5
  %10869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10856, ptr noundef @.str.25, i32 noundef %10857, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 788, ptr noundef %10860, ptr noundef %10863, ptr noundef %10866, i32 noundef %10868) #11
  br label %10870

10870:                                            ; preds = %10853, %10836
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #11
  br label %10871

10871:                                            ; preds = %10870
  br label %10872

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

10873:                                            ; No predecessors!
  br label %10874

10874:                                            ; preds = %10873
  br label %10875

10875:                                            ; preds = %10874, %10816
  br label %10876

10876:                                            ; preds = %10875
  br label %10877

10877:                                            ; preds = %10876
  br label %10878

10878:                                            ; preds = %10877
  %10879 = load i32, ptr @test_count, align 4, !tbaa !5
  %10880 = add nsw i32 %10879, 1
  store i32 %10880, ptr @test_count, align 4, !tbaa !5
  %10881 = load ptr, ptr %246, align 8, !tbaa !9
  %10882 = getelementptr inbounds %struct.s2n_connection, ptr %10881, i32 0, i32 52
  %10883 = getelementptr inbounds %struct.s2n_handshake, ptr %10882, i32 0, i32 6
  %10884 = load i32, ptr %10883, align 4, !tbaa !60
  %10885 = icmp eq i32 %10884, 39
  br i1 %10885, label %10939, label %10886

10886:                                            ; preds = %10878
  br label %10887

10887:                                            ; preds = %10886
  br label %10888

10888:                                            ; preds = %10887
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #11
  %10889 = call ptr @__errno_location() #12
  %10890 = load i32, ptr %10889, align 4, !tbaa !5
  store i32 %10890, ptr %258, align 4, !tbaa !5
  %10891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10892 = call i32 @s2n_print_stacktrace(ptr noundef %10891)
  %10893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10894 = trunc i8 %10893 to i1
  br i1 %10894, label %10895, label %10917

10895:                                            ; preds = %10888
  %10896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10897 = call i32 @fileno(ptr noundef %10896) #11
  %10898 = call i32 @isatty(i32 noundef %10897) #11
  %10899 = icmp ne i32 %10898, 0
  br i1 %10899, label %10900, label %10917

10900:                                            ; preds = %10895
  %10901 = load i32, ptr %258, align 4, !tbaa !5
  %10902 = call ptr @__errno_location() #12
  store i32 %10901, ptr %10902, align 4, !tbaa !5
  %10903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10904 = load i32, ptr @test_count, align 4, !tbaa !5
  %10905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10906 = load i32, ptr %10905, align 4, !tbaa !5
  %10907 = call ptr @s2n_strerror(i32 noundef %10906, ptr noundef @.str.24)
  %10908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10909 = load i32, ptr %10908, align 4, !tbaa !5
  %10910 = call ptr @s2n_strerror_debug(i32 noundef %10909, ptr noundef @.str.24)
  %10911 = call ptr @__errno_location() #12
  %10912 = load i32, ptr %10911, align 4, !tbaa !5
  %10913 = call ptr @strerror(i32 noundef %10912) #11
  %10914 = call ptr @__errno_location() #12
  %10915 = load i32, ptr %10914, align 4, !tbaa !5
  %10916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10903, ptr noundef @.str.22, i32 noundef %10904, ptr noundef @.str.94, ptr noundef @.str.21, i32 noundef 789, ptr noundef %10907, ptr noundef %10910, ptr noundef %10913, i32 noundef %10915) #11
  br label %10934

10917:                                            ; preds = %10895, %10888
  %10918 = load i32, ptr %258, align 4, !tbaa !5
  %10919 = call ptr @__errno_location() #12
  store i32 %10918, ptr %10919, align 4, !tbaa !5
  %10920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10921 = load i32, ptr @test_count, align 4, !tbaa !5
  %10922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10923 = load i32, ptr %10922, align 4, !tbaa !5
  %10924 = call ptr @s2n_strerror(i32 noundef %10923, ptr noundef @.str.24)
  %10925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10926 = load i32, ptr %10925, align 4, !tbaa !5
  %10927 = call ptr @s2n_strerror_debug(i32 noundef %10926, ptr noundef @.str.24)
  %10928 = call ptr @__errno_location() #12
  %10929 = load i32, ptr %10928, align 4, !tbaa !5
  %10930 = call ptr @strerror(i32 noundef %10929) #11
  %10931 = call ptr @__errno_location() #12
  %10932 = load i32, ptr %10931, align 4, !tbaa !5
  %10933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10920, ptr noundef @.str.25, i32 noundef %10921, ptr noundef @.str.94, ptr noundef @.str.21, i32 noundef 789, ptr noundef %10924, ptr noundef %10927, ptr noundef %10930, i32 noundef %10932) #11
  br label %10934

10934:                                            ; preds = %10917, %10900
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #11
  br label %10935

10935:                                            ; preds = %10934
  br label %10936

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

10937:                                            ; No predecessors!
  br label %10938

10938:                                            ; preds = %10937
  br label %10939

10939:                                            ; preds = %10938, %10878
  br label %10940

10940:                                            ; preds = %10939
  br label %10941

10941:                                            ; preds = %10940
  br label %10942

10942:                                            ; preds = %10941
  %10943 = load i32, ptr @test_count, align 4, !tbaa !5
  %10944 = add nsw i32 %10943, 1
  store i32 %10944, ptr @test_count, align 4, !tbaa !5
  %10945 = load ptr, ptr %246, align 8, !tbaa !9
  %10946 = call i32 @s2n_connection_free(ptr noundef %10945)
  %10947 = icmp eq i32 %10946, -1
  br i1 %10947, label %10948, label %11001

10948:                                            ; preds = %10942
  br label %10949

10949:                                            ; preds = %10948
  br label %10950

10950:                                            ; preds = %10949
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #11
  %10951 = call ptr @__errno_location() #12
  %10952 = load i32, ptr %10951, align 4, !tbaa !5
  store i32 %10952, ptr %259, align 4, !tbaa !5
  %10953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10954 = call i32 @s2n_print_stacktrace(ptr noundef %10953)
  %10955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10956 = trunc i8 %10955 to i1
  br i1 %10956, label %10957, label %10979

10957:                                            ; preds = %10950
  %10958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10959 = call i32 @fileno(ptr noundef %10958) #11
  %10960 = call i32 @isatty(i32 noundef %10959) #11
  %10961 = icmp ne i32 %10960, 0
  br i1 %10961, label %10962, label %10979

10962:                                            ; preds = %10957
  %10963 = load i32, ptr %259, align 4, !tbaa !5
  %10964 = call ptr @__errno_location() #12
  store i32 %10963, ptr %10964, align 4, !tbaa !5
  %10965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10966 = load i32, ptr @test_count, align 4, !tbaa !5
  %10967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10968 = load i32, ptr %10967, align 4, !tbaa !5
  %10969 = call ptr @s2n_strerror(i32 noundef %10968, ptr noundef @.str.24)
  %10970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10971 = load i32, ptr %10970, align 4, !tbaa !5
  %10972 = call ptr @s2n_strerror_debug(i32 noundef %10971, ptr noundef @.str.24)
  %10973 = call ptr @__errno_location() #12
  %10974 = load i32, ptr %10973, align 4, !tbaa !5
  %10975 = call ptr @strerror(i32 noundef %10974) #11
  %10976 = call ptr @__errno_location() #12
  %10977 = load i32, ptr %10976, align 4, !tbaa !5
  %10978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10965, ptr noundef @.str.22, i32 noundef %10966, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 791, ptr noundef %10969, ptr noundef %10972, ptr noundef %10975, i32 noundef %10977) #11
  br label %10996

10979:                                            ; preds = %10957, %10950
  %10980 = load i32, ptr %259, align 4, !tbaa !5
  %10981 = call ptr @__errno_location() #12
  store i32 %10980, ptr %10981, align 4, !tbaa !5
  %10982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10983 = load i32, ptr @test_count, align 4, !tbaa !5
  %10984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10985 = load i32, ptr %10984, align 4, !tbaa !5
  %10986 = call ptr @s2n_strerror(i32 noundef %10985, ptr noundef @.str.24)
  %10987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10988 = load i32, ptr %10987, align 4, !tbaa !5
  %10989 = call ptr @s2n_strerror_debug(i32 noundef %10988, ptr noundef @.str.24)
  %10990 = call ptr @__errno_location() #12
  %10991 = load i32, ptr %10990, align 4, !tbaa !5
  %10992 = call ptr @strerror(i32 noundef %10991) #11
  %10993 = call ptr @__errno_location() #12
  %10994 = load i32, ptr %10993, align 4, !tbaa !5
  %10995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10982, ptr noundef @.str.25, i32 noundef %10983, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 791, ptr noundef %10986, ptr noundef %10989, ptr noundef %10992, i32 noundef %10994) #11
  br label %10996

10996:                                            ; preds = %10979, %10962
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #11
  br label %10997

10997:                                            ; preds = %10996
  br label %10998

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

10999:                                            ; No predecessors!
  br label %11000

11000:                                            ; preds = %10999
  br label %11001

11001:                                            ; preds = %11000, %10942
  br label %11002

11002:                                            ; preds = %11001
  br label %11003

11003:                                            ; preds = %11002
  call void @llvm.lifetime.end.p0(i64 8, ptr %246) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %260) #11
  %11004 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11004, ptr %260, align 8, !tbaa !9
  %11005 = load ptr, ptr %260, align 8, !tbaa !9
  %11006 = getelementptr inbounds %struct.s2n_connection, ptr %11005, i32 0, i32 23
  store i8 34, ptr %11006, align 4, !tbaa !34
  br label %11007

11007:                                            ; preds = %11003
  %11008 = load i32, ptr @test_count, align 4, !tbaa !5
  %11009 = add nsw i32 %11008, 1
  store i32 %11009, ptr @test_count, align 4, !tbaa !5
  %11010 = load ptr, ptr %260, align 8, !tbaa !9
  %11011 = call i32 @s2n_conn_choose_state_machine(ptr noundef %11010, i8 noundef zeroext 34)
  %11012 = getelementptr inbounds %struct.s2n_result, ptr %261, i32 0, i32 0
  store i32 %11011, ptr %11012, align 4
  %11013 = getelementptr inbounds %struct.s2n_result, ptr %261, i32 0, i32 0
  %11014 = load i32, ptr %11013, align 4
  %11015 = call zeroext i1 @s2n_result_is_ok(i32 %11014)
  br i1 %11015, label %11069, label %11016

11016:                                            ; preds = %11007
  br label %11017

11017:                                            ; preds = %11016
  br label %11018

11018:                                            ; preds = %11017
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #11
  %11019 = call ptr @__errno_location() #12
  %11020 = load i32, ptr %11019, align 4, !tbaa !5
  store i32 %11020, ptr %262, align 4, !tbaa !5
  %11021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11022 = call i32 @s2n_print_stacktrace(ptr noundef %11021)
  %11023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11024 = trunc i8 %11023 to i1
  br i1 %11024, label %11025, label %11047

11025:                                            ; preds = %11018
  %11026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11027 = call i32 @fileno(ptr noundef %11026) #11
  %11028 = call i32 @isatty(i32 noundef %11027) #11
  %11029 = icmp ne i32 %11028, 0
  br i1 %11029, label %11030, label %11047

11030:                                            ; preds = %11025
  %11031 = load i32, ptr %262, align 4, !tbaa !5
  %11032 = call ptr @__errno_location() #12
  store i32 %11031, ptr %11032, align 4, !tbaa !5
  %11033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11034 = load i32, ptr @test_count, align 4, !tbaa !5
  %11035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11036 = load i32, ptr %11035, align 4, !tbaa !5
  %11037 = call ptr @s2n_strerror(i32 noundef %11036, ptr noundef @.str.24)
  %11038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11039 = load i32, ptr %11038, align 4, !tbaa !5
  %11040 = call ptr @s2n_strerror_debug(i32 noundef %11039, ptr noundef @.str.24)
  %11041 = call ptr @__errno_location() #12
  %11042 = load i32, ptr %11041, align 4, !tbaa !5
  %11043 = call ptr @strerror(i32 noundef %11042) #11
  %11044 = call ptr @__errno_location() #12
  %11045 = load i32, ptr %11044, align 4, !tbaa !5
  %11046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11033, ptr noundef @.str.22, i32 noundef %11034, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 800, ptr noundef %11037, ptr noundef %11040, ptr noundef %11043, i32 noundef %11045) #11
  br label %11064

11047:                                            ; preds = %11025, %11018
  %11048 = load i32, ptr %262, align 4, !tbaa !5
  %11049 = call ptr @__errno_location() #12
  store i32 %11048, ptr %11049, align 4, !tbaa !5
  %11050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11051 = load i32, ptr @test_count, align 4, !tbaa !5
  %11052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11053 = load i32, ptr %11052, align 4, !tbaa !5
  %11054 = call ptr @s2n_strerror(i32 noundef %11053, ptr noundef @.str.24)
  %11055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11056 = load i32, ptr %11055, align 4, !tbaa !5
  %11057 = call ptr @s2n_strerror_debug(i32 noundef %11056, ptr noundef @.str.24)
  %11058 = call ptr @__errno_location() #12
  %11059 = load i32, ptr %11058, align 4, !tbaa !5
  %11060 = call ptr @strerror(i32 noundef %11059) #11
  %11061 = call ptr @__errno_location() #12
  %11062 = load i32, ptr %11061, align 4, !tbaa !5
  %11063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11050, ptr noundef @.str.25, i32 noundef %11051, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 800, ptr noundef %11054, ptr noundef %11057, ptr noundef %11060, i32 noundef %11062) #11
  br label %11064

11064:                                            ; preds = %11047, %11030
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #11
  br label %11065

11065:                                            ; preds = %11064
  br label %11066

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

11067:                                            ; No predecessors!
  br label %11068

11068:                                            ; preds = %11067
  br label %11069

11069:                                            ; preds = %11068, %11007
  br label %11070

11070:                                            ; preds = %11069
  br label %11071

11071:                                            ; preds = %11070
  %11072 = load ptr, ptr %260, align 8, !tbaa !9
  %11073 = getelementptr inbounds %struct.s2n_connection, ptr %11072, i32 0, i32 52
  %11074 = getelementptr inbounds %struct.s2n_handshake, ptr %11073, i32 0, i32 6
  store i32 16, ptr %11074, align 4, !tbaa !60
  br label %11075

11075:                                            ; preds = %11071
  %11076 = load i32, ptr @test_count, align 4, !tbaa !5
  %11077 = add nsw i32 %11076, 1
  store i32 %11077, ptr @test_count, align 4, !tbaa !5
  %11078 = load ptr, ptr %260, align 8, !tbaa !9
  %11079 = call i32 @s2n_conn_set_handshake_type(ptr noundef %11078)
  %11080 = icmp eq i32 %11079, -1
  br i1 %11080, label %11081, label %11134

11081:                                            ; preds = %11075
  br label %11082

11082:                                            ; preds = %11081
  br label %11083

11083:                                            ; preds = %11082
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #11
  %11084 = call ptr @__errno_location() #12
  %11085 = load i32, ptr %11084, align 4, !tbaa !5
  store i32 %11085, ptr %263, align 4, !tbaa !5
  %11086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11087 = call i32 @s2n_print_stacktrace(ptr noundef %11086)
  %11088 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11089 = trunc i8 %11088 to i1
  br i1 %11089, label %11090, label %11112

11090:                                            ; preds = %11083
  %11091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11092 = call i32 @fileno(ptr noundef %11091) #11
  %11093 = call i32 @isatty(i32 noundef %11092) #11
  %11094 = icmp ne i32 %11093, 0
  br i1 %11094, label %11095, label %11112

11095:                                            ; preds = %11090
  %11096 = load i32, ptr %263, align 4, !tbaa !5
  %11097 = call ptr @__errno_location() #12
  store i32 %11096, ptr %11097, align 4, !tbaa !5
  %11098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11099 = load i32, ptr @test_count, align 4, !tbaa !5
  %11100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11101 = load i32, ptr %11100, align 4, !tbaa !5
  %11102 = call ptr @s2n_strerror(i32 noundef %11101, ptr noundef @.str.24)
  %11103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11104 = load i32, ptr %11103, align 4, !tbaa !5
  %11105 = call ptr @s2n_strerror_debug(i32 noundef %11104, ptr noundef @.str.24)
  %11106 = call ptr @__errno_location() #12
  %11107 = load i32, ptr %11106, align 4, !tbaa !5
  %11108 = call ptr @strerror(i32 noundef %11107) #11
  %11109 = call ptr @__errno_location() #12
  %11110 = load i32, ptr %11109, align 4, !tbaa !5
  %11111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11098, ptr noundef @.str.22, i32 noundef %11099, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 802, ptr noundef %11102, ptr noundef %11105, ptr noundef %11108, i32 noundef %11110) #11
  br label %11129

11112:                                            ; preds = %11090, %11083
  %11113 = load i32, ptr %263, align 4, !tbaa !5
  %11114 = call ptr @__errno_location() #12
  store i32 %11113, ptr %11114, align 4, !tbaa !5
  %11115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11116 = load i32, ptr @test_count, align 4, !tbaa !5
  %11117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11118 = load i32, ptr %11117, align 4, !tbaa !5
  %11119 = call ptr @s2n_strerror(i32 noundef %11118, ptr noundef @.str.24)
  %11120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11121 = load i32, ptr %11120, align 4, !tbaa !5
  %11122 = call ptr @s2n_strerror_debug(i32 noundef %11121, ptr noundef @.str.24)
  %11123 = call ptr @__errno_location() #12
  %11124 = load i32, ptr %11123, align 4, !tbaa !5
  %11125 = call ptr @strerror(i32 noundef %11124) #11
  %11126 = call ptr @__errno_location() #12
  %11127 = load i32, ptr %11126, align 4, !tbaa !5
  %11128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11115, ptr noundef @.str.25, i32 noundef %11116, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 802, ptr noundef %11119, ptr noundef %11122, ptr noundef %11125, i32 noundef %11127) #11
  br label %11129

11129:                                            ; preds = %11112, %11095
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #11
  br label %11130

11130:                                            ; preds = %11129
  br label %11131

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

11132:                                            ; No predecessors!
  br label %11133

11133:                                            ; preds = %11132
  br label %11134

11134:                                            ; preds = %11133, %11075
  br label %11135

11135:                                            ; preds = %11134
  br label %11136

11136:                                            ; preds = %11135
  br label %11137

11137:                                            ; preds = %11136
  %11138 = load i32, ptr @test_count, align 4, !tbaa !5
  %11139 = add nsw i32 %11138, 1
  store i32 %11139, ptr @test_count, align 4, !tbaa !5
  %11140 = load ptr, ptr %260, align 8, !tbaa !9
  %11141 = getelementptr inbounds %struct.s2n_connection, ptr %11140, i32 0, i32 52
  %11142 = getelementptr inbounds %struct.s2n_handshake, ptr %11141, i32 0, i32 6
  %11143 = load i32, ptr %11142, align 4, !tbaa !60
  %11144 = and i32 %11143, 16
  %11145 = icmp ne i32 %11144, 0
  br i1 %11145, label %11199, label %11146

11146:                                            ; preds = %11137
  br label %11147

11147:                                            ; preds = %11146
  br label %11148

11148:                                            ; preds = %11147
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #11
  %11149 = call ptr @__errno_location() #12
  %11150 = load i32, ptr %11149, align 4, !tbaa !5
  store i32 %11150, ptr %264, align 4, !tbaa !5
  %11151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11152 = call i32 @s2n_print_stacktrace(ptr noundef %11151)
  %11153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11154 = trunc i8 %11153 to i1
  br i1 %11154, label %11155, label %11177

11155:                                            ; preds = %11148
  %11156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11157 = call i32 @fileno(ptr noundef %11156) #11
  %11158 = call i32 @isatty(i32 noundef %11157) #11
  %11159 = icmp ne i32 %11158, 0
  br i1 %11159, label %11160, label %11177

11160:                                            ; preds = %11155
  %11161 = load i32, ptr %264, align 4, !tbaa !5
  %11162 = call ptr @__errno_location() #12
  store i32 %11161, ptr %11162, align 4, !tbaa !5
  %11163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11164 = load i32, ptr @test_count, align 4, !tbaa !5
  %11165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11166 = load i32, ptr %11165, align 4, !tbaa !5
  %11167 = call ptr @s2n_strerror(i32 noundef %11166, ptr noundef @.str.24)
  %11168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11169 = load i32, ptr %11168, align 4, !tbaa !5
  %11170 = call ptr @s2n_strerror_debug(i32 noundef %11169, ptr noundef @.str.24)
  %11171 = call ptr @__errno_location() #12
  %11172 = load i32, ptr %11171, align 4, !tbaa !5
  %11173 = call ptr @strerror(i32 noundef %11172) #11
  %11174 = call ptr @__errno_location() #12
  %11175 = load i32, ptr %11174, align 4, !tbaa !5
  %11176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11163, ptr noundef @.str.22, i32 noundef %11164, ptr noundef @.str.95, ptr noundef @.str.21, i32 noundef 803, ptr noundef %11167, ptr noundef %11170, ptr noundef %11173, i32 noundef %11175) #11
  br label %11194

11177:                                            ; preds = %11155, %11148
  %11178 = load i32, ptr %264, align 4, !tbaa !5
  %11179 = call ptr @__errno_location() #12
  store i32 %11178, ptr %11179, align 4, !tbaa !5
  %11180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11181 = load i32, ptr @test_count, align 4, !tbaa !5
  %11182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11183 = load i32, ptr %11182, align 4, !tbaa !5
  %11184 = call ptr @s2n_strerror(i32 noundef %11183, ptr noundef @.str.24)
  %11185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11186 = load i32, ptr %11185, align 4, !tbaa !5
  %11187 = call ptr @s2n_strerror_debug(i32 noundef %11186, ptr noundef @.str.24)
  %11188 = call ptr @__errno_location() #12
  %11189 = load i32, ptr %11188, align 4, !tbaa !5
  %11190 = call ptr @strerror(i32 noundef %11189) #11
  %11191 = call ptr @__errno_location() #12
  %11192 = load i32, ptr %11191, align 4, !tbaa !5
  %11193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11180, ptr noundef @.str.25, i32 noundef %11181, ptr noundef @.str.95, ptr noundef @.str.21, i32 noundef 803, ptr noundef %11184, ptr noundef %11187, ptr noundef %11190, i32 noundef %11192) #11
  br label %11194

11194:                                            ; preds = %11177, %11160
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #11
  br label %11195

11195:                                            ; preds = %11194
  br label %11196

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

11197:                                            ; No predecessors!
  br label %11198

11198:                                            ; preds = %11197
  br label %11199

11199:                                            ; preds = %11198, %11137
  br label %11200

11200:                                            ; preds = %11199
  br label %11201

11201:                                            ; preds = %11200
  %11202 = load ptr, ptr %260, align 8, !tbaa !9
  %11203 = getelementptr inbounds %struct.s2n_connection, ptr %11202, i32 0, i32 52
  %11204 = getelementptr inbounds %struct.s2n_handshake, ptr %11203, i32 0, i32 12
  store i32 0, ptr %11204, align 4, !tbaa !59
  %11205 = load ptr, ptr %260, align 8, !tbaa !9
  %11206 = getelementptr inbounds %struct.s2n_connection, ptr %11205, i32 0, i32 23
  store i8 33, ptr %11206, align 4, !tbaa !34
  br label %11207

11207:                                            ; preds = %11201
  %11208 = load i32, ptr @test_count, align 4, !tbaa !5
  %11209 = add nsw i32 %11208, 1
  store i32 %11209, ptr @test_count, align 4, !tbaa !5
  %11210 = load ptr, ptr %260, align 8, !tbaa !9
  %11211 = call i32 @s2n_conn_choose_state_machine(ptr noundef %11210, i8 noundef zeroext 33)
  %11212 = getelementptr inbounds %struct.s2n_result, ptr %265, i32 0, i32 0
  store i32 %11211, ptr %11212, align 4
  %11213 = getelementptr inbounds %struct.s2n_result, ptr %265, i32 0, i32 0
  %11214 = load i32, ptr %11213, align 4
  %11215 = call zeroext i1 @s2n_result_is_ok(i32 %11214)
  br i1 %11215, label %11269, label %11216

11216:                                            ; preds = %11207
  br label %11217

11217:                                            ; preds = %11216
  br label %11218

11218:                                            ; preds = %11217
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #11
  %11219 = call ptr @__errno_location() #12
  %11220 = load i32, ptr %11219, align 4, !tbaa !5
  store i32 %11220, ptr %266, align 4, !tbaa !5
  %11221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11222 = call i32 @s2n_print_stacktrace(ptr noundef %11221)
  %11223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11224 = trunc i8 %11223 to i1
  br i1 %11224, label %11225, label %11247

11225:                                            ; preds = %11218
  %11226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11227 = call i32 @fileno(ptr noundef %11226) #11
  %11228 = call i32 @isatty(i32 noundef %11227) #11
  %11229 = icmp ne i32 %11228, 0
  br i1 %11229, label %11230, label %11247

11230:                                            ; preds = %11225
  %11231 = load i32, ptr %266, align 4, !tbaa !5
  %11232 = call ptr @__errno_location() #12
  store i32 %11231, ptr %11232, align 4, !tbaa !5
  %11233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11234 = load i32, ptr @test_count, align 4, !tbaa !5
  %11235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11236 = load i32, ptr %11235, align 4, !tbaa !5
  %11237 = call ptr @s2n_strerror(i32 noundef %11236, ptr noundef @.str.24)
  %11238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11239 = load i32, ptr %11238, align 4, !tbaa !5
  %11240 = call ptr @s2n_strerror_debug(i32 noundef %11239, ptr noundef @.str.24)
  %11241 = call ptr @__errno_location() #12
  %11242 = load i32, ptr %11241, align 4, !tbaa !5
  %11243 = call ptr @strerror(i32 noundef %11242) #11
  %11244 = call ptr @__errno_location() #12
  %11245 = load i32, ptr %11244, align 4, !tbaa !5
  %11246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11233, ptr noundef @.str.22, i32 noundef %11234, ptr noundef @.str.96, ptr noundef @.str.21, i32 noundef 810, ptr noundef %11237, ptr noundef %11240, ptr noundef %11243, i32 noundef %11245) #11
  br label %11264

11247:                                            ; preds = %11225, %11218
  %11248 = load i32, ptr %266, align 4, !tbaa !5
  %11249 = call ptr @__errno_location() #12
  store i32 %11248, ptr %11249, align 4, !tbaa !5
  %11250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11251 = load i32, ptr @test_count, align 4, !tbaa !5
  %11252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11253 = load i32, ptr %11252, align 4, !tbaa !5
  %11254 = call ptr @s2n_strerror(i32 noundef %11253, ptr noundef @.str.24)
  %11255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11256 = load i32, ptr %11255, align 4, !tbaa !5
  %11257 = call ptr @s2n_strerror_debug(i32 noundef %11256, ptr noundef @.str.24)
  %11258 = call ptr @__errno_location() #12
  %11259 = load i32, ptr %11258, align 4, !tbaa !5
  %11260 = call ptr @strerror(i32 noundef %11259) #11
  %11261 = call ptr @__errno_location() #12
  %11262 = load i32, ptr %11261, align 4, !tbaa !5
  %11263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11250, ptr noundef @.str.25, i32 noundef %11251, ptr noundef @.str.96, ptr noundef @.str.21, i32 noundef 810, ptr noundef %11254, ptr noundef %11257, ptr noundef %11260, i32 noundef %11262) #11
  br label %11264

11264:                                            ; preds = %11247, %11230
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #11
  br label %11265

11265:                                            ; preds = %11264
  br label %11266

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

11267:                                            ; No predecessors!
  br label %11268

11268:                                            ; preds = %11267
  br label %11269

11269:                                            ; preds = %11268, %11207
  br label %11270

11270:                                            ; preds = %11269
  br label %11271

11271:                                            ; preds = %11270
  %11272 = load ptr, ptr %260, align 8, !tbaa !9
  %11273 = getelementptr inbounds %struct.s2n_connection, ptr %11272, i32 0, i32 52
  %11274 = getelementptr inbounds %struct.s2n_handshake, ptr %11273, i32 0, i32 6
  store i32 16, ptr %11274, align 4, !tbaa !60
  br label %11275

11275:                                            ; preds = %11271
  %11276 = load i32, ptr @test_count, align 4, !tbaa !5
  %11277 = add nsw i32 %11276, 1
  store i32 %11277, ptr @test_count, align 4, !tbaa !5
  %11278 = load ptr, ptr %260, align 8, !tbaa !9
  %11279 = call i32 @s2n_conn_set_handshake_type(ptr noundef %11278)
  %11280 = icmp eq i32 %11279, -1
  br i1 %11280, label %11281, label %11334

11281:                                            ; preds = %11275
  br label %11282

11282:                                            ; preds = %11281
  br label %11283

11283:                                            ; preds = %11282
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #11
  %11284 = call ptr @__errno_location() #12
  %11285 = load i32, ptr %11284, align 4, !tbaa !5
  store i32 %11285, ptr %267, align 4, !tbaa !5
  %11286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11287 = call i32 @s2n_print_stacktrace(ptr noundef %11286)
  %11288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11289 = trunc i8 %11288 to i1
  br i1 %11289, label %11290, label %11312

11290:                                            ; preds = %11283
  %11291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11292 = call i32 @fileno(ptr noundef %11291) #11
  %11293 = call i32 @isatty(i32 noundef %11292) #11
  %11294 = icmp ne i32 %11293, 0
  br i1 %11294, label %11295, label %11312

11295:                                            ; preds = %11290
  %11296 = load i32, ptr %267, align 4, !tbaa !5
  %11297 = call ptr @__errno_location() #12
  store i32 %11296, ptr %11297, align 4, !tbaa !5
  %11298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11299 = load i32, ptr @test_count, align 4, !tbaa !5
  %11300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11301 = load i32, ptr %11300, align 4, !tbaa !5
  %11302 = call ptr @s2n_strerror(i32 noundef %11301, ptr noundef @.str.24)
  %11303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11304 = load i32, ptr %11303, align 4, !tbaa !5
  %11305 = call ptr @s2n_strerror_debug(i32 noundef %11304, ptr noundef @.str.24)
  %11306 = call ptr @__errno_location() #12
  %11307 = load i32, ptr %11306, align 4, !tbaa !5
  %11308 = call ptr @strerror(i32 noundef %11307) #11
  %11309 = call ptr @__errno_location() #12
  %11310 = load i32, ptr %11309, align 4, !tbaa !5
  %11311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11298, ptr noundef @.str.22, i32 noundef %11299, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 812, ptr noundef %11302, ptr noundef %11305, ptr noundef %11308, i32 noundef %11310) #11
  br label %11329

11312:                                            ; preds = %11290, %11283
  %11313 = load i32, ptr %267, align 4, !tbaa !5
  %11314 = call ptr @__errno_location() #12
  store i32 %11313, ptr %11314, align 4, !tbaa !5
  %11315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11316 = load i32, ptr @test_count, align 4, !tbaa !5
  %11317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11318 = load i32, ptr %11317, align 4, !tbaa !5
  %11319 = call ptr @s2n_strerror(i32 noundef %11318, ptr noundef @.str.24)
  %11320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11321 = load i32, ptr %11320, align 4, !tbaa !5
  %11322 = call ptr @s2n_strerror_debug(i32 noundef %11321, ptr noundef @.str.24)
  %11323 = call ptr @__errno_location() #12
  %11324 = load i32, ptr %11323, align 4, !tbaa !5
  %11325 = call ptr @strerror(i32 noundef %11324) #11
  %11326 = call ptr @__errno_location() #12
  %11327 = load i32, ptr %11326, align 4, !tbaa !5
  %11328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11315, ptr noundef @.str.25, i32 noundef %11316, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 812, ptr noundef %11319, ptr noundef %11322, ptr noundef %11325, i32 noundef %11327) #11
  br label %11329

11329:                                            ; preds = %11312, %11295
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #11
  br label %11330

11330:                                            ; preds = %11329
  br label %11331

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

11332:                                            ; No predecessors!
  br label %11333

11333:                                            ; preds = %11332
  br label %11334

11334:                                            ; preds = %11333, %11275
  br label %11335

11335:                                            ; preds = %11334
  br label %11336

11336:                                            ; preds = %11335
  br label %11337

11337:                                            ; preds = %11336
  %11338 = load i32, ptr @test_count, align 4, !tbaa !5
  %11339 = add nsw i32 %11338, 1
  store i32 %11339, ptr @test_count, align 4, !tbaa !5
  %11340 = load ptr, ptr %260, align 8, !tbaa !9
  %11341 = getelementptr inbounds %struct.s2n_connection, ptr %11340, i32 0, i32 52
  %11342 = getelementptr inbounds %struct.s2n_handshake, ptr %11341, i32 0, i32 6
  %11343 = load i32, ptr %11342, align 4, !tbaa !60
  %11344 = and i32 %11343, 16
  %11345 = icmp ne i32 %11344, 0
  br i1 %11345, label %11346, label %11399

11346:                                            ; preds = %11337
  br label %11347

11347:                                            ; preds = %11346
  br label %11348

11348:                                            ; preds = %11347
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #11
  %11349 = call ptr @__errno_location() #12
  %11350 = load i32, ptr %11349, align 4, !tbaa !5
  store i32 %11350, ptr %268, align 4, !tbaa !5
  %11351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11352 = call i32 @s2n_print_stacktrace(ptr noundef %11351)
  %11353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11354 = trunc i8 %11353 to i1
  br i1 %11354, label %11355, label %11377

11355:                                            ; preds = %11348
  %11356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11357 = call i32 @fileno(ptr noundef %11356) #11
  %11358 = call i32 @isatty(i32 noundef %11357) #11
  %11359 = icmp ne i32 %11358, 0
  br i1 %11359, label %11360, label %11377

11360:                                            ; preds = %11355
  %11361 = load i32, ptr %268, align 4, !tbaa !5
  %11362 = call ptr @__errno_location() #12
  store i32 %11361, ptr %11362, align 4, !tbaa !5
  %11363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11364 = load i32, ptr @test_count, align 4, !tbaa !5
  %11365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11366 = load i32, ptr %11365, align 4, !tbaa !5
  %11367 = call ptr @s2n_strerror(i32 noundef %11366, ptr noundef @.str.24)
  %11368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11369 = load i32, ptr %11368, align 4, !tbaa !5
  %11370 = call ptr @s2n_strerror_debug(i32 noundef %11369, ptr noundef @.str.24)
  %11371 = call ptr @__errno_location() #12
  %11372 = load i32, ptr %11371, align 4, !tbaa !5
  %11373 = call ptr @strerror(i32 noundef %11372) #11
  %11374 = call ptr @__errno_location() #12
  %11375 = load i32, ptr %11374, align 4, !tbaa !5
  %11376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11363, ptr noundef @.str.22, i32 noundef %11364, ptr noundef @.str.97, ptr noundef @.str.21, i32 noundef 813, ptr noundef %11367, ptr noundef %11370, ptr noundef %11373, i32 noundef %11375) #11
  br label %11394

11377:                                            ; preds = %11355, %11348
  %11378 = load i32, ptr %268, align 4, !tbaa !5
  %11379 = call ptr @__errno_location() #12
  store i32 %11378, ptr %11379, align 4, !tbaa !5
  %11380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11381 = load i32, ptr @test_count, align 4, !tbaa !5
  %11382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11383 = load i32, ptr %11382, align 4, !tbaa !5
  %11384 = call ptr @s2n_strerror(i32 noundef %11383, ptr noundef @.str.24)
  %11385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11386 = load i32, ptr %11385, align 4, !tbaa !5
  %11387 = call ptr @s2n_strerror_debug(i32 noundef %11386, ptr noundef @.str.24)
  %11388 = call ptr @__errno_location() #12
  %11389 = load i32, ptr %11388, align 4, !tbaa !5
  %11390 = call ptr @strerror(i32 noundef %11389) #11
  %11391 = call ptr @__errno_location() #12
  %11392 = load i32, ptr %11391, align 4, !tbaa !5
  %11393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11380, ptr noundef @.str.25, i32 noundef %11381, ptr noundef @.str.97, ptr noundef @.str.21, i32 noundef 813, ptr noundef %11384, ptr noundef %11387, ptr noundef %11390, i32 noundef %11392) #11
  br label %11394

11394:                                            ; preds = %11377, %11360
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #11
  br label %11395

11395:                                            ; preds = %11394
  br label %11396

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

11397:                                            ; No predecessors!
  br label %11398

11398:                                            ; preds = %11397
  br label %11399

11399:                                            ; preds = %11398, %11337
  br label %11400

11400:                                            ; preds = %11399
  br label %11401

11401:                                            ; preds = %11400
  br label %11402

11402:                                            ; preds = %11401
  %11403 = load i32, ptr @test_count, align 4, !tbaa !5
  %11404 = add nsw i32 %11403, 1
  store i32 %11404, ptr @test_count, align 4, !tbaa !5
  %11405 = load ptr, ptr %260, align 8, !tbaa !9
  %11406 = call i32 @s2n_connection_free(ptr noundef %11405)
  %11407 = icmp eq i32 %11406, -1
  br i1 %11407, label %11408, label %11461

11408:                                            ; preds = %11402
  br label %11409

11409:                                            ; preds = %11408
  br label %11410

11410:                                            ; preds = %11409
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #11
  %11411 = call ptr @__errno_location() #12
  %11412 = load i32, ptr %11411, align 4, !tbaa !5
  store i32 %11412, ptr %269, align 4, !tbaa !5
  %11413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11414 = call i32 @s2n_print_stacktrace(ptr noundef %11413)
  %11415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11416 = trunc i8 %11415 to i1
  br i1 %11416, label %11417, label %11439

11417:                                            ; preds = %11410
  %11418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11419 = call i32 @fileno(ptr noundef %11418) #11
  %11420 = call i32 @isatty(i32 noundef %11419) #11
  %11421 = icmp ne i32 %11420, 0
  br i1 %11421, label %11422, label %11439

11422:                                            ; preds = %11417
  %11423 = load i32, ptr %269, align 4, !tbaa !5
  %11424 = call ptr @__errno_location() #12
  store i32 %11423, ptr %11424, align 4, !tbaa !5
  %11425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11426 = load i32, ptr @test_count, align 4, !tbaa !5
  %11427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11428 = load i32, ptr %11427, align 4, !tbaa !5
  %11429 = call ptr @s2n_strerror(i32 noundef %11428, ptr noundef @.str.24)
  %11430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11431 = load i32, ptr %11430, align 4, !tbaa !5
  %11432 = call ptr @s2n_strerror_debug(i32 noundef %11431, ptr noundef @.str.24)
  %11433 = call ptr @__errno_location() #12
  %11434 = load i32, ptr %11433, align 4, !tbaa !5
  %11435 = call ptr @strerror(i32 noundef %11434) #11
  %11436 = call ptr @__errno_location() #12
  %11437 = load i32, ptr %11436, align 4, !tbaa !5
  %11438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11425, ptr noundef @.str.22, i32 noundef %11426, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 815, ptr noundef %11429, ptr noundef %11432, ptr noundef %11435, i32 noundef %11437) #11
  br label %11456

11439:                                            ; preds = %11417, %11410
  %11440 = load i32, ptr %269, align 4, !tbaa !5
  %11441 = call ptr @__errno_location() #12
  store i32 %11440, ptr %11441, align 4, !tbaa !5
  %11442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11443 = load i32, ptr @test_count, align 4, !tbaa !5
  %11444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11445 = load i32, ptr %11444, align 4, !tbaa !5
  %11446 = call ptr @s2n_strerror(i32 noundef %11445, ptr noundef @.str.24)
  %11447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11448 = load i32, ptr %11447, align 4, !tbaa !5
  %11449 = call ptr @s2n_strerror_debug(i32 noundef %11448, ptr noundef @.str.24)
  %11450 = call ptr @__errno_location() #12
  %11451 = load i32, ptr %11450, align 4, !tbaa !5
  %11452 = call ptr @strerror(i32 noundef %11451) #11
  %11453 = call ptr @__errno_location() #12
  %11454 = load i32, ptr %11453, align 4, !tbaa !5
  %11455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11442, ptr noundef @.str.25, i32 noundef %11443, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 815, ptr noundef %11446, ptr noundef %11449, ptr noundef %11452, i32 noundef %11454) #11
  br label %11456

11456:                                            ; preds = %11439, %11422
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #11
  br label %11457

11457:                                            ; preds = %11456
  br label %11458

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

11459:                                            ; No predecessors!
  br label %11460

11460:                                            ; preds = %11459
  br label %11461

11461:                                            ; preds = %11460, %11402
  br label %11462

11462:                                            ; preds = %11461
  br label %11463

11463:                                            ; preds = %11462
  call void @llvm.lifetime.end.p0(i64 8, ptr %260) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %270) #11
  %11464 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11464, ptr %270, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #11
  store ptr null, ptr %271, align 8, !tbaa !9
  %11465 = load ptr, ptr %270, align 8, !tbaa !9
  %11466 = getelementptr inbounds %struct.s2n_connection, ptr %11465, i32 0, i32 23
  store i8 34, ptr %11466, align 4, !tbaa !34
  br label %11467

11467:                                            ; preds = %11463
  %11468 = load i32, ptr @test_count, align 4, !tbaa !5
  %11469 = add nsw i32 %11468, 1
  store i32 %11469, ptr @test_count, align 4, !tbaa !5
  %11470 = load ptr, ptr %270, align 8, !tbaa !9
  %11471 = call i32 @s2n_conn_choose_state_machine(ptr noundef %11470, i8 noundef zeroext 34)
  %11472 = getelementptr inbounds %struct.s2n_result, ptr %272, i32 0, i32 0
  store i32 %11471, ptr %11472, align 4
  %11473 = getelementptr inbounds %struct.s2n_result, ptr %272, i32 0, i32 0
  %11474 = load i32, ptr %11473, align 4
  %11475 = call zeroext i1 @s2n_result_is_ok(i32 %11474)
  br i1 %11475, label %11529, label %11476

11476:                                            ; preds = %11467
  br label %11477

11477:                                            ; preds = %11476
  br label %11478

11478:                                            ; preds = %11477
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #11
  %11479 = call ptr @__errno_location() #12
  %11480 = load i32, ptr %11479, align 4, !tbaa !5
  store i32 %11480, ptr %273, align 4, !tbaa !5
  %11481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11482 = call i32 @s2n_print_stacktrace(ptr noundef %11481)
  %11483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11484 = trunc i8 %11483 to i1
  br i1 %11484, label %11485, label %11507

11485:                                            ; preds = %11478
  %11486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11487 = call i32 @fileno(ptr noundef %11486) #11
  %11488 = call i32 @isatty(i32 noundef %11487) #11
  %11489 = icmp ne i32 %11488, 0
  br i1 %11489, label %11490, label %11507

11490:                                            ; preds = %11485
  %11491 = load i32, ptr %273, align 4, !tbaa !5
  %11492 = call ptr @__errno_location() #12
  store i32 %11491, ptr %11492, align 4, !tbaa !5
  %11493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11494 = load i32, ptr @test_count, align 4, !tbaa !5
  %11495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11496 = load i32, ptr %11495, align 4, !tbaa !5
  %11497 = call ptr @s2n_strerror(i32 noundef %11496, ptr noundef @.str.24)
  %11498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11499 = load i32, ptr %11498, align 4, !tbaa !5
  %11500 = call ptr @s2n_strerror_debug(i32 noundef %11499, ptr noundef @.str.24)
  %11501 = call ptr @__errno_location() #12
  %11502 = load i32, ptr %11501, align 4, !tbaa !5
  %11503 = call ptr @strerror(i32 noundef %11502) #11
  %11504 = call ptr @__errno_location() #12
  %11505 = load i32, ptr %11504, align 4, !tbaa !5
  %11506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11493, ptr noundef @.str.22, i32 noundef %11494, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 824, ptr noundef %11497, ptr noundef %11500, ptr noundef %11503, i32 noundef %11505) #11
  br label %11524

11507:                                            ; preds = %11485, %11478
  %11508 = load i32, ptr %273, align 4, !tbaa !5
  %11509 = call ptr @__errno_location() #12
  store i32 %11508, ptr %11509, align 4, !tbaa !5
  %11510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11511 = load i32, ptr @test_count, align 4, !tbaa !5
  %11512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11513 = load i32, ptr %11512, align 4, !tbaa !5
  %11514 = call ptr @s2n_strerror(i32 noundef %11513, ptr noundef @.str.24)
  %11515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11516 = load i32, ptr %11515, align 4, !tbaa !5
  %11517 = call ptr @s2n_strerror_debug(i32 noundef %11516, ptr noundef @.str.24)
  %11518 = call ptr @__errno_location() #12
  %11519 = load i32, ptr %11518, align 4, !tbaa !5
  %11520 = call ptr @strerror(i32 noundef %11519) #11
  %11521 = call ptr @__errno_location() #12
  %11522 = load i32, ptr %11521, align 4, !tbaa !5
  %11523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11510, ptr noundef @.str.25, i32 noundef %11511, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 824, ptr noundef %11514, ptr noundef %11517, ptr noundef %11520, i32 noundef %11522) #11
  br label %11524

11524:                                            ; preds = %11507, %11490
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #11
  br label %11525

11525:                                            ; preds = %11524
  br label %11526

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

11527:                                            ; No predecessors!
  br label %11528

11528:                                            ; preds = %11527
  br label %11529

11529:                                            ; preds = %11528, %11467
  br label %11530

11530:                                            ; preds = %11529
  br label %11531

11531:                                            ; preds = %11530
  br label %11532

11532:                                            ; preds = %11531
  %11533 = load i32, ptr @test_count, align 4, !tbaa !5
  %11534 = add nsw i32 %11533, 1
  store i32 %11534, ptr @test_count, align 4, !tbaa !5
  %11535 = load ptr, ptr %270, align 8, !tbaa !9
  %11536 = getelementptr inbounds %struct.s2n_connection, ptr %11535, i32 0, i32 33
  %11537 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %11536, i32 0, i32 1
  %11538 = call i32 @s2n_array_pushback(ptr noundef %11537, ptr noundef %271)
  %11539 = getelementptr inbounds %struct.s2n_result, ptr %274, i32 0, i32 0
  store i32 %11538, ptr %11539, align 4
  %11540 = getelementptr inbounds %struct.s2n_result, ptr %274, i32 0, i32 0
  %11541 = load i32, ptr %11540, align 4
  %11542 = call zeroext i1 @s2n_result_is_ok(i32 %11541)
  br i1 %11542, label %11596, label %11543

11543:                                            ; preds = %11532
  br label %11544

11544:                                            ; preds = %11543
  br label %11545

11545:                                            ; preds = %11544
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #11
  %11546 = call ptr @__errno_location() #12
  %11547 = load i32, ptr %11546, align 4, !tbaa !5
  store i32 %11547, ptr %275, align 4, !tbaa !5
  %11548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11549 = call i32 @s2n_print_stacktrace(ptr noundef %11548)
  %11550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11551 = trunc i8 %11550 to i1
  br i1 %11551, label %11552, label %11574

11552:                                            ; preds = %11545
  %11553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11554 = call i32 @fileno(ptr noundef %11553) #11
  %11555 = call i32 @isatty(i32 noundef %11554) #11
  %11556 = icmp ne i32 %11555, 0
  br i1 %11556, label %11557, label %11574

11557:                                            ; preds = %11552
  %11558 = load i32, ptr %275, align 4, !tbaa !5
  %11559 = call ptr @__errno_location() #12
  store i32 %11558, ptr %11559, align 4, !tbaa !5
  %11560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11561 = load i32, ptr @test_count, align 4, !tbaa !5
  %11562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11563 = load i32, ptr %11562, align 4, !tbaa !5
  %11564 = call ptr @s2n_strerror(i32 noundef %11563, ptr noundef @.str.24)
  %11565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11566 = load i32, ptr %11565, align 4, !tbaa !5
  %11567 = call ptr @s2n_strerror_debug(i32 noundef %11566, ptr noundef @.str.24)
  %11568 = call ptr @__errno_location() #12
  %11569 = load i32, ptr %11568, align 4, !tbaa !5
  %11570 = call ptr @strerror(i32 noundef %11569) #11
  %11571 = call ptr @__errno_location() #12
  %11572 = load i32, ptr %11571, align 4, !tbaa !5
  %11573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11560, ptr noundef @.str.22, i32 noundef %11561, ptr noundef @.str.98, ptr noundef @.str.21, i32 noundef 825, ptr noundef %11564, ptr noundef %11567, ptr noundef %11570, i32 noundef %11572) #11
  br label %11591

11574:                                            ; preds = %11552, %11545
  %11575 = load i32, ptr %275, align 4, !tbaa !5
  %11576 = call ptr @__errno_location() #12
  store i32 %11575, ptr %11576, align 4, !tbaa !5
  %11577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11578 = load i32, ptr @test_count, align 4, !tbaa !5
  %11579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11580 = load i32, ptr %11579, align 4, !tbaa !5
  %11581 = call ptr @s2n_strerror(i32 noundef %11580, ptr noundef @.str.24)
  %11582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11583 = load i32, ptr %11582, align 4, !tbaa !5
  %11584 = call ptr @s2n_strerror_debug(i32 noundef %11583, ptr noundef @.str.24)
  %11585 = call ptr @__errno_location() #12
  %11586 = load i32, ptr %11585, align 4, !tbaa !5
  %11587 = call ptr @strerror(i32 noundef %11586) #11
  %11588 = call ptr @__errno_location() #12
  %11589 = load i32, ptr %11588, align 4, !tbaa !5
  %11590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11577, ptr noundef @.str.25, i32 noundef %11578, ptr noundef @.str.98, ptr noundef @.str.21, i32 noundef 825, ptr noundef %11581, ptr noundef %11584, ptr noundef %11587, i32 noundef %11589) #11
  br label %11591

11591:                                            ; preds = %11574, %11557
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #11
  br label %11592

11592:                                            ; preds = %11591
  br label %11593

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

11594:                                            ; No predecessors!
  br label %11595

11595:                                            ; preds = %11594
  br label %11596

11596:                                            ; preds = %11595, %11532
  br label %11597

11597:                                            ; preds = %11596
  br label %11598

11598:                                            ; preds = %11597
  %11599 = load ptr, ptr %271, align 8, !tbaa !9
  %11600 = load ptr, ptr %270, align 8, !tbaa !9
  %11601 = getelementptr inbounds %struct.s2n_connection, ptr %11600, i32 0, i32 33
  %11602 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %11601, i32 0, i32 4
  store ptr %11599, ptr %11602, align 8, !tbaa !94
  br label %11603

11603:                                            ; preds = %11598
  %11604 = load i32, ptr @test_count, align 4, !tbaa !5
  %11605 = add nsw i32 %11604, 1
  store i32 %11605, ptr @test_count, align 4, !tbaa !5
  %11606 = load ptr, ptr %270, align 8, !tbaa !9
  %11607 = getelementptr inbounds %struct.s2n_connection, ptr %11606, i32 0, i32 33
  %11608 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %11607, i32 0, i32 4
  %11609 = load ptr, ptr %11608, align 8, !tbaa !94
  %11610 = icmp eq ptr %11609, null
  br i1 %11610, label %11611, label %11664

11611:                                            ; preds = %11603
  br label %11612

11612:                                            ; preds = %11611
  br label %11613

11613:                                            ; preds = %11612
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #11
  %11614 = call ptr @__errno_location() #12
  %11615 = load i32, ptr %11614, align 4, !tbaa !5
  store i32 %11615, ptr %276, align 4, !tbaa !5
  %11616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11617 = call i32 @s2n_print_stacktrace(ptr noundef %11616)
  %11618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11619 = trunc i8 %11618 to i1
  br i1 %11619, label %11620, label %11642

11620:                                            ; preds = %11613
  %11621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11622 = call i32 @fileno(ptr noundef %11621) #11
  %11623 = call i32 @isatty(i32 noundef %11622) #11
  %11624 = icmp ne i32 %11623, 0
  br i1 %11624, label %11625, label %11642

11625:                                            ; preds = %11620
  %11626 = load i32, ptr %276, align 4, !tbaa !5
  %11627 = call ptr @__errno_location() #12
  store i32 %11626, ptr %11627, align 4, !tbaa !5
  %11628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11629 = load i32, ptr @test_count, align 4, !tbaa !5
  %11630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11631 = load i32, ptr %11630, align 4, !tbaa !5
  %11632 = call ptr @s2n_strerror(i32 noundef %11631, ptr noundef @.str.24)
  %11633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11634 = load i32, ptr %11633, align 4, !tbaa !5
  %11635 = call ptr @s2n_strerror_debug(i32 noundef %11634, ptr noundef @.str.24)
  %11636 = call ptr @__errno_location() #12
  %11637 = load i32, ptr %11636, align 4, !tbaa !5
  %11638 = call ptr @strerror(i32 noundef %11637) #11
  %11639 = call ptr @__errno_location() #12
  %11640 = load i32, ptr %11639, align 4, !tbaa !5
  %11641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11628, ptr noundef @.str.22, i32 noundef %11629, ptr noundef @.str.99, ptr noundef @.str.21, i32 noundef 828, ptr noundef %11632, ptr noundef %11635, ptr noundef %11638, i32 noundef %11640) #11
  br label %11659

11642:                                            ; preds = %11620, %11613
  %11643 = load i32, ptr %276, align 4, !tbaa !5
  %11644 = call ptr @__errno_location() #12
  store i32 %11643, ptr %11644, align 4, !tbaa !5
  %11645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11646 = load i32, ptr @test_count, align 4, !tbaa !5
  %11647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11648 = load i32, ptr %11647, align 4, !tbaa !5
  %11649 = call ptr @s2n_strerror(i32 noundef %11648, ptr noundef @.str.24)
  %11650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11651 = load i32, ptr %11650, align 4, !tbaa !5
  %11652 = call ptr @s2n_strerror_debug(i32 noundef %11651, ptr noundef @.str.24)
  %11653 = call ptr @__errno_location() #12
  %11654 = load i32, ptr %11653, align 4, !tbaa !5
  %11655 = call ptr @strerror(i32 noundef %11654) #11
  %11656 = call ptr @__errno_location() #12
  %11657 = load i32, ptr %11656, align 4, !tbaa !5
  %11658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11645, ptr noundef @.str.25, i32 noundef %11646, ptr noundef @.str.99, ptr noundef @.str.21, i32 noundef 828, ptr noundef %11649, ptr noundef %11652, ptr noundef %11655, i32 noundef %11657) #11
  br label %11659

11659:                                            ; preds = %11642, %11625
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #11
  br label %11660

11660:                                            ; preds = %11659
  br label %11661

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

11662:                                            ; No predecessors!
  br label %11663

11663:                                            ; preds = %11662
  br label %11664

11664:                                            ; preds = %11663, %11603
  br label %11665

11665:                                            ; preds = %11664
  br label %11666

11666:                                            ; preds = %11665
  br label %11667

11667:                                            ; preds = %11666
  %11668 = load i32, ptr @test_count, align 4, !tbaa !5
  %11669 = add nsw i32 %11668, 1
  store i32 %11669, ptr @test_count, align 4, !tbaa !5
  %11670 = load ptr, ptr %270, align 8, !tbaa !9
  %11671 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef %11670)
  %11672 = getelementptr inbounds %struct.s2n_result, ptr %277, i32 0, i32 0
  store i32 %11671, ptr %11672, align 4
  %11673 = getelementptr inbounds %struct.s2n_result, ptr %277, i32 0, i32 0
  %11674 = load i32, ptr %11673, align 4
  %11675 = call zeroext i1 @s2n_result_is_ok(i32 %11674)
  br i1 %11675, label %11729, label %11676

11676:                                            ; preds = %11667
  br label %11677

11677:                                            ; preds = %11676
  br label %11678

11678:                                            ; preds = %11677
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #11
  %11679 = call ptr @__errno_location() #12
  %11680 = load i32, ptr %11679, align 4, !tbaa !5
  store i32 %11680, ptr %278, align 4, !tbaa !5
  %11681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11682 = call i32 @s2n_print_stacktrace(ptr noundef %11681)
  %11683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11684 = trunc i8 %11683 to i1
  br i1 %11684, label %11685, label %11707

11685:                                            ; preds = %11678
  %11686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11687 = call i32 @fileno(ptr noundef %11686) #11
  %11688 = call i32 @isatty(i32 noundef %11687) #11
  %11689 = icmp ne i32 %11688, 0
  br i1 %11689, label %11690, label %11707

11690:                                            ; preds = %11685
  %11691 = load i32, ptr %278, align 4, !tbaa !5
  %11692 = call ptr @__errno_location() #12
  store i32 %11691, ptr %11692, align 4, !tbaa !5
  %11693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11694 = load i32, ptr @test_count, align 4, !tbaa !5
  %11695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11696 = load i32, ptr %11695, align 4, !tbaa !5
  %11697 = call ptr @s2n_strerror(i32 noundef %11696, ptr noundef @.str.24)
  %11698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11699 = load i32, ptr %11698, align 4, !tbaa !5
  %11700 = call ptr @s2n_strerror_debug(i32 noundef %11699, ptr noundef @.str.24)
  %11701 = call ptr @__errno_location() #12
  %11702 = load i32, ptr %11701, align 4, !tbaa !5
  %11703 = call ptr @strerror(i32 noundef %11702) #11
  %11704 = call ptr @__errno_location() #12
  %11705 = load i32, ptr %11704, align 4, !tbaa !5
  %11706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11693, ptr noundef @.str.22, i32 noundef %11694, ptr noundef @.str.100, ptr noundef @.str.21, i32 noundef 829, ptr noundef %11697, ptr noundef %11700, ptr noundef %11703, i32 noundef %11705) #11
  br label %11724

11707:                                            ; preds = %11685, %11678
  %11708 = load i32, ptr %278, align 4, !tbaa !5
  %11709 = call ptr @__errno_location() #12
  store i32 %11708, ptr %11709, align 4, !tbaa !5
  %11710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11711 = load i32, ptr @test_count, align 4, !tbaa !5
  %11712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11713 = load i32, ptr %11712, align 4, !tbaa !5
  %11714 = call ptr @s2n_strerror(i32 noundef %11713, ptr noundef @.str.24)
  %11715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11716 = load i32, ptr %11715, align 4, !tbaa !5
  %11717 = call ptr @s2n_strerror_debug(i32 noundef %11716, ptr noundef @.str.24)
  %11718 = call ptr @__errno_location() #12
  %11719 = load i32, ptr %11718, align 4, !tbaa !5
  %11720 = call ptr @strerror(i32 noundef %11719) #11
  %11721 = call ptr @__errno_location() #12
  %11722 = load i32, ptr %11721, align 4, !tbaa !5
  %11723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11710, ptr noundef @.str.25, i32 noundef %11711, ptr noundef @.str.100, ptr noundef @.str.21, i32 noundef 829, ptr noundef %11714, ptr noundef %11717, ptr noundef %11720, i32 noundef %11722) #11
  br label %11724

11724:                                            ; preds = %11707, %11690
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #11
  br label %11725

11725:                                            ; preds = %11724
  br label %11726

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

11727:                                            ; No predecessors!
  br label %11728

11728:                                            ; preds = %11727
  br label %11729

11729:                                            ; preds = %11728, %11667
  br label %11730

11730:                                            ; preds = %11729
  br label %11731

11731:                                            ; preds = %11730
  br label %11732

11732:                                            ; preds = %11731
  %11733 = load i32, ptr @test_count, align 4, !tbaa !5
  %11734 = add nsw i32 %11733, 1
  store i32 %11734, ptr @test_count, align 4, !tbaa !5
  %11735 = load ptr, ptr %270, align 8, !tbaa !9
  %11736 = getelementptr inbounds %struct.s2n_connection, ptr %11735, i32 0, i32 52
  %11737 = getelementptr inbounds %struct.s2n_handshake, ptr %11736, i32 0, i32 6
  %11738 = load i32, ptr %11737, align 4, !tbaa !60
  %11739 = and i32 %11738, 2
  %11740 = icmp ne i32 %11739, 0
  br i1 %11740, label %11741, label %11794

11741:                                            ; preds = %11732
  br label %11742

11742:                                            ; preds = %11741
  br label %11743

11743:                                            ; preds = %11742
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #11
  %11744 = call ptr @__errno_location() #12
  %11745 = load i32, ptr %11744, align 4, !tbaa !5
  store i32 %11745, ptr %279, align 4, !tbaa !5
  %11746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11747 = call i32 @s2n_print_stacktrace(ptr noundef %11746)
  %11748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11749 = trunc i8 %11748 to i1
  br i1 %11749, label %11750, label %11772

11750:                                            ; preds = %11743
  %11751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11752 = call i32 @fileno(ptr noundef %11751) #11
  %11753 = call i32 @isatty(i32 noundef %11752) #11
  %11754 = icmp ne i32 %11753, 0
  br i1 %11754, label %11755, label %11772

11755:                                            ; preds = %11750
  %11756 = load i32, ptr %279, align 4, !tbaa !5
  %11757 = call ptr @__errno_location() #12
  store i32 %11756, ptr %11757, align 4, !tbaa !5
  %11758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11759 = load i32, ptr @test_count, align 4, !tbaa !5
  %11760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11761 = load i32, ptr %11760, align 4, !tbaa !5
  %11762 = call ptr @s2n_strerror(i32 noundef %11761, ptr noundef @.str.24)
  %11763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11764 = load i32, ptr %11763, align 4, !tbaa !5
  %11765 = call ptr @s2n_strerror_debug(i32 noundef %11764, ptr noundef @.str.24)
  %11766 = call ptr @__errno_location() #12
  %11767 = load i32, ptr %11766, align 4, !tbaa !5
  %11768 = call ptr @strerror(i32 noundef %11767) #11
  %11769 = call ptr @__errno_location() #12
  %11770 = load i32, ptr %11769, align 4, !tbaa !5
  %11771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11758, ptr noundef @.str.22, i32 noundef %11759, ptr noundef @.str.101, ptr noundef @.str.21, i32 noundef 830, ptr noundef %11762, ptr noundef %11765, ptr noundef %11768, i32 noundef %11770) #11
  br label %11789

11772:                                            ; preds = %11750, %11743
  %11773 = load i32, ptr %279, align 4, !tbaa !5
  %11774 = call ptr @__errno_location() #12
  store i32 %11773, ptr %11774, align 4, !tbaa !5
  %11775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11776 = load i32, ptr @test_count, align 4, !tbaa !5
  %11777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11778 = load i32, ptr %11777, align 4, !tbaa !5
  %11779 = call ptr @s2n_strerror(i32 noundef %11778, ptr noundef @.str.24)
  %11780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11781 = load i32, ptr %11780, align 4, !tbaa !5
  %11782 = call ptr @s2n_strerror_debug(i32 noundef %11781, ptr noundef @.str.24)
  %11783 = call ptr @__errno_location() #12
  %11784 = load i32, ptr %11783, align 4, !tbaa !5
  %11785 = call ptr @strerror(i32 noundef %11784) #11
  %11786 = call ptr @__errno_location() #12
  %11787 = load i32, ptr %11786, align 4, !tbaa !5
  %11788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11775, ptr noundef @.str.25, i32 noundef %11776, ptr noundef @.str.101, ptr noundef @.str.21, i32 noundef 830, ptr noundef %11779, ptr noundef %11782, ptr noundef %11785, i32 noundef %11787) #11
  br label %11789

11789:                                            ; preds = %11772, %11755
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #11
  br label %11790

11790:                                            ; preds = %11789
  br label %11791

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

11792:                                            ; No predecessors!
  br label %11793

11793:                                            ; preds = %11792
  br label %11794

11794:                                            ; preds = %11793, %11732
  br label %11795

11795:                                            ; preds = %11794
  br label %11796

11796:                                            ; preds = %11795
  %11797 = load ptr, ptr %270, align 8, !tbaa !9
  %11798 = getelementptr inbounds %struct.s2n_connection, ptr %11797, i32 0, i32 33
  %11799 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %11798, i32 0, i32 4
  store ptr null, ptr %11799, align 8, !tbaa !94
  br label %11800

11800:                                            ; preds = %11796
  %11801 = load i32, ptr @test_count, align 4, !tbaa !5
  %11802 = add nsw i32 %11801, 1
  store i32 %11802, ptr @test_count, align 4, !tbaa !5
  %11803 = load ptr, ptr %270, align 8, !tbaa !9
  %11804 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef %11803)
  %11805 = getelementptr inbounds %struct.s2n_result, ptr %280, i32 0, i32 0
  store i32 %11804, ptr %11805, align 4
  %11806 = getelementptr inbounds %struct.s2n_result, ptr %280, i32 0, i32 0
  %11807 = load i32, ptr %11806, align 4
  %11808 = call zeroext i1 @s2n_result_is_ok(i32 %11807)
  br i1 %11808, label %11862, label %11809

11809:                                            ; preds = %11800
  br label %11810

11810:                                            ; preds = %11809
  br label %11811

11811:                                            ; preds = %11810
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #11
  %11812 = call ptr @__errno_location() #12
  %11813 = load i32, ptr %11812, align 4, !tbaa !5
  store i32 %11813, ptr %281, align 4, !tbaa !5
  %11814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11815 = call i32 @s2n_print_stacktrace(ptr noundef %11814)
  %11816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11817 = trunc i8 %11816 to i1
  br i1 %11817, label %11818, label %11840

11818:                                            ; preds = %11811
  %11819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11820 = call i32 @fileno(ptr noundef %11819) #11
  %11821 = call i32 @isatty(i32 noundef %11820) #11
  %11822 = icmp ne i32 %11821, 0
  br i1 %11822, label %11823, label %11840

11823:                                            ; preds = %11818
  %11824 = load i32, ptr %281, align 4, !tbaa !5
  %11825 = call ptr @__errno_location() #12
  store i32 %11824, ptr %11825, align 4, !tbaa !5
  %11826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11827 = load i32, ptr @test_count, align 4, !tbaa !5
  %11828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11829 = load i32, ptr %11828, align 4, !tbaa !5
  %11830 = call ptr @s2n_strerror(i32 noundef %11829, ptr noundef @.str.24)
  %11831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11832 = load i32, ptr %11831, align 4, !tbaa !5
  %11833 = call ptr @s2n_strerror_debug(i32 noundef %11832, ptr noundef @.str.24)
  %11834 = call ptr @__errno_location() #12
  %11835 = load i32, ptr %11834, align 4, !tbaa !5
  %11836 = call ptr @strerror(i32 noundef %11835) #11
  %11837 = call ptr @__errno_location() #12
  %11838 = load i32, ptr %11837, align 4, !tbaa !5
  %11839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11826, ptr noundef @.str.22, i32 noundef %11827, ptr noundef @.str.100, ptr noundef @.str.21, i32 noundef 833, ptr noundef %11830, ptr noundef %11833, ptr noundef %11836, i32 noundef %11838) #11
  br label %11857

11840:                                            ; preds = %11818, %11811
  %11841 = load i32, ptr %281, align 4, !tbaa !5
  %11842 = call ptr @__errno_location() #12
  store i32 %11841, ptr %11842, align 4, !tbaa !5
  %11843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11844 = load i32, ptr @test_count, align 4, !tbaa !5
  %11845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11846 = load i32, ptr %11845, align 4, !tbaa !5
  %11847 = call ptr @s2n_strerror(i32 noundef %11846, ptr noundef @.str.24)
  %11848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11849 = load i32, ptr %11848, align 4, !tbaa !5
  %11850 = call ptr @s2n_strerror_debug(i32 noundef %11849, ptr noundef @.str.24)
  %11851 = call ptr @__errno_location() #12
  %11852 = load i32, ptr %11851, align 4, !tbaa !5
  %11853 = call ptr @strerror(i32 noundef %11852) #11
  %11854 = call ptr @__errno_location() #12
  %11855 = load i32, ptr %11854, align 4, !tbaa !5
  %11856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11843, ptr noundef @.str.25, i32 noundef %11844, ptr noundef @.str.100, ptr noundef @.str.21, i32 noundef 833, ptr noundef %11847, ptr noundef %11850, ptr noundef %11853, i32 noundef %11855) #11
  br label %11857

11857:                                            ; preds = %11840, %11823
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #11
  br label %11858

11858:                                            ; preds = %11857
  br label %11859

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

11860:                                            ; No predecessors!
  br label %11861

11861:                                            ; preds = %11860
  br label %11862

11862:                                            ; preds = %11861, %11800
  br label %11863

11863:                                            ; preds = %11862
  br label %11864

11864:                                            ; preds = %11863
  br label %11865

11865:                                            ; preds = %11864
  %11866 = load i32, ptr @test_count, align 4, !tbaa !5
  %11867 = add nsw i32 %11866, 1
  store i32 %11867, ptr @test_count, align 4, !tbaa !5
  %11868 = load ptr, ptr %270, align 8, !tbaa !9
  %11869 = getelementptr inbounds %struct.s2n_connection, ptr %11868, i32 0, i32 52
  %11870 = getelementptr inbounds %struct.s2n_handshake, ptr %11869, i32 0, i32 6
  %11871 = load i32, ptr %11870, align 4, !tbaa !60
  %11872 = and i32 %11871, 2
  %11873 = icmp ne i32 %11872, 0
  br i1 %11873, label %11927, label %11874

11874:                                            ; preds = %11865
  br label %11875

11875:                                            ; preds = %11874
  br label %11876

11876:                                            ; preds = %11875
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %11877 = call ptr @__errno_location() #12
  %11878 = load i32, ptr %11877, align 4, !tbaa !5
  store i32 %11878, ptr %282, align 4, !tbaa !5
  %11879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11880 = call i32 @s2n_print_stacktrace(ptr noundef %11879)
  %11881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11882 = trunc i8 %11881 to i1
  br i1 %11882, label %11883, label %11905

11883:                                            ; preds = %11876
  %11884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11885 = call i32 @fileno(ptr noundef %11884) #11
  %11886 = call i32 @isatty(i32 noundef %11885) #11
  %11887 = icmp ne i32 %11886, 0
  br i1 %11887, label %11888, label %11905

11888:                                            ; preds = %11883
  %11889 = load i32, ptr %282, align 4, !tbaa !5
  %11890 = call ptr @__errno_location() #12
  store i32 %11889, ptr %11890, align 4, !tbaa !5
  %11891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11892 = load i32, ptr @test_count, align 4, !tbaa !5
  %11893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11894 = load i32, ptr %11893, align 4, !tbaa !5
  %11895 = call ptr @s2n_strerror(i32 noundef %11894, ptr noundef @.str.24)
  %11896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11897 = load i32, ptr %11896, align 4, !tbaa !5
  %11898 = call ptr @s2n_strerror_debug(i32 noundef %11897, ptr noundef @.str.24)
  %11899 = call ptr @__errno_location() #12
  %11900 = load i32, ptr %11899, align 4, !tbaa !5
  %11901 = call ptr @strerror(i32 noundef %11900) #11
  %11902 = call ptr @__errno_location() #12
  %11903 = load i32, ptr %11902, align 4, !tbaa !5
  %11904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11891, ptr noundef @.str.22, i32 noundef %11892, ptr noundef @.str.102, ptr noundef @.str.21, i32 noundef 834, ptr noundef %11895, ptr noundef %11898, ptr noundef %11901, i32 noundef %11903) #11
  br label %11922

11905:                                            ; preds = %11883, %11876
  %11906 = load i32, ptr %282, align 4, !tbaa !5
  %11907 = call ptr @__errno_location() #12
  store i32 %11906, ptr %11907, align 4, !tbaa !5
  %11908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11909 = load i32, ptr @test_count, align 4, !tbaa !5
  %11910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11911 = load i32, ptr %11910, align 4, !tbaa !5
  %11912 = call ptr @s2n_strerror(i32 noundef %11911, ptr noundef @.str.24)
  %11913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11914 = load i32, ptr %11913, align 4, !tbaa !5
  %11915 = call ptr @s2n_strerror_debug(i32 noundef %11914, ptr noundef @.str.24)
  %11916 = call ptr @__errno_location() #12
  %11917 = load i32, ptr %11916, align 4, !tbaa !5
  %11918 = call ptr @strerror(i32 noundef %11917) #11
  %11919 = call ptr @__errno_location() #12
  %11920 = load i32, ptr %11919, align 4, !tbaa !5
  %11921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11908, ptr noundef @.str.25, i32 noundef %11909, ptr noundef @.str.102, ptr noundef @.str.21, i32 noundef 834, ptr noundef %11912, ptr noundef %11915, ptr noundef %11918, i32 noundef %11920) #11
  br label %11922

11922:                                            ; preds = %11905, %11888
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #11
  br label %11923

11923:                                            ; preds = %11922
  br label %11924

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

11925:                                            ; No predecessors!
  br label %11926

11926:                                            ; preds = %11925
  br label %11927

11927:                                            ; preds = %11926, %11865
  br label %11928

11928:                                            ; preds = %11927
  br label %11929

11929:                                            ; preds = %11928
  br label %11930

11930:                                            ; preds = %11929
  %11931 = load i32, ptr @test_count, align 4, !tbaa !5
  %11932 = add nsw i32 %11931, 1
  store i32 %11932, ptr @test_count, align 4, !tbaa !5
  %11933 = load ptr, ptr %270, align 8, !tbaa !9
  %11934 = call i32 @s2n_connection_free(ptr noundef %11933)
  %11935 = icmp eq i32 %11934, -1
  br i1 %11935, label %11936, label %11989

11936:                                            ; preds = %11930
  br label %11937

11937:                                            ; preds = %11936
  br label %11938

11938:                                            ; preds = %11937
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #11
  %11939 = call ptr @__errno_location() #12
  %11940 = load i32, ptr %11939, align 4, !tbaa !5
  store i32 %11940, ptr %283, align 4, !tbaa !5
  %11941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11942 = call i32 @s2n_print_stacktrace(ptr noundef %11941)
  %11943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11944 = trunc i8 %11943 to i1
  br i1 %11944, label %11945, label %11967

11945:                                            ; preds = %11938
  %11946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11947 = call i32 @fileno(ptr noundef %11946) #11
  %11948 = call i32 @isatty(i32 noundef %11947) #11
  %11949 = icmp ne i32 %11948, 0
  br i1 %11949, label %11950, label %11967

11950:                                            ; preds = %11945
  %11951 = load i32, ptr %283, align 4, !tbaa !5
  %11952 = call ptr @__errno_location() #12
  store i32 %11951, ptr %11952, align 4, !tbaa !5
  %11953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11954 = load i32, ptr @test_count, align 4, !tbaa !5
  %11955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11956 = load i32, ptr %11955, align 4, !tbaa !5
  %11957 = call ptr @s2n_strerror(i32 noundef %11956, ptr noundef @.str.24)
  %11958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11959 = load i32, ptr %11958, align 4, !tbaa !5
  %11960 = call ptr @s2n_strerror_debug(i32 noundef %11959, ptr noundef @.str.24)
  %11961 = call ptr @__errno_location() #12
  %11962 = load i32, ptr %11961, align 4, !tbaa !5
  %11963 = call ptr @strerror(i32 noundef %11962) #11
  %11964 = call ptr @__errno_location() #12
  %11965 = load i32, ptr %11964, align 4, !tbaa !5
  %11966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11953, ptr noundef @.str.22, i32 noundef %11954, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 836, ptr noundef %11957, ptr noundef %11960, ptr noundef %11963, i32 noundef %11965) #11
  br label %11984

11967:                                            ; preds = %11945, %11938
  %11968 = load i32, ptr %283, align 4, !tbaa !5
  %11969 = call ptr @__errno_location() #12
  store i32 %11968, ptr %11969, align 4, !tbaa !5
  %11970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11971 = load i32, ptr @test_count, align 4, !tbaa !5
  %11972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11973 = load i32, ptr %11972, align 4, !tbaa !5
  %11974 = call ptr @s2n_strerror(i32 noundef %11973, ptr noundef @.str.24)
  %11975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11976 = load i32, ptr %11975, align 4, !tbaa !5
  %11977 = call ptr @s2n_strerror_debug(i32 noundef %11976, ptr noundef @.str.24)
  %11978 = call ptr @__errno_location() #12
  %11979 = load i32, ptr %11978, align 4, !tbaa !5
  %11980 = call ptr @strerror(i32 noundef %11979) #11
  %11981 = call ptr @__errno_location() #12
  %11982 = load i32, ptr %11981, align 4, !tbaa !5
  %11983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11970, ptr noundef @.str.25, i32 noundef %11971, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 836, ptr noundef %11974, ptr noundef %11977, ptr noundef %11980, i32 noundef %11982) #11
  br label %11984

11984:                                            ; preds = %11967, %11950
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #11
  br label %11985

11985:                                            ; preds = %11984
  br label %11986

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

11987:                                            ; No predecessors!
  br label %11988

11988:                                            ; preds = %11987
  br label %11989

11989:                                            ; preds = %11988, %11930
  br label %11990

11990:                                            ; preds = %11989
  br label %11991

11991:                                            ; preds = %11990
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %270) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %284) #11
  %11992 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11992, ptr %284, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %285) #11
  store ptr null, ptr %285, align 8, !tbaa !9
  br label %11993

11993:                                            ; preds = %11991
  %11994 = load i32, ptr @test_count, align 4, !tbaa !5
  %11995 = add nsw i32 %11994, 1
  store i32 %11995, ptr @test_count, align 4, !tbaa !5
  %11996 = load ptr, ptr %284, align 8, !tbaa !9
  %11997 = getelementptr inbounds %struct.s2n_connection, ptr %11996, i32 0, i32 33
  %11998 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %11997, i32 0, i32 1
  %11999 = call i32 @s2n_array_pushback(ptr noundef %11998, ptr noundef %285)
  %12000 = getelementptr inbounds %struct.s2n_result, ptr %286, i32 0, i32 0
  store i32 %11999, ptr %12000, align 4
  %12001 = getelementptr inbounds %struct.s2n_result, ptr %286, i32 0, i32 0
  %12002 = load i32, ptr %12001, align 4
  %12003 = call zeroext i1 @s2n_result_is_ok(i32 %12002)
  br i1 %12003, label %12057, label %12004

12004:                                            ; preds = %11993
  br label %12005

12005:                                            ; preds = %12004
  br label %12006

12006:                                            ; preds = %12005
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #11
  %12007 = call ptr @__errno_location() #12
  %12008 = load i32, ptr %12007, align 4, !tbaa !5
  store i32 %12008, ptr %287, align 4, !tbaa !5
  %12009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12010 = call i32 @s2n_print_stacktrace(ptr noundef %12009)
  %12011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12012 = trunc i8 %12011 to i1
  br i1 %12012, label %12013, label %12035

12013:                                            ; preds = %12006
  %12014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12015 = call i32 @fileno(ptr noundef %12014) #11
  %12016 = call i32 @isatty(i32 noundef %12015) #11
  %12017 = icmp ne i32 %12016, 0
  br i1 %12017, label %12018, label %12035

12018:                                            ; preds = %12013
  %12019 = load i32, ptr %287, align 4, !tbaa !5
  %12020 = call ptr @__errno_location() #12
  store i32 %12019, ptr %12020, align 4, !tbaa !5
  %12021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12022 = load i32, ptr @test_count, align 4, !tbaa !5
  %12023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12024 = load i32, ptr %12023, align 4, !tbaa !5
  %12025 = call ptr @s2n_strerror(i32 noundef %12024, ptr noundef @.str.24)
  %12026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12027 = load i32, ptr %12026, align 4, !tbaa !5
  %12028 = call ptr @s2n_strerror_debug(i32 noundef %12027, ptr noundef @.str.24)
  %12029 = call ptr @__errno_location() #12
  %12030 = load i32, ptr %12029, align 4, !tbaa !5
  %12031 = call ptr @strerror(i32 noundef %12030) #11
  %12032 = call ptr @__errno_location() #12
  %12033 = load i32, ptr %12032, align 4, !tbaa !5
  %12034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12021, ptr noundef @.str.22, i32 noundef %12022, ptr noundef @.str.103, ptr noundef @.str.21, i32 noundef 845, ptr noundef %12025, ptr noundef %12028, ptr noundef %12031, i32 noundef %12033) #11
  br label %12052

12035:                                            ; preds = %12013, %12006
  %12036 = load i32, ptr %287, align 4, !tbaa !5
  %12037 = call ptr @__errno_location() #12
  store i32 %12036, ptr %12037, align 4, !tbaa !5
  %12038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12039 = load i32, ptr @test_count, align 4, !tbaa !5
  %12040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12041 = load i32, ptr %12040, align 4, !tbaa !5
  %12042 = call ptr @s2n_strerror(i32 noundef %12041, ptr noundef @.str.24)
  %12043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12044 = load i32, ptr %12043, align 4, !tbaa !5
  %12045 = call ptr @s2n_strerror_debug(i32 noundef %12044, ptr noundef @.str.24)
  %12046 = call ptr @__errno_location() #12
  %12047 = load i32, ptr %12046, align 4, !tbaa !5
  %12048 = call ptr @strerror(i32 noundef %12047) #11
  %12049 = call ptr @__errno_location() #12
  %12050 = load i32, ptr %12049, align 4, !tbaa !5
  %12051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12038, ptr noundef @.str.25, i32 noundef %12039, ptr noundef @.str.103, ptr noundef @.str.21, i32 noundef 845, ptr noundef %12042, ptr noundef %12045, ptr noundef %12048, i32 noundef %12050) #11
  br label %12052

12052:                                            ; preds = %12035, %12018
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #11
  br label %12053

12053:                                            ; preds = %12052
  br label %12054

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

12055:                                            ; No predecessors!
  br label %12056

12056:                                            ; preds = %12055
  br label %12057

12057:                                            ; preds = %12056, %11993
  br label %12058

12058:                                            ; preds = %12057
  br label %12059

12059:                                            ; preds = %12058
  %12060 = load ptr, ptr %285, align 8, !tbaa !9
  %12061 = load ptr, ptr %284, align 8, !tbaa !9
  %12062 = getelementptr inbounds %struct.s2n_connection, ptr %12061, i32 0, i32 33
  %12063 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %12062, i32 0, i32 4
  store ptr %12060, ptr %12063, align 8, !tbaa !94
  br label %12064

12064:                                            ; preds = %12059
  %12065 = load i32, ptr @test_count, align 4, !tbaa !5
  %12066 = add nsw i32 %12065, 1
  store i32 %12066, ptr @test_count, align 4, !tbaa !5
  %12067 = load ptr, ptr %284, align 8, !tbaa !9
  %12068 = getelementptr inbounds %struct.s2n_connection, ptr %12067, i32 0, i32 33
  %12069 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %12068, i32 0, i32 4
  %12070 = load ptr, ptr %12069, align 8, !tbaa !94
  %12071 = icmp eq ptr %12070, null
  br i1 %12071, label %12072, label %12125

12072:                                            ; preds = %12064
  br label %12073

12073:                                            ; preds = %12072
  br label %12074

12074:                                            ; preds = %12073
  call void @llvm.lifetime.start.p0(i64 4, ptr %288) #11
  %12075 = call ptr @__errno_location() #12
  %12076 = load i32, ptr %12075, align 4, !tbaa !5
  store i32 %12076, ptr %288, align 4, !tbaa !5
  %12077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12078 = call i32 @s2n_print_stacktrace(ptr noundef %12077)
  %12079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12080 = trunc i8 %12079 to i1
  br i1 %12080, label %12081, label %12103

12081:                                            ; preds = %12074
  %12082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12083 = call i32 @fileno(ptr noundef %12082) #11
  %12084 = call i32 @isatty(i32 noundef %12083) #11
  %12085 = icmp ne i32 %12084, 0
  br i1 %12085, label %12086, label %12103

12086:                                            ; preds = %12081
  %12087 = load i32, ptr %288, align 4, !tbaa !5
  %12088 = call ptr @__errno_location() #12
  store i32 %12087, ptr %12088, align 4, !tbaa !5
  %12089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12090 = load i32, ptr @test_count, align 4, !tbaa !5
  %12091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12092 = load i32, ptr %12091, align 4, !tbaa !5
  %12093 = call ptr @s2n_strerror(i32 noundef %12092, ptr noundef @.str.24)
  %12094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12095 = load i32, ptr %12094, align 4, !tbaa !5
  %12096 = call ptr @s2n_strerror_debug(i32 noundef %12095, ptr noundef @.str.24)
  %12097 = call ptr @__errno_location() #12
  %12098 = load i32, ptr %12097, align 4, !tbaa !5
  %12099 = call ptr @strerror(i32 noundef %12098) #11
  %12100 = call ptr @__errno_location() #12
  %12101 = load i32, ptr %12100, align 4, !tbaa !5
  %12102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12089, ptr noundef @.str.22, i32 noundef %12090, ptr noundef @.str.104, ptr noundef @.str.21, i32 noundef 847, ptr noundef %12093, ptr noundef %12096, ptr noundef %12099, i32 noundef %12101) #11
  br label %12120

12103:                                            ; preds = %12081, %12074
  %12104 = load i32, ptr %288, align 4, !tbaa !5
  %12105 = call ptr @__errno_location() #12
  store i32 %12104, ptr %12105, align 4, !tbaa !5
  %12106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12107 = load i32, ptr @test_count, align 4, !tbaa !5
  %12108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12109 = load i32, ptr %12108, align 4, !tbaa !5
  %12110 = call ptr @s2n_strerror(i32 noundef %12109, ptr noundef @.str.24)
  %12111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12112 = load i32, ptr %12111, align 4, !tbaa !5
  %12113 = call ptr @s2n_strerror_debug(i32 noundef %12112, ptr noundef @.str.24)
  %12114 = call ptr @__errno_location() #12
  %12115 = load i32, ptr %12114, align 4, !tbaa !5
  %12116 = call ptr @strerror(i32 noundef %12115) #11
  %12117 = call ptr @__errno_location() #12
  %12118 = load i32, ptr %12117, align 4, !tbaa !5
  %12119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12106, ptr noundef @.str.25, i32 noundef %12107, ptr noundef @.str.104, ptr noundef @.str.21, i32 noundef 847, ptr noundef %12110, ptr noundef %12113, ptr noundef %12116, i32 noundef %12118) #11
  br label %12120

12120:                                            ; preds = %12103, %12086
  call void @llvm.lifetime.end.p0(i64 4, ptr %288) #11
  br label %12121

12121:                                            ; preds = %12120
  br label %12122

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

12123:                                            ; No predecessors!
  br label %12124

12124:                                            ; preds = %12123
  br label %12125

12125:                                            ; preds = %12124, %12064
  br label %12126

12126:                                            ; preds = %12125
  br label %12127

12127:                                            ; preds = %12126
  br label %12128

12128:                                            ; preds = %12127
  %12129 = load i32, ptr @test_count, align 4, !tbaa !5
  %12130 = add nsw i32 %12129, 1
  store i32 %12130, ptr @test_count, align 4, !tbaa !5
  %12131 = load ptr, ptr %284, align 8, !tbaa !9
  %12132 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %12131, i32 noundef 1)
  %12133 = icmp eq i32 %12132, -1
  br i1 %12133, label %12134, label %12187

12134:                                            ; preds = %12128
  br label %12135

12135:                                            ; preds = %12134
  br label %12136

12136:                                            ; preds = %12135
  call void @llvm.lifetime.start.p0(i64 4, ptr %289) #11
  %12137 = call ptr @__errno_location() #12
  %12138 = load i32, ptr %12137, align 4, !tbaa !5
  store i32 %12138, ptr %289, align 4, !tbaa !5
  %12139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12140 = call i32 @s2n_print_stacktrace(ptr noundef %12139)
  %12141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12142 = trunc i8 %12141 to i1
  br i1 %12142, label %12143, label %12165

12143:                                            ; preds = %12136
  %12144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12145 = call i32 @fileno(ptr noundef %12144) #11
  %12146 = call i32 @isatty(i32 noundef %12145) #11
  %12147 = icmp ne i32 %12146, 0
  br i1 %12147, label %12148, label %12165

12148:                                            ; preds = %12143
  %12149 = load i32, ptr %289, align 4, !tbaa !5
  %12150 = call ptr @__errno_location() #12
  store i32 %12149, ptr %12150, align 4, !tbaa !5
  %12151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12152 = load i32, ptr @test_count, align 4, !tbaa !5
  %12153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12154 = load i32, ptr %12153, align 4, !tbaa !5
  %12155 = call ptr @s2n_strerror(i32 noundef %12154, ptr noundef @.str.24)
  %12156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12157 = load i32, ptr %12156, align 4, !tbaa !5
  %12158 = call ptr @s2n_strerror_debug(i32 noundef %12157, ptr noundef @.str.24)
  %12159 = call ptr @__errno_location() #12
  %12160 = load i32, ptr %12159, align 4, !tbaa !5
  %12161 = call ptr @strerror(i32 noundef %12160) #11
  %12162 = call ptr @__errno_location() #12
  %12163 = load i32, ptr %12162, align 4, !tbaa !5
  %12164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12151, ptr noundef @.str.22, i32 noundef %12152, ptr noundef @.str.105, ptr noundef @.str.21, i32 noundef 849, ptr noundef %12155, ptr noundef %12158, ptr noundef %12161, i32 noundef %12163) #11
  br label %12182

12165:                                            ; preds = %12143, %12136
  %12166 = load i32, ptr %289, align 4, !tbaa !5
  %12167 = call ptr @__errno_location() #12
  store i32 %12166, ptr %12167, align 4, !tbaa !5
  %12168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12169 = load i32, ptr @test_count, align 4, !tbaa !5
  %12170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12171 = load i32, ptr %12170, align 4, !tbaa !5
  %12172 = call ptr @s2n_strerror(i32 noundef %12171, ptr noundef @.str.24)
  %12173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12174 = load i32, ptr %12173, align 4, !tbaa !5
  %12175 = call ptr @s2n_strerror_debug(i32 noundef %12174, ptr noundef @.str.24)
  %12176 = call ptr @__errno_location() #12
  %12177 = load i32, ptr %12176, align 4, !tbaa !5
  %12178 = call ptr @strerror(i32 noundef %12177) #11
  %12179 = call ptr @__errno_location() #12
  %12180 = load i32, ptr %12179, align 4, !tbaa !5
  %12181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12168, ptr noundef @.str.25, i32 noundef %12169, ptr noundef @.str.105, ptr noundef @.str.21, i32 noundef 849, ptr noundef %12172, ptr noundef %12175, ptr noundef %12178, i32 noundef %12180) #11
  br label %12182

12182:                                            ; preds = %12165, %12148
  call void @llvm.lifetime.end.p0(i64 4, ptr %289) #11
  br label %12183

12183:                                            ; preds = %12182
  br label %12184

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

12185:                                            ; No predecessors!
  br label %12186

12186:                                            ; preds = %12185
  br label %12187

12187:                                            ; preds = %12186, %12128
  br label %12188

12188:                                            ; preds = %12187
  br label %12189

12189:                                            ; preds = %12188
  br label %12190

12190:                                            ; preds = %12189
  %12191 = load i32, ptr @test_count, align 4, !tbaa !5
  %12192 = add nsw i32 %12191, 1
  store i32 %12192, ptr @test_count, align 4, !tbaa !5
  %12193 = load ptr, ptr %284, align 8, !tbaa !9
  %12194 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef %12193)
  %12195 = getelementptr inbounds %struct.s2n_result, ptr %290, i32 0, i32 0
  store i32 %12194, ptr %12195, align 4
  %12196 = getelementptr inbounds %struct.s2n_result, ptr %290, i32 0, i32 0
  %12197 = load i32, ptr %12196, align 4
  %12198 = call zeroext i1 @s2n_result_is_ok(i32 %12197)
  br i1 %12198, label %12252, label %12199

12199:                                            ; preds = %12190
  br label %12200

12200:                                            ; preds = %12199
  br label %12201

12201:                                            ; preds = %12200
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #11
  %12202 = call ptr @__errno_location() #12
  %12203 = load i32, ptr %12202, align 4, !tbaa !5
  store i32 %12203, ptr %291, align 4, !tbaa !5
  %12204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12205 = call i32 @s2n_print_stacktrace(ptr noundef %12204)
  %12206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12207 = trunc i8 %12206 to i1
  br i1 %12207, label %12208, label %12230

12208:                                            ; preds = %12201
  %12209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12210 = call i32 @fileno(ptr noundef %12209) #11
  %12211 = call i32 @isatty(i32 noundef %12210) #11
  %12212 = icmp ne i32 %12211, 0
  br i1 %12212, label %12213, label %12230

12213:                                            ; preds = %12208
  %12214 = load i32, ptr %291, align 4, !tbaa !5
  %12215 = call ptr @__errno_location() #12
  store i32 %12214, ptr %12215, align 4, !tbaa !5
  %12216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12217 = load i32, ptr @test_count, align 4, !tbaa !5
  %12218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12219 = load i32, ptr %12218, align 4, !tbaa !5
  %12220 = call ptr @s2n_strerror(i32 noundef %12219, ptr noundef @.str.24)
  %12221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12222 = load i32, ptr %12221, align 4, !tbaa !5
  %12223 = call ptr @s2n_strerror_debug(i32 noundef %12222, ptr noundef @.str.24)
  %12224 = call ptr @__errno_location() #12
  %12225 = load i32, ptr %12224, align 4, !tbaa !5
  %12226 = call ptr @strerror(i32 noundef %12225) #11
  %12227 = call ptr @__errno_location() #12
  %12228 = load i32, ptr %12227, align 4, !tbaa !5
  %12229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12216, ptr noundef @.str.22, i32 noundef %12217, ptr noundef @.str.106, ptr noundef @.str.21, i32 noundef 851, ptr noundef %12220, ptr noundef %12223, ptr noundef %12226, i32 noundef %12228) #11
  br label %12247

12230:                                            ; preds = %12208, %12201
  %12231 = load i32, ptr %291, align 4, !tbaa !5
  %12232 = call ptr @__errno_location() #12
  store i32 %12231, ptr %12232, align 4, !tbaa !5
  %12233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12234 = load i32, ptr @test_count, align 4, !tbaa !5
  %12235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12236 = load i32, ptr %12235, align 4, !tbaa !5
  %12237 = call ptr @s2n_strerror(i32 noundef %12236, ptr noundef @.str.24)
  %12238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12239 = load i32, ptr %12238, align 4, !tbaa !5
  %12240 = call ptr @s2n_strerror_debug(i32 noundef %12239, ptr noundef @.str.24)
  %12241 = call ptr @__errno_location() #12
  %12242 = load i32, ptr %12241, align 4, !tbaa !5
  %12243 = call ptr @strerror(i32 noundef %12242) #11
  %12244 = call ptr @__errno_location() #12
  %12245 = load i32, ptr %12244, align 4, !tbaa !5
  %12246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12233, ptr noundef @.str.25, i32 noundef %12234, ptr noundef @.str.106, ptr noundef @.str.21, i32 noundef 851, ptr noundef %12237, ptr noundef %12240, ptr noundef %12243, i32 noundef %12245) #11
  br label %12247

12247:                                            ; preds = %12230, %12213
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #11
  br label %12248

12248:                                            ; preds = %12247
  br label %12249

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

12250:                                            ; No predecessors!
  br label %12251

12251:                                            ; preds = %12250
  br label %12252

12252:                                            ; preds = %12251, %12190
  br label %12253

12253:                                            ; preds = %12252
  br label %12254

12254:                                            ; preds = %12253
  br label %12255

12255:                                            ; preds = %12254
  %12256 = load i32, ptr @test_count, align 4, !tbaa !5
  %12257 = add nsw i32 %12256, 1
  store i32 %12257, ptr @test_count, align 4, !tbaa !5
  %12258 = load ptr, ptr %284, align 8, !tbaa !9
  %12259 = getelementptr inbounds %struct.s2n_connection, ptr %12258, i32 0, i32 52
  %12260 = getelementptr inbounds %struct.s2n_handshake, ptr %12259, i32 0, i32 6
  %12261 = load i32, ptr %12260, align 4, !tbaa !60
  %12262 = and i32 %12261, 4
  %12263 = icmp ne i32 %12262, 0
  br i1 %12263, label %12264, label %12317

12264:                                            ; preds = %12255
  br label %12265

12265:                                            ; preds = %12264
  br label %12266

12266:                                            ; preds = %12265
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #11
  %12267 = call ptr @__errno_location() #12
  %12268 = load i32, ptr %12267, align 4, !tbaa !5
  store i32 %12268, ptr %292, align 4, !tbaa !5
  %12269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12270 = call i32 @s2n_print_stacktrace(ptr noundef %12269)
  %12271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12272 = trunc i8 %12271 to i1
  br i1 %12272, label %12273, label %12295

12273:                                            ; preds = %12266
  %12274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12275 = call i32 @fileno(ptr noundef %12274) #11
  %12276 = call i32 @isatty(i32 noundef %12275) #11
  %12277 = icmp ne i32 %12276, 0
  br i1 %12277, label %12278, label %12295

12278:                                            ; preds = %12273
  %12279 = load i32, ptr %292, align 4, !tbaa !5
  %12280 = call ptr @__errno_location() #12
  store i32 %12279, ptr %12280, align 4, !tbaa !5
  %12281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12282 = load i32, ptr @test_count, align 4, !tbaa !5
  %12283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12284 = load i32, ptr %12283, align 4, !tbaa !5
  %12285 = call ptr @s2n_strerror(i32 noundef %12284, ptr noundef @.str.24)
  %12286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12287 = load i32, ptr %12286, align 4, !tbaa !5
  %12288 = call ptr @s2n_strerror_debug(i32 noundef %12287, ptr noundef @.str.24)
  %12289 = call ptr @__errno_location() #12
  %12290 = load i32, ptr %12289, align 4, !tbaa !5
  %12291 = call ptr @strerror(i32 noundef %12290) #11
  %12292 = call ptr @__errno_location() #12
  %12293 = load i32, ptr %12292, align 4, !tbaa !5
  %12294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12281, ptr noundef @.str.22, i32 noundef %12282, ptr noundef @.str.107, ptr noundef @.str.21, i32 noundef 852, ptr noundef %12285, ptr noundef %12288, ptr noundef %12291, i32 noundef %12293) #11
  br label %12312

12295:                                            ; preds = %12273, %12266
  %12296 = load i32, ptr %292, align 4, !tbaa !5
  %12297 = call ptr @__errno_location() #12
  store i32 %12296, ptr %12297, align 4, !tbaa !5
  %12298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12299 = load i32, ptr @test_count, align 4, !tbaa !5
  %12300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12301 = load i32, ptr %12300, align 4, !tbaa !5
  %12302 = call ptr @s2n_strerror(i32 noundef %12301, ptr noundef @.str.24)
  %12303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12304 = load i32, ptr %12303, align 4, !tbaa !5
  %12305 = call ptr @s2n_strerror_debug(i32 noundef %12304, ptr noundef @.str.24)
  %12306 = call ptr @__errno_location() #12
  %12307 = load i32, ptr %12306, align 4, !tbaa !5
  %12308 = call ptr @strerror(i32 noundef %12307) #11
  %12309 = call ptr @__errno_location() #12
  %12310 = load i32, ptr %12309, align 4, !tbaa !5
  %12311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12298, ptr noundef @.str.25, i32 noundef %12299, ptr noundef @.str.107, ptr noundef @.str.21, i32 noundef 852, ptr noundef %12302, ptr noundef %12305, ptr noundef %12308, i32 noundef %12310) #11
  br label %12312

12312:                                            ; preds = %12295, %12278
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #11
  br label %12313

12313:                                            ; preds = %12312
  br label %12314

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

12315:                                            ; No predecessors!
  br label %12316

12316:                                            ; preds = %12315
  br label %12317

12317:                                            ; preds = %12316, %12255
  br label %12318

12318:                                            ; preds = %12317
  br label %12319

12319:                                            ; preds = %12318
  br label %12320

12320:                                            ; preds = %12319
  %12321 = load i32, ptr @test_count, align 4, !tbaa !5
  %12322 = add nsw i32 %12321, 1
  store i32 %12322, ptr @test_count, align 4, !tbaa !5
  %12323 = load ptr, ptr %284, align 8, !tbaa !9
  %12324 = getelementptr inbounds %struct.s2n_connection, ptr %12323, i32 0, i32 52
  %12325 = getelementptr inbounds %struct.s2n_handshake, ptr %12324, i32 0, i32 6
  %12326 = load i32, ptr %12325, align 4, !tbaa !60
  %12327 = and i32 %12326, 2
  %12328 = icmp ne i32 %12327, 0
  br i1 %12328, label %12329, label %12382

12329:                                            ; preds = %12320
  br label %12330

12330:                                            ; preds = %12329
  br label %12331

12331:                                            ; preds = %12330
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #11
  %12332 = call ptr @__errno_location() #12
  %12333 = load i32, ptr %12332, align 4, !tbaa !5
  store i32 %12333, ptr %293, align 4, !tbaa !5
  %12334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12335 = call i32 @s2n_print_stacktrace(ptr noundef %12334)
  %12336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12337 = trunc i8 %12336 to i1
  br i1 %12337, label %12338, label %12360

12338:                                            ; preds = %12331
  %12339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12340 = call i32 @fileno(ptr noundef %12339) #11
  %12341 = call i32 @isatty(i32 noundef %12340) #11
  %12342 = icmp ne i32 %12341, 0
  br i1 %12342, label %12343, label %12360

12343:                                            ; preds = %12338
  %12344 = load i32, ptr %293, align 4, !tbaa !5
  %12345 = call ptr @__errno_location() #12
  store i32 %12344, ptr %12345, align 4, !tbaa !5
  %12346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12347 = load i32, ptr @test_count, align 4, !tbaa !5
  %12348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12349 = load i32, ptr %12348, align 4, !tbaa !5
  %12350 = call ptr @s2n_strerror(i32 noundef %12349, ptr noundef @.str.24)
  %12351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12352 = load i32, ptr %12351, align 4, !tbaa !5
  %12353 = call ptr @s2n_strerror_debug(i32 noundef %12352, ptr noundef @.str.24)
  %12354 = call ptr @__errno_location() #12
  %12355 = load i32, ptr %12354, align 4, !tbaa !5
  %12356 = call ptr @strerror(i32 noundef %12355) #11
  %12357 = call ptr @__errno_location() #12
  %12358 = load i32, ptr %12357, align 4, !tbaa !5
  %12359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12346, ptr noundef @.str.22, i32 noundef %12347, ptr noundef @.str.108, ptr noundef @.str.21, i32 noundef 853, ptr noundef %12350, ptr noundef %12353, ptr noundef %12356, i32 noundef %12358) #11
  br label %12377

12360:                                            ; preds = %12338, %12331
  %12361 = load i32, ptr %293, align 4, !tbaa !5
  %12362 = call ptr @__errno_location() #12
  store i32 %12361, ptr %12362, align 4, !tbaa !5
  %12363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12364 = load i32, ptr @test_count, align 4, !tbaa !5
  %12365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12366 = load i32, ptr %12365, align 4, !tbaa !5
  %12367 = call ptr @s2n_strerror(i32 noundef %12366, ptr noundef @.str.24)
  %12368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12369 = load i32, ptr %12368, align 4, !tbaa !5
  %12370 = call ptr @s2n_strerror_debug(i32 noundef %12369, ptr noundef @.str.24)
  %12371 = call ptr @__errno_location() #12
  %12372 = load i32, ptr %12371, align 4, !tbaa !5
  %12373 = call ptr @strerror(i32 noundef %12372) #11
  %12374 = call ptr @__errno_location() #12
  %12375 = load i32, ptr %12374, align 4, !tbaa !5
  %12376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12363, ptr noundef @.str.25, i32 noundef %12364, ptr noundef @.str.108, ptr noundef @.str.21, i32 noundef 853, ptr noundef %12367, ptr noundef %12370, ptr noundef %12373, i32 noundef %12375) #11
  br label %12377

12377:                                            ; preds = %12360, %12343
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #11
  br label %12378

12378:                                            ; preds = %12377
  br label %12379

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

12380:                                            ; No predecessors!
  br label %12381

12381:                                            ; preds = %12380
  br label %12382

12382:                                            ; preds = %12381, %12320
  br label %12383

12383:                                            ; preds = %12382
  br label %12384

12384:                                            ; preds = %12383
  br label %12385

12385:                                            ; preds = %12384
  %12386 = load i32, ptr @test_count, align 4, !tbaa !5
  %12387 = add nsw i32 %12386, 1
  store i32 %12387, ptr @test_count, align 4, !tbaa !5
  %12388 = load ptr, ptr %284, align 8, !tbaa !9
  %12389 = call i32 @s2n_connection_free(ptr noundef %12388)
  %12390 = icmp eq i32 %12389, -1
  br i1 %12390, label %12391, label %12444

12391:                                            ; preds = %12385
  br label %12392

12392:                                            ; preds = %12391
  br label %12393

12393:                                            ; preds = %12392
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #11
  %12394 = call ptr @__errno_location() #12
  %12395 = load i32, ptr %12394, align 4, !tbaa !5
  store i32 %12395, ptr %294, align 4, !tbaa !5
  %12396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12397 = call i32 @s2n_print_stacktrace(ptr noundef %12396)
  %12398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12399 = trunc i8 %12398 to i1
  br i1 %12399, label %12400, label %12422

12400:                                            ; preds = %12393
  %12401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12402 = call i32 @fileno(ptr noundef %12401) #11
  %12403 = call i32 @isatty(i32 noundef %12402) #11
  %12404 = icmp ne i32 %12403, 0
  br i1 %12404, label %12405, label %12422

12405:                                            ; preds = %12400
  %12406 = load i32, ptr %294, align 4, !tbaa !5
  %12407 = call ptr @__errno_location() #12
  store i32 %12406, ptr %12407, align 4, !tbaa !5
  %12408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12409 = load i32, ptr @test_count, align 4, !tbaa !5
  %12410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12411 = load i32, ptr %12410, align 4, !tbaa !5
  %12412 = call ptr @s2n_strerror(i32 noundef %12411, ptr noundef @.str.24)
  %12413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12414 = load i32, ptr %12413, align 4, !tbaa !5
  %12415 = call ptr @s2n_strerror_debug(i32 noundef %12414, ptr noundef @.str.24)
  %12416 = call ptr @__errno_location() #12
  %12417 = load i32, ptr %12416, align 4, !tbaa !5
  %12418 = call ptr @strerror(i32 noundef %12417) #11
  %12419 = call ptr @__errno_location() #12
  %12420 = load i32, ptr %12419, align 4, !tbaa !5
  %12421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12408, ptr noundef @.str.22, i32 noundef %12409, ptr noundef @.str.109, ptr noundef @.str.21, i32 noundef 855, ptr noundef %12412, ptr noundef %12415, ptr noundef %12418, i32 noundef %12420) #11
  br label %12439

12422:                                            ; preds = %12400, %12393
  %12423 = load i32, ptr %294, align 4, !tbaa !5
  %12424 = call ptr @__errno_location() #12
  store i32 %12423, ptr %12424, align 4, !tbaa !5
  %12425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12426 = load i32, ptr @test_count, align 4, !tbaa !5
  %12427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12428 = load i32, ptr %12427, align 4, !tbaa !5
  %12429 = call ptr @s2n_strerror(i32 noundef %12428, ptr noundef @.str.24)
  %12430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12431 = load i32, ptr %12430, align 4, !tbaa !5
  %12432 = call ptr @s2n_strerror_debug(i32 noundef %12431, ptr noundef @.str.24)
  %12433 = call ptr @__errno_location() #12
  %12434 = load i32, ptr %12433, align 4, !tbaa !5
  %12435 = call ptr @strerror(i32 noundef %12434) #11
  %12436 = call ptr @__errno_location() #12
  %12437 = load i32, ptr %12436, align 4, !tbaa !5
  %12438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12425, ptr noundef @.str.25, i32 noundef %12426, ptr noundef @.str.109, ptr noundef @.str.21, i32 noundef 855, ptr noundef %12429, ptr noundef %12432, ptr noundef %12435, i32 noundef %12437) #11
  br label %12439

12439:                                            ; preds = %12422, %12405
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #11
  br label %12440

12440:                                            ; preds = %12439
  br label %12441

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

12442:                                            ; No predecessors!
  br label %12443

12443:                                            ; preds = %12442
  br label %12444

12444:                                            ; preds = %12443, %12385
  br label %12445

12445:                                            ; preds = %12444
  br label %12446

12446:                                            ; preds = %12445
  call void @llvm.lifetime.end.p0(i64 8, ptr %285) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %284) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %295) #11
  %12447 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12447, ptr %295, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %296) #11
  store ptr null, ptr %296, align 8, !tbaa !9
  br label %12448

12448:                                            ; preds = %12446
  %12449 = load i32, ptr @test_count, align 4, !tbaa !5
  %12450 = add nsw i32 %12449, 1
  store i32 %12450, ptr @test_count, align 4, !tbaa !5
  %12451 = load ptr, ptr %295, align 8, !tbaa !9
  %12452 = getelementptr inbounds %struct.s2n_connection, ptr %12451, i32 0, i32 33
  %12453 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %12452, i32 0, i32 1
  %12454 = call i32 @s2n_array_pushback(ptr noundef %12453, ptr noundef %296)
  %12455 = getelementptr inbounds %struct.s2n_result, ptr %297, i32 0, i32 0
  store i32 %12454, ptr %12455, align 4
  %12456 = getelementptr inbounds %struct.s2n_result, ptr %297, i32 0, i32 0
  %12457 = load i32, ptr %12456, align 4
  %12458 = call zeroext i1 @s2n_result_is_ok(i32 %12457)
  br i1 %12458, label %12512, label %12459

12459:                                            ; preds = %12448
  br label %12460

12460:                                            ; preds = %12459
  br label %12461

12461:                                            ; preds = %12460
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #11
  %12462 = call ptr @__errno_location() #12
  %12463 = load i32, ptr %12462, align 4, !tbaa !5
  store i32 %12463, ptr %298, align 4, !tbaa !5
  %12464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12465 = call i32 @s2n_print_stacktrace(ptr noundef %12464)
  %12466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12467 = trunc i8 %12466 to i1
  br i1 %12467, label %12468, label %12490

12468:                                            ; preds = %12461
  %12469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12470 = call i32 @fileno(ptr noundef %12469) #11
  %12471 = call i32 @isatty(i32 noundef %12470) #11
  %12472 = icmp ne i32 %12471, 0
  br i1 %12472, label %12473, label %12490

12473:                                            ; preds = %12468
  %12474 = load i32, ptr %298, align 4, !tbaa !5
  %12475 = call ptr @__errno_location() #12
  store i32 %12474, ptr %12475, align 4, !tbaa !5
  %12476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12477 = load i32, ptr @test_count, align 4, !tbaa !5
  %12478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12479 = load i32, ptr %12478, align 4, !tbaa !5
  %12480 = call ptr @s2n_strerror(i32 noundef %12479, ptr noundef @.str.24)
  %12481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12482 = load i32, ptr %12481, align 4, !tbaa !5
  %12483 = call ptr @s2n_strerror_debug(i32 noundef %12482, ptr noundef @.str.24)
  %12484 = call ptr @__errno_location() #12
  %12485 = load i32, ptr %12484, align 4, !tbaa !5
  %12486 = call ptr @strerror(i32 noundef %12485) #11
  %12487 = call ptr @__errno_location() #12
  %12488 = load i32, ptr %12487, align 4, !tbaa !5
  %12489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12476, ptr noundef @.str.22, i32 noundef %12477, ptr noundef @.str.110, ptr noundef @.str.21, i32 noundef 864, ptr noundef %12480, ptr noundef %12483, ptr noundef %12486, i32 noundef %12488) #11
  br label %12507

12490:                                            ; preds = %12468, %12461
  %12491 = load i32, ptr %298, align 4, !tbaa !5
  %12492 = call ptr @__errno_location() #12
  store i32 %12491, ptr %12492, align 4, !tbaa !5
  %12493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12494 = load i32, ptr @test_count, align 4, !tbaa !5
  %12495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12496 = load i32, ptr %12495, align 4, !tbaa !5
  %12497 = call ptr @s2n_strerror(i32 noundef %12496, ptr noundef @.str.24)
  %12498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12499 = load i32, ptr %12498, align 4, !tbaa !5
  %12500 = call ptr @s2n_strerror_debug(i32 noundef %12499, ptr noundef @.str.24)
  %12501 = call ptr @__errno_location() #12
  %12502 = load i32, ptr %12501, align 4, !tbaa !5
  %12503 = call ptr @strerror(i32 noundef %12502) #11
  %12504 = call ptr @__errno_location() #12
  %12505 = load i32, ptr %12504, align 4, !tbaa !5
  %12506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12493, ptr noundef @.str.25, i32 noundef %12494, ptr noundef @.str.110, ptr noundef @.str.21, i32 noundef 864, ptr noundef %12497, ptr noundef %12500, ptr noundef %12503, i32 noundef %12505) #11
  br label %12507

12507:                                            ; preds = %12490, %12473
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #11
  br label %12508

12508:                                            ; preds = %12507
  br label %12509

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

12510:                                            ; No predecessors!
  br label %12511

12511:                                            ; preds = %12510
  br label %12512

12512:                                            ; preds = %12511, %12448
  br label %12513

12513:                                            ; preds = %12512
  br label %12514

12514:                                            ; preds = %12513
  %12515 = load ptr, ptr %296, align 8, !tbaa !9
  %12516 = load ptr, ptr %295, align 8, !tbaa !9
  %12517 = getelementptr inbounds %struct.s2n_connection, ptr %12516, i32 0, i32 33
  %12518 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %12517, i32 0, i32 4
  store ptr %12515, ptr %12518, align 8, !tbaa !94
  br label %12519

12519:                                            ; preds = %12514
  %12520 = load i32, ptr @test_count, align 4, !tbaa !5
  %12521 = add nsw i32 %12520, 1
  store i32 %12521, ptr @test_count, align 4, !tbaa !5
  %12522 = load ptr, ptr %295, align 8, !tbaa !9
  %12523 = getelementptr inbounds %struct.s2n_connection, ptr %12522, i32 0, i32 33
  %12524 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %12523, i32 0, i32 4
  %12525 = load ptr, ptr %12524, align 8, !tbaa !94
  %12526 = icmp eq ptr %12525, null
  br i1 %12526, label %12527, label %12580

12527:                                            ; preds = %12519
  br label %12528

12528:                                            ; preds = %12527
  br label %12529

12529:                                            ; preds = %12528
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #11
  %12530 = call ptr @__errno_location() #12
  %12531 = load i32, ptr %12530, align 4, !tbaa !5
  store i32 %12531, ptr %299, align 4, !tbaa !5
  %12532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12533 = call i32 @s2n_print_stacktrace(ptr noundef %12532)
  %12534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12535 = trunc i8 %12534 to i1
  br i1 %12535, label %12536, label %12558

12536:                                            ; preds = %12529
  %12537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12538 = call i32 @fileno(ptr noundef %12537) #11
  %12539 = call i32 @isatty(i32 noundef %12538) #11
  %12540 = icmp ne i32 %12539, 0
  br i1 %12540, label %12541, label %12558

12541:                                            ; preds = %12536
  %12542 = load i32, ptr %299, align 4, !tbaa !5
  %12543 = call ptr @__errno_location() #12
  store i32 %12542, ptr %12543, align 4, !tbaa !5
  %12544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12545 = load i32, ptr @test_count, align 4, !tbaa !5
  %12546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12547 = load i32, ptr %12546, align 4, !tbaa !5
  %12548 = call ptr @s2n_strerror(i32 noundef %12547, ptr noundef @.str.24)
  %12549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12550 = load i32, ptr %12549, align 4, !tbaa !5
  %12551 = call ptr @s2n_strerror_debug(i32 noundef %12550, ptr noundef @.str.24)
  %12552 = call ptr @__errno_location() #12
  %12553 = load i32, ptr %12552, align 4, !tbaa !5
  %12554 = call ptr @strerror(i32 noundef %12553) #11
  %12555 = call ptr @__errno_location() #12
  %12556 = load i32, ptr %12555, align 4, !tbaa !5
  %12557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12544, ptr noundef @.str.22, i32 noundef %12545, ptr noundef @.str.111, ptr noundef @.str.21, i32 noundef 866, ptr noundef %12548, ptr noundef %12551, ptr noundef %12554, i32 noundef %12556) #11
  br label %12575

12558:                                            ; preds = %12536, %12529
  %12559 = load i32, ptr %299, align 4, !tbaa !5
  %12560 = call ptr @__errno_location() #12
  store i32 %12559, ptr %12560, align 4, !tbaa !5
  %12561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12562 = load i32, ptr @test_count, align 4, !tbaa !5
  %12563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12564 = load i32, ptr %12563, align 4, !tbaa !5
  %12565 = call ptr @s2n_strerror(i32 noundef %12564, ptr noundef @.str.24)
  %12566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12567 = load i32, ptr %12566, align 4, !tbaa !5
  %12568 = call ptr @s2n_strerror_debug(i32 noundef %12567, ptr noundef @.str.24)
  %12569 = call ptr @__errno_location() #12
  %12570 = load i32, ptr %12569, align 4, !tbaa !5
  %12571 = call ptr @strerror(i32 noundef %12570) #11
  %12572 = call ptr @__errno_location() #12
  %12573 = load i32, ptr %12572, align 4, !tbaa !5
  %12574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12561, ptr noundef @.str.25, i32 noundef %12562, ptr noundef @.str.111, ptr noundef @.str.21, i32 noundef 866, ptr noundef %12565, ptr noundef %12568, ptr noundef %12571, i32 noundef %12573) #11
  br label %12575

12575:                                            ; preds = %12558, %12541
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #11
  br label %12576

12576:                                            ; preds = %12575
  br label %12577

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

12578:                                            ; No predecessors!
  br label %12579

12579:                                            ; preds = %12578
  br label %12580

12580:                                            ; preds = %12579, %12519
  br label %12581

12581:                                            ; preds = %12580
  br label %12582

12582:                                            ; preds = %12581
  br label %12583

12583:                                            ; preds = %12582
  %12584 = load i32, ptr @test_count, align 4, !tbaa !5
  %12585 = add nsw i32 %12584, 1
  store i32 %12585, ptr @test_count, align 4, !tbaa !5
  %12586 = load ptr, ptr %295, align 8, !tbaa !9
  %12587 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %12586, i32 noundef 1)
  %12588 = icmp eq i32 %12587, -1
  br i1 %12588, label %12589, label %12642

12589:                                            ; preds = %12583
  br label %12590

12590:                                            ; preds = %12589
  br label %12591

12591:                                            ; preds = %12590
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #11
  %12592 = call ptr @__errno_location() #12
  %12593 = load i32, ptr %12592, align 4, !tbaa !5
  store i32 %12593, ptr %300, align 4, !tbaa !5
  %12594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12595 = call i32 @s2n_print_stacktrace(ptr noundef %12594)
  %12596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12597 = trunc i8 %12596 to i1
  br i1 %12597, label %12598, label %12620

12598:                                            ; preds = %12591
  %12599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12600 = call i32 @fileno(ptr noundef %12599) #11
  %12601 = call i32 @isatty(i32 noundef %12600) #11
  %12602 = icmp ne i32 %12601, 0
  br i1 %12602, label %12603, label %12620

12603:                                            ; preds = %12598
  %12604 = load i32, ptr %300, align 4, !tbaa !5
  %12605 = call ptr @__errno_location() #12
  store i32 %12604, ptr %12605, align 4, !tbaa !5
  %12606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12607 = load i32, ptr @test_count, align 4, !tbaa !5
  %12608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12609 = load i32, ptr %12608, align 4, !tbaa !5
  %12610 = call ptr @s2n_strerror(i32 noundef %12609, ptr noundef @.str.24)
  %12611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12612 = load i32, ptr %12611, align 4, !tbaa !5
  %12613 = call ptr @s2n_strerror_debug(i32 noundef %12612, ptr noundef @.str.24)
  %12614 = call ptr @__errno_location() #12
  %12615 = load i32, ptr %12614, align 4, !tbaa !5
  %12616 = call ptr @strerror(i32 noundef %12615) #11
  %12617 = call ptr @__errno_location() #12
  %12618 = load i32, ptr %12617, align 4, !tbaa !5
  %12619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12606, ptr noundef @.str.22, i32 noundef %12607, ptr noundef @.str.112, ptr noundef @.str.21, i32 noundef 868, ptr noundef %12610, ptr noundef %12613, ptr noundef %12616, i32 noundef %12618) #11
  br label %12637

12620:                                            ; preds = %12598, %12591
  %12621 = load i32, ptr %300, align 4, !tbaa !5
  %12622 = call ptr @__errno_location() #12
  store i32 %12621, ptr %12622, align 4, !tbaa !5
  %12623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12624 = load i32, ptr @test_count, align 4, !tbaa !5
  %12625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12626 = load i32, ptr %12625, align 4, !tbaa !5
  %12627 = call ptr @s2n_strerror(i32 noundef %12626, ptr noundef @.str.24)
  %12628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12629 = load i32, ptr %12628, align 4, !tbaa !5
  %12630 = call ptr @s2n_strerror_debug(i32 noundef %12629, ptr noundef @.str.24)
  %12631 = call ptr @__errno_location() #12
  %12632 = load i32, ptr %12631, align 4, !tbaa !5
  %12633 = call ptr @strerror(i32 noundef %12632) #11
  %12634 = call ptr @__errno_location() #12
  %12635 = load i32, ptr %12634, align 4, !tbaa !5
  %12636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12623, ptr noundef @.str.25, i32 noundef %12624, ptr noundef @.str.112, ptr noundef @.str.21, i32 noundef 868, ptr noundef %12627, ptr noundef %12630, ptr noundef %12633, i32 noundef %12635) #11
  br label %12637

12637:                                            ; preds = %12620, %12603
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #11
  br label %12638

12638:                                            ; preds = %12637
  br label %12639

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

12640:                                            ; No predecessors!
  br label %12641

12641:                                            ; preds = %12640
  br label %12642

12642:                                            ; preds = %12641, %12583
  br label %12643

12643:                                            ; preds = %12642
  br label %12644

12644:                                            ; preds = %12643
  br label %12645

12645:                                            ; preds = %12644
  %12646 = load i32, ptr @test_count, align 4, !tbaa !5
  %12647 = add nsw i32 %12646, 1
  store i32 %12647, ptr @test_count, align 4, !tbaa !5
  %12648 = load ptr, ptr %295, align 8, !tbaa !9
  %12649 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef %12648)
  %12650 = getelementptr inbounds %struct.s2n_result, ptr %301, i32 0, i32 0
  store i32 %12649, ptr %12650, align 4
  %12651 = getelementptr inbounds %struct.s2n_result, ptr %301, i32 0, i32 0
  %12652 = load i32, ptr %12651, align 4
  %12653 = call zeroext i1 @s2n_result_is_ok(i32 %12652)
  br i1 %12653, label %12707, label %12654

12654:                                            ; preds = %12645
  br label %12655

12655:                                            ; preds = %12654
  br label %12656

12656:                                            ; preds = %12655
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #11
  %12657 = call ptr @__errno_location() #12
  %12658 = load i32, ptr %12657, align 4, !tbaa !5
  store i32 %12658, ptr %302, align 4, !tbaa !5
  %12659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12660 = call i32 @s2n_print_stacktrace(ptr noundef %12659)
  %12661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12662 = trunc i8 %12661 to i1
  br i1 %12662, label %12663, label %12685

12663:                                            ; preds = %12656
  %12664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12665 = call i32 @fileno(ptr noundef %12664) #11
  %12666 = call i32 @isatty(i32 noundef %12665) #11
  %12667 = icmp ne i32 %12666, 0
  br i1 %12667, label %12668, label %12685

12668:                                            ; preds = %12663
  %12669 = load i32, ptr %302, align 4, !tbaa !5
  %12670 = call ptr @__errno_location() #12
  store i32 %12669, ptr %12670, align 4, !tbaa !5
  %12671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12672 = load i32, ptr @test_count, align 4, !tbaa !5
  %12673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12674 = load i32, ptr %12673, align 4, !tbaa !5
  %12675 = call ptr @s2n_strerror(i32 noundef %12674, ptr noundef @.str.24)
  %12676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12677 = load i32, ptr %12676, align 4, !tbaa !5
  %12678 = call ptr @s2n_strerror_debug(i32 noundef %12677, ptr noundef @.str.24)
  %12679 = call ptr @__errno_location() #12
  %12680 = load i32, ptr %12679, align 4, !tbaa !5
  %12681 = call ptr @strerror(i32 noundef %12680) #11
  %12682 = call ptr @__errno_location() #12
  %12683 = load i32, ptr %12682, align 4, !tbaa !5
  %12684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12671, ptr noundef @.str.22, i32 noundef %12672, ptr noundef @.str.113, ptr noundef @.str.21, i32 noundef 870, ptr noundef %12675, ptr noundef %12678, ptr noundef %12681, i32 noundef %12683) #11
  br label %12702

12685:                                            ; preds = %12663, %12656
  %12686 = load i32, ptr %302, align 4, !tbaa !5
  %12687 = call ptr @__errno_location() #12
  store i32 %12686, ptr %12687, align 4, !tbaa !5
  %12688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12689 = load i32, ptr @test_count, align 4, !tbaa !5
  %12690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12691 = load i32, ptr %12690, align 4, !tbaa !5
  %12692 = call ptr @s2n_strerror(i32 noundef %12691, ptr noundef @.str.24)
  %12693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12694 = load i32, ptr %12693, align 4, !tbaa !5
  %12695 = call ptr @s2n_strerror_debug(i32 noundef %12694, ptr noundef @.str.24)
  %12696 = call ptr @__errno_location() #12
  %12697 = load i32, ptr %12696, align 4, !tbaa !5
  %12698 = call ptr @strerror(i32 noundef %12697) #11
  %12699 = call ptr @__errno_location() #12
  %12700 = load i32, ptr %12699, align 4, !tbaa !5
  %12701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12688, ptr noundef @.str.25, i32 noundef %12689, ptr noundef @.str.113, ptr noundef @.str.21, i32 noundef 870, ptr noundef %12692, ptr noundef %12695, ptr noundef %12698, i32 noundef %12700) #11
  br label %12702

12702:                                            ; preds = %12685, %12668
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #11
  br label %12703

12703:                                            ; preds = %12702
  br label %12704

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

12705:                                            ; No predecessors!
  br label %12706

12706:                                            ; preds = %12705
  br label %12707

12707:                                            ; preds = %12706, %12645
  br label %12708

12708:                                            ; preds = %12707
  br label %12709

12709:                                            ; preds = %12708
  br label %12710

12710:                                            ; preds = %12709
  %12711 = load i32, ptr @test_count, align 4, !tbaa !5
  %12712 = add nsw i32 %12711, 1
  store i32 %12712, ptr @test_count, align 4, !tbaa !5
  %12713 = load ptr, ptr %295, align 8, !tbaa !9
  %12714 = getelementptr inbounds %struct.s2n_connection, ptr %12713, i32 0, i32 52
  %12715 = getelementptr inbounds %struct.s2n_handshake, ptr %12714, i32 0, i32 6
  %12716 = load i32, ptr %12715, align 4, !tbaa !60
  %12717 = and i32 %12716, 4
  %12718 = icmp ne i32 %12717, 0
  br i1 %12718, label %12719, label %12772

12719:                                            ; preds = %12710
  br label %12720

12720:                                            ; preds = %12719
  br label %12721

12721:                                            ; preds = %12720
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #11
  %12722 = call ptr @__errno_location() #12
  %12723 = load i32, ptr %12722, align 4, !tbaa !5
  store i32 %12723, ptr %303, align 4, !tbaa !5
  %12724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12725 = call i32 @s2n_print_stacktrace(ptr noundef %12724)
  %12726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12727 = trunc i8 %12726 to i1
  br i1 %12727, label %12728, label %12750

12728:                                            ; preds = %12721
  %12729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12730 = call i32 @fileno(ptr noundef %12729) #11
  %12731 = call i32 @isatty(i32 noundef %12730) #11
  %12732 = icmp ne i32 %12731, 0
  br i1 %12732, label %12733, label %12750

12733:                                            ; preds = %12728
  %12734 = load i32, ptr %303, align 4, !tbaa !5
  %12735 = call ptr @__errno_location() #12
  store i32 %12734, ptr %12735, align 4, !tbaa !5
  %12736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12737 = load i32, ptr @test_count, align 4, !tbaa !5
  %12738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12739 = load i32, ptr %12738, align 4, !tbaa !5
  %12740 = call ptr @s2n_strerror(i32 noundef %12739, ptr noundef @.str.24)
  %12741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12742 = load i32, ptr %12741, align 4, !tbaa !5
  %12743 = call ptr @s2n_strerror_debug(i32 noundef %12742, ptr noundef @.str.24)
  %12744 = call ptr @__errno_location() #12
  %12745 = load i32, ptr %12744, align 4, !tbaa !5
  %12746 = call ptr @strerror(i32 noundef %12745) #11
  %12747 = call ptr @__errno_location() #12
  %12748 = load i32, ptr %12747, align 4, !tbaa !5
  %12749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12736, ptr noundef @.str.22, i32 noundef %12737, ptr noundef @.str.114, ptr noundef @.str.21, i32 noundef 871, ptr noundef %12740, ptr noundef %12743, ptr noundef %12746, i32 noundef %12748) #11
  br label %12767

12750:                                            ; preds = %12728, %12721
  %12751 = load i32, ptr %303, align 4, !tbaa !5
  %12752 = call ptr @__errno_location() #12
  store i32 %12751, ptr %12752, align 4, !tbaa !5
  %12753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12754 = load i32, ptr @test_count, align 4, !tbaa !5
  %12755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12756 = load i32, ptr %12755, align 4, !tbaa !5
  %12757 = call ptr @s2n_strerror(i32 noundef %12756, ptr noundef @.str.24)
  %12758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12759 = load i32, ptr %12758, align 4, !tbaa !5
  %12760 = call ptr @s2n_strerror_debug(i32 noundef %12759, ptr noundef @.str.24)
  %12761 = call ptr @__errno_location() #12
  %12762 = load i32, ptr %12761, align 4, !tbaa !5
  %12763 = call ptr @strerror(i32 noundef %12762) #11
  %12764 = call ptr @__errno_location() #12
  %12765 = load i32, ptr %12764, align 4, !tbaa !5
  %12766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12753, ptr noundef @.str.25, i32 noundef %12754, ptr noundef @.str.114, ptr noundef @.str.21, i32 noundef 871, ptr noundef %12757, ptr noundef %12760, ptr noundef %12763, i32 noundef %12765) #11
  br label %12767

12767:                                            ; preds = %12750, %12733
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #11
  br label %12768

12768:                                            ; preds = %12767
  br label %12769

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

12770:                                            ; No predecessors!
  br label %12771

12771:                                            ; preds = %12770
  br label %12772

12772:                                            ; preds = %12771, %12710
  br label %12773

12773:                                            ; preds = %12772
  br label %12774

12774:                                            ; preds = %12773
  br label %12775

12775:                                            ; preds = %12774
  %12776 = load i32, ptr @test_count, align 4, !tbaa !5
  %12777 = add nsw i32 %12776, 1
  store i32 %12777, ptr @test_count, align 4, !tbaa !5
  %12778 = load ptr, ptr %295, align 8, !tbaa !9
  %12779 = getelementptr inbounds %struct.s2n_connection, ptr %12778, i32 0, i32 52
  %12780 = getelementptr inbounds %struct.s2n_handshake, ptr %12779, i32 0, i32 6
  %12781 = load i32, ptr %12780, align 4, !tbaa !60
  %12782 = and i32 %12781, 2
  %12783 = icmp ne i32 %12782, 0
  br i1 %12783, label %12784, label %12837

12784:                                            ; preds = %12775
  br label %12785

12785:                                            ; preds = %12784
  br label %12786

12786:                                            ; preds = %12785
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #11
  %12787 = call ptr @__errno_location() #12
  %12788 = load i32, ptr %12787, align 4, !tbaa !5
  store i32 %12788, ptr %304, align 4, !tbaa !5
  %12789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12790 = call i32 @s2n_print_stacktrace(ptr noundef %12789)
  %12791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12792 = trunc i8 %12791 to i1
  br i1 %12792, label %12793, label %12815

12793:                                            ; preds = %12786
  %12794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12795 = call i32 @fileno(ptr noundef %12794) #11
  %12796 = call i32 @isatty(i32 noundef %12795) #11
  %12797 = icmp ne i32 %12796, 0
  br i1 %12797, label %12798, label %12815

12798:                                            ; preds = %12793
  %12799 = load i32, ptr %304, align 4, !tbaa !5
  %12800 = call ptr @__errno_location() #12
  store i32 %12799, ptr %12800, align 4, !tbaa !5
  %12801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12802 = load i32, ptr @test_count, align 4, !tbaa !5
  %12803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12804 = load i32, ptr %12803, align 4, !tbaa !5
  %12805 = call ptr @s2n_strerror(i32 noundef %12804, ptr noundef @.str.24)
  %12806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12807 = load i32, ptr %12806, align 4, !tbaa !5
  %12808 = call ptr @s2n_strerror_debug(i32 noundef %12807, ptr noundef @.str.24)
  %12809 = call ptr @__errno_location() #12
  %12810 = load i32, ptr %12809, align 4, !tbaa !5
  %12811 = call ptr @strerror(i32 noundef %12810) #11
  %12812 = call ptr @__errno_location() #12
  %12813 = load i32, ptr %12812, align 4, !tbaa !5
  %12814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12801, ptr noundef @.str.22, i32 noundef %12802, ptr noundef @.str.115, ptr noundef @.str.21, i32 noundef 872, ptr noundef %12805, ptr noundef %12808, ptr noundef %12811, i32 noundef %12813) #11
  br label %12832

12815:                                            ; preds = %12793, %12786
  %12816 = load i32, ptr %304, align 4, !tbaa !5
  %12817 = call ptr @__errno_location() #12
  store i32 %12816, ptr %12817, align 4, !tbaa !5
  %12818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12819 = load i32, ptr @test_count, align 4, !tbaa !5
  %12820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12821 = load i32, ptr %12820, align 4, !tbaa !5
  %12822 = call ptr @s2n_strerror(i32 noundef %12821, ptr noundef @.str.24)
  %12823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12824 = load i32, ptr %12823, align 4, !tbaa !5
  %12825 = call ptr @s2n_strerror_debug(i32 noundef %12824, ptr noundef @.str.24)
  %12826 = call ptr @__errno_location() #12
  %12827 = load i32, ptr %12826, align 4, !tbaa !5
  %12828 = call ptr @strerror(i32 noundef %12827) #11
  %12829 = call ptr @__errno_location() #12
  %12830 = load i32, ptr %12829, align 4, !tbaa !5
  %12831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12818, ptr noundef @.str.25, i32 noundef %12819, ptr noundef @.str.115, ptr noundef @.str.21, i32 noundef 872, ptr noundef %12822, ptr noundef %12825, ptr noundef %12828, i32 noundef %12830) #11
  br label %12832

12832:                                            ; preds = %12815, %12798
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #11
  br label %12833

12833:                                            ; preds = %12832
  br label %12834

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

12835:                                            ; No predecessors!
  br label %12836

12836:                                            ; preds = %12835
  br label %12837

12837:                                            ; preds = %12836, %12775
  br label %12838

12838:                                            ; preds = %12837
  br label %12839

12839:                                            ; preds = %12838
  br label %12840

12840:                                            ; preds = %12839
  %12841 = load i32, ptr @test_count, align 4, !tbaa !5
  %12842 = add nsw i32 %12841, 1
  store i32 %12842, ptr @test_count, align 4, !tbaa !5
  %12843 = load ptr, ptr %295, align 8, !tbaa !9
  %12844 = call i32 @s2n_connection_free(ptr noundef %12843)
  %12845 = icmp eq i32 %12844, -1
  br i1 %12845, label %12846, label %12899

12846:                                            ; preds = %12840
  br label %12847

12847:                                            ; preds = %12846
  br label %12848

12848:                                            ; preds = %12847
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #11
  %12849 = call ptr @__errno_location() #12
  %12850 = load i32, ptr %12849, align 4, !tbaa !5
  store i32 %12850, ptr %305, align 4, !tbaa !5
  %12851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12852 = call i32 @s2n_print_stacktrace(ptr noundef %12851)
  %12853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12854 = trunc i8 %12853 to i1
  br i1 %12854, label %12855, label %12877

12855:                                            ; preds = %12848
  %12856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12857 = call i32 @fileno(ptr noundef %12856) #11
  %12858 = call i32 @isatty(i32 noundef %12857) #11
  %12859 = icmp ne i32 %12858, 0
  br i1 %12859, label %12860, label %12877

12860:                                            ; preds = %12855
  %12861 = load i32, ptr %305, align 4, !tbaa !5
  %12862 = call ptr @__errno_location() #12
  store i32 %12861, ptr %12862, align 4, !tbaa !5
  %12863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12864 = load i32, ptr @test_count, align 4, !tbaa !5
  %12865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12866 = load i32, ptr %12865, align 4, !tbaa !5
  %12867 = call ptr @s2n_strerror(i32 noundef %12866, ptr noundef @.str.24)
  %12868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12869 = load i32, ptr %12868, align 4, !tbaa !5
  %12870 = call ptr @s2n_strerror_debug(i32 noundef %12869, ptr noundef @.str.24)
  %12871 = call ptr @__errno_location() #12
  %12872 = load i32, ptr %12871, align 4, !tbaa !5
  %12873 = call ptr @strerror(i32 noundef %12872) #11
  %12874 = call ptr @__errno_location() #12
  %12875 = load i32, ptr %12874, align 4, !tbaa !5
  %12876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12863, ptr noundef @.str.22, i32 noundef %12864, ptr noundef @.str.116, ptr noundef @.str.21, i32 noundef 874, ptr noundef %12867, ptr noundef %12870, ptr noundef %12873, i32 noundef %12875) #11
  br label %12894

12877:                                            ; preds = %12855, %12848
  %12878 = load i32, ptr %305, align 4, !tbaa !5
  %12879 = call ptr @__errno_location() #12
  store i32 %12878, ptr %12879, align 4, !tbaa !5
  %12880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12881 = load i32, ptr @test_count, align 4, !tbaa !5
  %12882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12883 = load i32, ptr %12882, align 4, !tbaa !5
  %12884 = call ptr @s2n_strerror(i32 noundef %12883, ptr noundef @.str.24)
  %12885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12886 = load i32, ptr %12885, align 4, !tbaa !5
  %12887 = call ptr @s2n_strerror_debug(i32 noundef %12886, ptr noundef @.str.24)
  %12888 = call ptr @__errno_location() #12
  %12889 = load i32, ptr %12888, align 4, !tbaa !5
  %12890 = call ptr @strerror(i32 noundef %12889) #11
  %12891 = call ptr @__errno_location() #12
  %12892 = load i32, ptr %12891, align 4, !tbaa !5
  %12893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12880, ptr noundef @.str.25, i32 noundef %12881, ptr noundef @.str.116, ptr noundef @.str.21, i32 noundef 874, ptr noundef %12884, ptr noundef %12887, ptr noundef %12890, i32 noundef %12892) #11
  br label %12894

12894:                                            ; preds = %12877, %12860
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #11
  br label %12895

12895:                                            ; preds = %12894
  br label %12896

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

12897:                                            ; No predecessors!
  br label %12898

12898:                                            ; preds = %12897
  br label %12899

12899:                                            ; preds = %12898, %12840
  br label %12900

12900:                                            ; preds = %12899
  br label %12901

12901:                                            ; preds = %12900
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %306) #11
  %12902 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12902, ptr %306, align 8, !tbaa !9
  %12903 = load ptr, ptr %306, align 8, !tbaa !9
  %12904 = getelementptr inbounds %struct.s2n_connection, ptr %12903, i32 0, i32 23
  store i8 34, ptr %12904, align 4, !tbaa !34
  %12905 = load ptr, ptr %306, align 8, !tbaa !9
  %12906 = getelementptr inbounds %struct.s2n_connection, ptr %12905, i32 0, i32 89
  store i32 3, ptr %12906, align 8, !tbaa !95
  br label %12907

12907:                                            ; preds = %12901
  %12908 = load i32, ptr @test_count, align 4, !tbaa !5
  %12909 = add nsw i32 %12908, 1
  store i32 %12909, ptr @test_count, align 4, !tbaa !5
  %12910 = load ptr, ptr %306, align 8, !tbaa !9
  %12911 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef %12910)
  %12912 = getelementptr inbounds %struct.s2n_result, ptr %307, i32 0, i32 0
  store i32 %12911, ptr %12912, align 4
  %12913 = getelementptr inbounds %struct.s2n_result, ptr %307, i32 0, i32 0
  %12914 = load i32, ptr %12913, align 4
  %12915 = call zeroext i1 @s2n_result_is_ok(i32 %12914)
  br i1 %12915, label %12969, label %12916

12916:                                            ; preds = %12907
  br label %12917

12917:                                            ; preds = %12916
  br label %12918

12918:                                            ; preds = %12917
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #11
  %12919 = call ptr @__errno_location() #12
  %12920 = load i32, ptr %12919, align 4, !tbaa !5
  store i32 %12920, ptr %308, align 4, !tbaa !5
  %12921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12922 = call i32 @s2n_print_stacktrace(ptr noundef %12921)
  %12923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12924 = trunc i8 %12923 to i1
  br i1 %12924, label %12925, label %12947

12925:                                            ; preds = %12918
  %12926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12927 = call i32 @fileno(ptr noundef %12926) #11
  %12928 = call i32 @isatty(i32 noundef %12927) #11
  %12929 = icmp ne i32 %12928, 0
  br i1 %12929, label %12930, label %12947

12930:                                            ; preds = %12925
  %12931 = load i32, ptr %308, align 4, !tbaa !5
  %12932 = call ptr @__errno_location() #12
  store i32 %12931, ptr %12932, align 4, !tbaa !5
  %12933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12934 = load i32, ptr @test_count, align 4, !tbaa !5
  %12935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12936 = load i32, ptr %12935, align 4, !tbaa !5
  %12937 = call ptr @s2n_strerror(i32 noundef %12936, ptr noundef @.str.24)
  %12938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12939 = load i32, ptr %12938, align 4, !tbaa !5
  %12940 = call ptr @s2n_strerror_debug(i32 noundef %12939, ptr noundef @.str.24)
  %12941 = call ptr @__errno_location() #12
  %12942 = load i32, ptr %12941, align 4, !tbaa !5
  %12943 = call ptr @strerror(i32 noundef %12942) #11
  %12944 = call ptr @__errno_location() #12
  %12945 = load i32, ptr %12944, align 4, !tbaa !5
  %12946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12933, ptr noundef @.str.22, i32 noundef %12934, ptr noundef @.str.113, ptr noundef @.str.21, i32 noundef 883, ptr noundef %12937, ptr noundef %12940, ptr noundef %12943, i32 noundef %12945) #11
  br label %12964

12947:                                            ; preds = %12925, %12918
  %12948 = load i32, ptr %308, align 4, !tbaa !5
  %12949 = call ptr @__errno_location() #12
  store i32 %12948, ptr %12949, align 4, !tbaa !5
  %12950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12951 = load i32, ptr @test_count, align 4, !tbaa !5
  %12952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12953 = load i32, ptr %12952, align 4, !tbaa !5
  %12954 = call ptr @s2n_strerror(i32 noundef %12953, ptr noundef @.str.24)
  %12955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12956 = load i32, ptr %12955, align 4, !tbaa !5
  %12957 = call ptr @s2n_strerror_debug(i32 noundef %12956, ptr noundef @.str.24)
  %12958 = call ptr @__errno_location() #12
  %12959 = load i32, ptr %12958, align 4, !tbaa !5
  %12960 = call ptr @strerror(i32 noundef %12959) #11
  %12961 = call ptr @__errno_location() #12
  %12962 = load i32, ptr %12961, align 4, !tbaa !5
  %12963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12950, ptr noundef @.str.25, i32 noundef %12951, ptr noundef @.str.113, ptr noundef @.str.21, i32 noundef 883, ptr noundef %12954, ptr noundef %12957, ptr noundef %12960, i32 noundef %12962) #11
  br label %12964

12964:                                            ; preds = %12947, %12930
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #11
  br label %12965

12965:                                            ; preds = %12964
  br label %12966

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

12967:                                            ; No predecessors!
  br label %12968

12968:                                            ; preds = %12967
  br label %12969

12969:                                            ; preds = %12968, %12907
  br label %12970

12970:                                            ; preds = %12969
  br label %12971

12971:                                            ; preds = %12970
  br label %12972

12972:                                            ; preds = %12971
  %12973 = load i32, ptr @test_count, align 4, !tbaa !5
  %12974 = add nsw i32 %12973, 1
  store i32 %12974, ptr @test_count, align 4, !tbaa !5
  %12975 = load ptr, ptr %306, align 8, !tbaa !9
  %12976 = getelementptr inbounds %struct.s2n_connection, ptr %12975, i32 0, i32 52
  %12977 = getelementptr inbounds %struct.s2n_handshake, ptr %12976, i32 0, i32 6
  %12978 = load i32, ptr %12977, align 4, !tbaa !60
  %12979 = and i32 %12978, 64
  %12980 = icmp ne i32 %12979, 0
  br i1 %12980, label %13034, label %12981

12981:                                            ; preds = %12972
  br label %12982

12982:                                            ; preds = %12981
  br label %12983

12983:                                            ; preds = %12982
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #11
  %12984 = call ptr @__errno_location() #12
  %12985 = load i32, ptr %12984, align 4, !tbaa !5
  store i32 %12985, ptr %309, align 4, !tbaa !5
  %12986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12987 = call i32 @s2n_print_stacktrace(ptr noundef %12986)
  %12988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12989 = trunc i8 %12988 to i1
  br i1 %12989, label %12990, label %13012

12990:                                            ; preds = %12983
  %12991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12992 = call i32 @fileno(ptr noundef %12991) #11
  %12993 = call i32 @isatty(i32 noundef %12992) #11
  %12994 = icmp ne i32 %12993, 0
  br i1 %12994, label %12995, label %13012

12995:                                            ; preds = %12990
  %12996 = load i32, ptr %309, align 4, !tbaa !5
  %12997 = call ptr @__errno_location() #12
  store i32 %12996, ptr %12997, align 4, !tbaa !5
  %12998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12999 = load i32, ptr @test_count, align 4, !tbaa !5
  %13000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13001 = load i32, ptr %13000, align 4, !tbaa !5
  %13002 = call ptr @s2n_strerror(i32 noundef %13001, ptr noundef @.str.24)
  %13003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13004 = load i32, ptr %13003, align 4, !tbaa !5
  %13005 = call ptr @s2n_strerror_debug(i32 noundef %13004, ptr noundef @.str.24)
  %13006 = call ptr @__errno_location() #12
  %13007 = load i32, ptr %13006, align 4, !tbaa !5
  %13008 = call ptr @strerror(i32 noundef %13007) #11
  %13009 = call ptr @__errno_location() #12
  %13010 = load i32, ptr %13009, align 4, !tbaa !5
  %13011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12998, ptr noundef @.str.22, i32 noundef %12999, ptr noundef @.str.117, ptr noundef @.str.21, i32 noundef 884, ptr noundef %13002, ptr noundef %13005, ptr noundef %13008, i32 noundef %13010) #11
  br label %13029

13012:                                            ; preds = %12990, %12983
  %13013 = load i32, ptr %309, align 4, !tbaa !5
  %13014 = call ptr @__errno_location() #12
  store i32 %13013, ptr %13014, align 4, !tbaa !5
  %13015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13016 = load i32, ptr @test_count, align 4, !tbaa !5
  %13017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13018 = load i32, ptr %13017, align 4, !tbaa !5
  %13019 = call ptr @s2n_strerror(i32 noundef %13018, ptr noundef @.str.24)
  %13020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13021 = load i32, ptr %13020, align 4, !tbaa !5
  %13022 = call ptr @s2n_strerror_debug(i32 noundef %13021, ptr noundef @.str.24)
  %13023 = call ptr @__errno_location() #12
  %13024 = load i32, ptr %13023, align 4, !tbaa !5
  %13025 = call ptr @strerror(i32 noundef %13024) #11
  %13026 = call ptr @__errno_location() #12
  %13027 = load i32, ptr %13026, align 4, !tbaa !5
  %13028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13015, ptr noundef @.str.25, i32 noundef %13016, ptr noundef @.str.117, ptr noundef @.str.21, i32 noundef 884, ptr noundef %13019, ptr noundef %13022, ptr noundef %13025, i32 noundef %13027) #11
  br label %13029

13029:                                            ; preds = %13012, %12995
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #11
  br label %13030

13030:                                            ; preds = %13029
  br label %13031

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

13032:                                            ; No predecessors!
  br label %13033

13033:                                            ; preds = %13032
  br label %13034

13034:                                            ; preds = %13033, %12972
  br label %13035

13035:                                            ; preds = %13034
  br label %13036

13036:                                            ; preds = %13035
  br label %13037

13037:                                            ; preds = %13036
  %13038 = load i32, ptr @test_count, align 4, !tbaa !5
  %13039 = add nsw i32 %13038, 1
  store i32 %13039, ptr @test_count, align 4, !tbaa !5
  %13040 = load ptr, ptr %306, align 8, !tbaa !9
  %13041 = getelementptr inbounds %struct.s2n_connection, ptr %13040, i32 0, i32 52
  %13042 = getelementptr inbounds %struct.s2n_handshake, ptr %13041, i32 0, i32 6
  %13043 = load i32, ptr %13042, align 4, !tbaa !60
  %13044 = and i32 %13043, 1
  %13045 = icmp ne i32 %13044, 0
  br i1 %13045, label %13099, label %13046

13046:                                            ; preds = %13037
  br label %13047

13047:                                            ; preds = %13046
  br label %13048

13048:                                            ; preds = %13047
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #11
  %13049 = call ptr @__errno_location() #12
  %13050 = load i32, ptr %13049, align 4, !tbaa !5
  store i32 %13050, ptr %310, align 4, !tbaa !5
  %13051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13052 = call i32 @s2n_print_stacktrace(ptr noundef %13051)
  %13053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13054 = trunc i8 %13053 to i1
  br i1 %13054, label %13055, label %13077

13055:                                            ; preds = %13048
  %13056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13057 = call i32 @fileno(ptr noundef %13056) #11
  %13058 = call i32 @isatty(i32 noundef %13057) #11
  %13059 = icmp ne i32 %13058, 0
  br i1 %13059, label %13060, label %13077

13060:                                            ; preds = %13055
  %13061 = load i32, ptr %310, align 4, !tbaa !5
  %13062 = call ptr @__errno_location() #12
  store i32 %13061, ptr %13062, align 4, !tbaa !5
  %13063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13064 = load i32, ptr @test_count, align 4, !tbaa !5
  %13065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13066 = load i32, ptr %13065, align 4, !tbaa !5
  %13067 = call ptr @s2n_strerror(i32 noundef %13066, ptr noundef @.str.24)
  %13068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13069 = load i32, ptr %13068, align 4, !tbaa !5
  %13070 = call ptr @s2n_strerror_debug(i32 noundef %13069, ptr noundef @.str.24)
  %13071 = call ptr @__errno_location() #12
  %13072 = load i32, ptr %13071, align 4, !tbaa !5
  %13073 = call ptr @strerror(i32 noundef %13072) #11
  %13074 = call ptr @__errno_location() #12
  %13075 = load i32, ptr %13074, align 4, !tbaa !5
  %13076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13063, ptr noundef @.str.22, i32 noundef %13064, ptr noundef @.str.118, ptr noundef @.str.21, i32 noundef 885, ptr noundef %13067, ptr noundef %13070, ptr noundef %13073, i32 noundef %13075) #11
  br label %13094

13077:                                            ; preds = %13055, %13048
  %13078 = load i32, ptr %310, align 4, !tbaa !5
  %13079 = call ptr @__errno_location() #12
  store i32 %13078, ptr %13079, align 4, !tbaa !5
  %13080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13081 = load i32, ptr @test_count, align 4, !tbaa !5
  %13082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13083 = load i32, ptr %13082, align 4, !tbaa !5
  %13084 = call ptr @s2n_strerror(i32 noundef %13083, ptr noundef @.str.24)
  %13085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13086 = load i32, ptr %13085, align 4, !tbaa !5
  %13087 = call ptr @s2n_strerror_debug(i32 noundef %13086, ptr noundef @.str.24)
  %13088 = call ptr @__errno_location() #12
  %13089 = load i32, ptr %13088, align 4, !tbaa !5
  %13090 = call ptr @strerror(i32 noundef %13089) #11
  %13091 = call ptr @__errno_location() #12
  %13092 = load i32, ptr %13091, align 4, !tbaa !5
  %13093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13080, ptr noundef @.str.25, i32 noundef %13081, ptr noundef @.str.118, ptr noundef @.str.21, i32 noundef 885, ptr noundef %13084, ptr noundef %13087, ptr noundef %13090, i32 noundef %13092) #11
  br label %13094

13094:                                            ; preds = %13077, %13060
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #11
  br label %13095

13095:                                            ; preds = %13094
  br label %13096

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

13097:                                            ; No predecessors!
  br label %13098

13098:                                            ; preds = %13097
  br label %13099

13099:                                            ; preds = %13098, %13037
  br label %13100

13100:                                            ; preds = %13099
  br label %13101

13101:                                            ; preds = %13100
  br label %13102

13102:                                            ; preds = %13101
  %13103 = load i32, ptr @test_count, align 4, !tbaa !5
  %13104 = add nsw i32 %13103, 1
  store i32 %13104, ptr @test_count, align 4, !tbaa !5
  %13105 = load ptr, ptr %306, align 8, !tbaa !9
  %13106 = call i32 @s2n_connection_free(ptr noundef %13105)
  %13107 = icmp eq i32 %13106, -1
  br i1 %13107, label %13108, label %13161

13108:                                            ; preds = %13102
  br label %13109

13109:                                            ; preds = %13108
  br label %13110

13110:                                            ; preds = %13109
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #11
  %13111 = call ptr @__errno_location() #12
  %13112 = load i32, ptr %13111, align 4, !tbaa !5
  store i32 %13112, ptr %311, align 4, !tbaa !5
  %13113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13114 = call i32 @s2n_print_stacktrace(ptr noundef %13113)
  %13115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13116 = trunc i8 %13115 to i1
  br i1 %13116, label %13117, label %13139

13117:                                            ; preds = %13110
  %13118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13119 = call i32 @fileno(ptr noundef %13118) #11
  %13120 = call i32 @isatty(i32 noundef %13119) #11
  %13121 = icmp ne i32 %13120, 0
  br i1 %13121, label %13122, label %13139

13122:                                            ; preds = %13117
  %13123 = load i32, ptr %311, align 4, !tbaa !5
  %13124 = call ptr @__errno_location() #12
  store i32 %13123, ptr %13124, align 4, !tbaa !5
  %13125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13126 = load i32, ptr @test_count, align 4, !tbaa !5
  %13127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13128 = load i32, ptr %13127, align 4, !tbaa !5
  %13129 = call ptr @s2n_strerror(i32 noundef %13128, ptr noundef @.str.24)
  %13130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13131 = load i32, ptr %13130, align 4, !tbaa !5
  %13132 = call ptr @s2n_strerror_debug(i32 noundef %13131, ptr noundef @.str.24)
  %13133 = call ptr @__errno_location() #12
  %13134 = load i32, ptr %13133, align 4, !tbaa !5
  %13135 = call ptr @strerror(i32 noundef %13134) #11
  %13136 = call ptr @__errno_location() #12
  %13137 = load i32, ptr %13136, align 4, !tbaa !5
  %13138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13125, ptr noundef @.str.22, i32 noundef %13126, ptr noundef @.str.116, ptr noundef @.str.21, i32 noundef 887, ptr noundef %13129, ptr noundef %13132, ptr noundef %13135, i32 noundef %13137) #11
  br label %13156

13139:                                            ; preds = %13117, %13110
  %13140 = load i32, ptr %311, align 4, !tbaa !5
  %13141 = call ptr @__errno_location() #12
  store i32 %13140, ptr %13141, align 4, !tbaa !5
  %13142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13143 = load i32, ptr @test_count, align 4, !tbaa !5
  %13144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13145 = load i32, ptr %13144, align 4, !tbaa !5
  %13146 = call ptr @s2n_strerror(i32 noundef %13145, ptr noundef @.str.24)
  %13147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13148 = load i32, ptr %13147, align 4, !tbaa !5
  %13149 = call ptr @s2n_strerror_debug(i32 noundef %13148, ptr noundef @.str.24)
  %13150 = call ptr @__errno_location() #12
  %13151 = load i32, ptr %13150, align 4, !tbaa !5
  %13152 = call ptr @strerror(i32 noundef %13151) #11
  %13153 = call ptr @__errno_location() #12
  %13154 = load i32, ptr %13153, align 4, !tbaa !5
  %13155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13142, ptr noundef @.str.25, i32 noundef %13143, ptr noundef @.str.116, ptr noundef @.str.21, i32 noundef 887, ptr noundef %13146, ptr noundef %13149, ptr noundef %13152, i32 noundef %13154) #11
  br label %13156

13156:                                            ; preds = %13139, %13122
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #11
  br label %13157

13157:                                            ; preds = %13156
  br label %13158

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

13159:                                            ; No predecessors!
  br label %13160

13160:                                            ; preds = %13159
  br label %13161

13161:                                            ; preds = %13160, %13102
  br label %13162

13162:                                            ; preds = %13161
  br label %13163

13163:                                            ; preds = %13162
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %312) #11
  %13164 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %13164, ptr %312, align 8, !tbaa !9
  %13165 = load ptr, ptr %312, align 8, !tbaa !9
  %13166 = getelementptr inbounds %struct.s2n_connection, ptr %13165, i32 0, i32 23
  store i8 34, ptr %13166, align 4, !tbaa !34
  %13167 = load ptr, ptr %312, align 8, !tbaa !9
  %13168 = getelementptr inbounds %struct.s2n_connection, ptr %13167, i32 0, i32 89
  store i32 4, ptr %13168, align 8, !tbaa !95
  br label %13169

13169:                                            ; preds = %13163
  %13170 = load i32, ptr @test_count, align 4, !tbaa !5
  %13171 = add nsw i32 %13170, 1
  store i32 %13171, ptr @test_count, align 4, !tbaa !5
  %13172 = load ptr, ptr %312, align 8, !tbaa !9
  %13173 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef %13172)
  %13174 = getelementptr inbounds %struct.s2n_result, ptr %313, i32 0, i32 0
  store i32 %13173, ptr %13174, align 4
  %13175 = getelementptr inbounds %struct.s2n_result, ptr %313, i32 0, i32 0
  %13176 = load i32, ptr %13175, align 4
  %13177 = call zeroext i1 @s2n_result_is_ok(i32 %13176)
  br i1 %13177, label %13231, label %13178

13178:                                            ; preds = %13169
  br label %13179

13179:                                            ; preds = %13178
  br label %13180

13180:                                            ; preds = %13179
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #11
  %13181 = call ptr @__errno_location() #12
  %13182 = load i32, ptr %13181, align 4, !tbaa !5
  store i32 %13182, ptr %314, align 4, !tbaa !5
  %13183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13184 = call i32 @s2n_print_stacktrace(ptr noundef %13183)
  %13185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13186 = trunc i8 %13185 to i1
  br i1 %13186, label %13187, label %13209

13187:                                            ; preds = %13180
  %13188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13189 = call i32 @fileno(ptr noundef %13188) #11
  %13190 = call i32 @isatty(i32 noundef %13189) #11
  %13191 = icmp ne i32 %13190, 0
  br i1 %13191, label %13192, label %13209

13192:                                            ; preds = %13187
  %13193 = load i32, ptr %314, align 4, !tbaa !5
  %13194 = call ptr @__errno_location() #12
  store i32 %13193, ptr %13194, align 4, !tbaa !5
  %13195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13196 = load i32, ptr @test_count, align 4, !tbaa !5
  %13197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13198 = load i32, ptr %13197, align 4, !tbaa !5
  %13199 = call ptr @s2n_strerror(i32 noundef %13198, ptr noundef @.str.24)
  %13200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13201 = load i32, ptr %13200, align 4, !tbaa !5
  %13202 = call ptr @s2n_strerror_debug(i32 noundef %13201, ptr noundef @.str.24)
  %13203 = call ptr @__errno_location() #12
  %13204 = load i32, ptr %13203, align 4, !tbaa !5
  %13205 = call ptr @strerror(i32 noundef %13204) #11
  %13206 = call ptr @__errno_location() #12
  %13207 = load i32, ptr %13206, align 4, !tbaa !5
  %13208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13195, ptr noundef @.str.22, i32 noundef %13196, ptr noundef @.str.113, ptr noundef @.str.21, i32 noundef 896, ptr noundef %13199, ptr noundef %13202, ptr noundef %13205, i32 noundef %13207) #11
  br label %13226

13209:                                            ; preds = %13187, %13180
  %13210 = load i32, ptr %314, align 4, !tbaa !5
  %13211 = call ptr @__errno_location() #12
  store i32 %13210, ptr %13211, align 4, !tbaa !5
  %13212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13213 = load i32, ptr @test_count, align 4, !tbaa !5
  %13214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13215 = load i32, ptr %13214, align 4, !tbaa !5
  %13216 = call ptr @s2n_strerror(i32 noundef %13215, ptr noundef @.str.24)
  %13217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13218 = load i32, ptr %13217, align 4, !tbaa !5
  %13219 = call ptr @s2n_strerror_debug(i32 noundef %13218, ptr noundef @.str.24)
  %13220 = call ptr @__errno_location() #12
  %13221 = load i32, ptr %13220, align 4, !tbaa !5
  %13222 = call ptr @strerror(i32 noundef %13221) #11
  %13223 = call ptr @__errno_location() #12
  %13224 = load i32, ptr %13223, align 4, !tbaa !5
  %13225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13212, ptr noundef @.str.25, i32 noundef %13213, ptr noundef @.str.113, ptr noundef @.str.21, i32 noundef 896, ptr noundef %13216, ptr noundef %13219, ptr noundef %13222, i32 noundef %13224) #11
  br label %13226

13226:                                            ; preds = %13209, %13192
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #11
  br label %13227

13227:                                            ; preds = %13226
  br label %13228

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

13229:                                            ; No predecessors!
  br label %13230

13230:                                            ; preds = %13229
  br label %13231

13231:                                            ; preds = %13230, %13169
  br label %13232

13232:                                            ; preds = %13231
  br label %13233

13233:                                            ; preds = %13232
  br label %13234

13234:                                            ; preds = %13233
  %13235 = load i32, ptr @test_count, align 4, !tbaa !5
  %13236 = add nsw i32 %13235, 1
  store i32 %13236, ptr @test_count, align 4, !tbaa !5
  %13237 = load ptr, ptr %312, align 8, !tbaa !9
  %13238 = getelementptr inbounds %struct.s2n_connection, ptr %13237, i32 0, i32 52
  %13239 = getelementptr inbounds %struct.s2n_handshake, ptr %13238, i32 0, i32 6
  %13240 = load i32, ptr %13239, align 4, !tbaa !60
  %13241 = and i32 %13240, 64
  %13242 = icmp ne i32 %13241, 0
  br i1 %13242, label %13243, label %13296

13243:                                            ; preds = %13234
  br label %13244

13244:                                            ; preds = %13243
  br label %13245

13245:                                            ; preds = %13244
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #11
  %13246 = call ptr @__errno_location() #12
  %13247 = load i32, ptr %13246, align 4, !tbaa !5
  store i32 %13247, ptr %315, align 4, !tbaa !5
  %13248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13249 = call i32 @s2n_print_stacktrace(ptr noundef %13248)
  %13250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13251 = trunc i8 %13250 to i1
  br i1 %13251, label %13252, label %13274

13252:                                            ; preds = %13245
  %13253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13254 = call i32 @fileno(ptr noundef %13253) #11
  %13255 = call i32 @isatty(i32 noundef %13254) #11
  %13256 = icmp ne i32 %13255, 0
  br i1 %13256, label %13257, label %13274

13257:                                            ; preds = %13252
  %13258 = load i32, ptr %315, align 4, !tbaa !5
  %13259 = call ptr @__errno_location() #12
  store i32 %13258, ptr %13259, align 4, !tbaa !5
  %13260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13261 = load i32, ptr @test_count, align 4, !tbaa !5
  %13262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13263 = load i32, ptr %13262, align 4, !tbaa !5
  %13264 = call ptr @s2n_strerror(i32 noundef %13263, ptr noundef @.str.24)
  %13265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13266 = load i32, ptr %13265, align 4, !tbaa !5
  %13267 = call ptr @s2n_strerror_debug(i32 noundef %13266, ptr noundef @.str.24)
  %13268 = call ptr @__errno_location() #12
  %13269 = load i32, ptr %13268, align 4, !tbaa !5
  %13270 = call ptr @strerror(i32 noundef %13269) #11
  %13271 = call ptr @__errno_location() #12
  %13272 = load i32, ptr %13271, align 4, !tbaa !5
  %13273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13260, ptr noundef @.str.22, i32 noundef %13261, ptr noundef @.str.119, ptr noundef @.str.21, i32 noundef 897, ptr noundef %13264, ptr noundef %13267, ptr noundef %13270, i32 noundef %13272) #11
  br label %13291

13274:                                            ; preds = %13252, %13245
  %13275 = load i32, ptr %315, align 4, !tbaa !5
  %13276 = call ptr @__errno_location() #12
  store i32 %13275, ptr %13276, align 4, !tbaa !5
  %13277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13278 = load i32, ptr @test_count, align 4, !tbaa !5
  %13279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13280 = load i32, ptr %13279, align 4, !tbaa !5
  %13281 = call ptr @s2n_strerror(i32 noundef %13280, ptr noundef @.str.24)
  %13282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13283 = load i32, ptr %13282, align 4, !tbaa !5
  %13284 = call ptr @s2n_strerror_debug(i32 noundef %13283, ptr noundef @.str.24)
  %13285 = call ptr @__errno_location() #12
  %13286 = load i32, ptr %13285, align 4, !tbaa !5
  %13287 = call ptr @strerror(i32 noundef %13286) #11
  %13288 = call ptr @__errno_location() #12
  %13289 = load i32, ptr %13288, align 4, !tbaa !5
  %13290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13277, ptr noundef @.str.25, i32 noundef %13278, ptr noundef @.str.119, ptr noundef @.str.21, i32 noundef 897, ptr noundef %13281, ptr noundef %13284, ptr noundef %13287, i32 noundef %13289) #11
  br label %13291

13291:                                            ; preds = %13274, %13257
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #11
  br label %13292

13292:                                            ; preds = %13291
  br label %13293

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

13294:                                            ; No predecessors!
  br label %13295

13295:                                            ; preds = %13294
  br label %13296

13296:                                            ; preds = %13295, %13234
  br label %13297

13297:                                            ; preds = %13296
  br label %13298

13298:                                            ; preds = %13297
  br label %13299

13299:                                            ; preds = %13298
  %13300 = load i32, ptr @test_count, align 4, !tbaa !5
  %13301 = add nsw i32 %13300, 1
  store i32 %13301, ptr @test_count, align 4, !tbaa !5
  %13302 = load ptr, ptr %312, align 8, !tbaa !9
  %13303 = getelementptr inbounds %struct.s2n_connection, ptr %13302, i32 0, i32 52
  %13304 = getelementptr inbounds %struct.s2n_handshake, ptr %13303, i32 0, i32 6
  %13305 = load i32, ptr %13304, align 4, !tbaa !60
  %13306 = and i32 %13305, 1
  %13307 = icmp ne i32 %13306, 0
  br i1 %13307, label %13361, label %13308

13308:                                            ; preds = %13299
  br label %13309

13309:                                            ; preds = %13308
  br label %13310

13310:                                            ; preds = %13309
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #11
  %13311 = call ptr @__errno_location() #12
  %13312 = load i32, ptr %13311, align 4, !tbaa !5
  store i32 %13312, ptr %316, align 4, !tbaa !5
  %13313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13314 = call i32 @s2n_print_stacktrace(ptr noundef %13313)
  %13315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13316 = trunc i8 %13315 to i1
  br i1 %13316, label %13317, label %13339

13317:                                            ; preds = %13310
  %13318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13319 = call i32 @fileno(ptr noundef %13318) #11
  %13320 = call i32 @isatty(i32 noundef %13319) #11
  %13321 = icmp ne i32 %13320, 0
  br i1 %13321, label %13322, label %13339

13322:                                            ; preds = %13317
  %13323 = load i32, ptr %316, align 4, !tbaa !5
  %13324 = call ptr @__errno_location() #12
  store i32 %13323, ptr %13324, align 4, !tbaa !5
  %13325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13326 = load i32, ptr @test_count, align 4, !tbaa !5
  %13327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13328 = load i32, ptr %13327, align 4, !tbaa !5
  %13329 = call ptr @s2n_strerror(i32 noundef %13328, ptr noundef @.str.24)
  %13330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13331 = load i32, ptr %13330, align 4, !tbaa !5
  %13332 = call ptr @s2n_strerror_debug(i32 noundef %13331, ptr noundef @.str.24)
  %13333 = call ptr @__errno_location() #12
  %13334 = load i32, ptr %13333, align 4, !tbaa !5
  %13335 = call ptr @strerror(i32 noundef %13334) #11
  %13336 = call ptr @__errno_location() #12
  %13337 = load i32, ptr %13336, align 4, !tbaa !5
  %13338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13325, ptr noundef @.str.22, i32 noundef %13326, ptr noundef @.str.118, ptr noundef @.str.21, i32 noundef 898, ptr noundef %13329, ptr noundef %13332, ptr noundef %13335, i32 noundef %13337) #11
  br label %13356

13339:                                            ; preds = %13317, %13310
  %13340 = load i32, ptr %316, align 4, !tbaa !5
  %13341 = call ptr @__errno_location() #12
  store i32 %13340, ptr %13341, align 4, !tbaa !5
  %13342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13343 = load i32, ptr @test_count, align 4, !tbaa !5
  %13344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13345 = load i32, ptr %13344, align 4, !tbaa !5
  %13346 = call ptr @s2n_strerror(i32 noundef %13345, ptr noundef @.str.24)
  %13347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13348 = load i32, ptr %13347, align 4, !tbaa !5
  %13349 = call ptr @s2n_strerror_debug(i32 noundef %13348, ptr noundef @.str.24)
  %13350 = call ptr @__errno_location() #12
  %13351 = load i32, ptr %13350, align 4, !tbaa !5
  %13352 = call ptr @strerror(i32 noundef %13351) #11
  %13353 = call ptr @__errno_location() #12
  %13354 = load i32, ptr %13353, align 4, !tbaa !5
  %13355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13342, ptr noundef @.str.25, i32 noundef %13343, ptr noundef @.str.118, ptr noundef @.str.21, i32 noundef 898, ptr noundef %13346, ptr noundef %13349, ptr noundef %13352, i32 noundef %13354) #11
  br label %13356

13356:                                            ; preds = %13339, %13322
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #11
  br label %13357

13357:                                            ; preds = %13356
  br label %13358

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

13359:                                            ; No predecessors!
  br label %13360

13360:                                            ; preds = %13359
  br label %13361

13361:                                            ; preds = %13360, %13299
  br label %13362

13362:                                            ; preds = %13361
  br label %13363

13363:                                            ; preds = %13362
  br label %13364

13364:                                            ; preds = %13363
  %13365 = load i32, ptr @test_count, align 4, !tbaa !5
  %13366 = add nsw i32 %13365, 1
  store i32 %13366, ptr @test_count, align 4, !tbaa !5
  %13367 = load ptr, ptr %312, align 8, !tbaa !9
  %13368 = call i32 @s2n_connection_free(ptr noundef %13367)
  %13369 = icmp eq i32 %13368, -1
  br i1 %13369, label %13370, label %13423

13370:                                            ; preds = %13364
  br label %13371

13371:                                            ; preds = %13370
  br label %13372

13372:                                            ; preds = %13371
  call void @llvm.lifetime.start.p0(i64 4, ptr %317) #11
  %13373 = call ptr @__errno_location() #12
  %13374 = load i32, ptr %13373, align 4, !tbaa !5
  store i32 %13374, ptr %317, align 4, !tbaa !5
  %13375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13376 = call i32 @s2n_print_stacktrace(ptr noundef %13375)
  %13377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13378 = trunc i8 %13377 to i1
  br i1 %13378, label %13379, label %13401

13379:                                            ; preds = %13372
  %13380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13381 = call i32 @fileno(ptr noundef %13380) #11
  %13382 = call i32 @isatty(i32 noundef %13381) #11
  %13383 = icmp ne i32 %13382, 0
  br i1 %13383, label %13384, label %13401

13384:                                            ; preds = %13379
  %13385 = load i32, ptr %317, align 4, !tbaa !5
  %13386 = call ptr @__errno_location() #12
  store i32 %13385, ptr %13386, align 4, !tbaa !5
  %13387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13388 = load i32, ptr @test_count, align 4, !tbaa !5
  %13389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13390 = load i32, ptr %13389, align 4, !tbaa !5
  %13391 = call ptr @s2n_strerror(i32 noundef %13390, ptr noundef @.str.24)
  %13392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13393 = load i32, ptr %13392, align 4, !tbaa !5
  %13394 = call ptr @s2n_strerror_debug(i32 noundef %13393, ptr noundef @.str.24)
  %13395 = call ptr @__errno_location() #12
  %13396 = load i32, ptr %13395, align 4, !tbaa !5
  %13397 = call ptr @strerror(i32 noundef %13396) #11
  %13398 = call ptr @__errno_location() #12
  %13399 = load i32, ptr %13398, align 4, !tbaa !5
  %13400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13387, ptr noundef @.str.22, i32 noundef %13388, ptr noundef @.str.116, ptr noundef @.str.21, i32 noundef 900, ptr noundef %13391, ptr noundef %13394, ptr noundef %13397, i32 noundef %13399) #11
  br label %13418

13401:                                            ; preds = %13379, %13372
  %13402 = load i32, ptr %317, align 4, !tbaa !5
  %13403 = call ptr @__errno_location() #12
  store i32 %13402, ptr %13403, align 4, !tbaa !5
  %13404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13405 = load i32, ptr @test_count, align 4, !tbaa !5
  %13406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13407 = load i32, ptr %13406, align 4, !tbaa !5
  %13408 = call ptr @s2n_strerror(i32 noundef %13407, ptr noundef @.str.24)
  %13409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13410 = load i32, ptr %13409, align 4, !tbaa !5
  %13411 = call ptr @s2n_strerror_debug(i32 noundef %13410, ptr noundef @.str.24)
  %13412 = call ptr @__errno_location() #12
  %13413 = load i32, ptr %13412, align 4, !tbaa !5
  %13414 = call ptr @strerror(i32 noundef %13413) #11
  %13415 = call ptr @__errno_location() #12
  %13416 = load i32, ptr %13415, align 4, !tbaa !5
  %13417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13404, ptr noundef @.str.25, i32 noundef %13405, ptr noundef @.str.116, ptr noundef @.str.21, i32 noundef 900, ptr noundef %13408, ptr noundef %13411, ptr noundef %13414, i32 noundef %13416) #11
  br label %13418

13418:                                            ; preds = %13401, %13384
  call void @llvm.lifetime.end.p0(i64 4, ptr %317) #11
  br label %13419

13419:                                            ; preds = %13418
  br label %13420

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

13421:                                            ; No predecessors!
  br label %13422

13422:                                            ; preds = %13421
  br label %13423

13423:                                            ; preds = %13422, %13364
  br label %13424

13424:                                            ; preds = %13423
  br label %13425

13425:                                            ; preds = %13424
  call void @llvm.lifetime.end.p0(i64 8, ptr %312) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %318) #11
  store i64 0, ptr %318, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %319) #11
  store i64 0, ptr %319, align 8, !tbaa !20
  br label %13426

13426:                                            ; preds = %13437, %13425
  %13427 = load i64, ptr %319, align 8, !tbaa !20
  %13428 = icmp ult i64 %13427, 8
  br i1 %13428, label %13430, label %13429

13429:                                            ; preds = %13426
  store i32 1261, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #11
  br label %13440

13430:                                            ; preds = %13426
  %13431 = load i64, ptr %319, align 8, !tbaa !20
  %13432 = getelementptr inbounds [8 x ptr], ptr @tls13_handshake_type_names, i64 0, i64 %13431
  %13433 = load ptr, ptr %13432, align 8, !tbaa !9
  %13434 = call i64 @strlen(ptr noundef %13433) #14
  %13435 = load i64, ptr %318, align 8, !tbaa !20
  %13436 = add i64 %13435, %13434
  store i64 %13436, ptr %318, align 8, !tbaa !20
  br label %13437

13437:                                            ; preds = %13430
  %13438 = load i64, ptr %319, align 8, !tbaa !20
  %13439 = add i64 %13438, 1
  store i64 %13439, ptr %319, align 8, !tbaa !20
  br label %13426, !llvm.loop !96

13440:                                            ; preds = %13429
  %13441 = load i64, ptr %318, align 8, !tbaa !20
  %13442 = icmp ugt i64 %13441, 142
  br i1 %13442, label %13443, label %13499

13443:                                            ; preds = %13440
  %13444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13445 = load i64, ptr %318, align 8, !tbaa !20
  %13446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13444, ptr noundef @.str.120, i64 noundef %13445) #11
  br label %13447

13447:                                            ; preds = %13443
  br label %13448

13448:                                            ; preds = %13447
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #11
  %13449 = call ptr @__errno_location() #12
  %13450 = load i32, ptr %13449, align 4, !tbaa !5
  store i32 %13450, ptr %320, align 4, !tbaa !5
  %13451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13452 = call i32 @s2n_print_stacktrace(ptr noundef %13451)
  %13453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13454 = trunc i8 %13453 to i1
  br i1 %13454, label %13455, label %13477

13455:                                            ; preds = %13448
  %13456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13457 = call i32 @fileno(ptr noundef %13456) #11
  %13458 = call i32 @isatty(i32 noundef %13457) #11
  %13459 = icmp ne i32 %13458, 0
  br i1 %13459, label %13460, label %13477

13460:                                            ; preds = %13455
  %13461 = load i32, ptr %320, align 4, !tbaa !5
  %13462 = call ptr @__errno_location() #12
  store i32 %13461, ptr %13462, align 4, !tbaa !5
  %13463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13464 = load i32, ptr @test_count, align 4, !tbaa !5
  %13465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13466 = load i32, ptr %13465, align 4, !tbaa !5
  %13467 = call ptr @s2n_strerror(i32 noundef %13466, ptr noundef @.str.24)
  %13468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13469 = load i32, ptr %13468, align 4, !tbaa !5
  %13470 = call ptr @s2n_strerror_debug(i32 noundef %13469, ptr noundef @.str.24)
  %13471 = call ptr @__errno_location() #12
  %13472 = load i32, ptr %13471, align 4, !tbaa !5
  %13473 = call ptr @strerror(i32 noundef %13472) #11
  %13474 = call ptr @__errno_location() #12
  %13475 = load i32, ptr %13474, align 4, !tbaa !5
  %13476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13463, ptr noundef @.str.22, i32 noundef %13464, ptr noundef @.str.121, ptr noundef @.str.21, i32 noundef 912, ptr noundef %13467, ptr noundef %13470, ptr noundef %13473, i32 noundef %13475) #11
  br label %13494

13477:                                            ; preds = %13455, %13448
  %13478 = load i32, ptr %320, align 4, !tbaa !5
  %13479 = call ptr @__errno_location() #12
  store i32 %13478, ptr %13479, align 4, !tbaa !5
  %13480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13481 = load i32, ptr @test_count, align 4, !tbaa !5
  %13482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13483 = load i32, ptr %13482, align 4, !tbaa !5
  %13484 = call ptr @s2n_strerror(i32 noundef %13483, ptr noundef @.str.24)
  %13485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13486 = load i32, ptr %13485, align 4, !tbaa !5
  %13487 = call ptr @s2n_strerror_debug(i32 noundef %13486, ptr noundef @.str.24)
  %13488 = call ptr @__errno_location() #12
  %13489 = load i32, ptr %13488, align 4, !tbaa !5
  %13490 = call ptr @strerror(i32 noundef %13489) #11
  %13491 = call ptr @__errno_location() #12
  %13492 = load i32, ptr %13491, align 4, !tbaa !5
  %13493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13480, ptr noundef @.str.25, i32 noundef %13481, ptr noundef @.str.121, ptr noundef @.str.21, i32 noundef 912, ptr noundef %13484, ptr noundef %13487, ptr noundef %13490, i32 noundef %13492) #11
  br label %13494

13494:                                            ; preds = %13477, %13460
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #11
  br label %13495

13495:                                            ; preds = %13494
  br label %13496

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

13497:                                            ; No predecessors!
  br label %13498

13498:                                            ; preds = %13497
  br label %13499

13499:                                            ; preds = %13498, %13440
  call void @llvm.lifetime.end.p0(i64 8, ptr %318) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %321) #11
  %13500 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %13500, ptr %321, align 8, !tbaa !9
  %13501 = load ptr, ptr %321, align 8, !tbaa !9
  %13502 = getelementptr inbounds %struct.s2n_connection, ptr %13501, i32 0, i32 23
  store i8 34, ptr %13502, align 4, !tbaa !34
  %13503 = load ptr, ptr %321, align 8, !tbaa !9
  %13504 = getelementptr inbounds %struct.s2n_connection, ptr %13503, i32 0, i32 52
  %13505 = getelementptr inbounds %struct.s2n_handshake, ptr %13504, i32 0, i32 6
  store i32 0, ptr %13505, align 4, !tbaa !60
  br label %13506

13506:                                            ; preds = %13499
  %13507 = load i32, ptr @test_count, align 4, !tbaa !5
  %13508 = add nsw i32 %13507, 1
  store i32 %13508, ptr @test_count, align 4, !tbaa !5
  %13509 = load ptr, ptr %321, align 8, !tbaa !9
  %13510 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %13509)
  %13511 = call i32 @strcmp(ptr noundef @.str.11, ptr noundef %13510) #14
  %13512 = icmp eq i32 %13511, 0
  br i1 %13512, label %13566, label %13513

13513:                                            ; preds = %13506
  br label %13514

13514:                                            ; preds = %13513
  br label %13515

13515:                                            ; preds = %13514
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #11
  %13516 = call ptr @__errno_location() #12
  %13517 = load i32, ptr %13516, align 4, !tbaa !5
  store i32 %13517, ptr %322, align 4, !tbaa !5
  %13518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13519 = call i32 @s2n_print_stacktrace(ptr noundef %13518)
  %13520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13521 = trunc i8 %13520 to i1
  br i1 %13521, label %13522, label %13544

13522:                                            ; preds = %13515
  %13523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13524 = call i32 @fileno(ptr noundef %13523) #11
  %13525 = call i32 @isatty(i32 noundef %13524) #11
  %13526 = icmp ne i32 %13525, 0
  br i1 %13526, label %13527, label %13544

13527:                                            ; preds = %13522
  %13528 = load i32, ptr %322, align 4, !tbaa !5
  %13529 = call ptr @__errno_location() #12
  store i32 %13528, ptr %13529, align 4, !tbaa !5
  %13530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13531 = load i32, ptr @test_count, align 4, !tbaa !5
  %13532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13533 = load i32, ptr %13532, align 4, !tbaa !5
  %13534 = call ptr @s2n_strerror(i32 noundef %13533, ptr noundef @.str.24)
  %13535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13536 = load i32, ptr %13535, align 4, !tbaa !5
  %13537 = call ptr @s2n_strerror_debug(i32 noundef %13536, ptr noundef @.str.24)
  %13538 = call ptr @__errno_location() #12
  %13539 = load i32, ptr %13538, align 4, !tbaa !5
  %13540 = call ptr @strerror(i32 noundef %13539) #11
  %13541 = call ptr @__errno_location() #12
  %13542 = load i32, ptr %13541, align 4, !tbaa !5
  %13543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13530, ptr noundef @.str.22, i32 noundef %13531, ptr noundef @.str.122, ptr noundef @.str.21, i32 noundef 922, ptr noundef %13534, ptr noundef %13537, ptr noundef %13540, i32 noundef %13542) #11
  br label %13561

13544:                                            ; preds = %13522, %13515
  %13545 = load i32, ptr %322, align 4, !tbaa !5
  %13546 = call ptr @__errno_location() #12
  store i32 %13545, ptr %13546, align 4, !tbaa !5
  %13547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13548 = load i32, ptr @test_count, align 4, !tbaa !5
  %13549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13550 = load i32, ptr %13549, align 4, !tbaa !5
  %13551 = call ptr @s2n_strerror(i32 noundef %13550, ptr noundef @.str.24)
  %13552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13553 = load i32, ptr %13552, align 4, !tbaa !5
  %13554 = call ptr @s2n_strerror_debug(i32 noundef %13553, ptr noundef @.str.24)
  %13555 = call ptr @__errno_location() #12
  %13556 = load i32, ptr %13555, align 4, !tbaa !5
  %13557 = call ptr @strerror(i32 noundef %13556) #11
  %13558 = call ptr @__errno_location() #12
  %13559 = load i32, ptr %13558, align 4, !tbaa !5
  %13560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13547, ptr noundef @.str.25, i32 noundef %13548, ptr noundef @.str.122, ptr noundef @.str.21, i32 noundef 922, ptr noundef %13551, ptr noundef %13554, ptr noundef %13557, i32 noundef %13559) #11
  br label %13561

13561:                                            ; preds = %13544, %13527
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #11
  br label %13562

13562:                                            ; preds = %13561
  br label %13563

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

13564:                                            ; No predecessors!
  br label %13565

13565:                                            ; preds = %13564
  br label %13566

13566:                                            ; preds = %13565, %13506
  br label %13567

13567:                                            ; preds = %13566
  br label %13568

13568:                                            ; preds = %13567
  %13569 = load ptr, ptr %321, align 8, !tbaa !9
  %13570 = getelementptr inbounds %struct.s2n_connection, ptr %13569, i32 0, i32 52
  %13571 = getelementptr inbounds %struct.s2n_handshake, ptr %13570, i32 0, i32 6
  store i32 3, ptr %13571, align 4, !tbaa !60
  br label %13572

13572:                                            ; preds = %13568
  %13573 = load i32, ptr @test_count, align 4, !tbaa !5
  %13574 = add nsw i32 %13573, 1
  store i32 %13574, ptr @test_count, align 4, !tbaa !5
  %13575 = load ptr, ptr %321, align 8, !tbaa !9
  %13576 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %13575)
  %13577 = call i32 @strcmp(ptr noundef @.str.123, ptr noundef %13576) #14
  %13578 = icmp eq i32 %13577, 0
  br i1 %13578, label %13632, label %13579

13579:                                            ; preds = %13572
  br label %13580

13580:                                            ; preds = %13579
  br label %13581

13581:                                            ; preds = %13580
  call void @llvm.lifetime.start.p0(i64 4, ptr %323) #11
  %13582 = call ptr @__errno_location() #12
  %13583 = load i32, ptr %13582, align 4, !tbaa !5
  store i32 %13583, ptr %323, align 4, !tbaa !5
  %13584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13585 = call i32 @s2n_print_stacktrace(ptr noundef %13584)
  %13586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13587 = trunc i8 %13586 to i1
  br i1 %13587, label %13588, label %13610

13588:                                            ; preds = %13581
  %13589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13590 = call i32 @fileno(ptr noundef %13589) #11
  %13591 = call i32 @isatty(i32 noundef %13590) #11
  %13592 = icmp ne i32 %13591, 0
  br i1 %13592, label %13593, label %13610

13593:                                            ; preds = %13588
  %13594 = load i32, ptr %323, align 4, !tbaa !5
  %13595 = call ptr @__errno_location() #12
  store i32 %13594, ptr %13595, align 4, !tbaa !5
  %13596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13597 = load i32, ptr @test_count, align 4, !tbaa !5
  %13598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13599 = load i32, ptr %13598, align 4, !tbaa !5
  %13600 = call ptr @s2n_strerror(i32 noundef %13599, ptr noundef @.str.24)
  %13601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13602 = load i32, ptr %13601, align 4, !tbaa !5
  %13603 = call ptr @s2n_strerror_debug(i32 noundef %13602, ptr noundef @.str.24)
  %13604 = call ptr @__errno_location() #12
  %13605 = load i32, ptr %13604, align 4, !tbaa !5
  %13606 = call ptr @strerror(i32 noundef %13605) #11
  %13607 = call ptr @__errno_location() #12
  %13608 = load i32, ptr %13607, align 4, !tbaa !5
  %13609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13596, ptr noundef @.str.22, i32 noundef %13597, ptr noundef @.str.124, ptr noundef @.str.21, i32 noundef 925, ptr noundef %13600, ptr noundef %13603, ptr noundef %13606, i32 noundef %13608) #11
  br label %13627

13610:                                            ; preds = %13588, %13581
  %13611 = load i32, ptr %323, align 4, !tbaa !5
  %13612 = call ptr @__errno_location() #12
  store i32 %13611, ptr %13612, align 4, !tbaa !5
  %13613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13614 = load i32, ptr @test_count, align 4, !tbaa !5
  %13615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13616 = load i32, ptr %13615, align 4, !tbaa !5
  %13617 = call ptr @s2n_strerror(i32 noundef %13616, ptr noundef @.str.24)
  %13618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13619 = load i32, ptr %13618, align 4, !tbaa !5
  %13620 = call ptr @s2n_strerror_debug(i32 noundef %13619, ptr noundef @.str.24)
  %13621 = call ptr @__errno_location() #12
  %13622 = load i32, ptr %13621, align 4, !tbaa !5
  %13623 = call ptr @strerror(i32 noundef %13622) #11
  %13624 = call ptr @__errno_location() #12
  %13625 = load i32, ptr %13624, align 4, !tbaa !5
  %13626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13613, ptr noundef @.str.25, i32 noundef %13614, ptr noundef @.str.124, ptr noundef @.str.21, i32 noundef 925, ptr noundef %13617, ptr noundef %13620, ptr noundef %13623, i32 noundef %13625) #11
  br label %13627

13627:                                            ; preds = %13610, %13593
  call void @llvm.lifetime.end.p0(i64 4, ptr %323) #11
  br label %13628

13628:                                            ; preds = %13627
  br label %13629

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

13630:                                            ; No predecessors!
  br label %13631

13631:                                            ; preds = %13630
  br label %13632

13632:                                            ; preds = %13631, %13572
  br label %13633

13633:                                            ; preds = %13632
  br label %13634

13634:                                            ; preds = %13633
  %13635 = load ptr, ptr %321, align 8, !tbaa !9
  %13636 = getelementptr inbounds %struct.s2n_connection, ptr %13635, i32 0, i32 52
  %13637 = getelementptr inbounds %struct.s2n_handshake, ptr %13636, i32 0, i32 6
  store i32 19, ptr %13637, align 4, !tbaa !60
  br label %13638

13638:                                            ; preds = %13634
  %13639 = load i32, ptr @test_count, align 4, !tbaa !5
  %13640 = add nsw i32 %13639, 1
  store i32 %13640, ptr @test_count, align 4, !tbaa !5
  %13641 = load ptr, ptr %321, align 8, !tbaa !9
  %13642 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %13641)
  %13643 = call i32 @strcmp(ptr noundef @.str.125, ptr noundef %13642) #14
  %13644 = icmp eq i32 %13643, 0
  br i1 %13644, label %13698, label %13645

13645:                                            ; preds = %13638
  br label %13646

13646:                                            ; preds = %13645
  br label %13647

13647:                                            ; preds = %13646
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #11
  %13648 = call ptr @__errno_location() #12
  %13649 = load i32, ptr %13648, align 4, !tbaa !5
  store i32 %13649, ptr %324, align 4, !tbaa !5
  %13650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13651 = call i32 @s2n_print_stacktrace(ptr noundef %13650)
  %13652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13653 = trunc i8 %13652 to i1
  br i1 %13653, label %13654, label %13676

13654:                                            ; preds = %13647
  %13655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13656 = call i32 @fileno(ptr noundef %13655) #11
  %13657 = call i32 @isatty(i32 noundef %13656) #11
  %13658 = icmp ne i32 %13657, 0
  br i1 %13658, label %13659, label %13676

13659:                                            ; preds = %13654
  %13660 = load i32, ptr %324, align 4, !tbaa !5
  %13661 = call ptr @__errno_location() #12
  store i32 %13660, ptr %13661, align 4, !tbaa !5
  %13662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13663 = load i32, ptr @test_count, align 4, !tbaa !5
  %13664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13665 = load i32, ptr %13664, align 4, !tbaa !5
  %13666 = call ptr @s2n_strerror(i32 noundef %13665, ptr noundef @.str.24)
  %13667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13668 = load i32, ptr %13667, align 4, !tbaa !5
  %13669 = call ptr @s2n_strerror_debug(i32 noundef %13668, ptr noundef @.str.24)
  %13670 = call ptr @__errno_location() #12
  %13671 = load i32, ptr %13670, align 4, !tbaa !5
  %13672 = call ptr @strerror(i32 noundef %13671) #11
  %13673 = call ptr @__errno_location() #12
  %13674 = load i32, ptr %13673, align 4, !tbaa !5
  %13675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13662, ptr noundef @.str.22, i32 noundef %13663, ptr noundef @.str.126, ptr noundef @.str.21, i32 noundef 928, ptr noundef %13666, ptr noundef %13669, ptr noundef %13672, i32 noundef %13674) #11
  br label %13693

13676:                                            ; preds = %13654, %13647
  %13677 = load i32, ptr %324, align 4, !tbaa !5
  %13678 = call ptr @__errno_location() #12
  store i32 %13677, ptr %13678, align 4, !tbaa !5
  %13679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13680 = load i32, ptr @test_count, align 4, !tbaa !5
  %13681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13682 = load i32, ptr %13681, align 4, !tbaa !5
  %13683 = call ptr @s2n_strerror(i32 noundef %13682, ptr noundef @.str.24)
  %13684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13685 = load i32, ptr %13684, align 4, !tbaa !5
  %13686 = call ptr @s2n_strerror_debug(i32 noundef %13685, ptr noundef @.str.24)
  %13687 = call ptr @__errno_location() #12
  %13688 = load i32, ptr %13687, align 4, !tbaa !5
  %13689 = call ptr @strerror(i32 noundef %13688) #11
  %13690 = call ptr @__errno_location() #12
  %13691 = load i32, ptr %13690, align 4, !tbaa !5
  %13692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13679, ptr noundef @.str.25, i32 noundef %13680, ptr noundef @.str.126, ptr noundef @.str.21, i32 noundef 928, ptr noundef %13683, ptr noundef %13686, ptr noundef %13689, i32 noundef %13691) #11
  br label %13693

13693:                                            ; preds = %13676, %13659
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #11
  br label %13694

13694:                                            ; preds = %13693
  br label %13695

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

13696:                                            ; No predecessors!
  br label %13697

13697:                                            ; preds = %13696
  br label %13698

13698:                                            ; preds = %13697, %13638
  br label %13699

13699:                                            ; preds = %13698
  br label %13700

13700:                                            ; preds = %13699
  call void @llvm.lifetime.start.p0(i64 8, ptr %325) #11
  store ptr @.str.127, ptr %325, align 8, !tbaa !9
  %13701 = load ptr, ptr %321, align 8, !tbaa !9
  %13702 = getelementptr inbounds %struct.s2n_connection, ptr %13701, i32 0, i32 52
  %13703 = getelementptr inbounds %struct.s2n_handshake, ptr %13702, i32 0, i32 6
  store i32 239, ptr %13703, align 4, !tbaa !60
  br label %13704

13704:                                            ; preds = %13700
  %13705 = load i32, ptr @test_count, align 4, !tbaa !5
  %13706 = add nsw i32 %13705, 1
  store i32 %13706, ptr @test_count, align 4, !tbaa !5
  %13707 = load ptr, ptr %325, align 8, !tbaa !9
  %13708 = load ptr, ptr %321, align 8, !tbaa !9
  %13709 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %13708)
  %13710 = call i32 @strcmp(ptr noundef %13707, ptr noundef %13709) #14
  %13711 = icmp eq i32 %13710, 0
  br i1 %13711, label %13765, label %13712

13712:                                            ; preds = %13704
  br label %13713

13713:                                            ; preds = %13712
  br label %13714

13714:                                            ; preds = %13713
  call void @llvm.lifetime.start.p0(i64 4, ptr %326) #11
  %13715 = call ptr @__errno_location() #12
  %13716 = load i32, ptr %13715, align 4, !tbaa !5
  store i32 %13716, ptr %326, align 4, !tbaa !5
  %13717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13718 = call i32 @s2n_print_stacktrace(ptr noundef %13717)
  %13719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13720 = trunc i8 %13719 to i1
  br i1 %13720, label %13721, label %13743

13721:                                            ; preds = %13714
  %13722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13723 = call i32 @fileno(ptr noundef %13722) #11
  %13724 = call i32 @isatty(i32 noundef %13723) #11
  %13725 = icmp ne i32 %13724, 0
  br i1 %13725, label %13726, label %13743

13726:                                            ; preds = %13721
  %13727 = load i32, ptr %326, align 4, !tbaa !5
  %13728 = call ptr @__errno_location() #12
  store i32 %13727, ptr %13728, align 4, !tbaa !5
  %13729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13730 = load i32, ptr @test_count, align 4, !tbaa !5
  %13731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13732 = load i32, ptr %13731, align 4, !tbaa !5
  %13733 = call ptr @s2n_strerror(i32 noundef %13732, ptr noundef @.str.24)
  %13734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13735 = load i32, ptr %13734, align 4, !tbaa !5
  %13736 = call ptr @s2n_strerror_debug(i32 noundef %13735, ptr noundef @.str.24)
  %13737 = call ptr @__errno_location() #12
  %13738 = load i32, ptr %13737, align 4, !tbaa !5
  %13739 = call ptr @strerror(i32 noundef %13738) #11
  %13740 = call ptr @__errno_location() #12
  %13741 = load i32, ptr %13740, align 4, !tbaa !5
  %13742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13729, ptr noundef @.str.22, i32 noundef %13730, ptr noundef @.str.128, ptr noundef @.str.21, i32 noundef 934, ptr noundef %13733, ptr noundef %13736, ptr noundef %13739, i32 noundef %13741) #11
  br label %13760

13743:                                            ; preds = %13721, %13714
  %13744 = load i32, ptr %326, align 4, !tbaa !5
  %13745 = call ptr @__errno_location() #12
  store i32 %13744, ptr %13745, align 4, !tbaa !5
  %13746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13747 = load i32, ptr @test_count, align 4, !tbaa !5
  %13748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13749 = load i32, ptr %13748, align 4, !tbaa !5
  %13750 = call ptr @s2n_strerror(i32 noundef %13749, ptr noundef @.str.24)
  %13751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13752 = load i32, ptr %13751, align 4, !tbaa !5
  %13753 = call ptr @s2n_strerror_debug(i32 noundef %13752, ptr noundef @.str.24)
  %13754 = call ptr @__errno_location() #12
  %13755 = load i32, ptr %13754, align 4, !tbaa !5
  %13756 = call ptr @strerror(i32 noundef %13755) #11
  %13757 = call ptr @__errno_location() #12
  %13758 = load i32, ptr %13757, align 4, !tbaa !5
  %13759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13746, ptr noundef @.str.25, i32 noundef %13747, ptr noundef @.str.128, ptr noundef @.str.21, i32 noundef 934, ptr noundef %13750, ptr noundef %13753, ptr noundef %13756, i32 noundef %13758) #11
  br label %13760

13760:                                            ; preds = %13743, %13726
  call void @llvm.lifetime.end.p0(i64 4, ptr %326) #11
  br label %13761

13761:                                            ; preds = %13760
  br label %13762

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

13763:                                            ; No predecessors!
  br label %13764

13764:                                            ; preds = %13763
  br label %13765

13765:                                            ; preds = %13764, %13704
  br label %13766

13766:                                            ; preds = %13765
  br label %13767

13767:                                            ; preds = %13766
  call void @llvm.lifetime.start.p0(i64 8, ptr %327) #11
  store ptr null, ptr %327, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %328) #11
  store i32 0, ptr %328, align 4, !tbaa !5
  br label %13768

13768:                                            ; preds = %13936, %13767
  %13769 = load i32, ptr %328, align 4, !tbaa !5
  %13770 = load i32, ptr %11, align 4, !tbaa !5
  %13771 = icmp slt i32 %13769, %13770
  br i1 %13771, label %13773, label %13772

13772:                                            ; preds = %13768
  store i32 1292, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %328) #11
  br label %13939

13773:                                            ; preds = %13768
  %13774 = load i32, ptr %328, align 4, !tbaa !5
  %13775 = sext i32 %13774 to i64
  %13776 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %13775
  %13777 = load i16, ptr %13776, align 2, !tbaa !15
  %13778 = zext i16 %13777 to i32
  %13779 = load ptr, ptr %321, align 8, !tbaa !9
  %13780 = getelementptr inbounds %struct.s2n_connection, ptr %13779, i32 0, i32 52
  %13781 = getelementptr inbounds %struct.s2n_handshake, ptr %13780, i32 0, i32 6
  store i32 %13778, ptr %13781, align 4, !tbaa !60
  %13782 = load ptr, ptr %321, align 8, !tbaa !9
  %13783 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %13782)
  store ptr %13783, ptr %327, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #11
  store i32 0, ptr %329, align 4, !tbaa !5
  br label %13784

13784:                                            ; preds = %13932, %13773
  %13785 = load i32, ptr %329, align 4, !tbaa !5
  %13786 = load i32, ptr %11, align 4, !tbaa !5
  %13787 = icmp slt i32 %13785, %13786
  br i1 %13787, label %13789, label %13788

13788:                                            ; preds = %13784
  store i32 1295, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #11
  br label %13935

13789:                                            ; preds = %13784
  %13790 = load i32, ptr %329, align 4, !tbaa !5
  %13791 = sext i32 %13790 to i64
  %13792 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %13791
  %13793 = load i16, ptr %13792, align 2, !tbaa !15
  %13794 = zext i16 %13793 to i32
  %13795 = load ptr, ptr %321, align 8, !tbaa !9
  %13796 = getelementptr inbounds %struct.s2n_connection, ptr %13795, i32 0, i32 52
  %13797 = getelementptr inbounds %struct.s2n_handshake, ptr %13796, i32 0, i32 6
  store i32 %13794, ptr %13797, align 4, !tbaa !60
  %13798 = load i32, ptr %328, align 4, !tbaa !5
  %13799 = load i32, ptr %329, align 4, !tbaa !5
  %13800 = icmp eq i32 %13798, %13799
  br i1 %13800, label %13801, label %13866

13801:                                            ; preds = %13789
  br label %13802

13802:                                            ; preds = %13801
  %13803 = load i32, ptr @test_count, align 4, !tbaa !5
  %13804 = add nsw i32 %13803, 1
  store i32 %13804, ptr @test_count, align 4, !tbaa !5
  %13805 = load ptr, ptr %327, align 8, !tbaa !9
  %13806 = load ptr, ptr %321, align 8, !tbaa !9
  %13807 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %13806)
  %13808 = call i32 @strcmp(ptr noundef %13805, ptr noundef %13807) #14
  %13809 = icmp eq i32 %13808, 0
  br i1 %13809, label %13863, label %13810

13810:                                            ; preds = %13802
  br label %13811

13811:                                            ; preds = %13810
  br label %13812

13812:                                            ; preds = %13811
  call void @llvm.lifetime.start.p0(i64 4, ptr %330) #11
  %13813 = call ptr @__errno_location() #12
  %13814 = load i32, ptr %13813, align 4, !tbaa !5
  store i32 %13814, ptr %330, align 4, !tbaa !5
  %13815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13816 = call i32 @s2n_print_stacktrace(ptr noundef %13815)
  %13817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13818 = trunc i8 %13817 to i1
  br i1 %13818, label %13819, label %13841

13819:                                            ; preds = %13812
  %13820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13821 = call i32 @fileno(ptr noundef %13820) #11
  %13822 = call i32 @isatty(i32 noundef %13821) #11
  %13823 = icmp ne i32 %13822, 0
  br i1 %13823, label %13824, label %13841

13824:                                            ; preds = %13819
  %13825 = load i32, ptr %330, align 4, !tbaa !5
  %13826 = call ptr @__errno_location() #12
  store i32 %13825, ptr %13826, align 4, !tbaa !5
  %13827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13828 = load i32, ptr @test_count, align 4, !tbaa !5
  %13829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13830 = load i32, ptr %13829, align 4, !tbaa !5
  %13831 = call ptr @s2n_strerror(i32 noundef %13830, ptr noundef @.str.24)
  %13832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13833 = load i32, ptr %13832, align 4, !tbaa !5
  %13834 = call ptr @s2n_strerror_debug(i32 noundef %13833, ptr noundef @.str.24)
  %13835 = call ptr @__errno_location() #12
  %13836 = load i32, ptr %13835, align 4, !tbaa !5
  %13837 = call ptr @strerror(i32 noundef %13836) #11
  %13838 = call ptr @__errno_location() #12
  %13839 = load i32, ptr %13838, align 4, !tbaa !5
  %13840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13827, ptr noundef @.str.22, i32 noundef %13828, ptr noundef @.str.129, ptr noundef @.str.21, i32 noundef 946, ptr noundef %13831, ptr noundef %13834, ptr noundef %13837, i32 noundef %13839) #11
  br label %13858

13841:                                            ; preds = %13819, %13812
  %13842 = load i32, ptr %330, align 4, !tbaa !5
  %13843 = call ptr @__errno_location() #12
  store i32 %13842, ptr %13843, align 4, !tbaa !5
  %13844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13845 = load i32, ptr @test_count, align 4, !tbaa !5
  %13846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13847 = load i32, ptr %13846, align 4, !tbaa !5
  %13848 = call ptr @s2n_strerror(i32 noundef %13847, ptr noundef @.str.24)
  %13849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13850 = load i32, ptr %13849, align 4, !tbaa !5
  %13851 = call ptr @s2n_strerror_debug(i32 noundef %13850, ptr noundef @.str.24)
  %13852 = call ptr @__errno_location() #12
  %13853 = load i32, ptr %13852, align 4, !tbaa !5
  %13854 = call ptr @strerror(i32 noundef %13853) #11
  %13855 = call ptr @__errno_location() #12
  %13856 = load i32, ptr %13855, align 4, !tbaa !5
  %13857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13844, ptr noundef @.str.25, i32 noundef %13845, ptr noundef @.str.129, ptr noundef @.str.21, i32 noundef 946, ptr noundef %13848, ptr noundef %13851, ptr noundef %13854, i32 noundef %13856) #11
  br label %13858

13858:                                            ; preds = %13841, %13824
  call void @llvm.lifetime.end.p0(i64 4, ptr %330) #11
  br label %13859

13859:                                            ; preds = %13858
  br label %13860

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

13861:                                            ; No predecessors!
  br label %13862

13862:                                            ; preds = %13861
  br label %13863

13863:                                            ; preds = %13862, %13802
  br label %13864

13864:                                            ; preds = %13863
  br label %13865

13865:                                            ; preds = %13864
  br label %13931

13866:                                            ; preds = %13789
  br label %13867

13867:                                            ; preds = %13866
  %13868 = load i32, ptr @test_count, align 4, !tbaa !5
  %13869 = add nsw i32 %13868, 1
  store i32 %13869, ptr @test_count, align 4, !tbaa !5
  %13870 = load ptr, ptr %327, align 8, !tbaa !9
  %13871 = load ptr, ptr %321, align 8, !tbaa !9
  %13872 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %13871)
  %13873 = call i32 @strcmp(ptr noundef %13870, ptr noundef %13872) #14
  %13874 = icmp eq i32 %13873, 0
  br i1 %13874, label %13875, label %13928

13875:                                            ; preds = %13867
  br label %13876

13876:                                            ; preds = %13875
  br label %13877

13877:                                            ; preds = %13876
  call void @llvm.lifetime.start.p0(i64 4, ptr %331) #11
  %13878 = call ptr @__errno_location() #12
  %13879 = load i32, ptr %13878, align 4, !tbaa !5
  store i32 %13879, ptr %331, align 4, !tbaa !5
  %13880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13881 = call i32 @s2n_print_stacktrace(ptr noundef %13880)
  %13882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13883 = trunc i8 %13882 to i1
  br i1 %13883, label %13884, label %13906

13884:                                            ; preds = %13877
  %13885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13886 = call i32 @fileno(ptr noundef %13885) #11
  %13887 = call i32 @isatty(i32 noundef %13886) #11
  %13888 = icmp ne i32 %13887, 0
  br i1 %13888, label %13889, label %13906

13889:                                            ; preds = %13884
  %13890 = load i32, ptr %331, align 4, !tbaa !5
  %13891 = call ptr @__errno_location() #12
  store i32 %13890, ptr %13891, align 4, !tbaa !5
  %13892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13893 = load i32, ptr @test_count, align 4, !tbaa !5
  %13894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13895 = load i32, ptr %13894, align 4, !tbaa !5
  %13896 = call ptr @s2n_strerror(i32 noundef %13895, ptr noundef @.str.24)
  %13897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13898 = load i32, ptr %13897, align 4, !tbaa !5
  %13899 = call ptr @s2n_strerror_debug(i32 noundef %13898, ptr noundef @.str.24)
  %13900 = call ptr @__errno_location() #12
  %13901 = load i32, ptr %13900, align 4, !tbaa !5
  %13902 = call ptr @strerror(i32 noundef %13901) #11
  %13903 = call ptr @__errno_location() #12
  %13904 = load i32, ptr %13903, align 4, !tbaa !5
  %13905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13892, ptr noundef @.str.22, i32 noundef %13893, ptr noundef @.str.130, ptr noundef @.str.21, i32 noundef 948, ptr noundef %13896, ptr noundef %13899, ptr noundef %13902, i32 noundef %13904) #11
  br label %13923

13906:                                            ; preds = %13884, %13877
  %13907 = load i32, ptr %331, align 4, !tbaa !5
  %13908 = call ptr @__errno_location() #12
  store i32 %13907, ptr %13908, align 4, !tbaa !5
  %13909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13910 = load i32, ptr @test_count, align 4, !tbaa !5
  %13911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13912 = load i32, ptr %13911, align 4, !tbaa !5
  %13913 = call ptr @s2n_strerror(i32 noundef %13912, ptr noundef @.str.24)
  %13914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13915 = load i32, ptr %13914, align 4, !tbaa !5
  %13916 = call ptr @s2n_strerror_debug(i32 noundef %13915, ptr noundef @.str.24)
  %13917 = call ptr @__errno_location() #12
  %13918 = load i32, ptr %13917, align 4, !tbaa !5
  %13919 = call ptr @strerror(i32 noundef %13918) #11
  %13920 = call ptr @__errno_location() #12
  %13921 = load i32, ptr %13920, align 4, !tbaa !5
  %13922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13909, ptr noundef @.str.25, i32 noundef %13910, ptr noundef @.str.130, ptr noundef @.str.21, i32 noundef 948, ptr noundef %13913, ptr noundef %13916, ptr noundef %13919, i32 noundef %13921) #11
  br label %13923

13923:                                            ; preds = %13906, %13889
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #11
  br label %13924

13924:                                            ; preds = %13923
  br label %13925

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

13926:                                            ; No predecessors!
  br label %13927

13927:                                            ; preds = %13926
  br label %13928

13928:                                            ; preds = %13927, %13867
  br label %13929

13929:                                            ; preds = %13928
  br label %13930

13930:                                            ; preds = %13929
  br label %13931

13931:                                            ; preds = %13930, %13865
  br label %13932

13932:                                            ; preds = %13931
  %13933 = load i32, ptr %329, align 4, !tbaa !5
  %13934 = add nsw i32 %13933, 1
  store i32 %13934, ptr %329, align 4, !tbaa !5
  br label %13784, !llvm.loop !97

13935:                                            ; preds = %13788
  br label %13936

13936:                                            ; preds = %13935
  %13937 = load i32, ptr %328, align 4, !tbaa !5
  %13938 = add nsw i32 %13937, 1
  store i32 %13938, ptr %328, align 4, !tbaa !5
  br label %13768, !llvm.loop !98

13939:                                            ; preds = %13772
  br label %13940

13940:                                            ; preds = %13939
  %13941 = load i32, ptr @test_count, align 4, !tbaa !5
  %13942 = add nsw i32 %13941, 1
  store i32 %13942, ptr @test_count, align 4, !tbaa !5
  %13943 = load ptr, ptr %321, align 8, !tbaa !9
  %13944 = call i32 @s2n_connection_free(ptr noundef %13943)
  %13945 = icmp eq i32 %13944, -1
  br i1 %13945, label %13946, label %13999

13946:                                            ; preds = %13940
  br label %13947

13947:                                            ; preds = %13946
  br label %13948

13948:                                            ; preds = %13947
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #11
  %13949 = call ptr @__errno_location() #12
  %13950 = load i32, ptr %13949, align 4, !tbaa !5
  store i32 %13950, ptr %332, align 4, !tbaa !5
  %13951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13952 = call i32 @s2n_print_stacktrace(ptr noundef %13951)
  %13953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13954 = trunc i8 %13953 to i1
  br i1 %13954, label %13955, label %13977

13955:                                            ; preds = %13948
  %13956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13957 = call i32 @fileno(ptr noundef %13956) #11
  %13958 = call i32 @isatty(i32 noundef %13957) #11
  %13959 = icmp ne i32 %13958, 0
  br i1 %13959, label %13960, label %13977

13960:                                            ; preds = %13955
  %13961 = load i32, ptr %332, align 4, !tbaa !5
  %13962 = call ptr @__errno_location() #12
  store i32 %13961, ptr %13962, align 4, !tbaa !5
  %13963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13964 = load i32, ptr @test_count, align 4, !tbaa !5
  %13965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13966 = load i32, ptr %13965, align 4, !tbaa !5
  %13967 = call ptr @s2n_strerror(i32 noundef %13966, ptr noundef @.str.24)
  %13968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13969 = load i32, ptr %13968, align 4, !tbaa !5
  %13970 = call ptr @s2n_strerror_debug(i32 noundef %13969, ptr noundef @.str.24)
  %13971 = call ptr @__errno_location() #12
  %13972 = load i32, ptr %13971, align 4, !tbaa !5
  %13973 = call ptr @strerror(i32 noundef %13972) #11
  %13974 = call ptr @__errno_location() #12
  %13975 = load i32, ptr %13974, align 4, !tbaa !5
  %13976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13963, ptr noundef @.str.22, i32 noundef %13964, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 953, ptr noundef %13967, ptr noundef %13970, ptr noundef %13973, i32 noundef %13975) #11
  br label %13994

13977:                                            ; preds = %13955, %13948
  %13978 = load i32, ptr %332, align 4, !tbaa !5
  %13979 = call ptr @__errno_location() #12
  store i32 %13978, ptr %13979, align 4, !tbaa !5
  %13980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13981 = load i32, ptr @test_count, align 4, !tbaa !5
  %13982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13983 = load i32, ptr %13982, align 4, !tbaa !5
  %13984 = call ptr @s2n_strerror(i32 noundef %13983, ptr noundef @.str.24)
  %13985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13986 = load i32, ptr %13985, align 4, !tbaa !5
  %13987 = call ptr @s2n_strerror_debug(i32 noundef %13986, ptr noundef @.str.24)
  %13988 = call ptr @__errno_location() #12
  %13989 = load i32, ptr %13988, align 4, !tbaa !5
  %13990 = call ptr @strerror(i32 noundef %13989) #11
  %13991 = call ptr @__errno_location() #12
  %13992 = load i32, ptr %13991, align 4, !tbaa !5
  %13993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13980, ptr noundef @.str.25, i32 noundef %13981, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 953, ptr noundef %13984, ptr noundef %13987, ptr noundef %13990, i32 noundef %13992) #11
  br label %13994

13994:                                            ; preds = %13977, %13960
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #11
  br label %13995

13995:                                            ; preds = %13994
  br label %13996

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

13997:                                            ; No predecessors!
  br label %13998

13998:                                            ; preds = %13997
  br label %13999

13999:                                            ; preds = %13998, %13940
  br label %14000

14000:                                            ; preds = %13999
  br label %14001

14001:                                            ; preds = %14000
  call void @llvm.lifetime.end.p0(i64 8, ptr %327) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %325) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %321) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %333) #11
  store i32 35, ptr %333, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 80, ptr %334) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %334, ptr align 16 @__const.main.expected, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %335) #11
  %14002 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %14002, ptr %335, align 8, !tbaa !9
  %14003 = load ptr, ptr %335, align 8, !tbaa !9
  %14004 = getelementptr inbounds %struct.s2n_connection, ptr %14003, i32 0, i32 23
  store i8 34, ptr %14004, align 4, !tbaa !34
  br label %14005

14005:                                            ; preds = %14001
  %14006 = load i32, ptr @test_count, align 4, !tbaa !5
  %14007 = add nsw i32 %14006, 1
  store i32 %14007, ptr @test_count, align 4, !tbaa !5
  %14008 = load ptr, ptr %335, align 8, !tbaa !9
  %14009 = call i32 @s2n_conn_choose_state_machine(ptr noundef %14008, i8 noundef zeroext 34)
  %14010 = getelementptr inbounds %struct.s2n_result, ptr %336, i32 0, i32 0
  store i32 %14009, ptr %14010, align 4
  %14011 = getelementptr inbounds %struct.s2n_result, ptr %336, i32 0, i32 0
  %14012 = load i32, ptr %14011, align 4
  %14013 = call zeroext i1 @s2n_result_is_ok(i32 %14012)
  br i1 %14013, label %14067, label %14014

14014:                                            ; preds = %14005
  br label %14015

14015:                                            ; preds = %14014
  br label %14016

14016:                                            ; preds = %14015
  call void @llvm.lifetime.start.p0(i64 4, ptr %337) #11
  %14017 = call ptr @__errno_location() #12
  %14018 = load i32, ptr %14017, align 4, !tbaa !5
  store i32 %14018, ptr %337, align 4, !tbaa !5
  %14019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14020 = call i32 @s2n_print_stacktrace(ptr noundef %14019)
  %14021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14022 = trunc i8 %14021 to i1
  br i1 %14022, label %14023, label %14045

14023:                                            ; preds = %14016
  %14024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14025 = call i32 @fileno(ptr noundef %14024) #11
  %14026 = call i32 @isatty(i32 noundef %14025) #11
  %14027 = icmp ne i32 %14026, 0
  br i1 %14027, label %14028, label %14045

14028:                                            ; preds = %14023
  %14029 = load i32, ptr %337, align 4, !tbaa !5
  %14030 = call ptr @__errno_location() #12
  store i32 %14029, ptr %14030, align 4, !tbaa !5
  %14031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14032 = load i32, ptr @test_count, align 4, !tbaa !5
  %14033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14034 = load i32, ptr %14033, align 4, !tbaa !5
  %14035 = call ptr @s2n_strerror(i32 noundef %14034, ptr noundef @.str.24)
  %14036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14037 = load i32, ptr %14036, align 4, !tbaa !5
  %14038 = call ptr @s2n_strerror_debug(i32 noundef %14037, ptr noundef @.str.24)
  %14039 = call ptr @__errno_location() #12
  %14040 = load i32, ptr %14039, align 4, !tbaa !5
  %14041 = call ptr @strerror(i32 noundef %14040) #11
  %14042 = call ptr @__errno_location() #12
  %14043 = load i32, ptr %14042, align 4, !tbaa !5
  %14044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14031, ptr noundef @.str.22, i32 noundef %14032, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 965, ptr noundef %14035, ptr noundef %14038, ptr noundef %14041, i32 noundef %14043) #11
  br label %14062

14045:                                            ; preds = %14023, %14016
  %14046 = load i32, ptr %337, align 4, !tbaa !5
  %14047 = call ptr @__errno_location() #12
  store i32 %14046, ptr %14047, align 4, !tbaa !5
  %14048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14049 = load i32, ptr @test_count, align 4, !tbaa !5
  %14050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14051 = load i32, ptr %14050, align 4, !tbaa !5
  %14052 = call ptr @s2n_strerror(i32 noundef %14051, ptr noundef @.str.24)
  %14053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14054 = load i32, ptr %14053, align 4, !tbaa !5
  %14055 = call ptr @s2n_strerror_debug(i32 noundef %14054, ptr noundef @.str.24)
  %14056 = call ptr @__errno_location() #12
  %14057 = load i32, ptr %14056, align 4, !tbaa !5
  %14058 = call ptr @strerror(i32 noundef %14057) #11
  %14059 = call ptr @__errno_location() #12
  %14060 = load i32, ptr %14059, align 4, !tbaa !5
  %14061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14048, ptr noundef @.str.25, i32 noundef %14049, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 965, ptr noundef %14052, ptr noundef %14055, ptr noundef %14058, i32 noundef %14060) #11
  br label %14062

14062:                                            ; preds = %14045, %14028
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #11
  br label %14063

14063:                                            ; preds = %14062
  br label %14064

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

14065:                                            ; No predecessors!
  br label %14066

14066:                                            ; preds = %14065
  br label %14067

14067:                                            ; preds = %14066, %14005
  br label %14068

14068:                                            ; preds = %14067
  br label %14069

14069:                                            ; preds = %14068
  %14070 = load i32, ptr %333, align 4, !tbaa !5
  %14071 = load ptr, ptr %335, align 8, !tbaa !9
  %14072 = getelementptr inbounds %struct.s2n_connection, ptr %14071, i32 0, i32 52
  %14073 = getelementptr inbounds %struct.s2n_handshake, ptr %14072, i32 0, i32 6
  store i32 %14070, ptr %14073, align 4, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 4, ptr %338) #11
  store i32 0, ptr %338, align 4, !tbaa !5
  br label %14074

14074:                                            ; preds = %14151, %14069
  %14075 = load i32, ptr %338, align 4, !tbaa !5
  %14076 = sext i32 %14075 to i64
  %14077 = icmp ult i64 %14076, 10
  br i1 %14077, label %14079, label %14078

14078:                                            ; preds = %14074
  store i32 1322, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #11
  br label %14154

14079:                                            ; preds = %14074
  %14080 = load i32, ptr %338, align 4, !tbaa !5
  %14081 = load ptr, ptr %335, align 8, !tbaa !9
  %14082 = getelementptr inbounds %struct.s2n_connection, ptr %14081, i32 0, i32 52
  %14083 = getelementptr inbounds %struct.s2n_handshake, ptr %14082, i32 0, i32 7
  store i32 %14080, ptr %14083, align 8, !tbaa !61
  br label %14084

14084:                                            ; preds = %14079
  %14085 = load i32, ptr @test_count, align 4, !tbaa !5
  %14086 = add nsw i32 %14085, 1
  store i32 %14086, ptr @test_count, align 4, !tbaa !5
  %14087 = load i32, ptr %338, align 4, !tbaa !5
  %14088 = sext i32 %14087 to i64
  %14089 = getelementptr inbounds [10 x ptr], ptr %334, i64 0, i64 %14088
  %14090 = load ptr, ptr %14089, align 8, !tbaa !9
  %14091 = load ptr, ptr %335, align 8, !tbaa !9
  %14092 = call ptr @s2n_connection_get_last_message_name(ptr noundef %14091)
  %14093 = call i32 @strcmp(ptr noundef %14090, ptr noundef %14092) #14
  %14094 = icmp eq i32 %14093, 0
  br i1 %14094, label %14148, label %14095

14095:                                            ; preds = %14084
  br label %14096

14096:                                            ; preds = %14095
  br label %14097

14097:                                            ; preds = %14096
  call void @llvm.lifetime.start.p0(i64 4, ptr %339) #11
  %14098 = call ptr @__errno_location() #12
  %14099 = load i32, ptr %14098, align 4, !tbaa !5
  store i32 %14099, ptr %339, align 4, !tbaa !5
  %14100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14101 = call i32 @s2n_print_stacktrace(ptr noundef %14100)
  %14102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14103 = trunc i8 %14102 to i1
  br i1 %14103, label %14104, label %14126

14104:                                            ; preds = %14097
  %14105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14106 = call i32 @fileno(ptr noundef %14105) #11
  %14107 = call i32 @isatty(i32 noundef %14106) #11
  %14108 = icmp ne i32 %14107, 0
  br i1 %14108, label %14109, label %14126

14109:                                            ; preds = %14104
  %14110 = load i32, ptr %339, align 4, !tbaa !5
  %14111 = call ptr @__errno_location() #12
  store i32 %14110, ptr %14111, align 4, !tbaa !5
  %14112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14113 = load i32, ptr @test_count, align 4, !tbaa !5
  %14114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14115 = load i32, ptr %14114, align 4, !tbaa !5
  %14116 = call ptr @s2n_strerror(i32 noundef %14115, ptr noundef @.str.24)
  %14117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14118 = load i32, ptr %14117, align 4, !tbaa !5
  %14119 = call ptr @s2n_strerror_debug(i32 noundef %14118, ptr noundef @.str.24)
  %14120 = call ptr @__errno_location() #12
  %14121 = load i32, ptr %14120, align 4, !tbaa !5
  %14122 = call ptr @strerror(i32 noundef %14121) #11
  %14123 = call ptr @__errno_location() #12
  %14124 = load i32, ptr %14123, align 4, !tbaa !5
  %14125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14112, ptr noundef @.str.22, i32 noundef %14113, ptr noundef @.str.141, ptr noundef @.str.21, i32 noundef 971, ptr noundef %14116, ptr noundef %14119, ptr noundef %14122, i32 noundef %14124) #11
  br label %14143

14126:                                            ; preds = %14104, %14097
  %14127 = load i32, ptr %339, align 4, !tbaa !5
  %14128 = call ptr @__errno_location() #12
  store i32 %14127, ptr %14128, align 4, !tbaa !5
  %14129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14130 = load i32, ptr @test_count, align 4, !tbaa !5
  %14131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14132 = load i32, ptr %14131, align 4, !tbaa !5
  %14133 = call ptr @s2n_strerror(i32 noundef %14132, ptr noundef @.str.24)
  %14134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14135 = load i32, ptr %14134, align 4, !tbaa !5
  %14136 = call ptr @s2n_strerror_debug(i32 noundef %14135, ptr noundef @.str.24)
  %14137 = call ptr @__errno_location() #12
  %14138 = load i32, ptr %14137, align 4, !tbaa !5
  %14139 = call ptr @strerror(i32 noundef %14138) #11
  %14140 = call ptr @__errno_location() #12
  %14141 = load i32, ptr %14140, align 4, !tbaa !5
  %14142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14129, ptr noundef @.str.25, i32 noundef %14130, ptr noundef @.str.141, ptr noundef @.str.21, i32 noundef 971, ptr noundef %14133, ptr noundef %14136, ptr noundef %14139, i32 noundef %14141) #11
  br label %14143

14143:                                            ; preds = %14126, %14109
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #11
  br label %14144

14144:                                            ; preds = %14143
  br label %14145

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

14146:                                            ; No predecessors!
  br label %14147

14147:                                            ; preds = %14146
  br label %14148

14148:                                            ; preds = %14147, %14084
  br label %14149

14149:                                            ; preds = %14148
  br label %14150

14150:                                            ; preds = %14149
  br label %14151

14151:                                            ; preds = %14150
  %14152 = load i32, ptr %338, align 4, !tbaa !5
  %14153 = add nsw i32 %14152, 1
  store i32 %14153, ptr %338, align 4, !tbaa !5
  br label %14074, !llvm.loop !99

14154:                                            ; preds = %14078
  br label %14155

14155:                                            ; preds = %14154
  %14156 = load i32, ptr @test_count, align 4, !tbaa !5
  %14157 = add nsw i32 %14156, 1
  store i32 %14157, ptr @test_count, align 4, !tbaa !5
  %14158 = load ptr, ptr %335, align 8, !tbaa !9
  %14159 = call i32 @s2n_connection_free(ptr noundef %14158)
  %14160 = icmp eq i32 %14159, -1
  br i1 %14160, label %14161, label %14214

14161:                                            ; preds = %14155
  br label %14162

14162:                                            ; preds = %14161
  br label %14163

14163:                                            ; preds = %14162
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #11
  %14164 = call ptr @__errno_location() #12
  %14165 = load i32, ptr %14164, align 4, !tbaa !5
  store i32 %14165, ptr %340, align 4, !tbaa !5
  %14166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14167 = call i32 @s2n_print_stacktrace(ptr noundef %14166)
  %14168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14169 = trunc i8 %14168 to i1
  br i1 %14169, label %14170, label %14192

14170:                                            ; preds = %14163
  %14171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14172 = call i32 @fileno(ptr noundef %14171) #11
  %14173 = call i32 @isatty(i32 noundef %14172) #11
  %14174 = icmp ne i32 %14173, 0
  br i1 %14174, label %14175, label %14192

14175:                                            ; preds = %14170
  %14176 = load i32, ptr %340, align 4, !tbaa !5
  %14177 = call ptr @__errno_location() #12
  store i32 %14176, ptr %14177, align 4, !tbaa !5
  %14178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14179 = load i32, ptr @test_count, align 4, !tbaa !5
  %14180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14181 = load i32, ptr %14180, align 4, !tbaa !5
  %14182 = call ptr @s2n_strerror(i32 noundef %14181, ptr noundef @.str.24)
  %14183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14184 = load i32, ptr %14183, align 4, !tbaa !5
  %14185 = call ptr @s2n_strerror_debug(i32 noundef %14184, ptr noundef @.str.24)
  %14186 = call ptr @__errno_location() #12
  %14187 = load i32, ptr %14186, align 4, !tbaa !5
  %14188 = call ptr @strerror(i32 noundef %14187) #11
  %14189 = call ptr @__errno_location() #12
  %14190 = load i32, ptr %14189, align 4, !tbaa !5
  %14191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14178, ptr noundef @.str.22, i32 noundef %14179, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 974, ptr noundef %14182, ptr noundef %14185, ptr noundef %14188, i32 noundef %14190) #11
  br label %14209

14192:                                            ; preds = %14170, %14163
  %14193 = load i32, ptr %340, align 4, !tbaa !5
  %14194 = call ptr @__errno_location() #12
  store i32 %14193, ptr %14194, align 4, !tbaa !5
  %14195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14196 = load i32, ptr @test_count, align 4, !tbaa !5
  %14197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14198 = load i32, ptr %14197, align 4, !tbaa !5
  %14199 = call ptr @s2n_strerror(i32 noundef %14198, ptr noundef @.str.24)
  %14200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14201 = load i32, ptr %14200, align 4, !tbaa !5
  %14202 = call ptr @s2n_strerror_debug(i32 noundef %14201, ptr noundef @.str.24)
  %14203 = call ptr @__errno_location() #12
  %14204 = load i32, ptr %14203, align 4, !tbaa !5
  %14205 = call ptr @strerror(i32 noundef %14204) #11
  %14206 = call ptr @__errno_location() #12
  %14207 = load i32, ptr %14206, align 4, !tbaa !5
  %14208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14195, ptr noundef @.str.25, i32 noundef %14196, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 974, ptr noundef %14199, ptr noundef %14202, ptr noundef %14205, i32 noundef %14207) #11
  br label %14209

14209:                                            ; preds = %14192, %14175
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #11
  br label %14210

14210:                                            ; preds = %14209
  br label %14211

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

14212:                                            ; No predecessors!
  br label %14213

14213:                                            ; preds = %14212
  br label %14214

14214:                                            ; preds = %14213, %14155
  br label %14215

14215:                                            ; preds = %14214
  br label %14216

14216:                                            ; preds = %14215
  call void @llvm.lifetime.end.p0(i64 8, ptr %335) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr %334) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %333) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %341) #11
  store i32 7, ptr %341, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr %342) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %342, ptr align 16 @__const.main.expected.145, i64 88, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %343) #11
  %14217 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %14217, ptr %343, align 8, !tbaa !9
  %14218 = load ptr, ptr %343, align 8, !tbaa !9
  %14219 = getelementptr inbounds %struct.s2n_connection, ptr %14218, i32 0, i32 23
  store i8 34, ptr %14219, align 4, !tbaa !34
  br label %14220

14220:                                            ; preds = %14216
  %14221 = load i32, ptr @test_count, align 4, !tbaa !5
  %14222 = add nsw i32 %14221, 1
  store i32 %14222, ptr @test_count, align 4, !tbaa !5
  %14223 = load ptr, ptr %343, align 8, !tbaa !9
  %14224 = call i32 @s2n_conn_choose_state_machine(ptr noundef %14223, i8 noundef zeroext 34)
  %14225 = getelementptr inbounds %struct.s2n_result, ptr %344, i32 0, i32 0
  store i32 %14224, ptr %14225, align 4
  %14226 = getelementptr inbounds %struct.s2n_result, ptr %344, i32 0, i32 0
  %14227 = load i32, ptr %14226, align 4
  %14228 = call zeroext i1 @s2n_result_is_ok(i32 %14227)
  br i1 %14228, label %14282, label %14229

14229:                                            ; preds = %14220
  br label %14230

14230:                                            ; preds = %14229
  br label %14231

14231:                                            ; preds = %14230
  call void @llvm.lifetime.start.p0(i64 4, ptr %345) #11
  %14232 = call ptr @__errno_location() #12
  %14233 = load i32, ptr %14232, align 4, !tbaa !5
  store i32 %14233, ptr %345, align 4, !tbaa !5
  %14234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14235 = call i32 @s2n_print_stacktrace(ptr noundef %14234)
  %14236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14237 = trunc i8 %14236 to i1
  br i1 %14237, label %14238, label %14260

14238:                                            ; preds = %14231
  %14239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14240 = call i32 @fileno(ptr noundef %14239) #11
  %14241 = call i32 @isatty(i32 noundef %14240) #11
  %14242 = icmp ne i32 %14241, 0
  br i1 %14242, label %14243, label %14260

14243:                                            ; preds = %14238
  %14244 = load i32, ptr %345, align 4, !tbaa !5
  %14245 = call ptr @__errno_location() #12
  store i32 %14244, ptr %14245, align 4, !tbaa !5
  %14246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14247 = load i32, ptr @test_count, align 4, !tbaa !5
  %14248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14249 = load i32, ptr %14248, align 4, !tbaa !5
  %14250 = call ptr @s2n_strerror(i32 noundef %14249, ptr noundef @.str.24)
  %14251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14252 = load i32, ptr %14251, align 4, !tbaa !5
  %14253 = call ptr @s2n_strerror_debug(i32 noundef %14252, ptr noundef @.str.24)
  %14254 = call ptr @__errno_location() #12
  %14255 = load i32, ptr %14254, align 4, !tbaa !5
  %14256 = call ptr @strerror(i32 noundef %14255) #11
  %14257 = call ptr @__errno_location() #12
  %14258 = load i32, ptr %14257, align 4, !tbaa !5
  %14259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14246, ptr noundef @.str.22, i32 noundef %14247, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 987, ptr noundef %14250, ptr noundef %14253, ptr noundef %14256, i32 noundef %14258) #11
  br label %14277

14260:                                            ; preds = %14238, %14231
  %14261 = load i32, ptr %345, align 4, !tbaa !5
  %14262 = call ptr @__errno_location() #12
  store i32 %14261, ptr %14262, align 4, !tbaa !5
  %14263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14264 = load i32, ptr @test_count, align 4, !tbaa !5
  %14265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14266 = load i32, ptr %14265, align 4, !tbaa !5
  %14267 = call ptr @s2n_strerror(i32 noundef %14266, ptr noundef @.str.24)
  %14268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14269 = load i32, ptr %14268, align 4, !tbaa !5
  %14270 = call ptr @s2n_strerror_debug(i32 noundef %14269, ptr noundef @.str.24)
  %14271 = call ptr @__errno_location() #12
  %14272 = load i32, ptr %14271, align 4, !tbaa !5
  %14273 = call ptr @strerror(i32 noundef %14272) #11
  %14274 = call ptr @__errno_location() #12
  %14275 = load i32, ptr %14274, align 4, !tbaa !5
  %14276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14263, ptr noundef @.str.25, i32 noundef %14264, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 987, ptr noundef %14267, ptr noundef %14270, ptr noundef %14273, i32 noundef %14275) #11
  br label %14277

14277:                                            ; preds = %14260, %14243
  call void @llvm.lifetime.end.p0(i64 4, ptr %345) #11
  br label %14278

14278:                                            ; preds = %14277
  br label %14279

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

14280:                                            ; No predecessors!
  br label %14281

14281:                                            ; preds = %14280
  br label %14282

14282:                                            ; preds = %14281, %14220
  br label %14283

14283:                                            ; preds = %14282
  br label %14284

14284:                                            ; preds = %14283
  %14285 = load i32, ptr %341, align 4, !tbaa !5
  %14286 = load ptr, ptr %343, align 8, !tbaa !9
  %14287 = getelementptr inbounds %struct.s2n_connection, ptr %14286, i32 0, i32 52
  %14288 = getelementptr inbounds %struct.s2n_handshake, ptr %14287, i32 0, i32 6
  store i32 %14285, ptr %14288, align 4, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #11
  store i32 0, ptr %346, align 4, !tbaa !5
  br label %14289

14289:                                            ; preds = %14366, %14284
  %14290 = load i32, ptr %346, align 4, !tbaa !5
  %14291 = sext i32 %14290 to i64
  %14292 = icmp ult i64 %14291, 11
  br i1 %14292, label %14294, label %14293

14293:                                            ; preds = %14289
  store i32 1343, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #11
  br label %14369

14294:                                            ; preds = %14289
  %14295 = load i32, ptr %346, align 4, !tbaa !5
  %14296 = load ptr, ptr %343, align 8, !tbaa !9
  %14297 = getelementptr inbounds %struct.s2n_connection, ptr %14296, i32 0, i32 52
  %14298 = getelementptr inbounds %struct.s2n_handshake, ptr %14297, i32 0, i32 7
  store i32 %14295, ptr %14298, align 8, !tbaa !61
  br label %14299

14299:                                            ; preds = %14294
  %14300 = load i32, ptr @test_count, align 4, !tbaa !5
  %14301 = add nsw i32 %14300, 1
  store i32 %14301, ptr @test_count, align 4, !tbaa !5
  %14302 = load i32, ptr %346, align 4, !tbaa !5
  %14303 = sext i32 %14302 to i64
  %14304 = getelementptr inbounds [11 x ptr], ptr %342, i64 0, i64 %14303
  %14305 = load ptr, ptr %14304, align 8, !tbaa !9
  %14306 = load ptr, ptr %343, align 8, !tbaa !9
  %14307 = call ptr @s2n_connection_get_last_message_name(ptr noundef %14306)
  %14308 = call i32 @strcmp(ptr noundef %14305, ptr noundef %14307) #14
  %14309 = icmp eq i32 %14308, 0
  br i1 %14309, label %14363, label %14310

14310:                                            ; preds = %14299
  br label %14311

14311:                                            ; preds = %14310
  br label %14312

14312:                                            ; preds = %14311
  call void @llvm.lifetime.start.p0(i64 4, ptr %347) #11
  %14313 = call ptr @__errno_location() #12
  %14314 = load i32, ptr %14313, align 4, !tbaa !5
  store i32 %14314, ptr %347, align 4, !tbaa !5
  %14315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14316 = call i32 @s2n_print_stacktrace(ptr noundef %14315)
  %14317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14318 = trunc i8 %14317 to i1
  br i1 %14318, label %14319, label %14341

14319:                                            ; preds = %14312
  %14320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14321 = call i32 @fileno(ptr noundef %14320) #11
  %14322 = call i32 @isatty(i32 noundef %14321) #11
  %14323 = icmp ne i32 %14322, 0
  br i1 %14323, label %14324, label %14341

14324:                                            ; preds = %14319
  %14325 = load i32, ptr %347, align 4, !tbaa !5
  %14326 = call ptr @__errno_location() #12
  store i32 %14325, ptr %14326, align 4, !tbaa !5
  %14327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14328 = load i32, ptr @test_count, align 4, !tbaa !5
  %14329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14330 = load i32, ptr %14329, align 4, !tbaa !5
  %14331 = call ptr @s2n_strerror(i32 noundef %14330, ptr noundef @.str.24)
  %14332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14333 = load i32, ptr %14332, align 4, !tbaa !5
  %14334 = call ptr @s2n_strerror_debug(i32 noundef %14333, ptr noundef @.str.24)
  %14335 = call ptr @__errno_location() #12
  %14336 = load i32, ptr %14335, align 4, !tbaa !5
  %14337 = call ptr @strerror(i32 noundef %14336) #11
  %14338 = call ptr @__errno_location() #12
  %14339 = load i32, ptr %14338, align 4, !tbaa !5
  %14340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14327, ptr noundef @.str.22, i32 noundef %14328, ptr noundef @.str.141, ptr noundef @.str.21, i32 noundef 993, ptr noundef %14331, ptr noundef %14334, ptr noundef %14337, i32 noundef %14339) #11
  br label %14358

14341:                                            ; preds = %14319, %14312
  %14342 = load i32, ptr %347, align 4, !tbaa !5
  %14343 = call ptr @__errno_location() #12
  store i32 %14342, ptr %14343, align 4, !tbaa !5
  %14344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14345 = load i32, ptr @test_count, align 4, !tbaa !5
  %14346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14347 = load i32, ptr %14346, align 4, !tbaa !5
  %14348 = call ptr @s2n_strerror(i32 noundef %14347, ptr noundef @.str.24)
  %14349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14350 = load i32, ptr %14349, align 4, !tbaa !5
  %14351 = call ptr @s2n_strerror_debug(i32 noundef %14350, ptr noundef @.str.24)
  %14352 = call ptr @__errno_location() #12
  %14353 = load i32, ptr %14352, align 4, !tbaa !5
  %14354 = call ptr @strerror(i32 noundef %14353) #11
  %14355 = call ptr @__errno_location() #12
  %14356 = load i32, ptr %14355, align 4, !tbaa !5
  %14357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14344, ptr noundef @.str.25, i32 noundef %14345, ptr noundef @.str.141, ptr noundef @.str.21, i32 noundef 993, ptr noundef %14348, ptr noundef %14351, ptr noundef %14354, i32 noundef %14356) #11
  br label %14358

14358:                                            ; preds = %14341, %14324
  call void @llvm.lifetime.end.p0(i64 4, ptr %347) #11
  br label %14359

14359:                                            ; preds = %14358
  br label %14360

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

14361:                                            ; No predecessors!
  br label %14362

14362:                                            ; preds = %14361
  br label %14363

14363:                                            ; preds = %14362, %14299
  br label %14364

14364:                                            ; preds = %14363
  br label %14365

14365:                                            ; preds = %14364
  br label %14366

14366:                                            ; preds = %14365
  %14367 = load i32, ptr %346, align 4, !tbaa !5
  %14368 = add nsw i32 %14367, 1
  store i32 %14368, ptr %346, align 4, !tbaa !5
  br label %14289, !llvm.loop !100

14369:                                            ; preds = %14293
  br label %14370

14370:                                            ; preds = %14369
  %14371 = load i32, ptr @test_count, align 4, !tbaa !5
  %14372 = add nsw i32 %14371, 1
  store i32 %14372, ptr @test_count, align 4, !tbaa !5
  %14373 = load ptr, ptr %343, align 8, !tbaa !9
  %14374 = call i32 @s2n_connection_free(ptr noundef %14373)
  %14375 = icmp eq i32 %14374, -1
  br i1 %14375, label %14376, label %14429

14376:                                            ; preds = %14370
  br label %14377

14377:                                            ; preds = %14376
  br label %14378

14378:                                            ; preds = %14377
  call void @llvm.lifetime.start.p0(i64 4, ptr %348) #11
  %14379 = call ptr @__errno_location() #12
  %14380 = load i32, ptr %14379, align 4, !tbaa !5
  store i32 %14380, ptr %348, align 4, !tbaa !5
  %14381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14382 = call i32 @s2n_print_stacktrace(ptr noundef %14381)
  %14383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14384 = trunc i8 %14383 to i1
  br i1 %14384, label %14385, label %14407

14385:                                            ; preds = %14378
  %14386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14387 = call i32 @fileno(ptr noundef %14386) #11
  %14388 = call i32 @isatty(i32 noundef %14387) #11
  %14389 = icmp ne i32 %14388, 0
  br i1 %14389, label %14390, label %14407

14390:                                            ; preds = %14385
  %14391 = load i32, ptr %348, align 4, !tbaa !5
  %14392 = call ptr @__errno_location() #12
  store i32 %14391, ptr %14392, align 4, !tbaa !5
  %14393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14394 = load i32, ptr @test_count, align 4, !tbaa !5
  %14395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14396 = load i32, ptr %14395, align 4, !tbaa !5
  %14397 = call ptr @s2n_strerror(i32 noundef %14396, ptr noundef @.str.24)
  %14398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14399 = load i32, ptr %14398, align 4, !tbaa !5
  %14400 = call ptr @s2n_strerror_debug(i32 noundef %14399, ptr noundef @.str.24)
  %14401 = call ptr @__errno_location() #12
  %14402 = load i32, ptr %14401, align 4, !tbaa !5
  %14403 = call ptr @strerror(i32 noundef %14402) #11
  %14404 = call ptr @__errno_location() #12
  %14405 = load i32, ptr %14404, align 4, !tbaa !5
  %14406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14393, ptr noundef @.str.22, i32 noundef %14394, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 996, ptr noundef %14397, ptr noundef %14400, ptr noundef %14403, i32 noundef %14405) #11
  br label %14424

14407:                                            ; preds = %14385, %14378
  %14408 = load i32, ptr %348, align 4, !tbaa !5
  %14409 = call ptr @__errno_location() #12
  store i32 %14408, ptr %14409, align 4, !tbaa !5
  %14410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14411 = load i32, ptr @test_count, align 4, !tbaa !5
  %14412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14413 = load i32, ptr %14412, align 4, !tbaa !5
  %14414 = call ptr @s2n_strerror(i32 noundef %14413, ptr noundef @.str.24)
  %14415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14416 = load i32, ptr %14415, align 4, !tbaa !5
  %14417 = call ptr @s2n_strerror_debug(i32 noundef %14416, ptr noundef @.str.24)
  %14418 = call ptr @__errno_location() #12
  %14419 = load i32, ptr %14418, align 4, !tbaa !5
  %14420 = call ptr @strerror(i32 noundef %14419) #11
  %14421 = call ptr @__errno_location() #12
  %14422 = load i32, ptr %14421, align 4, !tbaa !5
  %14423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14410, ptr noundef @.str.25, i32 noundef %14411, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 996, ptr noundef %14414, ptr noundef %14417, ptr noundef %14420, i32 noundef %14422) #11
  br label %14424

14424:                                            ; preds = %14407, %14390
  call void @llvm.lifetime.end.p0(i64 4, ptr %348) #11
  br label %14425

14425:                                            ; preds = %14424
  br label %14426

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

14427:                                            ; No predecessors!
  br label %14428

14428:                                            ; preds = %14427
  br label %14429

14429:                                            ; preds = %14428, %14370
  br label %14430

14430:                                            ; preds = %14429
  br label %14431

14431:                                            ; preds = %14430
  call void @llvm.lifetime.end.p0(i64 8, ptr %343) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %342) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %341) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %349) #11
  store i32 0, ptr %349, align 4, !tbaa !5
  br label %14432

14432:                                            ; preds = %14501, %14431
  %14433 = load i32, ptr %349, align 4, !tbaa !5
  %14434 = icmp sle i32 %14433, 20
  br i1 %14434, label %14436, label %14435

14435:                                            ; preds = %14432
  store i32 1358, ptr %34, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %349) #11
  br label %14504

14436:                                            ; preds = %14432
  br label %14437

14437:                                            ; preds = %14436
  %14438 = load i32, ptr @test_count, align 4, !tbaa !5
  %14439 = add nsw i32 %14438, 1
  store i32 %14439, ptr @test_count, align 4, !tbaa !5
  %14440 = load i32, ptr %349, align 4, !tbaa !5
  %14441 = sext i32 %14440 to i64
  %14442 = getelementptr inbounds [21 x ptr], ptr @message_names, i64 0, i64 %14441
  %14443 = load ptr, ptr %14442, align 8, !tbaa !9
  %14444 = icmp eq ptr %14443, null
  br i1 %14444, label %14445, label %14498

14445:                                            ; preds = %14437
  br label %14446

14446:                                            ; preds = %14445
  br label %14447

14447:                                            ; preds = %14446
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #11
  %14448 = call ptr @__errno_location() #12
  %14449 = load i32, ptr %14448, align 4, !tbaa !5
  store i32 %14449, ptr %350, align 4, !tbaa !5
  %14450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14451 = call i32 @s2n_print_stacktrace(ptr noundef %14450)
  %14452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14453 = trunc i8 %14452 to i1
  br i1 %14453, label %14454, label %14476

14454:                                            ; preds = %14447
  %14455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14456 = call i32 @fileno(ptr noundef %14455) #11
  %14457 = call i32 @isatty(i32 noundef %14456) #11
  %14458 = icmp ne i32 %14457, 0
  br i1 %14458, label %14459, label %14476

14459:                                            ; preds = %14454
  %14460 = load i32, ptr %350, align 4, !tbaa !5
  %14461 = call ptr @__errno_location() #12
  store i32 %14460, ptr %14461, align 4, !tbaa !5
  %14462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14463 = load i32, ptr @test_count, align 4, !tbaa !5
  %14464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14465 = load i32, ptr %14464, align 4, !tbaa !5
  %14466 = call ptr @s2n_strerror(i32 noundef %14465, ptr noundef @.str.24)
  %14467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14468 = load i32, ptr %14467, align 4, !tbaa !5
  %14469 = call ptr @s2n_strerror_debug(i32 noundef %14468, ptr noundef @.str.24)
  %14470 = call ptr @__errno_location() #12
  %14471 = load i32, ptr %14470, align 4, !tbaa !5
  %14472 = call ptr @strerror(i32 noundef %14471) #11
  %14473 = call ptr @__errno_location() #12
  %14474 = load i32, ptr %14473, align 4, !tbaa !5
  %14475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14462, ptr noundef @.str.22, i32 noundef %14463, ptr noundef @.str.146, ptr noundef @.str.21, i32 noundef 1002, ptr noundef %14466, ptr noundef %14469, ptr noundef %14472, i32 noundef %14474) #11
  br label %14493

14476:                                            ; preds = %14454, %14447
  %14477 = load i32, ptr %350, align 4, !tbaa !5
  %14478 = call ptr @__errno_location() #12
  store i32 %14477, ptr %14478, align 4, !tbaa !5
  %14479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14480 = load i32, ptr @test_count, align 4, !tbaa !5
  %14481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14482 = load i32, ptr %14481, align 4, !tbaa !5
  %14483 = call ptr @s2n_strerror(i32 noundef %14482, ptr noundef @.str.24)
  %14484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14485 = load i32, ptr %14484, align 4, !tbaa !5
  %14486 = call ptr @s2n_strerror_debug(i32 noundef %14485, ptr noundef @.str.24)
  %14487 = call ptr @__errno_location() #12
  %14488 = load i32, ptr %14487, align 4, !tbaa !5
  %14489 = call ptr @strerror(i32 noundef %14488) #11
  %14490 = call ptr @__errno_location() #12
  %14491 = load i32, ptr %14490, align 4, !tbaa !5
  %14492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14479, ptr noundef @.str.25, i32 noundef %14480, ptr noundef @.str.146, ptr noundef @.str.21, i32 noundef 1002, ptr noundef %14483, ptr noundef %14486, ptr noundef %14489, i32 noundef %14491) #11
  br label %14493

14493:                                            ; preds = %14476, %14459
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #11
  br label %14494

14494:                                            ; preds = %14493
  br label %14495

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

14496:                                            ; No predecessors!
  br label %14497

14497:                                            ; preds = %14496
  br label %14498

14498:                                            ; preds = %14497, %14437
  br label %14499

14499:                                            ; preds = %14498
  br label %14500

14500:                                            ; preds = %14499
  br label %14501

14501:                                            ; preds = %14500
  %14502 = load i32, ptr %349, align 4, !tbaa !5
  %14503 = add nsw i32 %14502, 1
  store i32 %14503, ptr %349, align 4, !tbaa !5
  br label %14432, !llvm.loop !101

14504:                                            ; preds = %14435
  br label %14505

14505:                                            ; preds = %14504
  br label %14506

14506:                                            ; preds = %14505
  %14507 = call i32 @s2n_cleanup()
  %14508 = icmp eq i32 %14507, -1
  br i1 %14508, label %14509, label %14562

14509:                                            ; preds = %14506
  br label %14510

14510:                                            ; preds = %14509
  br label %14511

14511:                                            ; preds = %14510
  call void @llvm.lifetime.start.p0(i64 4, ptr %351) #11
  %14512 = call ptr @__errno_location() #12
  %14513 = load i32, ptr %14512, align 4, !tbaa !5
  store i32 %14513, ptr %351, align 4, !tbaa !5
  %14514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14515 = call i32 @s2n_print_stacktrace(ptr noundef %14514)
  %14516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14517 = trunc i8 %14516 to i1
  br i1 %14517, label %14518, label %14540

14518:                                            ; preds = %14511
  %14519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14520 = call i32 @fileno(ptr noundef %14519) #11
  %14521 = call i32 @isatty(i32 noundef %14520) #11
  %14522 = icmp ne i32 %14521, 0
  br i1 %14522, label %14523, label %14540

14523:                                            ; preds = %14518
  %14524 = load i32, ptr %351, align 4, !tbaa !5
  %14525 = call ptr @__errno_location() #12
  store i32 %14524, ptr %14525, align 4, !tbaa !5
  %14526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14527 = load i32, ptr @test_count, align 4, !tbaa !5
  %14528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14529 = load i32, ptr %14528, align 4, !tbaa !5
  %14530 = call ptr @s2n_strerror(i32 noundef %14529, ptr noundef @.str.24)
  %14531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14532 = load i32, ptr %14531, align 4, !tbaa !5
  %14533 = call ptr @s2n_strerror_debug(i32 noundef %14532, ptr noundef @.str.24)
  %14534 = call ptr @__errno_location() #12
  %14535 = load i32, ptr %14534, align 4, !tbaa !5
  %14536 = call ptr @strerror(i32 noundef %14535) #11
  %14537 = call ptr @__errno_location() #12
  %14538 = load i32, ptr %14537, align 4, !tbaa !5
  %14539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14526, ptr noundef @.str.22, i32 noundef %14527, ptr noundef @.str.147, ptr noundef @.str.21, i32 noundef 1006, ptr noundef %14530, ptr noundef %14533, ptr noundef %14536, i32 noundef %14538) #11
  br label %14557

14540:                                            ; preds = %14518, %14511
  %14541 = load i32, ptr %351, align 4, !tbaa !5
  %14542 = call ptr @__errno_location() #12
  store i32 %14541, ptr %14542, align 4, !tbaa !5
  %14543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14544 = load i32, ptr @test_count, align 4, !tbaa !5
  %14545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14546 = load i32, ptr %14545, align 4, !tbaa !5
  %14547 = call ptr @s2n_strerror(i32 noundef %14546, ptr noundef @.str.24)
  %14548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14549 = load i32, ptr %14548, align 4, !tbaa !5
  %14550 = call ptr @s2n_strerror_debug(i32 noundef %14549, ptr noundef @.str.24)
  %14551 = call ptr @__errno_location() #12
  %14552 = load i32, ptr %14551, align 4, !tbaa !5
  %14553 = call ptr @strerror(i32 noundef %14552) #11
  %14554 = call ptr @__errno_location() #12
  %14555 = load i32, ptr %14554, align 4, !tbaa !5
  %14556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14543, ptr noundef @.str.25, i32 noundef %14544, ptr noundef @.str.147, ptr noundef @.str.21, i32 noundef 1006, ptr noundef %14547, ptr noundef %14550, ptr noundef %14553, i32 noundef %14555) #11
  br label %14557

14557:                                            ; preds = %14540, %14523
  call void @llvm.lifetime.end.p0(i64 4, ptr %351) #11
  br label %14558

14558:                                            ; preds = %14557
  br label %14559

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

14560:                                            ; No predecessors!
  br label %14561

14561:                                            ; preds = %14560
  br label %14562

14562:                                            ; preds = %14561, %14506
  br label %14563

14563:                                            ; preds = %14562
  br label %14564

14564:                                            ; preds = %14563
  br label %14565

14565:                                            ; preds = %14564
  br label %14566

14566:                                            ; preds = %14565
  %14567 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %14568 = icmp eq i32 %14567, -1
  br i1 %14568, label %14569, label %14622

14569:                                            ; preds = %14566
  br label %14570

14570:                                            ; preds = %14569
  br label %14571

14571:                                            ; preds = %14570
  call void @llvm.lifetime.start.p0(i64 4, ptr %352) #11
  %14572 = call ptr @__errno_location() #12
  %14573 = load i32, ptr %14572, align 4, !tbaa !5
  store i32 %14573, ptr %352, align 4, !tbaa !5
  %14574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14575 = call i32 @s2n_print_stacktrace(ptr noundef %14574)
  %14576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14577 = trunc i8 %14576 to i1
  br i1 %14577, label %14578, label %14600

14578:                                            ; preds = %14571
  %14579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14580 = call i32 @fileno(ptr noundef %14579) #11
  %14581 = call i32 @isatty(i32 noundef %14580) #11
  %14582 = icmp ne i32 %14581, 0
  br i1 %14582, label %14583, label %14600

14583:                                            ; preds = %14578
  %14584 = load i32, ptr %352, align 4, !tbaa !5
  %14585 = call ptr @__errno_location() #12
  store i32 %14584, ptr %14585, align 4, !tbaa !5
  %14586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14587 = load i32, ptr @test_count, align 4, !tbaa !5
  %14588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14589 = load i32, ptr %14588, align 4, !tbaa !5
  %14590 = call ptr @s2n_strerror(i32 noundef %14589, ptr noundef @.str.24)
  %14591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14592 = load i32, ptr %14591, align 4, !tbaa !5
  %14593 = call ptr @s2n_strerror_debug(i32 noundef %14592, ptr noundef @.str.24)
  %14594 = call ptr @__errno_location() #12
  %14595 = load i32, ptr %14594, align 4, !tbaa !5
  %14596 = call ptr @strerror(i32 noundef %14595) #11
  %14597 = call ptr @__errno_location() #12
  %14598 = load i32, ptr %14597, align 4, !tbaa !5
  %14599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14586, ptr noundef @.str.22, i32 noundef %14587, ptr noundef @.str.148, ptr noundef @.str.21, i32 noundef 1006, ptr noundef %14590, ptr noundef %14593, ptr noundef %14596, i32 noundef %14598) #11
  br label %14617

14600:                                            ; preds = %14578, %14571
  %14601 = load i32, ptr %352, align 4, !tbaa !5
  %14602 = call ptr @__errno_location() #12
  store i32 %14601, ptr %14602, align 4, !tbaa !5
  %14603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14604 = load i32, ptr @test_count, align 4, !tbaa !5
  %14605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14606 = load i32, ptr %14605, align 4, !tbaa !5
  %14607 = call ptr @s2n_strerror(i32 noundef %14606, ptr noundef @.str.24)
  %14608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14609 = load i32, ptr %14608, align 4, !tbaa !5
  %14610 = call ptr @s2n_strerror_debug(i32 noundef %14609, ptr noundef @.str.24)
  %14611 = call ptr @__errno_location() #12
  %14612 = load i32, ptr %14611, align 4, !tbaa !5
  %14613 = call ptr @strerror(i32 noundef %14612) #11
  %14614 = call ptr @__errno_location() #12
  %14615 = load i32, ptr %14614, align 4, !tbaa !5
  %14616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14603, ptr noundef @.str.25, i32 noundef %14604, ptr noundef @.str.148, ptr noundef @.str.21, i32 noundef 1006, ptr noundef %14607, ptr noundef %14610, ptr noundef %14613, i32 noundef %14615) #11
  br label %14617

14617:                                            ; preds = %14600, %14583
  call void @llvm.lifetime.end.p0(i64 4, ptr %352) #11
  br label %14618

14618:                                            ; preds = %14617
  br label %14619

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

14620:                                            ; No predecessors!
  br label %14621

14621:                                            ; preds = %14620
  br label %14622

14622:                                            ; preds = %14621, %14566
  br label %14623

14623:                                            ; preds = %14622
  br label %14624

14624:                                            ; preds = %14623
  %14625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14626 = trunc i8 %14625 to i1
  br i1 %14626, label %14627, label %14643

14627:                                            ; preds = %14624
  %14628 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14629 = call i32 @fileno(ptr noundef %14628) #11
  %14630 = call i32 @isatty(i32 noundef %14629) #11
  %14631 = icmp ne i32 %14630, 0
  br i1 %14631, label %14632, label %14643

14632:                                            ; preds = %14627
  %14633 = load i32, ptr @test_count, align 4, !tbaa !5
  %14634 = icmp ne i32 %14633, 0
  br i1 %14634, label %14635, label %14639

14635:                                            ; preds = %14632
  %14636 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14637 = load i32, ptr @test_count, align 4, !tbaa !5
  %14638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14636, ptr noundef @.str.149, i32 noundef %14637) #11
  br label %14642

14639:                                            ; preds = %14632
  %14640 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14640, ptr noundef @.str.150) #11
  br label %14642

14642:                                            ; preds = %14639, %14635
  br label %14654

14643:                                            ; preds = %14627, %14624
  %14644 = load i32, ptr @test_count, align 4, !tbaa !5
  %14645 = icmp ne i32 %14644, 0
  br i1 %14645, label %14646, label %14650

14646:                                            ; preds = %14643
  %14647 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14648 = load i32, ptr @test_count, align 4, !tbaa !5
  %14649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14647, ptr noundef @.str.151, i32 noundef %14648) #11
  br label %14653

14650:                                            ; preds = %14643
  %14651 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14651, ptr noundef @.str.152) #11
  br label %14653

14653:                                            ; preds = %14650, %14646
  br label %14654

14654:                                            ; preds = %14653, %14642
  store i32 0, ptr %3, align 4
  store i32 1, ptr %34, align 4
  br label %14659

14655:                                            ; No predecessors!
  br label %14656

14656:                                            ; preds = %14655
  br label %14657

14657:                                            ; preds = %14656
  br label %14658

14658:                                            ; preds = %14657
  store i32 0, ptr %34, align 4
  br label %14659

14659:                                            ; preds = %14658, %14654, %9526
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 512, ptr %10) #11
  %14660 = load i32, ptr %34, align 4
  switch i32 %14660, label %14663 [
    i32 0, label %14661
    i32 1, label %14661
  ]

14661:                                            ; preds = %14659, %14659
  %14662 = load i32, ptr %3, align 4
  ret i32 %14662

14663:                                            ; preds = %14659, %10273, %10012, %9786
  unreachable
}

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

declare i32 @fflush(ptr noundef) #5

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #5

declare i32 @s2n_print_stacktrace(ptr noundef) #5

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #5

declare i32 @s2n_init() #5

declare i32 @s2n_enable_tls13_in_test(...) #5

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #6

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_handler(ptr noundef) #4

declare ptr @s2n_connection_new(i32 noundef) #5

declare i32 @s2n_connection_free(ptr noundef) #5

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_advance_message(ptr noundef) #4

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_setup_handler_to_expect(i32 noundef, i8 noundef zeroext) #4

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_write_header(ptr noundef, i8 noundef zeroext, i8 noundef zeroext) #4

declare i32 @s2n_stuffer_wipe(ptr noundef) #5

declare i32 @s2n_stuffer_free(ptr noundef) #5

declare void @s2n_debug_info_reset() #5

declare i32 @s2n_connection_set_client_auth_type(ptr noundef, i32 noundef) #5

declare i32 @s2n_array_pushback(ptr noundef, ptr noundef) #5

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #6

declare i32 @s2n_cleanup() #5

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

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = !{!21, !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = distinct !{!22, !18}
!23 = distinct !{!23, !18}
!24 = distinct !{!24, !18}
!25 = distinct !{!25, !18}
!26 = distinct !{!26, !18}
!27 = distinct !{!27, !18}
!28 = distinct !{!28, !18}
!29 = distinct !{!29, !18}
!30 = distinct !{!30, !18}
!31 = distinct !{!31, !18}
!32 = distinct !{!32, !18}
!33 = distinct !{!33, !18}
!34 = !{!35, !7, i64 220}
!35 = !{!"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, !36, i64 160, !21, i64 168, !21, 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, !37, i64 240, !10, i64 632, !10, i64 640, !38, i64 648, !44, i64 1144, !47, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !49, i64 1776, !49, i64 1816, !49, i64 1856, !49, i64 1896, !6, i64 1936, !21, i64 1944, !7, i64 1952, !49, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !50, i64 2004, !50, i64 2008, !51, i64 2016, !16, i64 2208, !6, i64 2212, !16, i64 2216, !21, i64 2224, !7, i64 2232, !21, i64 2240, !21, i64 2248, !21, i64 2256, !50, i64 2264, !50, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !43, i64 2792, !6, i64 2816, !43, i64 2824, !43, i64 2848, !43, i64 2872, !53, i64 2896, !55, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !43, i64 3784, !6, i64 3808, !57, i64 3816, !7, i64 3848, !49, i64 3992, !43, i64 4032, !43, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !16, i64 4084, !16, i64 4086, !6, i64 4088, !6, i64 4092, !43, i64 4096, !6, i64 4120, !58, i64 4128, !50, i64 4176, !7, i64 4180, !7, i64 4181}
!36 = !{!"s2n_timer", !21, i64 0}
!37 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!38 = !{!"s2n_kex_parameters", !39, i64 0, !40, i64 8, !7, i64 24, !40, i64 56, !41, i64 72, !41, i64 184, !7, i64 296, !42, i64 360, !43, i64 448, !43, i64 472}
!39 = !{!"s2n_dh_params", !10, i64 0}
!40 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!41 = !{!"s2n_kem_group_params", !10, i64 0, !42, i64 8, !40, i64 96}
!42 = !{!"s2n_kem_params", !10, i64 0, !43, i64 8, !43, i64 32, !43, i64 56, !12, i64 80}
!43 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!44 = !{!"s2n_handshake_parameters", !45, i64 0, !45, i64 48, !43, i64 96, !6, i64 120, !46, 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}
!45 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!46 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!47 = !{!"s2n_psk_parameters", !6, i64 0, !48, i64 8, !16, i64 40, !16, i64 42, !10, i64 48, !6, i64 56}
!48 = !{!"s2n_array", !43, i64 0, !6, i64 24, !6, i64 28}
!49 = !{!"s2n_stuffer", !43, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!50 = !{!"", !6, i64 0}
!51 = !{!"s2n_handshake", !49, 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, !52, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!52 = !{!"s2n_offered_early_data", !10, i64 0}
!53 = !{!"s2n_client_hello", !43, i64 0, !54, i64 24, !43, i64 728, !43, i64 752, !43, 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}
!54 = !{!"", !7, i64 0, !43, i64 672, !16, i64 696}
!55 = !{!"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, !56, i64 48, !12, i64 52}
!56 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!57 = !{!"s2n_ticket_fields", !43, i64 0, !6, i64 24}
!58 = !{!"s2n_post_handshake", !49, i64 0, !7, i64 40}
!59 = !{!35, !6, i64 2204}
!60 = !{!35, !6, i64 2172}
!61 = !{!35, !6, i64 2176}
!62 = distinct !{!62, !18}
!63 = distinct !{!63, !18}
!64 = distinct !{!64, !18}
!65 = distinct !{!65, !18}
!66 = distinct !{!66, !18}
!67 = distinct !{!67, !18}
!68 = distinct !{!68, !18}
!69 = distinct !{!69, !18}
!70 = !{!35, !6, i64 1936}
!71 = distinct !{!71, !18}
!72 = distinct !{!72, !18}
!73 = distinct !{!73, !18}
!74 = distinct !{!74, !18}
!75 = !{!35, !10, i64 232}
!76 = !{!77, !10, i64 0}
!77 = !{!"s2n_crypto_parameters", !10, i64 0, !78, i64 8, !78, i64 16, !79, i64 24, !79, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!78 = !{!"s2n_session_key", !10, i64 0}
!79 = !{!"s2n_hmac_state", !6, i64 0, !16, i64 4, !6, i64 8, !16, i64 12, !7, i64 14, !80, i64 16, !80, i64 72, !80, i64 128, !80, i64 184, !7, i64 240, !7, i64 368}
!80 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !21, i64 16, !7, i64 24}
!81 = !{!82, !7, i64 1}
!82 = !{!"s2n_handshake_action", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 8}
!83 = !{!7, !7, i64 0}
!84 = !{!82, !7, i64 2}
!85 = distinct !{!85, !18}
!86 = distinct !{!86, !18}
!87 = distinct !{!87, !18}
!88 = distinct !{!88, !18}
!89 = distinct !{!89, !18}
!90 = distinct !{!90, !18}
!91 = !{!35, !10, i64 8}
!92 = !{!35, !6, i64 3780}
!93 = !{!35, !6, i64 2784}
!94 = !{!35, !10, i64 1736}
!95 = !{!35, !6, i64 4088}
!96 = distinct !{!96, !18}
!97 = distinct !{!97, !18}
!98 = distinct !{!98, !18}
!99 = distinct !{!99, !18}
!100 = distinct !{!100, !18}
!101 = distinct !{!101, !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_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%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
@message_names = external hidden local_unnamed_addr global [21 x ptr], align 16
@.str.11 = external hidden unnamed_addr constant [8 x i8], align 1
@tls13_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 [97 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 [55 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 [104 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [141 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [212 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [209 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [212 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [209 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [56 x i8], align 1
@unexpected_handler_called = external hidden local_unnamed_addr global i32, align 4
@.str.60 = external hidden unnamed_addr constant [42 x i8], align 1
@expected_handler_called = external hidden local_unnamed_addr global i32, align 4
@.str.61 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [95 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.65 = external hidden unnamed_addr constant [196 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [347 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [94 x i8], align 1
@s2n_dhe_rsa_with_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.88 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [105 x i8], align 1
@__const.main.expected = external hidden unnamed_addr constant [10 x ptr], align 16
@.str.141 = external hidden unnamed_addr constant [92 x i8], align 1
@__const.main.expected.145 = external hidden unnamed_addr constant [11 x ptr], align 16
@.str.146 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.152 = 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 local_unnamed_addr 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: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_set_handshake_type(ptr noundef) local_unnamed_addr #4

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_conn_choose_state_machine(ptr noundef, i8 noundef zeroext) local_unnamed_addr #4

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_conn_set_tls13_handshake_type(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_handshake_type_reset(ptr noundef) local_unnamed_addr #5

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #7

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

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #4 {
  %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
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %14 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21) #13
  %16 = load ptr, ptr @stdout, align 8, !tbaa !9
  %17 = tail call i32 @fflush(ptr noundef %16)
  %18 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #13
  %19 = icmp eq i32 %18, -1
  br i1 %19, label %20, label %44

20:                                               ; preds = %2
  %21 = tail call ptr @__errno_location() #14
  %22 = load i32, ptr %21, align 4, !tbaa !5
  %23 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24 = tail call i32 @s2n_print_stacktrace(ptr noundef %23) #13
  %25 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26 = trunc nuw i8 %25 to i1
  br i1 %26, label %27, label %31

27:                                               ; preds = %20
  %28 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29 = tail call i32 @fileno(ptr noundef %28) #13
  %30 = tail call i32 @isatty(i32 noundef %29) #13
  %.not1257 = icmp eq i32 %30, 0
  br i1 %.not1257, label %31, label %32

31:                                               ; preds = %27, %20
  br label %32

32:                                               ; preds = %27, %31
  %.str.25.sink = phi ptr [ @.str.25, %31 ], [ @.str.22, %27 ]
  store i32 %22, ptr %21, align 4, !tbaa !5
  %33 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34 = load i32, ptr @test_count, align 4, !tbaa !5
  %35 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36 = load i32, ptr %35, align 4, !tbaa !5
  %37 = tail call ptr @s2n_strerror(i32 noundef %36, ptr noundef nonnull @.str.24) #13
  %38 = load i32, ptr %35, align 4, !tbaa !5
  %39 = tail call ptr @s2n_strerror_debug(i32 noundef %38, ptr noundef nonnull @.str.24) #13
  %40 = load i32, ptr %21, align 4, !tbaa !5
  %41 = tail call ptr @strerror(i32 noundef %40) #13
  %42 = load i32, ptr %21, align 4, !tbaa !5
  %43 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull %.str.25.sink, i32 noundef %34, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.21, i32 noundef 97, ptr noundef %37, ptr noundef %39, ptr noundef %41, i32 noundef %42) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

44:                                               ; preds = %2
  %45 = load i32, ptr @test_count, align 4, !tbaa !5
  %46 = add nsw i32 %45, 1
  store i32 %46, ptr @test_count, align 4, !tbaa !5
  %47 = tail call i32 @s2n_enable_atexit() #13
  %48 = icmp eq i32 %47, -1
  br i1 %48, label %49, label %73

49:                                               ; preds = %44
  %50 = tail call ptr @__errno_location() #14
  %51 = load i32, ptr %50, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = tail call i32 @s2n_print_stacktrace(ptr noundef %52) #13
  %54 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %55 = trunc nuw i8 %54 to i1
  br i1 %55, label %56, label %60

56:                                               ; preds = %49
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = tail call i32 @fileno(ptr noundef %57) #13
  %59 = tail call i32 @isatty(i32 noundef %58) #13
  %.not1256 = icmp eq i32 %59, 0
  br i1 %.not1256, label %60, label %61

60:                                               ; preds = %56, %49
  br label %61

61:                                               ; preds = %56, %60
  %.str.25.sink1826 = phi ptr [ @.str.25, %60 ], [ @.str.22, %56 ]
  store i32 %51, ptr %50, align 4, !tbaa !5
  %62 = load ptr, ptr @stderr, align 8, !tbaa !9
  %63 = load i32, ptr @test_count, align 4, !tbaa !5
  %64 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %65 = load i32, ptr %64, align 4, !tbaa !5
  %66 = tail call ptr @s2n_strerror(i32 noundef %65, ptr noundef nonnull @.str.24) #13
  %67 = load i32, ptr %64, align 4, !tbaa !5
  %68 = tail call ptr @s2n_strerror_debug(i32 noundef %67, ptr noundef nonnull @.str.24) #13
  %69 = load i32, ptr %50, align 4, !tbaa !5
  %70 = tail call ptr @strerror(i32 noundef %69) #13
  %71 = load i32, ptr %50, align 4, !tbaa !5
  %72 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %62, ptr noundef nonnull %.str.25.sink1826, i32 noundef %63, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.21, i32 noundef 97, ptr noundef %66, ptr noundef %68, ptr noundef %70, i32 noundef %71) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

73:                                               ; preds = %44
  %74 = tail call i32 @s2n_init() #13
  %75 = icmp eq i32 %74, -1
  br i1 %75, label %76, label %100

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

83:                                               ; preds = %76
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = tail call i32 @fileno(ptr noundef %84) #13
  %86 = tail call i32 @isatty(i32 noundef %85) #13
  %.not1255 = icmp eq i32 %86, 0
  br i1 %.not1255, label %87, label %88

87:                                               ; preds = %83, %76
  br label %88

88:                                               ; preds = %83, %87
  %.str.25.sink1837 = phi ptr [ @.str.25, %87 ], [ @.str.22, %83 ]
  store i32 %78, ptr %77, align 4, !tbaa !5
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = load i32, ptr @test_count, align 4, !tbaa !5
  %91 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %92 = load i32, ptr %91, align 4, !tbaa !5
  %93 = tail call ptr @s2n_strerror(i32 noundef %92, ptr noundef nonnull @.str.24) #13
  %94 = load i32, ptr %91, align 4, !tbaa !5
  %95 = tail call ptr @s2n_strerror_debug(i32 noundef %94, ptr noundef nonnull @.str.24) #13
  %96 = load i32, ptr %77, align 4, !tbaa !5
  %97 = tail call ptr @strerror(i32 noundef %96) #13
  %98 = load i32, ptr %77, align 4, !tbaa !5
  %99 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %89, ptr noundef nonnull %.str.25.sink1837, i32 noundef %90, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.21, i32 noundef 97, ptr noundef %93, ptr noundef %95, ptr noundef %97, i32 noundef %98) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

100:                                              ; preds = %73
  %101 = load i32, ptr @test_count, align 4, !tbaa !5
  %102 = add nsw i32 %101, 1
  store i32 %102, ptr @test_count, align 4, !tbaa !5
  %103 = tail call i32 (...) @s2n_enable_tls13_in_test() #13
  %104 = icmp eq i32 %103, -1
  br i1 %104, label %105, label %129

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

112:                                              ; preds = %105
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = tail call i32 @fileno(ptr noundef %113) #13
  %115 = tail call i32 @isatty(i32 noundef %114) #13
  %.not1254 = icmp eq i32 %115, 0
  br i1 %.not1254, label %116, label %117

116:                                              ; preds = %112, %105
  br label %117

117:                                              ; preds = %112, %116
  %.str.25.sink1848 = phi ptr [ @.str.25, %116 ], [ @.str.22, %112 ]
  store i32 %107, ptr %106, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = tail call ptr @s2n_strerror(i32 noundef %121, ptr noundef nonnull @.str.24) #13
  %123 = load i32, ptr %120, align 4, !tbaa !5
  %124 = tail call ptr @s2n_strerror_debug(i32 noundef %123, ptr noundef nonnull @.str.24) #13
  %125 = load i32, ptr %106, align 4, !tbaa !5
  %126 = tail call ptr @strerror(i32 noundef %125) #13
  %127 = load i32, ptr %106, align 4, !tbaa !5
  %128 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef nonnull %.str.25.sink1848, i32 noundef %119, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.21, i32 noundef 99, ptr noundef %122, ptr noundef %124, ptr noundef %126, i32 noundef %127) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

129:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %3) #13
  br label %134

130:                                              ; preds = %141
  %131 = load i32, ptr @test_count, align 4, !tbaa !5
  %132 = add nsw i32 %131, 1
  store i32 %132, ptr @test_count, align 4, !tbaa !5
  %133 = icmp sgt i32 %.1942, 0
  br i1 %133, label %166, label %142

134:                                              ; preds = %129, %141
  %indvars.iv = phi i64 [ 0, %129 ], [ %indvars.iv.next, %141 ]
  %.09411337 = phi i32 [ 0, %129 ], [ %.1942, %141 ]
  %135 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %indvars.iv
  %bcmp1252 = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %135, ptr noundef nonnull dereferenceable(32) @invalid_handshake, i64 32)
  %.not1253 = icmp eq i32 %bcmp1252, 0
  br i1 %.not1253, label %141, label %136

136:                                              ; preds = %134
  %137 = trunc i64 %indvars.iv to i16
  %138 = sext i32 %.09411337 to i64
  %139 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %138
  store i16 %137, ptr %139, align 2, !tbaa !15
  %140 = add nsw i32 %.09411337, 1
  br label %141

141:                                              ; preds = %134, %136
  %.1942 = phi i32 [ %140, %136 ], [ %.09411337, %134 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 256
  br i1 %exitcond.not, label %130, label %134, !llvm.loop !17

142:                                              ; preds = %130
  %143 = tail call ptr @__errno_location() #14
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %146 = tail call i32 @s2n_print_stacktrace(ptr noundef %145) #13
  %147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %148 = trunc nuw i8 %147 to i1
  br i1 %148, label %149, label %153

149:                                              ; preds = %142
  %150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %151 = tail call i32 @fileno(ptr noundef %150) #13
  %152 = tail call i32 @isatty(i32 noundef %151) #13
  %.not = icmp eq i32 %152, 0
  br i1 %.not, label %153, label %154

153:                                              ; preds = %149, %142
  br label %154

154:                                              ; preds = %149, %153
  %.str.25.sink1859 = phi ptr [ @.str.25, %153 ], [ @.str.22, %149 ]
  store i32 %144, ptr %143, align 4, !tbaa !5
  %155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %156 = load i32, ptr @test_count, align 4, !tbaa !5
  %157 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = tail call ptr @s2n_strerror(i32 noundef %158, ptr noundef nonnull @.str.24) #13
  %160 = load i32, ptr %157, align 4, !tbaa !5
  %161 = tail call ptr @s2n_strerror_debug(i32 noundef %160, ptr noundef nonnull @.str.24) #13
  %162 = load i32, ptr %143, align 4, !tbaa !5
  %163 = tail call ptr @strerror(i32 noundef %162) #13
  %164 = load i32, ptr %143, align 4, !tbaa !5
  %165 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef nonnull %.str.25.sink1859, i32 noundef %156, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 110, ptr noundef %159, ptr noundef %161, ptr noundef %163, i32 noundef %164) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

166:                                              ; preds = %130
  %167 = add nsw i32 %131, 2
  store i32 %167, ptr @test_count, align 4, !tbaa !5
  %168 = icmp ult i32 %.1942, 256
  br i1 %168, label %.preheader1301.preheader, label %170

.preheader1301.preheader:                         ; preds = %166
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 8), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 16), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 32), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 40), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 56), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 64), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 80), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 88), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 104), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 112), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 128), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 136), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 152), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 160), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 176), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 184), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 200), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 208), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 224), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 232), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 248), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 256), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 272), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 280), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 296), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 304), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 320), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 328), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 344), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 352), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 368), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 376), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 392), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 400), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 416), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 424), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 440), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 448), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 464), align 16, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 472), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 488), align 8, !tbaa !9
  store ptr @s2n_test_handler, ptr getelementptr inbounds (i8, ptr @tls13_state_machine, i64 496), align 16, !tbaa !9
  %169 = zext nneg i32 %.1942 to i64
  br label %194

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

177:                                              ; preds = %170
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = tail call i32 @fileno(ptr noundef %178) #13
  %180 = tail call i32 @isatty(i32 noundef %179) #13
  %.not1001 = icmp eq i32 %180, 0
  br i1 %.not1001, label %181, label %182

181:                                              ; preds = %177, %170
  br label %182

182:                                              ; preds = %177, %181
  %.str.25.sink1870 = phi ptr [ @.str.25, %181 ], [ @.str.22, %177 ]
  store i32 %172, ptr %171, align 4, !tbaa !5
  %183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %184 = load i32, ptr @test_count, align 4, !tbaa !5
  %185 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %186 = load i32, ptr %185, align 4, !tbaa !5
  %187 = tail call ptr @s2n_strerror(i32 noundef %186, ptr noundef nonnull @.str.24) #13
  %188 = load i32, ptr %185, align 4, !tbaa !5
  %189 = tail call ptr @s2n_strerror_debug(i32 noundef %188, ptr noundef nonnull @.str.24) #13
  %190 = load i32, ptr %171, align 4, !tbaa !5
  %191 = tail call ptr @strerror(i32 noundef %190) #13
  %192 = load i32, ptr %171, align 4, !tbaa !5
  %193 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %183, ptr noundef nonnull %.str.25.sink1870, i32 noundef %184, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.21, i32 noundef 111, ptr noundef %187, ptr noundef %189, ptr noundef %191, i32 noundef %192) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

194:                                              ; preds = %.preheader1301.preheader, %329
  %.09471391 = phi i64 [ 0, %.preheader1301.preheader ], [ %330, %329 ]
  %test_count.promoted13871390 = phi i32 [ %167, %.preheader1301.preheader ], [ %test_count.promoted1398, %329 ]
  %195 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %.09471391
  %196 = load i16, ptr %195, align 2, !tbaa !15
  %197 = zext i16 %196 to i32
  %198 = zext i16 %196 to i64
  %199 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %198
  %200 = or i32 %197, 64
  %201 = zext nneg i32 %200 to i64
  %202 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %201
  %203 = and i32 %197, 19
  %or.cond1258 = icmp eq i32 %203, 1
  br i1 %or.cond1258, label %231, label %204

204:                                              ; preds = %194
  %205 = add nsw i32 %test_count.promoted13871390, 1
  store i32 %205, ptr @test_count, align 4, !tbaa !5
  %bcmp1250 = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(128) %202, ptr noundef nonnull dereferenceable(128) @invalid_handshake, i64 128)
  %206 = icmp eq i32 %bcmp1250, 0
  br i1 %206, label %329, label %207

207:                                              ; preds = %204
  %208 = tail call ptr @__errno_location() #14
  %209 = load i32, ptr %208, align 4, !tbaa !5
  %210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %211 = tail call i32 @s2n_print_stacktrace(ptr noundef %210) #13
  %212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %213 = trunc nuw i8 %212 to i1
  br i1 %213, label %214, label %218

214:                                              ; preds = %207
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = tail call i32 @fileno(ptr noundef %215) #13
  %217 = tail call i32 @isatty(i32 noundef %216) #13
  %.not1251 = icmp eq i32 %217, 0
  br i1 %.not1251, label %218, label %219

218:                                              ; preds = %214, %207
  br label %219

219:                                              ; preds = %214, %218
  %.str.25.sink1881 = phi ptr [ @.str.25, %218 ], [ @.str.22, %214 ]
  store i32 %209, ptr %208, align 4, !tbaa !5
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = load i32, ptr @test_count, align 4, !tbaa !5
  %222 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = tail call ptr @s2n_strerror(i32 noundef %223, ptr noundef nonnull @.str.24) #13
  %225 = load i32, ptr %222, align 4, !tbaa !5
  %226 = tail call ptr @s2n_strerror_debug(i32 noundef %225, ptr noundef nonnull @.str.24) #13
  %227 = load i32, ptr %208, align 4, !tbaa !5
  %228 = tail call ptr @strerror(i32 noundef %227) #13
  %229 = load i32, ptr %208, align 4, !tbaa !5
  %230 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %220, ptr noundef nonnull %.str.25.sink1881, i32 noundef %221, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 138, ptr noundef %224, ptr noundef %226, ptr noundef %228, i32 noundef %229) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

231:                                              ; preds = %194
  %232 = icmp eq i32 %200, %197
  br i1 %232, label %329, label %.lr.ph.lr.ph

.lr.ph.lr.ph:                                     ; preds = %231, %.outer.outer
  %.0948.ph.ph1384 = phi i64 [ %264, %.outer.outer ], [ 0, %231 ]
  %.0949.ph.ph1383 = phi i64 [ %.09491339, %.outer.outer ], [ 0, %231 ]
  %.0951.ph.ph1382 = phi i64 [ %265, %.outer.outer ], [ 0, %231 ]
  %test_count.promoted137213801381 = phi i32 [ %235, %.outer.outer ], [ %test_count.promoted13871390, %231 ]
  br label %.lr.ph.split.preheader

.lr.ph.split.preheader:                           ; preds = %.outer.backedge, %.lr.ph.lr.ph
  %.0949.ph1377 = phi i64 [ %.0949.ph.ph1383, %.lr.ph.lr.ph ], [ %.0949.ph.be, %.outer.backedge ]
  %.0951.ph1376 = phi i64 [ %.0951.ph.ph1382, %.lr.ph.lr.ph ], [ %.0951.ph.be, %.outer.backedge ]
  %.us-phi135713731375 = phi i32 [ %test_count.promoted137213801381, %.lr.ph.lr.ph ], [ %.us-phi13571374, %.outer.backedge ]
  %233 = getelementptr inbounds i32, ptr %202, i64 %.0951.ph1376
  br label %.lr.ph.split

.lr.ph.split:                                     ; preds = %.lr.ph.split.preheader, %272
  %.09491339 = phi i64 [ %273, %272 ], [ %.0949.ph1377, %.lr.ph.split.preheader ]
  %234 = phi i32 [ %235, %272 ], [ %.us-phi135713731375, %.lr.ph.split.preheader ]
  %235 = add nsw i32 %234, 1
  %236 = getelementptr inbounds i32, ptr %199, i64 %.09491339
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = icmp eq i32 %237, 19
  br i1 %238, label %.split.us, label %262

.split.us:                                        ; preds = %.lr.ph.split
  store i32 %235, ptr @test_count, align 4, !tbaa !5
  %239 = tail call ptr @__errno_location() #14
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %242 = tail call i32 @s2n_print_stacktrace(ptr noundef %241) #13
  %243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %244 = trunc nuw i8 %243 to i1
  br i1 %244, label %245, label %249

245:                                              ; preds = %.split.us
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = tail call i32 @fileno(ptr noundef %246) #13
  %248 = tail call i32 @isatty(i32 noundef %247) #13
  %.not1249 = icmp eq i32 %248, 0
  br i1 %.not1249, label %249, label %250

249:                                              ; preds = %245, %.split.us
  br label %250

250:                                              ; preds = %245, %249
  %.str.25.sink1892 = phi ptr [ @.str.25, %249 ], [ @.str.22, %245 ]
  store i32 %240, ptr %239, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = load i32, ptr @test_count, align 4, !tbaa !5
  %253 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = tail call ptr @s2n_strerror(i32 noundef %254, ptr noundef nonnull @.str.24) #13
  %256 = load i32, ptr %253, align 4, !tbaa !5
  %257 = tail call ptr @s2n_strerror_debug(i32 noundef %256, ptr noundef nonnull @.str.24) #13
  %258 = load i32, ptr %239, align 4, !tbaa !5
  %259 = tail call ptr @strerror(i32 noundef %258) #13
  %260 = load i32, ptr %239, align 4, !tbaa !5
  %261 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %251, ptr noundef nonnull %.str.25.sink1892, i32 noundef %252, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.21, i32 noundef 151, ptr noundef %255, ptr noundef %257, ptr noundef %259, i32 noundef %260) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

262:                                              ; preds = %.lr.ph.split
  %263 = load i32, ptr %233, align 4, !tbaa !5
  switch i32 %263, label %270 [
    i32 19, label %.outer.outer
    i32 11, label %.split1352.us
  ]

.outer.outer:                                     ; preds = %262
  store i32 %235, ptr @test_count, align 4, !tbaa !5
  %264 = add i64 %.0948.ph.ph1384, 1
  %265 = add i64 %.0951.ph1376, 1
  %266 = icmp ult i64 %265, 32
  br i1 %266, label %.lr.ph.lr.ph, label %.outer._crit_edge, !llvm.loop !19

.split1352.us:                                    ; preds = %262
  store i32 %235, ptr @test_count, align 4, !tbaa !5
  br label %.outer.backedge

.outer.backedge:                                  ; preds = %.split1352.us, %301
  %.us-phi13571374 = phi i32 [ %275, %301 ], [ %235, %.split1352.us ]
  %.0949.ph.be = phi i64 [ %302, %301 ], [ %.09491339, %.split1352.us ]
  %.0951.ph.be = add i64 %.0951.ph1376, 1
  %267 = icmp ult i64 %.0951.ph.be, 32
  %268 = icmp ult i64 %.0949.ph.be, 32
  %269 = select i1 %268, i1 %267, i1 false
  br i1 %269, label %.lr.ph.split.preheader, label %.outer._crit_edge, !llvm.loop !19

270:                                              ; preds = %262
  %271 = icmp eq i32 %237, 11
  br i1 %271, label %272, label %.split1356.us

272:                                              ; preds = %270
  %273 = add nuw nsw i64 %.09491339, 1
  %274 = icmp ult i64 %.09491339, 31
  br i1 %274, label %.lr.ph.split, label %.outer._crit_edge, !llvm.loop !19

.split1356.us:                                    ; preds = %270
  %275 = add nsw i32 %234, 2
  store i32 %275, ptr @test_count, align 4, !tbaa !5
  %276 = icmp eq i32 %237, %263
  br i1 %276, label %301, label %277

277:                                              ; preds = %.split1356.us
  %278 = tail call ptr @__errno_location() #14
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = tail call i32 @s2n_print_stacktrace(ptr noundef %280) #13
  %282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %283 = trunc nuw i8 %282 to i1
  br i1 %283, label %284, label %288

284:                                              ; preds = %277
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = tail call i32 @fileno(ptr noundef %285) #13
  %287 = tail call i32 @isatty(i32 noundef %286) #13
  %.not1248 = icmp eq i32 %287, 0
  br i1 %.not1248, label %288, label %289

288:                                              ; preds = %284, %277
  br label %289

289:                                              ; preds = %284, %288
  %.str.25.sink1903 = phi ptr [ @.str.25, %288 ], [ @.str.22, %284 ]
  store i32 %279, ptr %278, align 4, !tbaa !5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = tail call ptr @s2n_strerror(i32 noundef %293, ptr noundef nonnull @.str.24) #13
  %295 = load i32, ptr %292, align 4, !tbaa !5
  %296 = tail call ptr @s2n_strerror_debug(i32 noundef %295, ptr noundef nonnull @.str.24) #13
  %297 = load i32, ptr %278, align 4, !tbaa !5
  %298 = tail call ptr @strerror(i32 noundef %297) #13
  %299 = load i32, ptr %278, align 4, !tbaa !5
  %300 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %290, ptr noundef nonnull %.str.25.sink1903, i32 noundef %291, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 171, ptr noundef %294, ptr noundef %296, ptr noundef %298, i32 noundef %299) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

301:                                              ; preds = %.split1356.us
  %302 = add nuw nsw i64 %.09491339, 1
  br label %.outer.backedge

.outer._crit_edge:                                ; preds = %.outer.outer, %.outer.backedge, %272
  %test_count.promoted1389 = phi i32 [ %235, %272 ], [ %.us-phi13571374, %.outer.backedge ], [ %235, %.outer.outer ]
  %.0948.ph.ph.lcssa1330 = phi i64 [ %.0948.ph.ph1384, %272 ], [ %.0948.ph.ph1384, %.outer.backedge ], [ %264, %.outer.outer ]
  %303 = add nsw i32 %test_count.promoted1389, 1
  store i32 %303, ptr @test_count, align 4, !tbaa !5
  %304 = icmp eq i64 %.0948.ph.ph.lcssa1330, 1
  br i1 %304, label %329, label %305

305:                                              ; preds = %.outer._crit_edge
  %306 = tail call ptr @__errno_location() #14
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %309 = tail call i32 @s2n_print_stacktrace(ptr noundef %308) #13
  %310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %311 = trunc nuw i8 %310 to i1
  br i1 %311, label %312, label %316

312:                                              ; preds = %305
  %313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %314 = tail call i32 @fileno(ptr noundef %313) #13
  %315 = tail call i32 @isatty(i32 noundef %314) #13
  %.not1247 = icmp eq i32 %315, 0
  br i1 %.not1247, label %316, label %317

316:                                              ; preds = %312, %305
  br label %317

317:                                              ; preds = %312, %316
  %.str.25.sink1914 = phi ptr [ @.str.25, %316 ], [ @.str.22, %312 ]
  store i32 %307, ptr %306, align 4, !tbaa !5
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = load i32, ptr @test_count, align 4, !tbaa !5
  %320 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = tail call ptr @s2n_strerror(i32 noundef %321, ptr noundef nonnull @.str.24) #13
  %323 = load i32, ptr %320, align 4, !tbaa !5
  %324 = tail call ptr @s2n_strerror_debug(i32 noundef %323, ptr noundef nonnull @.str.24) #13
  %325 = load i32, ptr %306, align 4, !tbaa !5
  %326 = tail call ptr @strerror(i32 noundef %325) #13
  %327 = load i32, ptr %306, align 4, !tbaa !5
  %328 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %318, ptr noundef nonnull %.str.25.sink1914, i32 noundef %319, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 176, ptr noundef %322, ptr noundef %324, ptr noundef %326, i32 noundef %327) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

329:                                              ; preds = %.outer._crit_edge, %231, %204
  %test_count.promoted1398 = phi i32 [ %303, %.outer._crit_edge ], [ %test_count.promoted13871390, %231 ], [ %205, %204 ]
  %330 = add nuw nsw i64 %.09471391, 1
  %exitcond1565.not = icmp eq i64 %330, %169
  br i1 %exitcond1565.not, label %.preheader1298, label %194, !llvm.loop !20

.preheader1298:                                   ; preds = %329, %430
  %.09521402 = phi i64 [ %431, %430 ], [ 0, %329 ]
  %.lcssa139714001401 = phi i32 [ %test_count.promoted1409, %430 ], [ %test_count.promoted1398, %329 ]
  %331 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %.09521402
  %332 = load i16, ptr %331, align 2, !tbaa !15
  %333 = zext i16 %332 to i32
  %334 = zext i16 %332 to i64
  %335 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %334
  %336 = and i32 %333, 33
  %or.cond1259 = icmp eq i32 %336, 1
  br i1 %or.cond1259, label %337, label %430

337:                                              ; preds = %.preheader1298
  %338 = or disjoint i32 %333, 32
  %339 = zext nneg i32 %338 to i64
  %340 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %339
  br label %341

341:                                              ; preds = %337, %425
  %.09561393 = phi i64 [ 0, %337 ], [ %426, %425 ]
  %.09571392 = phi i64 [ 0, %337 ], [ %427, %425 ]
  %342 = phi i32 [ %.lcssa139714001401, %337 ], [ %399, %425 ]
  %343 = getelementptr inbounds i32, ptr %335, i64 %.09561393
  %344 = load i32, ptr %343, align 4, !tbaa !5
  switch i32 %344, label %.preheader1296 [
    i32 14, label %345
    i32 11, label %370
  ]

345:                                              ; preds = %341
  %346 = add nsw i32 %342, 1
  store i32 %346, ptr @test_count, align 4, !tbaa !5
  %347 = tail call ptr @__errno_location() #14
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = tail call i32 @s2n_print_stacktrace(ptr noundef %349) #13
  %351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %352 = trunc nuw i8 %351 to i1
  br i1 %352, label %353, label %357

353:                                              ; preds = %345
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = tail call i32 @fileno(ptr noundef %354) #13
  %356 = tail call i32 @isatty(i32 noundef %355) #13
  %.not1243 = icmp eq i32 %356, 0
  br i1 %.not1243, label %357, label %358

357:                                              ; preds = %353, %345
  br label %358

358:                                              ; preds = %353, %357
  %.str.25.sink1925 = phi ptr [ @.str.25, %357 ], [ @.str.22, %353 ]
  store i32 %348, ptr %347, align 4, !tbaa !5
  %359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %360 = load i32, ptr @test_count, align 4, !tbaa !5
  %361 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = tail call ptr @s2n_strerror(i32 noundef %362, ptr noundef nonnull @.str.24) #13
  %364 = load i32, ptr %361, align 4, !tbaa !5
  %365 = tail call ptr @s2n_strerror_debug(i32 noundef %364, ptr noundef nonnull @.str.24) #13
  %366 = load i32, ptr %347, align 4, !tbaa !5
  %367 = tail call ptr @strerror(i32 noundef %366) #13
  %368 = load i32, ptr %347, align 4, !tbaa !5
  %369 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %359, ptr noundef nonnull %.str.25.sink1925, i32 noundef %360, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.21, i32 noundef 204, ptr noundef %363, ptr noundef %365, ptr noundef %367, i32 noundef %368) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

370:                                              ; preds = %341
  %371 = add nsw i32 %342, 2
  store i32 %371, ptr @test_count, align 4, !tbaa !5
  %372 = tail call ptr @__errno_location() #14
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = tail call i32 @s2n_print_stacktrace(ptr noundef %374) #13
  %376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %377 = trunc nuw i8 %376 to i1
  br i1 %377, label %378, label %382

378:                                              ; preds = %370
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = tail call i32 @fileno(ptr noundef %379) #13
  %381 = tail call i32 @isatty(i32 noundef %380) #13
  %.not1242 = icmp eq i32 %381, 0
  br i1 %.not1242, label %382, label %383

382:                                              ; preds = %378, %370
  br label %383

383:                                              ; preds = %378, %382
  %.str.25.sink1936 = phi ptr [ @.str.25, %382 ], [ @.str.22, %378 ]
  store i32 %373, ptr %372, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = tail call ptr @s2n_strerror(i32 noundef %387, ptr noundef nonnull @.str.24) #13
  %389 = load i32, ptr %386, align 4, !tbaa !5
  %390 = tail call ptr @s2n_strerror_debug(i32 noundef %389, ptr noundef nonnull @.str.24) #13
  %391 = load i32, ptr %372, align 4, !tbaa !5
  %392 = tail call ptr @strerror(i32 noundef %391) #13
  %393 = load i32, ptr %372, align 4, !tbaa !5
  %394 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef nonnull %.str.25.sink1936, i32 noundef %385, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.21, i32 noundef 205, ptr noundef %388, ptr noundef %390, ptr noundef %392, i32 noundef %393) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

.preheader1296:                                   ; preds = %341, %.critedge
  %.1958 = phi i64 [ %397, %.critedge ], [ %.09571392, %341 ]
  %395 = getelementptr inbounds i32, ptr %340, i64 %.1958
  %396 = load i32, ptr %395, align 4, !tbaa !5
  switch i32 %396, label %398 [
    i32 14, label %.critedge
    i32 11, label %.critedge
  ]

.critedge:                                        ; preds = %.preheader1296, %.preheader1296
  %397 = add i64 %.1958, 1
  br label %.preheader1296, !llvm.loop !21

398:                                              ; preds = %.preheader1296
  %399 = add nsw i32 %342, 3
  %400 = icmp eq i32 %344, %396
  br i1 %400, label %425, label %401

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

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

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

413:                                              ; preds = %408, %412
  %.str.25.sink1947 = phi ptr [ @.str.25, %412 ], [ @.str.22, %408 ]
  store i32 %403, ptr %402, align 4, !tbaa !5
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = tail call ptr @s2n_strerror(i32 noundef %417, ptr noundef nonnull @.str.24) #13
  %419 = load i32, ptr %416, align 4, !tbaa !5
  %420 = tail call ptr @s2n_strerror_debug(i32 noundef %419, ptr noundef nonnull @.str.24) #13
  %421 = load i32, ptr %402, align 4, !tbaa !5
  %422 = tail call ptr @strerror(i32 noundef %421) #13
  %423 = load i32, ptr %402, align 4, !tbaa !5
  %424 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %414, ptr noundef nonnull %.str.25.sink1947, i32 noundef %415, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.21, i32 noundef 214, ptr noundef %418, ptr noundef %420, ptr noundef %422, i32 noundef %423) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

425:                                              ; preds = %398
  %426 = add nuw nsw i64 %.09561393, 1
  %427 = add i64 %.1958, 1
  %428 = or i64 %426, %427
  %429 = icmp ult i64 %428, 32
  br i1 %429, label %341, label %.loopexit1297, !llvm.loop !22

.loopexit1297:                                    ; preds = %425
  store i32 %399, ptr @test_count, align 4, !tbaa !5
  br label %430

430:                                              ; preds = %.loopexit1297, %.preheader1298
  %test_count.promoted1409 = phi i32 [ %399, %.loopexit1297 ], [ %.lcssa139714001401, %.preheader1298 ]
  %431 = add nuw nsw i64 %.09521402, 1
  %exitcond1566.not = icmp eq i64 %431, %169
  br i1 %exitcond1566.not, label %.preheader1295, label %.preheader1298, !llvm.loop !23

.preheader1295:                                   ; preds = %430, %558
  %.09591413 = phi i64 [ %559, %558 ], [ 0, %430 ]
  %.lcssa140814111412 = phi i32 [ %test_count.promoted1418, %558 ], [ %test_count.promoted1409, %430 ]
  %432 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %.09591413
  %433 = load i16, ptr %432, align 2, !tbaa !15
  %434 = zext i16 %433 to i32
  %435 = zext i16 %433 to i64
  %436 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %435
  %437 = and i32 %434, 3
  %or.cond1260 = icmp eq i32 %437, 1
  br i1 %or.cond1260, label %438, label %558

438:                                              ; preds = %.preheader1295
  %439 = or disjoint i32 %434, 2
  %440 = zext nneg i32 %439 to i64
  %441 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %440
  %442 = and i32 %434, 64
  %.not1234 = icmp eq i32 %442, 0
  br i1 %.not1234, label %.preheader1293, label %443

443:                                              ; preds = %438
  %444 = add nsw i32 %.lcssa140814111412, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %bcmp = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(128) %441, ptr noundef nonnull dereferenceable(128) @invalid_handshake, i64 128)
  %445 = icmp eq i32 %bcmp, 0
  br i1 %445, label %558, label %446

446:                                              ; preds = %443
  %447 = tail call ptr @__errno_location() #14
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = tail call i32 @s2n_print_stacktrace(ptr noundef %449) #13
  %451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %452 = trunc nuw i8 %451 to i1
  br i1 %452, label %453, label %457

453:                                              ; preds = %446
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = tail call i32 @fileno(ptr noundef %454) #13
  %456 = tail call i32 @isatty(i32 noundef %455) #13
  %.not1238 = icmp eq i32 %456, 0
  br i1 %.not1238, label %457, label %458

457:                                              ; preds = %453, %446
  br label %458

458:                                              ; preds = %453, %457
  %.str.25.sink1958 = phi ptr [ @.str.25, %457 ], [ @.str.22, %453 ]
  store i32 %448, ptr %447, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = tail call ptr @s2n_strerror(i32 noundef %462, ptr noundef nonnull @.str.24) #13
  %464 = load i32, ptr %461, align 4, !tbaa !5
  %465 = tail call ptr @s2n_strerror_debug(i32 noundef %464, ptr noundef nonnull @.str.24) #13
  %466 = load i32, ptr %447, align 4, !tbaa !5
  %467 = tail call ptr @strerror(i32 noundef %466) #13
  %468 = load i32, ptr %447, align 4, !tbaa !5
  %469 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %459, ptr noundef nonnull %.str.25.sink1958, i32 noundef %460, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 239, ptr noundef %463, ptr noundef %465, ptr noundef %467, i32 noundef %468) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

.preheader1293:                                   ; preds = %438, %553
  %.09621404 = phi i64 [ %554, %553 ], [ 0, %438 ]
  %.09631403 = phi i64 [ %555, %553 ], [ 0, %438 ]
  %470 = phi i32 [ %527, %553 ], [ %.lcssa140814111412, %438 ]
  %471 = getelementptr inbounds i32, ptr %436, i64 %.09621404
  %472 = load i32, ptr %471, align 4, !tbaa !5
  switch i32 %472, label %.preheader1292 [
    i32 2, label %473
    i32 17, label %498
  ]

473:                                              ; preds = %.preheader1293
  %474 = add nsw i32 %470, 1
  store i32 %474, ptr @test_count, align 4, !tbaa !5
  %475 = tail call ptr @__errno_location() #14
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = tail call i32 @s2n_print_stacktrace(ptr noundef %477) #13
  %479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %480 = trunc nuw i8 %479 to i1
  br i1 %480, label %481, label %485

481:                                              ; preds = %473
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = tail call i32 @fileno(ptr noundef %482) #13
  %484 = tail call i32 @isatty(i32 noundef %483) #13
  %.not1237 = icmp eq i32 %484, 0
  br i1 %.not1237, label %485, label %486

485:                                              ; preds = %481, %473
  br label %486

486:                                              ; preds = %481, %485
  %.str.25.sink1969 = phi ptr [ @.str.25, %485 ], [ @.str.22, %481 ]
  store i32 %476, ptr %475, align 4, !tbaa !5
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = load i32, ptr @test_count, align 4, !tbaa !5
  %489 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = tail call ptr @s2n_strerror(i32 noundef %490, ptr noundef nonnull @.str.24) #13
  %492 = load i32, ptr %489, align 4, !tbaa !5
  %493 = tail call ptr @s2n_strerror_debug(i32 noundef %492, ptr noundef nonnull @.str.24) #13
  %494 = load i32, ptr %475, align 4, !tbaa !5
  %495 = tail call ptr @strerror(i32 noundef %494) #13
  %496 = load i32, ptr %475, align 4, !tbaa !5
  %497 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %487, ptr noundef nonnull %.str.25.sink1969, i32 noundef %488, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 250, ptr noundef %491, ptr noundef %493, ptr noundef %495, i32 noundef %496) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

498:                                              ; preds = %.preheader1293
  %499 = add nsw i32 %470, 2
  store i32 %499, ptr @test_count, align 4, !tbaa !5
  %500 = tail call ptr @__errno_location() #14
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = tail call i32 @s2n_print_stacktrace(ptr noundef %502) #13
  %504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %505 = trunc nuw i8 %504 to i1
  br i1 %505, label %506, label %510

506:                                              ; preds = %498
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = tail call i32 @fileno(ptr noundef %507) #13
  %509 = tail call i32 @isatty(i32 noundef %508) #13
  %.not1236 = icmp eq i32 %509, 0
  br i1 %.not1236, label %510, label %511

510:                                              ; preds = %506, %498
  br label %511

511:                                              ; preds = %506, %510
  %.str.25.sink1980 = phi ptr [ @.str.25, %510 ], [ @.str.22, %506 ]
  store i32 %501, ptr %500, align 4, !tbaa !5
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = tail call ptr @s2n_strerror(i32 noundef %515, ptr noundef nonnull @.str.24) #13
  %517 = load i32, ptr %514, align 4, !tbaa !5
  %518 = tail call ptr @s2n_strerror_debug(i32 noundef %517, ptr noundef nonnull @.str.24) #13
  %519 = load i32, ptr %500, align 4, !tbaa !5
  %520 = tail call ptr @strerror(i32 noundef %519) #13
  %521 = load i32, ptr %500, align 4, !tbaa !5
  %522 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %512, ptr noundef nonnull %.str.25.sink1980, i32 noundef %513, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 251, ptr noundef %516, ptr noundef %518, ptr noundef %520, i32 noundef %521) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

.preheader1292:                                   ; preds = %.preheader1293, %.critedge2
  %.1964 = phi i64 [ %525, %.critedge2 ], [ %.09631403, %.preheader1293 ]
  %523 = getelementptr inbounds i32, ptr %441, i64 %.1964
  %524 = load i32, ptr %523, align 4, !tbaa !5
  switch i32 %524, label %526 [
    i32 2, label %.critedge2
    i32 17, label %.critedge2
  ]

.critedge2:                                       ; preds = %.preheader1292, %.preheader1292
  %525 = add i64 %.1964, 1
  br label %.preheader1292, !llvm.loop !24

526:                                              ; preds = %.preheader1292
  %527 = add nsw i32 %470, 3
  %528 = icmp eq i32 %472, %524
  br i1 %528, label %553, label %529

529:                                              ; preds = %526
  store i32 %527, ptr @test_count, align 4, !tbaa !5
  %530 = tail call ptr @__errno_location() #14
  %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) #13
  %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) #13
  %539 = tail call i32 @isatty(i32 noundef %538) #13
  %.not1235 = icmp eq i32 %539, 0
  br i1 %.not1235, label %540, label %541

540:                                              ; preds = %536, %529
  br label %541

541:                                              ; preds = %536, %540
  %.str.25.sink1991 = 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) #13
  %547 = load i32, ptr %544, align 4, !tbaa !5
  %548 = tail call ptr @s2n_strerror_debug(i32 noundef %547, ptr noundef nonnull @.str.24) #13
  %549 = load i32, ptr %530, align 4, !tbaa !5
  %550 = tail call ptr @strerror(i32 noundef %549) #13
  %551 = load i32, ptr %530, align 4, !tbaa !5
  %552 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %542, ptr noundef nonnull %.str.25.sink1991, i32 noundef %543, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 259, ptr noundef %546, ptr noundef %548, ptr noundef %550, i32 noundef %551) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

553:                                              ; preds = %526
  %554 = add nuw nsw i64 %.09621404, 1
  %555 = add i64 %.1964, 1
  %556 = or i64 %554, %555
  %557 = icmp ult i64 %556, 32
  br i1 %557, label %.preheader1293, label %.loopexit1294, !llvm.loop !25

.loopexit1294:                                    ; preds = %553
  store i32 %527, ptr @test_count, align 4, !tbaa !5
  br label %558

558:                                              ; preds = %.loopexit1294, %443, %.preheader1295
  %test_count.promoted1418 = phi i32 [ %527, %.loopexit1294 ], [ %444, %443 ], [ %.lcssa140814111412, %.preheader1295 ]
  %559 = add nuw nsw i64 %.09591413, 1
  %exitcond1567.not = icmp eq i64 %559, %169
  br i1 %exitcond1567.not, label %.preheader1291, label %.preheader1295, !llvm.loop !26

560:                                              ; preds = %618
  %561 = tail call ptr @s2n_connection_new(i32 noundef 1) #13
  %562 = getelementptr inbounds i8, ptr %561, i64 220
  store i8 34, ptr %562, align 4, !tbaa !27
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = add nsw i32 %563, 1
  store i32 %564, ptr @test_count, align 4, !tbaa !5
  %565 = tail call i32 @s2n_conn_choose_state_machine(ptr noundef %561, i8 noundef zeroext 34)
  %566 = tail call zeroext i1 @s2n_result_is_ok(i32 %565)
  br i1 %566, label %644, label %620

.preheader1291:                                   ; preds = %558, %618
  %.09651422 = phi i64 [ %619, %618 ], [ 0, %558 ]
  %.lcssa141714201421 = phi i32 [ %.lcssa14171419, %618 ], [ %test_count.promoted1418, %558 ]
  %567 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %.09651422
  %568 = load i16, ptr %567, align 2, !tbaa !15
  %569 = zext i16 %568 to i32
  %570 = zext i16 %568 to i64
  %571 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %570
  %572 = and i32 %569, 32
  %.not1230 = icmp eq i32 %572, 0
  br i1 %.not1230, label %618, label %573

573:                                              ; preds = %.preheader1291
  %574 = or i32 %569, 128
  %575 = zext nneg i32 %574 to i64
  %576 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %575
  %577 = icmp eq i32 %574, %569
  br i1 %577, label %618, label %.preheader1288

.preheader1288:                                   ; preds = %573, %615
  %.09661415 = phi i64 [ %583, %615 ], [ 0, %573 ]
  %.09681414 = phi i64 [ %587, %615 ], [ 0, %573 ]
  %578 = phi i32 [ %589, %615 ], [ %.lcssa141714201421, %573 ]
  br label %579

579:                                              ; preds = %579, %.preheader1288
  %.1967 = phi i64 [ %583, %579 ], [ %.09661415, %.preheader1288 ]
  %580 = getelementptr inbounds i32, ptr %571, i64 %.1967
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = icmp eq i32 %581, 11
  %583 = add i64 %.1967, 1
  br i1 %582, label %579, label %.preheader1287, !llvm.loop !53

.preheader1287:                                   ; preds = %579, %.preheader1287
  %.1969 = phi i64 [ %587, %.preheader1287 ], [ %.09681414, %579 ]
  %584 = getelementptr inbounds i32, ptr %576, i64 %.1969
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = icmp eq i32 %585, 11
  %587 = add i64 %.1969, 1
  br i1 %586, label %.preheader1287, label %588, !llvm.loop !54

588:                                              ; preds = %.preheader1287
  %589 = add nsw i32 %578, 1
  %590 = icmp eq i32 %581, %585
  br i1 %590, label %615, label %591

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

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

602:                                              ; preds = %598, %591
  br label %603

603:                                              ; preds = %598, %602
  %.str.25.sink2002 = phi ptr [ @.str.25, %602 ], [ @.str.22, %598 ]
  store i32 %593, ptr %592, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = load i32, ptr @test_count, align 4, !tbaa !5
  %606 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = tail call ptr @s2n_strerror(i32 noundef %607, ptr noundef nonnull @.str.24) #13
  %609 = load i32, ptr %606, align 4, !tbaa !5
  %610 = tail call ptr @s2n_strerror_debug(i32 noundef %609, ptr noundef nonnull @.str.24) #13
  %611 = load i32, ptr %592, align 4, !tbaa !5
  %612 = tail call ptr @strerror(i32 noundef %611) #13
  %613 = load i32, ptr %592, align 4, !tbaa !5
  %614 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %604, ptr noundef nonnull %.str.25.sink2002, i32 noundef %605, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 298, ptr noundef %608, ptr noundef %610, ptr noundef %612, i32 noundef %613) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

615:                                              ; preds = %588
  %616 = or i64 %583, %587
  %617 = icmp ult i64 %616, 32
  br i1 %617, label %.preheader1288, label %.loopexit1290, !llvm.loop !55

.loopexit1290:                                    ; preds = %615
  store i32 %589, ptr @test_count, align 4, !tbaa !5
  br label %618

618:                                              ; preds = %.loopexit1290, %573, %.preheader1291
  %.lcssa14171419 = phi i32 [ %589, %.loopexit1290 ], [ %.lcssa141714201421, %573 ], [ %.lcssa141714201421, %.preheader1291 ]
  %619 = add nuw nsw i64 %.09651422, 1
  %exitcond1568.not = icmp eq i64 %619, %169
  br i1 %exitcond1568.not, label %560, label %.preheader1291, !llvm.loop !56

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

627:                                              ; preds = %620
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = tail call i32 @fileno(ptr noundef %628) #13
  %630 = tail call i32 @isatty(i32 noundef %629) #13
  %.not1002 = icmp eq i32 %630, 0
  br i1 %.not1002, label %631, label %632

631:                                              ; preds = %627, %620
  br label %632

632:                                              ; preds = %627, %631
  %.str.25.sink2013 = phi ptr [ @.str.25, %631 ], [ @.str.22, %627 ]
  store i32 %622, ptr %621, align 4, !tbaa !5
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = load i32, ptr @test_count, align 4, !tbaa !5
  %635 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = tail call ptr @s2n_strerror(i32 noundef %636, ptr noundef nonnull @.str.24) #13
  %638 = load i32, ptr %635, align 4, !tbaa !5
  %639 = tail call ptr @s2n_strerror_debug(i32 noundef %638, ptr noundef nonnull @.str.24) #13
  %640 = load i32, ptr %621, align 4, !tbaa !5
  %641 = tail call ptr @strerror(i32 noundef %640) #13
  %642 = load i32, ptr %621, align 4, !tbaa !5
  %643 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %633, ptr noundef nonnull %.str.25.sink2013, i32 noundef %634, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 307, ptr noundef %637, ptr noundef %639, ptr noundef %641, i32 noundef %642) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

644:                                              ; preds = %560
  %645 = load i32, ptr @test_count, align 4, !tbaa !5
  %646 = add nsw i32 %645, 1
  store i32 %646, ptr @test_count, align 4, !tbaa !5
  %647 = getelementptr inbounds i8, ptr %561, i64 2204
  %648 = load i32, ptr %647, align 4, !tbaa !57
  %649 = icmp eq i32 %648, 2
  br i1 %649, label %674, label %650

650:                                              ; preds = %644
  %651 = tail call ptr @__errno_location() #14
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %654 = tail call i32 @s2n_print_stacktrace(ptr noundef %653) #13
  %655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %656 = trunc nuw i8 %655 to i1
  br i1 %656, label %657, label %661

657:                                              ; preds = %650
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = tail call i32 @fileno(ptr noundef %658) #13
  %660 = tail call i32 @isatty(i32 noundef %659) #13
  %.not1003 = icmp eq i32 %660, 0
  br i1 %.not1003, label %661, label %662

661:                                              ; preds = %657, %650
  br label %662

662:                                              ; preds = %657, %661
  %.str.25.sink2024 = phi ptr [ @.str.25, %661 ], [ @.str.22, %657 ]
  store i32 %652, ptr %651, align 4, !tbaa !5
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = load i32, ptr @test_count, align 4, !tbaa !5
  %665 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = tail call ptr @s2n_strerror(i32 noundef %666, ptr noundef nonnull @.str.24) #13
  %668 = load i32, ptr %665, align 4, !tbaa !5
  %669 = tail call ptr @s2n_strerror_debug(i32 noundef %668, ptr noundef nonnull @.str.24) #13
  %670 = load i32, ptr %651, align 4, !tbaa !5
  %671 = tail call ptr @strerror(i32 noundef %670) #13
  %672 = load i32, ptr %651, align 4, !tbaa !5
  %673 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %663, ptr noundef nonnull %.str.25.sink2024, i32 noundef %664, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 308, ptr noundef %667, ptr noundef %669, ptr noundef %671, i32 noundef %672) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

674:                                              ; preds = %644
  %675 = add nsw i32 %645, 3
  store i32 %675, ptr @test_count, align 4, !tbaa !5
  %676 = tail call i32 @s2n_connection_free(ptr noundef nonnull %561) #13
  %677 = icmp eq i32 %676, -1
  br i1 %677, label %678, label %702

678:                                              ; preds = %674
  %679 = tail call ptr @__errno_location() #14
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = tail call i32 @s2n_print_stacktrace(ptr noundef %681) #13
  %683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %684 = trunc nuw i8 %683 to i1
  br i1 %684, label %685, label %689

685:                                              ; preds = %678
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = tail call i32 @fileno(ptr noundef %686) #13
  %688 = tail call i32 @isatty(i32 noundef %687) #13
  %.not1229 = icmp eq i32 %688, 0
  br i1 %.not1229, label %689, label %690

689:                                              ; preds = %685, %678
  br label %690

690:                                              ; preds = %685, %689
  %.str.25.sink2035 = phi ptr [ @.str.25, %689 ], [ @.str.22, %685 ]
  store i32 %680, ptr %679, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = load i32, ptr @test_count, align 4, !tbaa !5
  %693 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = tail call ptr @s2n_strerror(i32 noundef %694, ptr noundef nonnull @.str.24) #13
  %696 = load i32, ptr %693, align 4, !tbaa !5
  %697 = tail call ptr @s2n_strerror_debug(i32 noundef %696, ptr noundef nonnull @.str.24) #13
  %698 = load i32, ptr %679, align 4, !tbaa !5
  %699 = tail call ptr @strerror(i32 noundef %698) #13
  %700 = load i32, ptr %679, align 4, !tbaa !5
  %701 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %691, ptr noundef nonnull %.str.25.sink2035, i32 noundef %692, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 310, ptr noundef %695, ptr noundef %697, ptr noundef %699, i32 noundef %700) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

702:                                              ; preds = %674
  %703 = tail call ptr @s2n_connection_new(i32 noundef 0) #13
  %704 = getelementptr inbounds i8, ptr %703, i64 220
  store i8 34, ptr %704, align 4, !tbaa !27
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = add nsw i32 %705, 1
  store i32 %706, ptr @test_count, align 4, !tbaa !5
  %707 = tail call i32 @s2n_conn_choose_state_machine(ptr noundef %703, i8 noundef zeroext 34)
  %708 = tail call zeroext i1 @s2n_result_is_ok(i32 %707)
  br i1 %708, label %.lr.ph1425, label %712

.lr.ph1425:                                       ; preds = %702
  %709 = getelementptr inbounds i8, ptr %703, i64 2172
  %710 = getelementptr inbounds i8, ptr %703, i64 2176
  %711 = getelementptr inbounds i8, ptr %703, i64 2204
  br label %740

712:                                              ; preds = %702
  %713 = tail call ptr @__errno_location() #14
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = tail call i32 @s2n_print_stacktrace(ptr noundef %715) #13
  %717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %718 = trunc nuw i8 %717 to i1
  br i1 %718, label %719, label %723

719:                                              ; preds = %712
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = tail call i32 @fileno(ptr noundef %720) #13
  %722 = tail call i32 @isatty(i32 noundef %721) #13
  %.not1005 = icmp eq i32 %722, 0
  br i1 %.not1005, label %723, label %724

723:                                              ; preds = %719, %712
  br label %724

724:                                              ; preds = %719, %723
  %.str.25.sink2046 = phi ptr [ @.str.25, %723 ], [ @.str.22, %719 ]
  store i32 %714, ptr %713, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = tail call ptr @s2n_strerror(i32 noundef %728, ptr noundef nonnull @.str.24) #13
  %730 = load i32, ptr %727, align 4, !tbaa !5
  %731 = tail call ptr @s2n_strerror_debug(i32 noundef %730, ptr noundef nonnull @.str.24) #13
  %732 = load i32, ptr %713, align 4, !tbaa !5
  %733 = tail call ptr @strerror(i32 noundef %732) #13
  %734 = load i32, ptr %713, align 4, !tbaa !5
  %735 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef nonnull %.str.25.sink2046, i32 noundef %726, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 317, ptr noundef %729, ptr noundef %731, ptr noundef %733, i32 noundef %734) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

._crit_edge1426:                                  ; preds = %.loopexit1285
  %736 = load i32, ptr @test_count, align 4, !tbaa !5
  %737 = add nsw i32 %736, 1
  store i32 %737, ptr @test_count, align 4, !tbaa !5
  %738 = tail call i32 @s2n_connection_free(ptr noundef %703) #13
  %739 = icmp eq i32 %738, -1
  br i1 %739, label %967, label %991

740:                                              ; preds = %.lr.ph1425, %.loopexit1285
  %indvars.iv1573 = phi i64 [ 0, %.lr.ph1425 ], [ %indvars.iv.next1574, %.loopexit1285 ]
  %741 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv1573
  %742 = load i16, ptr %741, align 2, !tbaa !15
  %743 = zext i16 %742 to i32
  store i32 %743, ptr %709, align 4, !tbaa !58
  %744 = zext i16 %742 to i64
  %745 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 0
  %746 = load i32, ptr %745, align 16, !tbaa !5
  %747 = icmp eq i32 %746, 11
  br i1 %747, label %748, label %843

748:                                              ; preds = %963, %959, %955, %951, %947, %943, %939, %935, %931, %927, %923, %919, %915, %911, %907, %903, %899, %895, %891, %887, %883, %879, %875, %871, %867, %863, %859, %855, %851, %847, %843, %740
  %.09711423.lcssa.wide = phi i32 [ 0, %740 ], [ 1, %843 ], [ 2, %847 ], [ 3, %851 ], [ 4, %855 ], [ 5, %859 ], [ 6, %863 ], [ 7, %867 ], [ 8, %871 ], [ 9, %875 ], [ 10, %879 ], [ 11, %883 ], [ 12, %887 ], [ 13, %891 ], [ 14, %895 ], [ 15, %899 ], [ 16, %903 ], [ 17, %907 ], [ 18, %911 ], [ 19, %915 ], [ 20, %919 ], [ 21, %923 ], [ 22, %927 ], [ 23, %931 ], [ 24, %935 ], [ 25, %939 ], [ 26, %943 ], [ 27, %947 ], [ 28, %951 ], [ 29, %955 ], [ 30, %959 ], [ 31, %963 ]
  %749 = add nsw i32 %.09711423.lcssa.wide, -1
  store i32 %749, ptr %710, align 8, !tbaa !59
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = tail call i32 @s2n_advance_message(ptr noundef nonnull %703)
  %753 = icmp eq i32 %752, -1
  br i1 %753, label %754, label %778

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

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

765:                                              ; preds = %761, %754
  br label %766

766:                                              ; preds = %761, %765
  %.str.25.sink2057 = phi ptr [ @.str.25, %765 ], [ @.str.22, %761 ]
  store i32 %756, ptr %755, align 4, !tbaa !5
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = load i32, ptr @test_count, align 4, !tbaa !5
  %769 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = tail call ptr @s2n_strerror(i32 noundef %770, ptr noundef nonnull @.str.24) #13
  %772 = load i32, ptr %769, align 4, !tbaa !5
  %773 = tail call ptr @s2n_strerror_debug(i32 noundef %772, ptr noundef nonnull @.str.24) #13
  %774 = load i32, ptr %755, align 4, !tbaa !5
  %775 = tail call ptr @strerror(i32 noundef %774) #13
  %776 = load i32, ptr %755, align 4, !tbaa !5
  %777 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %767, ptr noundef nonnull %.str.25.sink2057, i32 noundef %768, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 328, ptr noundef %771, ptr noundef %773, ptr noundef %775, i32 noundef %776) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

778:                                              ; preds = %748
  %779 = load i32, ptr @test_count, align 4, !tbaa !5
  %780 = add nsw i32 %779, 1
  store i32 %780, ptr @test_count, align 4, !tbaa !5
  %781 = load i32, ptr %710, align 8, !tbaa !59
  %782 = add nuw nsw i32 %.09711423.lcssa.wide, 1
  %783 = icmp eq i32 %781, %782
  br i1 %783, label %808, label %784

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

791:                                              ; preds = %784
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = tail call i32 @fileno(ptr noundef %792) #13
  %794 = tail call i32 @isatty(i32 noundef %793) #13
  %.not1226 = icmp eq i32 %794, 0
  br i1 %.not1226, label %795, label %796

795:                                              ; preds = %791, %784
  br label %796

796:                                              ; preds = %791, %795
  %.str.25.sink2068 = phi ptr [ @.str.25, %795 ], [ @.str.22, %791 ]
  store i32 %786, ptr %785, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = tail call ptr @s2n_strerror(i32 noundef %800, ptr noundef nonnull @.str.24) #13
  %802 = load i32, ptr %799, align 4, !tbaa !5
  %803 = tail call ptr @s2n_strerror_debug(i32 noundef %802, ptr noundef nonnull @.str.24) #13
  %804 = load i32, ptr %785, align 4, !tbaa !5
  %805 = tail call ptr @strerror(i32 noundef %804) #13
  %806 = load i32, ptr %785, align 4, !tbaa !5
  %807 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %797, ptr noundef nonnull %.str.25.sink2068, i32 noundef %798, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 330, ptr noundef %801, ptr noundef %803, ptr noundef %805, i32 noundef %806) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

808:                                              ; preds = %778
  %809 = add nsw i32 %779, 2
  store i32 %809, ptr @test_count, align 4, !tbaa !5
  %810 = load i32, ptr %711, align 4, !tbaa !57
  %811 = icmp eq i32 %810, 2
  %812 = select i1 %811, ptr @tls13_handshakes, ptr @handshakes
  %813 = load i32, ptr %709, align 4, !tbaa !58
  %814 = zext i32 %813 to i64
  %815 = zext nneg i32 %781 to i64
  %816 = getelementptr inbounds [32 x i32], ptr %812, i64 %814, i64 %815
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = icmp eq i32 %817, 11
  br i1 %818, label %819, label %.loopexit1285

819:                                              ; preds = %808
  %820 = tail call ptr @__errno_location() #14
  %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) #13
  %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) #13
  %829 = tail call i32 @isatty(i32 noundef %828) #13
  %.not1227 = icmp eq i32 %829, 0
  br i1 %.not1227, label %830, label %831

830:                                              ; preds = %826, %819
  br label %831

831:                                              ; preds = %826, %830
  %.str.25.sink2079 = 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) #13
  %837 = load i32, ptr %834, align 4, !tbaa !5
  %838 = tail call ptr @s2n_strerror_debug(i32 noundef %837, ptr noundef nonnull @.str.24) #13
  %839 = load i32, ptr %820, align 4, !tbaa !5
  %840 = tail call ptr @strerror(i32 noundef %839) #13
  %841 = load i32, ptr %820, align 4, !tbaa !5
  %842 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %832, ptr noundef nonnull %.str.25.sink2079, i32 noundef %833, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.21, i32 noundef 331, ptr noundef %836, ptr noundef %838, ptr noundef %840, i32 noundef %841) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

843:                                              ; preds = %740
  %844 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 1
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = icmp eq i32 %845, 11
  br i1 %846, label %748, label %847

847:                                              ; preds = %843
  %848 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 2
  %849 = load i32, ptr %848, align 8, !tbaa !5
  %850 = icmp eq i32 %849, 11
  br i1 %850, label %748, label %851

851:                                              ; preds = %847
  %852 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 3
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = icmp eq i32 %853, 11
  br i1 %854, label %748, label %855

855:                                              ; preds = %851
  %856 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 4
  %857 = load i32, ptr %856, align 16, !tbaa !5
  %858 = icmp eq i32 %857, 11
  br i1 %858, label %748, label %859

859:                                              ; preds = %855
  %860 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 5
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = icmp eq i32 %861, 11
  br i1 %862, label %748, label %863

863:                                              ; preds = %859
  %864 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 6
  %865 = load i32, ptr %864, align 8, !tbaa !5
  %866 = icmp eq i32 %865, 11
  br i1 %866, label %748, label %867

867:                                              ; preds = %863
  %868 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 7
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = icmp eq i32 %869, 11
  br i1 %870, label %748, label %871

871:                                              ; preds = %867
  %872 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 8
  %873 = load i32, ptr %872, align 16, !tbaa !5
  %874 = icmp eq i32 %873, 11
  br i1 %874, label %748, label %875

875:                                              ; preds = %871
  %876 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 9
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = icmp eq i32 %877, 11
  br i1 %878, label %748, label %879

879:                                              ; preds = %875
  %880 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 10
  %881 = load i32, ptr %880, align 8, !tbaa !5
  %882 = icmp eq i32 %881, 11
  br i1 %882, label %748, label %883

883:                                              ; preds = %879
  %884 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 11
  %885 = load i32, ptr %884, align 4, !tbaa !5
  %886 = icmp eq i32 %885, 11
  br i1 %886, label %748, label %887

887:                                              ; preds = %883
  %888 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 12
  %889 = load i32, ptr %888, align 16, !tbaa !5
  %890 = icmp eq i32 %889, 11
  br i1 %890, label %748, label %891

891:                                              ; preds = %887
  %892 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 13
  %893 = load i32, ptr %892, align 4, !tbaa !5
  %894 = icmp eq i32 %893, 11
  br i1 %894, label %748, label %895

895:                                              ; preds = %891
  %896 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 14
  %897 = load i32, ptr %896, align 8, !tbaa !5
  %898 = icmp eq i32 %897, 11
  br i1 %898, label %748, label %899

899:                                              ; preds = %895
  %900 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 15
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = icmp eq i32 %901, 11
  br i1 %902, label %748, label %903

903:                                              ; preds = %899
  %904 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 16
  %905 = load i32, ptr %904, align 16, !tbaa !5
  %906 = icmp eq i32 %905, 11
  br i1 %906, label %748, label %907

907:                                              ; preds = %903
  %908 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 17
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = icmp eq i32 %909, 11
  br i1 %910, label %748, label %911

911:                                              ; preds = %907
  %912 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 18
  %913 = load i32, ptr %912, align 8, !tbaa !5
  %914 = icmp eq i32 %913, 11
  br i1 %914, label %748, label %915

915:                                              ; preds = %911
  %916 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 19
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = icmp eq i32 %917, 11
  br i1 %918, label %748, label %919

919:                                              ; preds = %915
  %920 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 20
  %921 = load i32, ptr %920, align 16, !tbaa !5
  %922 = icmp eq i32 %921, 11
  br i1 %922, label %748, label %923

923:                                              ; preds = %919
  %924 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 21
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = icmp eq i32 %925, 11
  br i1 %926, label %748, label %927

927:                                              ; preds = %923
  %928 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 22
  %929 = load i32, ptr %928, align 8, !tbaa !5
  %930 = icmp eq i32 %929, 11
  br i1 %930, label %748, label %931

931:                                              ; preds = %927
  %932 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 23
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = icmp eq i32 %933, 11
  br i1 %934, label %748, label %935

935:                                              ; preds = %931
  %936 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 24
  %937 = load i32, ptr %936, align 16, !tbaa !5
  %938 = icmp eq i32 %937, 11
  br i1 %938, label %748, label %939

939:                                              ; preds = %935
  %940 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 25
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = icmp eq i32 %941, 11
  br i1 %942, label %748, label %943

943:                                              ; preds = %939
  %944 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 26
  %945 = load i32, ptr %944, align 8, !tbaa !5
  %946 = icmp eq i32 %945, 11
  br i1 %946, label %748, label %947

947:                                              ; preds = %943
  %948 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 27
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = icmp eq i32 %949, 11
  br i1 %950, label %748, label %951

951:                                              ; preds = %947
  %952 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 28
  %953 = load i32, ptr %952, align 16, !tbaa !5
  %954 = icmp eq i32 %953, 11
  br i1 %954, label %748, label %955

955:                                              ; preds = %951
  %956 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 29
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = icmp eq i32 %957, 11
  br i1 %958, label %748, label %959

959:                                              ; preds = %955
  %960 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 30
  %961 = load i32, ptr %960, align 8, !tbaa !5
  %962 = icmp eq i32 %961, 11
  br i1 %962, label %748, label %963

963:                                              ; preds = %959
  %964 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %744, i64 31
  %965 = load i32, ptr %964, align 4, !tbaa !5
  %966 = icmp eq i32 %965, 11
  br i1 %966, label %748, label %.loopexit1285

.loopexit1285:                                    ; preds = %963, %808
  %indvars.iv.next1574 = add nuw nsw i64 %indvars.iv1573, 1
  %exitcond1576.not = icmp eq i64 %indvars.iv.next1574, %169
  br i1 %exitcond1576.not, label %._crit_edge1426, label %740, !llvm.loop !60

967:                                              ; preds = %._crit_edge1426
  %968 = tail call ptr @__errno_location() #14
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = tail call i32 @s2n_print_stacktrace(ptr noundef %970) #13
  %972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %973 = trunc nuw i8 %972 to i1
  br i1 %973, label %974, label %978

974:                                              ; preds = %967
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = tail call i32 @fileno(ptr noundef %975) #13
  %977 = tail call i32 @isatty(i32 noundef %976) #13
  %.not1225 = icmp eq i32 %977, 0
  br i1 %.not1225, label %978, label %979

978:                                              ; preds = %974, %967
  br label %979

979:                                              ; preds = %974, %978
  %.str.25.sink2090 = phi ptr [ @.str.25, %978 ], [ @.str.22, %974 ]
  store i32 %969, ptr %968, align 4, !tbaa !5
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = tail call ptr @s2n_strerror(i32 noundef %983, ptr noundef nonnull @.str.24) #13
  %985 = load i32, ptr %982, align 4, !tbaa !5
  %986 = tail call ptr @s2n_strerror_debug(i32 noundef %985, ptr noundef nonnull @.str.24) #13
  %987 = load i32, ptr %968, align 4, !tbaa !5
  %988 = tail call ptr @strerror(i32 noundef %987) #13
  %989 = load i32, ptr %968, align 4, !tbaa !5
  %990 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %980, ptr noundef nonnull %.str.25.sink2090, i32 noundef %981, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 338, ptr noundef %984, ptr noundef %986, ptr noundef %988, i32 noundef %989) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

991:                                              ; preds = %._crit_edge1426
  %992 = tail call ptr @s2n_connection_new(i32 noundef 0) #13
  %993 = getelementptr inbounds i8, ptr %992, i64 220
  store i8 34, ptr %993, align 4, !tbaa !27
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = add nsw i32 %994, 1
  store i32 %995, ptr @test_count, align 4, !tbaa !5
  %996 = tail call i32 @s2n_conn_choose_state_machine(ptr noundef %992, i8 noundef zeroext 34)
  %997 = tail call zeroext i1 @s2n_result_is_ok(i32 %996)
  br i1 %997, label %.lr.ph1429, label %1001

.lr.ph1429:                                       ; preds = %991
  %998 = getelementptr inbounds i8, ptr %992, i64 2172
  %999 = getelementptr inbounds i8, ptr %992, i64 2176
  %1000 = getelementptr inbounds i8, ptr %992, i64 2204
  %smax = tail call i32 @llvm.smax.i32(i32 %.1942, i32 1)
  %wide.trip.count1584 = zext nneg i32 %smax to i64
  br label %1029

1001:                                             ; preds = %991
  %1002 = tail call ptr @__errno_location() #14
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1005 = tail call i32 @s2n_print_stacktrace(ptr noundef %1004) #13
  %1006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1007 = trunc nuw i8 %1006 to i1
  br i1 %1007, label %1008, label %1012

1008:                                             ; preds = %1001
  %1009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1010 = tail call i32 @fileno(ptr noundef %1009) #13
  %1011 = tail call i32 @isatty(i32 noundef %1010) #13
  %.not1006 = icmp eq i32 %1011, 0
  br i1 %.not1006, label %1012, label %1013

1012:                                             ; preds = %1008, %1001
  br label %1013

1013:                                             ; preds = %1008, %1012
  %.str.25.sink2101 = phi ptr [ @.str.25, %1012 ], [ @.str.22, %1008 ]
  store i32 %1003, ptr %1002, align 4, !tbaa !5
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1015 = load i32, ptr @test_count, align 4, !tbaa !5
  %1016 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = tail call ptr @s2n_strerror(i32 noundef %1017, ptr noundef nonnull @.str.24) #13
  %1019 = load i32, ptr %1016, align 4, !tbaa !5
  %1020 = tail call ptr @s2n_strerror_debug(i32 noundef %1019, ptr noundef nonnull @.str.24) #13
  %1021 = load i32, ptr %1002, align 4, !tbaa !5
  %1022 = tail call ptr @strerror(i32 noundef %1021) #13
  %1023 = load i32, ptr %1002, align 4, !tbaa !5
  %1024 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1014, ptr noundef nonnull %.str.25.sink2101, i32 noundef %1015, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 345, ptr noundef %1018, ptr noundef %1020, ptr noundef %1022, i32 noundef %1023) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

._crit_edge1430:                                  ; preds = %.loopexit1283
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = add nsw i32 %1025, 1
  store i32 %1026, ptr @test_count, align 4, !tbaa !5
  %1027 = tail call i32 @s2n_connection_free(ptr noundef %992) #13
  %1028 = icmp eq i32 %1027, -1
  br i1 %1028, label %1255, label %1279

1029:                                             ; preds = %.lr.ph1429, %.loopexit1283
  %indvars.iv1581 = phi i64 [ 0, %.lr.ph1429 ], [ %indvars.iv.next1582, %.loopexit1283 ]
  %1030 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv1581
  %1031 = load i16, ptr %1030, align 2, !tbaa !15
  %1032 = zext i16 %1031 to i32
  store i32 %1032, ptr %998, align 4, !tbaa !58
  %1033 = zext i16 %1031 to i64
  %1034 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 0
  %1035 = load i32, ptr %1034, align 16, !tbaa !5
  %1036 = icmp eq i32 %1035, 14
  br i1 %1036, label %1037, label %1131

1037:                                             ; preds = %1251, %1247, %1243, %1239, %1235, %1231, %1227, %1223, %1219, %1215, %1211, %1207, %1203, %1199, %1195, %1191, %1187, %1183, %1179, %1175, %1171, %1167, %1163, %1159, %1155, %1151, %1147, %1143, %1139, %1135, %1131, %1029
  %.09731427.lcssa.wide = phi i32 [ 0, %1029 ], [ 1, %1131 ], [ 2, %1135 ], [ 3, %1139 ], [ 4, %1143 ], [ 5, %1147 ], [ 6, %1151 ], [ 7, %1155 ], [ 8, %1159 ], [ 9, %1163 ], [ 10, %1167 ], [ 11, %1171 ], [ 12, %1175 ], [ 13, %1179 ], [ 14, %1183 ], [ 15, %1187 ], [ 16, %1191 ], [ 17, %1195 ], [ 18, %1199 ], [ 19, %1203 ], [ 20, %1207 ], [ 21, %1211 ], [ 22, %1215 ], [ 23, %1219 ], [ 24, %1223 ], [ 25, %1227 ], [ 26, %1231 ], [ 27, %1235 ], [ 28, %1239 ], [ 29, %1243 ], [ 30, %1247 ], [ 31, %1251 ]
  %1038 = add nsw i32 %.09731427.lcssa.wide, -1
  store i32 %1038, ptr %999, align 8, !tbaa !59
  %1039 = load i32, ptr @test_count, align 4, !tbaa !5
  %1040 = add nsw i32 %1039, 1
  store i32 %1040, ptr @test_count, align 4, !tbaa !5
  %1041 = tail call i32 @s2n_advance_message(ptr noundef nonnull %992)
  %1042 = icmp eq i32 %1041, -1
  br i1 %1042, label %1043, label %1067

1043:                                             ; preds = %1037
  %1044 = tail call ptr @__errno_location() #14
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = tail call i32 @s2n_print_stacktrace(ptr noundef %1046) #13
  %1048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1049 = trunc nuw i8 %1048 to i1
  br i1 %1049, label %1050, label %1054

1050:                                             ; preds = %1043
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = tail call i32 @fileno(ptr noundef %1051) #13
  %1053 = tail call i32 @isatty(i32 noundef %1052) #13
  %.not1224 = icmp eq i32 %1053, 0
  br i1 %.not1224, label %1054, label %1055

1054:                                             ; preds = %1050, %1043
  br label %1055

1055:                                             ; preds = %1050, %1054
  %.str.25.sink2112 = phi ptr [ @.str.25, %1054 ], [ @.str.22, %1050 ]
  store i32 %1045, ptr %1044, align 4, !tbaa !5
  %1056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1057 = load i32, ptr @test_count, align 4, !tbaa !5
  %1058 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = tail call ptr @s2n_strerror(i32 noundef %1059, ptr noundef nonnull @.str.24) #13
  %1061 = load i32, ptr %1058, align 4, !tbaa !5
  %1062 = tail call ptr @s2n_strerror_debug(i32 noundef %1061, ptr noundef nonnull @.str.24) #13
  %1063 = load i32, ptr %1044, align 4, !tbaa !5
  %1064 = tail call ptr @strerror(i32 noundef %1063) #13
  %1065 = load i32, ptr %1044, align 4, !tbaa !5
  %1066 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1056, ptr noundef nonnull %.str.25.sink2112, i32 noundef %1057, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 356, ptr noundef %1060, ptr noundef %1062, ptr noundef %1064, i32 noundef %1065) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1067:                                             ; preds = %1037
  %1068 = load i32, ptr @test_count, align 4, !tbaa !5
  %1069 = add nsw i32 %1068, 1
  store i32 %1069, ptr @test_count, align 4, !tbaa !5
  %1070 = load i32, ptr %999, align 8, !tbaa !59
  %1071 = icmp eq i32 %1070, %.09731427.lcssa.wide
  br i1 %1071, label %1096, label %1072

1072:                                             ; preds = %1067
  %1073 = tail call ptr @__errno_location() #14
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = tail call i32 @s2n_print_stacktrace(ptr noundef %1075) #13
  %1077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1078 = trunc nuw i8 %1077 to i1
  br i1 %1078, label %1079, label %1083

1079:                                             ; preds = %1072
  %1080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1081 = tail call i32 @fileno(ptr noundef %1080) #13
  %1082 = tail call i32 @isatty(i32 noundef %1081) #13
  %.not1222 = icmp eq i32 %1082, 0
  br i1 %.not1222, label %1083, label %1084

1083:                                             ; preds = %1079, %1072
  br label %1084

1084:                                             ; preds = %1079, %1083
  %.str.25.sink2123 = phi ptr [ @.str.25, %1083 ], [ @.str.22, %1079 ]
  store i32 %1074, ptr %1073, align 4, !tbaa !5
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = load i32, ptr @test_count, align 4, !tbaa !5
  %1087 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = tail call ptr @s2n_strerror(i32 noundef %1088, ptr noundef nonnull @.str.24) #13
  %1090 = load i32, ptr %1087, align 4, !tbaa !5
  %1091 = tail call ptr @s2n_strerror_debug(i32 noundef %1090, ptr noundef nonnull @.str.24) #13
  %1092 = load i32, ptr %1073, align 4, !tbaa !5
  %1093 = tail call ptr @strerror(i32 noundef %1092) #13
  %1094 = load i32, ptr %1073, align 4, !tbaa !5
  %1095 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1085, ptr noundef nonnull %.str.25.sink2123, i32 noundef %1086, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 358, ptr noundef %1089, ptr noundef %1091, ptr noundef %1093, i32 noundef %1094) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1096:                                             ; preds = %1067
  %1097 = add nsw i32 %1068, 2
  store i32 %1097, ptr @test_count, align 4, !tbaa !5
  %1098 = load i32, ptr %1000, align 4, !tbaa !57
  %1099 = icmp eq i32 %1098, 2
  %1100 = select i1 %1099, ptr @tls13_handshakes, ptr @handshakes
  %1101 = load i32, ptr %998, align 4, !tbaa !58
  %1102 = zext i32 %1101 to i64
  %1103 = zext nneg i32 %.09731427.lcssa.wide to i64
  %1104 = getelementptr inbounds [32 x i32], ptr %1100, i64 %1102, i64 %1103
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = icmp eq i32 %1105, 14
  br i1 %1106, label %.loopexit1283, label %1107

1107:                                             ; preds = %1096
  %1108 = tail call ptr @__errno_location() #14
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = tail call i32 @s2n_print_stacktrace(ptr noundef %1110) #13
  %1112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1113 = trunc nuw i8 %1112 to i1
  br i1 %1113, label %1114, label %1118

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

1118:                                             ; preds = %1114, %1107
  br label %1119

1119:                                             ; preds = %1114, %1118
  %.str.25.sink2134 = phi ptr [ @.str.25, %1118 ], [ @.str.22, %1114 ]
  store i32 %1109, ptr %1108, align 4, !tbaa !5
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = load i32, ptr @test_count, align 4, !tbaa !5
  %1122 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = tail call ptr @s2n_strerror(i32 noundef %1123, ptr noundef nonnull @.str.24) #13
  %1125 = load i32, ptr %1122, align 4, !tbaa !5
  %1126 = tail call ptr @s2n_strerror_debug(i32 noundef %1125, ptr noundef nonnull @.str.24) #13
  %1127 = load i32, ptr %1108, align 4, !tbaa !5
  %1128 = tail call ptr @strerror(i32 noundef %1127) #13
  %1129 = load i32, ptr %1108, align 4, !tbaa !5
  %1130 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1120, ptr noundef nonnull %.str.25.sink2134, i32 noundef %1121, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.21, i32 noundef 359, ptr noundef %1124, ptr noundef %1126, ptr noundef %1128, i32 noundef %1129) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1131:                                             ; preds = %1029
  %1132 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 1
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = icmp eq i32 %1133, 14
  br i1 %1134, label %1037, label %1135

1135:                                             ; preds = %1131
  %1136 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 2
  %1137 = load i32, ptr %1136, align 8, !tbaa !5
  %1138 = icmp eq i32 %1137, 14
  br i1 %1138, label %1037, label %1139

1139:                                             ; preds = %1135
  %1140 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 3
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = icmp eq i32 %1141, 14
  br i1 %1142, label %1037, label %1143

1143:                                             ; preds = %1139
  %1144 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 4
  %1145 = load i32, ptr %1144, align 16, !tbaa !5
  %1146 = icmp eq i32 %1145, 14
  br i1 %1146, label %1037, label %1147

1147:                                             ; preds = %1143
  %1148 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 5
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = icmp eq i32 %1149, 14
  br i1 %1150, label %1037, label %1151

1151:                                             ; preds = %1147
  %1152 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 6
  %1153 = load i32, ptr %1152, align 8, !tbaa !5
  %1154 = icmp eq i32 %1153, 14
  br i1 %1154, label %1037, label %1155

1155:                                             ; preds = %1151
  %1156 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 7
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = icmp eq i32 %1157, 14
  br i1 %1158, label %1037, label %1159

1159:                                             ; preds = %1155
  %1160 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 8
  %1161 = load i32, ptr %1160, align 16, !tbaa !5
  %1162 = icmp eq i32 %1161, 14
  br i1 %1162, label %1037, label %1163

1163:                                             ; preds = %1159
  %1164 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 9
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = icmp eq i32 %1165, 14
  br i1 %1166, label %1037, label %1167

1167:                                             ; preds = %1163
  %1168 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 10
  %1169 = load i32, ptr %1168, align 8, !tbaa !5
  %1170 = icmp eq i32 %1169, 14
  br i1 %1170, label %1037, label %1171

1171:                                             ; preds = %1167
  %1172 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 11
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = icmp eq i32 %1173, 14
  br i1 %1174, label %1037, label %1175

1175:                                             ; preds = %1171
  %1176 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 12
  %1177 = load i32, ptr %1176, align 16, !tbaa !5
  %1178 = icmp eq i32 %1177, 14
  br i1 %1178, label %1037, label %1179

1179:                                             ; preds = %1175
  %1180 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 13
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = icmp eq i32 %1181, 14
  br i1 %1182, label %1037, label %1183

1183:                                             ; preds = %1179
  %1184 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 14
  %1185 = load i32, ptr %1184, align 8, !tbaa !5
  %1186 = icmp eq i32 %1185, 14
  br i1 %1186, label %1037, label %1187

1187:                                             ; preds = %1183
  %1188 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 15
  %1189 = load i32, ptr %1188, align 4, !tbaa !5
  %1190 = icmp eq i32 %1189, 14
  br i1 %1190, label %1037, label %1191

1191:                                             ; preds = %1187
  %1192 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 16
  %1193 = load i32, ptr %1192, align 16, !tbaa !5
  %1194 = icmp eq i32 %1193, 14
  br i1 %1194, label %1037, label %1195

1195:                                             ; preds = %1191
  %1196 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 17
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = icmp eq i32 %1197, 14
  br i1 %1198, label %1037, label %1199

1199:                                             ; preds = %1195
  %1200 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 18
  %1201 = load i32, ptr %1200, align 8, !tbaa !5
  %1202 = icmp eq i32 %1201, 14
  br i1 %1202, label %1037, label %1203

1203:                                             ; preds = %1199
  %1204 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 19
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = icmp eq i32 %1205, 14
  br i1 %1206, label %1037, label %1207

1207:                                             ; preds = %1203
  %1208 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 20
  %1209 = load i32, ptr %1208, align 16, !tbaa !5
  %1210 = icmp eq i32 %1209, 14
  br i1 %1210, label %1037, label %1211

1211:                                             ; preds = %1207
  %1212 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 21
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = icmp eq i32 %1213, 14
  br i1 %1214, label %1037, label %1215

1215:                                             ; preds = %1211
  %1216 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 22
  %1217 = load i32, ptr %1216, align 8, !tbaa !5
  %1218 = icmp eq i32 %1217, 14
  br i1 %1218, label %1037, label %1219

1219:                                             ; preds = %1215
  %1220 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 23
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = icmp eq i32 %1221, 14
  br i1 %1222, label %1037, label %1223

1223:                                             ; preds = %1219
  %1224 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 24
  %1225 = load i32, ptr %1224, align 16, !tbaa !5
  %1226 = icmp eq i32 %1225, 14
  br i1 %1226, label %1037, label %1227

1227:                                             ; preds = %1223
  %1228 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 25
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = icmp eq i32 %1229, 14
  br i1 %1230, label %1037, label %1231

1231:                                             ; preds = %1227
  %1232 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 26
  %1233 = load i32, ptr %1232, align 8, !tbaa !5
  %1234 = icmp eq i32 %1233, 14
  br i1 %1234, label %1037, label %1235

1235:                                             ; preds = %1231
  %1236 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 27
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = icmp eq i32 %1237, 14
  br i1 %1238, label %1037, label %1239

1239:                                             ; preds = %1235
  %1240 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 28
  %1241 = load i32, ptr %1240, align 16, !tbaa !5
  %1242 = icmp eq i32 %1241, 14
  br i1 %1242, label %1037, label %1243

1243:                                             ; preds = %1239
  %1244 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 29
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = icmp eq i32 %1245, 14
  br i1 %1246, label %1037, label %1247

1247:                                             ; preds = %1243
  %1248 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 30
  %1249 = load i32, ptr %1248, align 8, !tbaa !5
  %1250 = icmp eq i32 %1249, 14
  br i1 %1250, label %1037, label %1251

1251:                                             ; preds = %1247
  %1252 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1033, i64 31
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = icmp eq i32 %1253, 14
  br i1 %1254, label %1037, label %.loopexit1283

.loopexit1283:                                    ; preds = %1251, %1096
  %indvars.iv.next1582 = add nuw nsw i64 %indvars.iv1581, 1
  %exitcond1585.not = icmp eq i64 %indvars.iv.next1582, %wide.trip.count1584
  br i1 %exitcond1585.not, label %._crit_edge1430, label %1029, !llvm.loop !61

1255:                                             ; preds = %._crit_edge1430
  %1256 = tail call ptr @__errno_location() #14
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1259 = tail call i32 @s2n_print_stacktrace(ptr noundef %1258) #13
  %1260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1261 = trunc nuw i8 %1260 to i1
  br i1 %1261, label %1262, label %1266

1262:                                             ; preds = %1255
  %1263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1264 = tail call i32 @fileno(ptr noundef %1263) #13
  %1265 = tail call i32 @isatty(i32 noundef %1264) #13
  %.not1221 = icmp eq i32 %1265, 0
  br i1 %.not1221, label %1266, label %1267

1266:                                             ; preds = %1262, %1255
  br label %1267

1267:                                             ; preds = %1262, %1266
  %.str.25.sink2145 = phi ptr [ @.str.25, %1266 ], [ @.str.22, %1262 ]
  store i32 %1257, ptr %1256, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = load i32, ptr @test_count, align 4, !tbaa !5
  %1270 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1271 = load i32, ptr %1270, align 4, !tbaa !5
  %1272 = tail call ptr @s2n_strerror(i32 noundef %1271, ptr noundef nonnull @.str.24) #13
  %1273 = load i32, ptr %1270, align 4, !tbaa !5
  %1274 = tail call ptr @s2n_strerror_debug(i32 noundef %1273, ptr noundef nonnull @.str.24) #13
  %1275 = load i32, ptr %1256, align 4, !tbaa !5
  %1276 = tail call ptr @strerror(i32 noundef %1275) #13
  %1277 = load i32, ptr %1256, align 4, !tbaa !5
  %1278 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1268, ptr noundef nonnull %.str.25.sink2145, i32 noundef %1269, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 366, ptr noundef %1272, ptr noundef %1274, ptr noundef %1276, i32 noundef %1277) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1279:                                             ; preds = %._crit_edge1430
  %1280 = tail call ptr @s2n_connection_new(i32 noundef 1) #13
  %1281 = getelementptr inbounds i8, ptr %1280, i64 220
  store i8 34, ptr %1281, align 4, !tbaa !27
  %1282 = load i32, ptr @test_count, align 4, !tbaa !5
  %1283 = add nsw i32 %1282, 1
  store i32 %1283, ptr @test_count, align 4, !tbaa !5
  %1284 = tail call i32 @s2n_conn_choose_state_machine(ptr noundef %1280, i8 noundef zeroext 34)
  %1285 = tail call zeroext i1 @s2n_result_is_ok(i32 %1284)
  br i1 %1285, label %.lr.ph1433, label %1289

.lr.ph1433:                                       ; preds = %1279
  %1286 = getelementptr inbounds i8, ptr %1280, i64 2172
  %1287 = getelementptr inbounds i8, ptr %1280, i64 2176
  %1288 = getelementptr inbounds i8, ptr %1280, i64 2204
  %smax1593 = tail call i32 @llvm.smax.i32(i32 %.1942, i32 1)
  %wide.trip.count1594 = zext nneg i32 %smax1593 to i64
  br label %1317

1289:                                             ; preds = %1279
  %1290 = tail call ptr @__errno_location() #14
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = tail call i32 @s2n_print_stacktrace(ptr noundef %1292) #13
  %1294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1295 = trunc nuw i8 %1294 to i1
  br i1 %1295, label %1296, label %1300

1296:                                             ; preds = %1289
  %1297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1298 = tail call i32 @fileno(ptr noundef %1297) #13
  %1299 = tail call i32 @isatty(i32 noundef %1298) #13
  %.not1007 = icmp eq i32 %1299, 0
  br i1 %.not1007, label %1300, label %1301

1300:                                             ; preds = %1296, %1289
  br label %1301

1301:                                             ; preds = %1296, %1300
  %.str.25.sink2156 = phi ptr [ @.str.25, %1300 ], [ @.str.22, %1296 ]
  store i32 %1291, ptr %1290, align 4, !tbaa !5
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = load i32, ptr @test_count, align 4, !tbaa !5
  %1304 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = tail call ptr @s2n_strerror(i32 noundef %1305, ptr noundef nonnull @.str.24) #13
  %1307 = load i32, ptr %1304, align 4, !tbaa !5
  %1308 = tail call ptr @s2n_strerror_debug(i32 noundef %1307, ptr noundef nonnull @.str.24) #13
  %1309 = load i32, ptr %1290, align 4, !tbaa !5
  %1310 = tail call ptr @strerror(i32 noundef %1309) #13
  %1311 = load i32, ptr %1290, align 4, !tbaa !5
  %1312 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1302, ptr noundef nonnull %.str.25.sink2156, i32 noundef %1303, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 373, ptr noundef %1306, ptr noundef %1308, ptr noundef %1310, i32 noundef %1311) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

._crit_edge1434:                                  ; preds = %.loopexit1281
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = add nsw i32 %1313, 1
  store i32 %1314, ptr @test_count, align 4, !tbaa !5
  %1315 = tail call i32 @s2n_connection_free(ptr noundef %1280) #13
  %1316 = icmp eq i32 %1315, -1
  br i1 %1316, label %1544, label %1568

1317:                                             ; preds = %.lr.ph1433, %.loopexit1281
  %indvars.iv1590 = phi i64 [ 0, %.lr.ph1433 ], [ %indvars.iv.next1591, %.loopexit1281 ]
  %1318 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv1590
  %1319 = load i16, ptr %1318, align 2, !tbaa !15
  %1320 = zext i16 %1319 to i32
  store i32 %1320, ptr %1286, align 4, !tbaa !58
  %1321 = zext i16 %1319 to i64
  %1322 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 0
  %1323 = load i32, ptr %1322, align 16, !tbaa !5
  %1324 = icmp eq i32 %1323, 14
  br i1 %1324, label %1325, label %1420

1325:                                             ; preds = %1540, %1536, %1532, %1528, %1524, %1520, %1516, %1512, %1508, %1504, %1500, %1496, %1492, %1488, %1484, %1480, %1476, %1472, %1468, %1464, %1460, %1456, %1452, %1448, %1444, %1440, %1436, %1432, %1428, %1424, %1420, %1317
  %.09751431.lcssa.wide = phi i32 [ 0, %1317 ], [ 1, %1420 ], [ 2, %1424 ], [ 3, %1428 ], [ 4, %1432 ], [ 5, %1436 ], [ 6, %1440 ], [ 7, %1444 ], [ 8, %1448 ], [ 9, %1452 ], [ 10, %1456 ], [ 11, %1460 ], [ 12, %1464 ], [ 13, %1468 ], [ 14, %1472 ], [ 15, %1476 ], [ 16, %1480 ], [ 17, %1484 ], [ 18, %1488 ], [ 19, %1492 ], [ 20, %1496 ], [ 21, %1500 ], [ 22, %1504 ], [ 23, %1508 ], [ 24, %1512 ], [ 25, %1516 ], [ 26, %1520 ], [ 27, %1524 ], [ 28, %1528 ], [ 29, %1532 ], [ 30, %1536 ], [ 31, %1540 ]
  %1326 = add nsw i32 %.09751431.lcssa.wide, -1
  store i32 %1326, ptr %1287, align 8, !tbaa !59
  %1327 = load i32, ptr @test_count, align 4, !tbaa !5
  %1328 = add nsw i32 %1327, 1
  store i32 %1328, ptr @test_count, align 4, !tbaa !5
  %1329 = tail call i32 @s2n_advance_message(ptr noundef nonnull %1280)
  %1330 = icmp eq i32 %1329, -1
  br i1 %1330, label %1331, label %1355

1331:                                             ; preds = %1325
  %1332 = tail call ptr @__errno_location() #14
  %1333 = load i32, ptr %1332, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = tail call i32 @s2n_print_stacktrace(ptr noundef %1334) #13
  %1336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1337 = trunc nuw i8 %1336 to i1
  br i1 %1337, label %1338, label %1342

1338:                                             ; preds = %1331
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = tail call i32 @fileno(ptr noundef %1339) #13
  %1341 = tail call i32 @isatty(i32 noundef %1340) #13
  %.not1220 = icmp eq i32 %1341, 0
  br i1 %.not1220, label %1342, label %1343

1342:                                             ; preds = %1338, %1331
  br label %1343

1343:                                             ; preds = %1338, %1342
  %.str.25.sink2167 = phi ptr [ @.str.25, %1342 ], [ @.str.22, %1338 ]
  store i32 %1333, ptr %1332, align 4, !tbaa !5
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = load i32, ptr @test_count, align 4, !tbaa !5
  %1346 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = tail call ptr @s2n_strerror(i32 noundef %1347, ptr noundef nonnull @.str.24) #13
  %1349 = load i32, ptr %1346, align 4, !tbaa !5
  %1350 = tail call ptr @s2n_strerror_debug(i32 noundef %1349, ptr noundef nonnull @.str.24) #13
  %1351 = load i32, ptr %1332, align 4, !tbaa !5
  %1352 = tail call ptr @strerror(i32 noundef %1351) #13
  %1353 = load i32, ptr %1332, align 4, !tbaa !5
  %1354 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1344, ptr noundef nonnull %.str.25.sink2167, i32 noundef %1345, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 384, ptr noundef %1348, ptr noundef %1350, ptr noundef %1352, i32 noundef %1353) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1355:                                             ; preds = %1325
  %1356 = load i32, ptr @test_count, align 4, !tbaa !5
  %1357 = add nsw i32 %1356, 1
  store i32 %1357, ptr @test_count, align 4, !tbaa !5
  %1358 = load i32, ptr %1287, align 8, !tbaa !59
  %1359 = add nuw nsw i32 %.09751431.lcssa.wide, 1
  %1360 = icmp eq i32 %1358, %1359
  br i1 %1360, label %1385, label %1361

1361:                                             ; preds = %1355
  %1362 = tail call ptr @__errno_location() #14
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = tail call i32 @s2n_print_stacktrace(ptr noundef %1364) #13
  %1366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1367 = trunc nuw i8 %1366 to i1
  br i1 %1367, label %1368, label %1372

1368:                                             ; preds = %1361
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = tail call i32 @fileno(ptr noundef %1369) #13
  %1371 = tail call i32 @isatty(i32 noundef %1370) #13
  %.not1218 = icmp eq i32 %1371, 0
  br i1 %.not1218, label %1372, label %1373

1372:                                             ; preds = %1368, %1361
  br label %1373

1373:                                             ; preds = %1368, %1372
  %.str.25.sink2178 = phi ptr [ @.str.25, %1372 ], [ @.str.22, %1368 ]
  store i32 %1363, ptr %1362, align 4, !tbaa !5
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = load i32, ptr @test_count, align 4, !tbaa !5
  %1376 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1377 = load i32, ptr %1376, align 4, !tbaa !5
  %1378 = tail call ptr @s2n_strerror(i32 noundef %1377, ptr noundef nonnull @.str.24) #13
  %1379 = load i32, ptr %1376, align 4, !tbaa !5
  %1380 = tail call ptr @s2n_strerror_debug(i32 noundef %1379, ptr noundef nonnull @.str.24) #13
  %1381 = load i32, ptr %1362, align 4, !tbaa !5
  %1382 = tail call ptr @strerror(i32 noundef %1381) #13
  %1383 = load i32, ptr %1362, align 4, !tbaa !5
  %1384 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1374, ptr noundef nonnull %.str.25.sink2178, i32 noundef %1375, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 386, ptr noundef %1378, ptr noundef %1380, ptr noundef %1382, i32 noundef %1383) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1385:                                             ; preds = %1355
  %1386 = add nsw i32 %1356, 2
  store i32 %1386, ptr @test_count, align 4, !tbaa !5
  %1387 = load i32, ptr %1288, align 4, !tbaa !57
  %1388 = icmp eq i32 %1387, 2
  %1389 = select i1 %1388, ptr @tls13_handshakes, ptr @handshakes
  %1390 = load i32, ptr %1286, align 4, !tbaa !58
  %1391 = zext i32 %1390 to i64
  %1392 = zext nneg i32 %1358 to i64
  %1393 = getelementptr inbounds [32 x i32], ptr %1389, i64 %1391, i64 %1392
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = icmp eq i32 %1394, 14
  br i1 %1395, label %1396, label %.loopexit1281

1396:                                             ; preds = %1385
  %1397 = tail call ptr @__errno_location() #14
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = tail call i32 @s2n_print_stacktrace(ptr noundef %1399) #13
  %1401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1402 = trunc nuw i8 %1401 to i1
  br i1 %1402, label %1403, label %1407

1403:                                             ; preds = %1396
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = tail call i32 @fileno(ptr noundef %1404) #13
  %1406 = tail call i32 @isatty(i32 noundef %1405) #13
  %.not1219 = icmp eq i32 %1406, 0
  br i1 %.not1219, label %1407, label %1408

1407:                                             ; preds = %1403, %1396
  br label %1408

1408:                                             ; preds = %1403, %1407
  %.str.25.sink2189 = phi ptr [ @.str.25, %1407 ], [ @.str.22, %1403 ]
  store i32 %1398, ptr %1397, align 4, !tbaa !5
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1410 = load i32, ptr @test_count, align 4, !tbaa !5
  %1411 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = tail call ptr @s2n_strerror(i32 noundef %1412, ptr noundef nonnull @.str.24) #13
  %1414 = load i32, ptr %1411, align 4, !tbaa !5
  %1415 = tail call ptr @s2n_strerror_debug(i32 noundef %1414, ptr noundef nonnull @.str.24) #13
  %1416 = load i32, ptr %1397, align 4, !tbaa !5
  %1417 = tail call ptr @strerror(i32 noundef %1416) #13
  %1418 = load i32, ptr %1397, align 4, !tbaa !5
  %1419 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1409, ptr noundef nonnull %.str.25.sink2189, i32 noundef %1410, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 387, ptr noundef %1413, ptr noundef %1415, ptr noundef %1417, i32 noundef %1418) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1420:                                             ; preds = %1317
  %1421 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 1
  %1422 = load i32, ptr %1421, align 4, !tbaa !5
  %1423 = icmp eq i32 %1422, 14
  br i1 %1423, label %1325, label %1424

1424:                                             ; preds = %1420
  %1425 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 2
  %1426 = load i32, ptr %1425, align 8, !tbaa !5
  %1427 = icmp eq i32 %1426, 14
  br i1 %1427, label %1325, label %1428

1428:                                             ; preds = %1424
  %1429 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 3
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = icmp eq i32 %1430, 14
  br i1 %1431, label %1325, label %1432

1432:                                             ; preds = %1428
  %1433 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 4
  %1434 = load i32, ptr %1433, align 16, !tbaa !5
  %1435 = icmp eq i32 %1434, 14
  br i1 %1435, label %1325, label %1436

1436:                                             ; preds = %1432
  %1437 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 5
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = icmp eq i32 %1438, 14
  br i1 %1439, label %1325, label %1440

1440:                                             ; preds = %1436
  %1441 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 6
  %1442 = load i32, ptr %1441, align 8, !tbaa !5
  %1443 = icmp eq i32 %1442, 14
  br i1 %1443, label %1325, label %1444

1444:                                             ; preds = %1440
  %1445 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 7
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  %1447 = icmp eq i32 %1446, 14
  br i1 %1447, label %1325, label %1448

1448:                                             ; preds = %1444
  %1449 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 8
  %1450 = load i32, ptr %1449, align 16, !tbaa !5
  %1451 = icmp eq i32 %1450, 14
  br i1 %1451, label %1325, label %1452

1452:                                             ; preds = %1448
  %1453 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 9
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = icmp eq i32 %1454, 14
  br i1 %1455, label %1325, label %1456

1456:                                             ; preds = %1452
  %1457 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 10
  %1458 = load i32, ptr %1457, align 8, !tbaa !5
  %1459 = icmp eq i32 %1458, 14
  br i1 %1459, label %1325, label %1460

1460:                                             ; preds = %1456
  %1461 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 11
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = icmp eq i32 %1462, 14
  br i1 %1463, label %1325, label %1464

1464:                                             ; preds = %1460
  %1465 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 12
  %1466 = load i32, ptr %1465, align 16, !tbaa !5
  %1467 = icmp eq i32 %1466, 14
  br i1 %1467, label %1325, label %1468

1468:                                             ; preds = %1464
  %1469 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 13
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = icmp eq i32 %1470, 14
  br i1 %1471, label %1325, label %1472

1472:                                             ; preds = %1468
  %1473 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 14
  %1474 = load i32, ptr %1473, align 8, !tbaa !5
  %1475 = icmp eq i32 %1474, 14
  br i1 %1475, label %1325, label %1476

1476:                                             ; preds = %1472
  %1477 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 15
  %1478 = load i32, ptr %1477, align 4, !tbaa !5
  %1479 = icmp eq i32 %1478, 14
  br i1 %1479, label %1325, label %1480

1480:                                             ; preds = %1476
  %1481 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 16
  %1482 = load i32, ptr %1481, align 16, !tbaa !5
  %1483 = icmp eq i32 %1482, 14
  br i1 %1483, label %1325, label %1484

1484:                                             ; preds = %1480
  %1485 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 17
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = icmp eq i32 %1486, 14
  br i1 %1487, label %1325, label %1488

1488:                                             ; preds = %1484
  %1489 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 18
  %1490 = load i32, ptr %1489, align 8, !tbaa !5
  %1491 = icmp eq i32 %1490, 14
  br i1 %1491, label %1325, label %1492

1492:                                             ; preds = %1488
  %1493 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 19
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = icmp eq i32 %1494, 14
  br i1 %1495, label %1325, label %1496

1496:                                             ; preds = %1492
  %1497 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 20
  %1498 = load i32, ptr %1497, align 16, !tbaa !5
  %1499 = icmp eq i32 %1498, 14
  br i1 %1499, label %1325, label %1500

1500:                                             ; preds = %1496
  %1501 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 21
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = icmp eq i32 %1502, 14
  br i1 %1503, label %1325, label %1504

1504:                                             ; preds = %1500
  %1505 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 22
  %1506 = load i32, ptr %1505, align 8, !tbaa !5
  %1507 = icmp eq i32 %1506, 14
  br i1 %1507, label %1325, label %1508

1508:                                             ; preds = %1504
  %1509 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 23
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = icmp eq i32 %1510, 14
  br i1 %1511, label %1325, label %1512

1512:                                             ; preds = %1508
  %1513 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 24
  %1514 = load i32, ptr %1513, align 16, !tbaa !5
  %1515 = icmp eq i32 %1514, 14
  br i1 %1515, label %1325, label %1516

1516:                                             ; preds = %1512
  %1517 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 25
  %1518 = load i32, ptr %1517, align 4, !tbaa !5
  %1519 = icmp eq i32 %1518, 14
  br i1 %1519, label %1325, label %1520

1520:                                             ; preds = %1516
  %1521 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 26
  %1522 = load i32, ptr %1521, align 8, !tbaa !5
  %1523 = icmp eq i32 %1522, 14
  br i1 %1523, label %1325, label %1524

1524:                                             ; preds = %1520
  %1525 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 27
  %1526 = load i32, ptr %1525, align 4, !tbaa !5
  %1527 = icmp eq i32 %1526, 14
  br i1 %1527, label %1325, label %1528

1528:                                             ; preds = %1524
  %1529 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 28
  %1530 = load i32, ptr %1529, align 16, !tbaa !5
  %1531 = icmp eq i32 %1530, 14
  br i1 %1531, label %1325, label %1532

1532:                                             ; preds = %1528
  %1533 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 29
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = icmp eq i32 %1534, 14
  br i1 %1535, label %1325, label %1536

1536:                                             ; preds = %1532
  %1537 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 30
  %1538 = load i32, ptr %1537, align 8, !tbaa !5
  %1539 = icmp eq i32 %1538, 14
  br i1 %1539, label %1325, label %1540

1540:                                             ; preds = %1536
  %1541 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1321, i64 31
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = icmp eq i32 %1542, 14
  br i1 %1543, label %1325, label %.loopexit1281

.loopexit1281:                                    ; preds = %1540, %1385
  %indvars.iv.next1591 = add nuw nsw i64 %indvars.iv1590, 1
  %exitcond1595.not = icmp eq i64 %indvars.iv.next1591, %wide.trip.count1594
  br i1 %exitcond1595.not, label %._crit_edge1434, label %1317, !llvm.loop !62

1544:                                             ; preds = %._crit_edge1434
  %1545 = tail call ptr @__errno_location() #14
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = tail call i32 @s2n_print_stacktrace(ptr noundef %1547) #13
  %1549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1550 = trunc nuw i8 %1549 to i1
  br i1 %1550, label %1551, label %1555

1551:                                             ; preds = %1544
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = tail call i32 @fileno(ptr noundef %1552) #13
  %1554 = tail call i32 @isatty(i32 noundef %1553) #13
  %.not1217 = icmp eq i32 %1554, 0
  br i1 %.not1217, label %1555, label %1556

1555:                                             ; preds = %1551, %1544
  br label %1556

1556:                                             ; preds = %1551, %1555
  %.str.25.sink2200 = phi ptr [ @.str.25, %1555 ], [ @.str.22, %1551 ]
  store i32 %1546, ptr %1545, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = load i32, ptr @test_count, align 4, !tbaa !5
  %1559 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  %1561 = tail call ptr @s2n_strerror(i32 noundef %1560, ptr noundef nonnull @.str.24) #13
  %1562 = load i32, ptr %1559, align 4, !tbaa !5
  %1563 = tail call ptr @s2n_strerror_debug(i32 noundef %1562, ptr noundef nonnull @.str.24) #13
  %1564 = load i32, ptr %1545, align 4, !tbaa !5
  %1565 = tail call ptr @strerror(i32 noundef %1564) #13
  %1566 = load i32, ptr %1545, align 4, !tbaa !5
  %1567 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1557, ptr noundef nonnull %.str.25.sink2200, i32 noundef %1558, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 394, ptr noundef %1561, ptr noundef %1563, ptr noundef %1565, i32 noundef %1566) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1568:                                             ; preds = %._crit_edge1434
  %1569 = tail call ptr @s2n_connection_new(i32 noundef 1) #13
  %1570 = getelementptr inbounds i8, ptr %1569, i64 220
  store i8 34, ptr %1570, align 4, !tbaa !27
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = add nsw i32 %1571, 1
  store i32 %1572, ptr @test_count, align 4, !tbaa !5
  %1573 = tail call i32 @s2n_conn_choose_state_machine(ptr noundef %1569, i8 noundef zeroext 34)
  %1574 = tail call zeroext i1 @s2n_result_is_ok(i32 %1573)
  br i1 %1574, label %.lr.ph1437, label %1578

.lr.ph1437:                                       ; preds = %1568
  %1575 = getelementptr inbounds i8, ptr %1569, i64 2172
  %1576 = getelementptr inbounds i8, ptr %1569, i64 2176
  %1577 = getelementptr inbounds i8, ptr %1569, i64 2204
  %smax1603 = tail call i32 @llvm.smax.i32(i32 %.1942, i32 1)
  %wide.trip.count1604 = zext nneg i32 %smax1603 to i64
  br label %1606

1578:                                             ; preds = %1568
  %1579 = tail call ptr @__errno_location() #14
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = tail call i32 @s2n_print_stacktrace(ptr noundef %1581) #13
  %1583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1584 = trunc nuw i8 %1583 to i1
  br i1 %1584, label %1585, label %1589

1585:                                             ; preds = %1578
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = tail call i32 @fileno(ptr noundef %1586) #13
  %1588 = tail call i32 @isatty(i32 noundef %1587) #13
  %.not1008 = icmp eq i32 %1588, 0
  br i1 %.not1008, label %1589, label %1590

1589:                                             ; preds = %1585, %1578
  br label %1590

1590:                                             ; preds = %1585, %1589
  %.str.25.sink2211 = phi ptr [ @.str.25, %1589 ], [ @.str.22, %1585 ]
  store i32 %1580, ptr %1579, align 4, !tbaa !5
  %1591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1592 = load i32, ptr @test_count, align 4, !tbaa !5
  %1593 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1594 = load i32, ptr %1593, align 4, !tbaa !5
  %1595 = tail call ptr @s2n_strerror(i32 noundef %1594, ptr noundef nonnull @.str.24) #13
  %1596 = load i32, ptr %1593, align 4, !tbaa !5
  %1597 = tail call ptr @s2n_strerror_debug(i32 noundef %1596, ptr noundef nonnull @.str.24) #13
  %1598 = load i32, ptr %1579, align 4, !tbaa !5
  %1599 = tail call ptr @strerror(i32 noundef %1598) #13
  %1600 = load i32, ptr %1579, align 4, !tbaa !5
  %1601 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1591, ptr noundef nonnull %.str.25.sink2211, i32 noundef %1592, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 401, ptr noundef %1595, ptr noundef %1597, ptr noundef %1599, i32 noundef %1600) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

._crit_edge1438:                                  ; preds = %.loopexit1279
  %1602 = load i32, ptr @test_count, align 4, !tbaa !5
  %1603 = add nsw i32 %1602, 1
  store i32 %1603, ptr @test_count, align 4, !tbaa !5
  %1604 = tail call i32 @s2n_connection_free(ptr noundef %1569) #13
  %1605 = icmp eq i32 %1604, -1
  br i1 %1605, label %1832, label %1856

1606:                                             ; preds = %.lr.ph1437, %.loopexit1279
  %indvars.iv1600 = phi i64 [ 0, %.lr.ph1437 ], [ %indvars.iv.next1601, %.loopexit1279 ]
  %1607 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv1600
  %1608 = load i16, ptr %1607, align 2, !tbaa !15
  %1609 = zext i16 %1608 to i32
  store i32 %1609, ptr %1575, align 4, !tbaa !58
  %1610 = zext i16 %1608 to i64
  %1611 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 0
  %1612 = load i32, ptr %1611, align 16, !tbaa !5
  %1613 = icmp eq i32 %1612, 11
  br i1 %1613, label %1614, label %1708

1614:                                             ; preds = %1828, %1824, %1820, %1816, %1812, %1808, %1804, %1800, %1796, %1792, %1788, %1784, %1780, %1776, %1772, %1768, %1764, %1760, %1756, %1752, %1748, %1744, %1740, %1736, %1732, %1728, %1724, %1720, %1716, %1712, %1708, %1606
  %.09771435.lcssa.wide = phi i32 [ 0, %1606 ], [ 1, %1708 ], [ 2, %1712 ], [ 3, %1716 ], [ 4, %1720 ], [ 5, %1724 ], [ 6, %1728 ], [ 7, %1732 ], [ 8, %1736 ], [ 9, %1740 ], [ 10, %1744 ], [ 11, %1748 ], [ 12, %1752 ], [ 13, %1756 ], [ 14, %1760 ], [ 15, %1764 ], [ 16, %1768 ], [ 17, %1772 ], [ 18, %1776 ], [ 19, %1780 ], [ 20, %1784 ], [ 21, %1788 ], [ 22, %1792 ], [ 23, %1796 ], [ 24, %1800 ], [ 25, %1804 ], [ 26, %1808 ], [ 27, %1812 ], [ 28, %1816 ], [ 29, %1820 ], [ 30, %1824 ], [ 31, %1828 ]
  %1615 = add nsw i32 %.09771435.lcssa.wide, -1
  store i32 %1615, ptr %1576, align 8, !tbaa !59
  %1616 = load i32, ptr @test_count, align 4, !tbaa !5
  %1617 = add nsw i32 %1616, 1
  store i32 %1617, ptr @test_count, align 4, !tbaa !5
  %1618 = tail call i32 @s2n_advance_message(ptr noundef nonnull %1569)
  %1619 = icmp eq i32 %1618, -1
  br i1 %1619, label %1620, label %1644

1620:                                             ; preds = %1614
  %1621 = tail call ptr @__errno_location() #14
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1624 = tail call i32 @s2n_print_stacktrace(ptr noundef %1623) #13
  %1625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1626 = trunc nuw i8 %1625 to i1
  br i1 %1626, label %1627, label %1631

1627:                                             ; preds = %1620
  %1628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1629 = tail call i32 @fileno(ptr noundef %1628) #13
  %1630 = tail call i32 @isatty(i32 noundef %1629) #13
  %.not1216 = icmp eq i32 %1630, 0
  br i1 %.not1216, label %1631, label %1632

1631:                                             ; preds = %1627, %1620
  br label %1632

1632:                                             ; preds = %1627, %1631
  %.str.25.sink2222 = phi ptr [ @.str.25, %1631 ], [ @.str.22, %1627 ]
  store i32 %1622, ptr %1621, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = tail call ptr @s2n_strerror(i32 noundef %1636, ptr noundef nonnull @.str.24) #13
  %1638 = load i32, ptr %1635, align 4, !tbaa !5
  %1639 = tail call ptr @s2n_strerror_debug(i32 noundef %1638, ptr noundef nonnull @.str.24) #13
  %1640 = load i32, ptr %1621, align 4, !tbaa !5
  %1641 = tail call ptr @strerror(i32 noundef %1640) #13
  %1642 = load i32, ptr %1621, align 4, !tbaa !5
  %1643 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1633, ptr noundef nonnull %.str.25.sink2222, i32 noundef %1634, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 412, ptr noundef %1637, ptr noundef %1639, ptr noundef %1641, i32 noundef %1642) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1644:                                             ; preds = %1614
  %1645 = load i32, ptr @test_count, align 4, !tbaa !5
  %1646 = add nsw i32 %1645, 1
  store i32 %1646, ptr @test_count, align 4, !tbaa !5
  %1647 = load i32, ptr %1576, align 8, !tbaa !59
  %1648 = icmp eq i32 %1647, %.09771435.lcssa.wide
  br i1 %1648, label %1673, label %1649

1649:                                             ; preds = %1644
  %1650 = tail call ptr @__errno_location() #14
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1653 = tail call i32 @s2n_print_stacktrace(ptr noundef %1652) #13
  %1654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1655 = trunc nuw i8 %1654 to i1
  br i1 %1655, label %1656, label %1660

1656:                                             ; preds = %1649
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = tail call i32 @fileno(ptr noundef %1657) #13
  %1659 = tail call i32 @isatty(i32 noundef %1658) #13
  %.not1214 = icmp eq i32 %1659, 0
  br i1 %.not1214, label %1660, label %1661

1660:                                             ; preds = %1656, %1649
  br label %1661

1661:                                             ; preds = %1656, %1660
  %.str.25.sink2233 = phi ptr [ @.str.25, %1660 ], [ @.str.22, %1656 ]
  store i32 %1651, ptr %1650, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = tail call ptr @s2n_strerror(i32 noundef %1665, ptr noundef nonnull @.str.24) #13
  %1667 = load i32, ptr %1664, align 4, !tbaa !5
  %1668 = tail call ptr @s2n_strerror_debug(i32 noundef %1667, ptr noundef nonnull @.str.24) #13
  %1669 = load i32, ptr %1650, align 4, !tbaa !5
  %1670 = tail call ptr @strerror(i32 noundef %1669) #13
  %1671 = load i32, ptr %1650, align 4, !tbaa !5
  %1672 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1662, ptr noundef nonnull %.str.25.sink2233, i32 noundef %1663, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 414, ptr noundef %1666, ptr noundef %1668, ptr noundef %1670, i32 noundef %1671) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1673:                                             ; preds = %1644
  %1674 = add nsw i32 %1645, 2
  store i32 %1674, ptr @test_count, align 4, !tbaa !5
  %1675 = load i32, ptr %1577, align 4, !tbaa !57
  %1676 = icmp eq i32 %1675, 2
  %1677 = select i1 %1676, ptr @tls13_handshakes, ptr @handshakes
  %1678 = load i32, ptr %1575, align 4, !tbaa !58
  %1679 = zext i32 %1678 to i64
  %1680 = zext nneg i32 %.09771435.lcssa.wide to i64
  %1681 = getelementptr inbounds [32 x i32], ptr %1677, i64 %1679, i64 %1680
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  %1683 = icmp eq i32 %1682, 11
  br i1 %1683, label %.loopexit1279, label %1684

1684:                                             ; preds = %1673
  %1685 = tail call ptr @__errno_location() #14
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  %1687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1688 = tail call i32 @s2n_print_stacktrace(ptr noundef %1687) #13
  %1689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1690 = trunc nuw i8 %1689 to i1
  br i1 %1690, label %1691, label %1695

1691:                                             ; preds = %1684
  %1692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1693 = tail call i32 @fileno(ptr noundef %1692) #13
  %1694 = tail call i32 @isatty(i32 noundef %1693) #13
  %.not1215 = icmp eq i32 %1694, 0
  br i1 %.not1215, label %1695, label %1696

1695:                                             ; preds = %1691, %1684
  br label %1696

1696:                                             ; preds = %1691, %1695
  %.str.25.sink2244 = phi ptr [ @.str.25, %1695 ], [ @.str.22, %1691 ]
  store i32 %1686, ptr %1685, align 4, !tbaa !5
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = load i32, ptr @test_count, align 4, !tbaa !5
  %1699 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = tail call ptr @s2n_strerror(i32 noundef %1700, ptr noundef nonnull @.str.24) #13
  %1702 = load i32, ptr %1699, align 4, !tbaa !5
  %1703 = tail call ptr @s2n_strerror_debug(i32 noundef %1702, ptr noundef nonnull @.str.24) #13
  %1704 = load i32, ptr %1685, align 4, !tbaa !5
  %1705 = tail call ptr @strerror(i32 noundef %1704) #13
  %1706 = load i32, ptr %1685, align 4, !tbaa !5
  %1707 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1697, ptr noundef nonnull %.str.25.sink2244, i32 noundef %1698, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 415, ptr noundef %1701, ptr noundef %1703, ptr noundef %1705, i32 noundef %1706) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1708:                                             ; preds = %1606
  %1709 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 1
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = icmp eq i32 %1710, 11
  br i1 %1711, label %1614, label %1712

1712:                                             ; preds = %1708
  %1713 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 2
  %1714 = load i32, ptr %1713, align 8, !tbaa !5
  %1715 = icmp eq i32 %1714, 11
  br i1 %1715, label %1614, label %1716

1716:                                             ; preds = %1712
  %1717 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 3
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = icmp eq i32 %1718, 11
  br i1 %1719, label %1614, label %1720

1720:                                             ; preds = %1716
  %1721 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 4
  %1722 = load i32, ptr %1721, align 16, !tbaa !5
  %1723 = icmp eq i32 %1722, 11
  br i1 %1723, label %1614, label %1724

1724:                                             ; preds = %1720
  %1725 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 5
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = icmp eq i32 %1726, 11
  br i1 %1727, label %1614, label %1728

1728:                                             ; preds = %1724
  %1729 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 6
  %1730 = load i32, ptr %1729, align 8, !tbaa !5
  %1731 = icmp eq i32 %1730, 11
  br i1 %1731, label %1614, label %1732

1732:                                             ; preds = %1728
  %1733 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 7
  %1734 = load i32, ptr %1733, align 4, !tbaa !5
  %1735 = icmp eq i32 %1734, 11
  br i1 %1735, label %1614, label %1736

1736:                                             ; preds = %1732
  %1737 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 8
  %1738 = load i32, ptr %1737, align 16, !tbaa !5
  %1739 = icmp eq i32 %1738, 11
  br i1 %1739, label %1614, label %1740

1740:                                             ; preds = %1736
  %1741 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 9
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = icmp eq i32 %1742, 11
  br i1 %1743, label %1614, label %1744

1744:                                             ; preds = %1740
  %1745 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 10
  %1746 = load i32, ptr %1745, align 8, !tbaa !5
  %1747 = icmp eq i32 %1746, 11
  br i1 %1747, label %1614, label %1748

1748:                                             ; preds = %1744
  %1749 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 11
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = icmp eq i32 %1750, 11
  br i1 %1751, label %1614, label %1752

1752:                                             ; preds = %1748
  %1753 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 12
  %1754 = load i32, ptr %1753, align 16, !tbaa !5
  %1755 = icmp eq i32 %1754, 11
  br i1 %1755, label %1614, label %1756

1756:                                             ; preds = %1752
  %1757 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 13
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = icmp eq i32 %1758, 11
  br i1 %1759, label %1614, label %1760

1760:                                             ; preds = %1756
  %1761 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 14
  %1762 = load i32, ptr %1761, align 8, !tbaa !5
  %1763 = icmp eq i32 %1762, 11
  br i1 %1763, label %1614, label %1764

1764:                                             ; preds = %1760
  %1765 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 15
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = icmp eq i32 %1766, 11
  br i1 %1767, label %1614, label %1768

1768:                                             ; preds = %1764
  %1769 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 16
  %1770 = load i32, ptr %1769, align 16, !tbaa !5
  %1771 = icmp eq i32 %1770, 11
  br i1 %1771, label %1614, label %1772

1772:                                             ; preds = %1768
  %1773 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 17
  %1774 = load i32, ptr %1773, align 4, !tbaa !5
  %1775 = icmp eq i32 %1774, 11
  br i1 %1775, label %1614, label %1776

1776:                                             ; preds = %1772
  %1777 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 18
  %1778 = load i32, ptr %1777, align 8, !tbaa !5
  %1779 = icmp eq i32 %1778, 11
  br i1 %1779, label %1614, label %1780

1780:                                             ; preds = %1776
  %1781 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 19
  %1782 = load i32, ptr %1781, align 4, !tbaa !5
  %1783 = icmp eq i32 %1782, 11
  br i1 %1783, label %1614, label %1784

1784:                                             ; preds = %1780
  %1785 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 20
  %1786 = load i32, ptr %1785, align 16, !tbaa !5
  %1787 = icmp eq i32 %1786, 11
  br i1 %1787, label %1614, label %1788

1788:                                             ; preds = %1784
  %1789 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 21
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = icmp eq i32 %1790, 11
  br i1 %1791, label %1614, label %1792

1792:                                             ; preds = %1788
  %1793 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 22
  %1794 = load i32, ptr %1793, align 8, !tbaa !5
  %1795 = icmp eq i32 %1794, 11
  br i1 %1795, label %1614, label %1796

1796:                                             ; preds = %1792
  %1797 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 23
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = icmp eq i32 %1798, 11
  br i1 %1799, label %1614, label %1800

1800:                                             ; preds = %1796
  %1801 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 24
  %1802 = load i32, ptr %1801, align 16, !tbaa !5
  %1803 = icmp eq i32 %1802, 11
  br i1 %1803, label %1614, label %1804

1804:                                             ; preds = %1800
  %1805 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 25
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = icmp eq i32 %1806, 11
  br i1 %1807, label %1614, label %1808

1808:                                             ; preds = %1804
  %1809 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 26
  %1810 = load i32, ptr %1809, align 8, !tbaa !5
  %1811 = icmp eq i32 %1810, 11
  br i1 %1811, label %1614, label %1812

1812:                                             ; preds = %1808
  %1813 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 27
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = icmp eq i32 %1814, 11
  br i1 %1815, label %1614, label %1816

1816:                                             ; preds = %1812
  %1817 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 28
  %1818 = load i32, ptr %1817, align 16, !tbaa !5
  %1819 = icmp eq i32 %1818, 11
  br i1 %1819, label %1614, label %1820

1820:                                             ; preds = %1816
  %1821 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 29
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = icmp eq i32 %1822, 11
  br i1 %1823, label %1614, label %1824

1824:                                             ; preds = %1820
  %1825 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 30
  %1826 = load i32, ptr %1825, align 8, !tbaa !5
  %1827 = icmp eq i32 %1826, 11
  br i1 %1827, label %1614, label %1828

1828:                                             ; preds = %1824
  %1829 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1610, i64 31
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = icmp eq i32 %1830, 11
  br i1 %1831, label %1614, label %.loopexit1279

.loopexit1279:                                    ; preds = %1828, %1673
  %indvars.iv.next1601 = add nuw nsw i64 %indvars.iv1600, 1
  %exitcond1605.not = icmp eq i64 %indvars.iv.next1601, %wide.trip.count1604
  br i1 %exitcond1605.not, label %._crit_edge1438, label %1606, !llvm.loop !63

1832:                                             ; preds = %._crit_edge1438
  %1833 = tail call ptr @__errno_location() #14
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = tail call i32 @s2n_print_stacktrace(ptr noundef %1835) #13
  %1837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1838 = trunc nuw i8 %1837 to i1
  br i1 %1838, label %1839, label %1843

1839:                                             ; preds = %1832
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = tail call i32 @fileno(ptr noundef %1840) #13
  %1842 = tail call i32 @isatty(i32 noundef %1841) #13
  %.not1213 = icmp eq i32 %1842, 0
  br i1 %.not1213, label %1843, label %1844

1843:                                             ; preds = %1839, %1832
  br label %1844

1844:                                             ; preds = %1839, %1843
  %.str.25.sink2255 = phi ptr [ @.str.25, %1843 ], [ @.str.22, %1839 ]
  store i32 %1834, ptr %1833, align 4, !tbaa !5
  %1845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1846 = load i32, ptr @test_count, align 4, !tbaa !5
  %1847 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  %1849 = tail call ptr @s2n_strerror(i32 noundef %1848, ptr noundef nonnull @.str.24) #13
  %1850 = load i32, ptr %1847, align 4, !tbaa !5
  %1851 = tail call ptr @s2n_strerror_debug(i32 noundef %1850, ptr noundef nonnull @.str.24) #13
  %1852 = load i32, ptr %1833, align 4, !tbaa !5
  %1853 = tail call ptr @strerror(i32 noundef %1852) #13
  %1854 = load i32, ptr %1833, align 4, !tbaa !5
  %1855 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1845, ptr noundef nonnull %.str.25.sink2255, i32 noundef %1846, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 422, ptr noundef %1849, ptr noundef %1851, ptr noundef %1853, i32 noundef %1854) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1856:                                             ; preds = %._crit_edge1438
  %1857 = tail call ptr @s2n_connection_new(i32 noundef 1) #13
  %1858 = getelementptr inbounds i8, ptr %1857, i64 220
  store i8 34, ptr %1858, align 4, !tbaa !27
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = add nsw i32 %1859, 1
  store i32 %1860, ptr @test_count, align 4, !tbaa !5
  %1861 = tail call i32 @s2n_conn_choose_state_machine(ptr noundef %1857, i8 noundef zeroext 34)
  %1862 = tail call zeroext i1 @s2n_result_is_ok(i32 %1861)
  br i1 %1862, label %1887, label %1863

1863:                                             ; preds = %1856
  %1864 = tail call ptr @__errno_location() #14
  %1865 = load i32, ptr %1864, align 4, !tbaa !5
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = tail call i32 @s2n_print_stacktrace(ptr noundef %1866) #13
  %1868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1869 = trunc nuw i8 %1868 to i1
  br i1 %1869, label %1870, label %1874

1870:                                             ; preds = %1863
  %1871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1872 = tail call i32 @fileno(ptr noundef %1871) #13
  %1873 = tail call i32 @isatty(i32 noundef %1872) #13
  %.not1009 = icmp eq i32 %1873, 0
  br i1 %.not1009, label %1874, label %1875

1874:                                             ; preds = %1870, %1863
  br label %1875

1875:                                             ; preds = %1870, %1874
  %.str.25.sink2266 = phi ptr [ @.str.25, %1874 ], [ @.str.22, %1870 ]
  store i32 %1865, ptr %1864, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = tail call ptr @s2n_strerror(i32 noundef %1879, ptr noundef nonnull @.str.24) #13
  %1881 = load i32, ptr %1878, align 4, !tbaa !5
  %1882 = tail call ptr @s2n_strerror_debug(i32 noundef %1881, ptr noundef nonnull @.str.24) #13
  %1883 = load i32, ptr %1864, align 4, !tbaa !5
  %1884 = tail call ptr @strerror(i32 noundef %1883) #13
  %1885 = load i32, ptr %1864, align 4, !tbaa !5
  %1886 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1876, ptr noundef nonnull %.str.25.sink2266, i32 noundef %1877, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 429, ptr noundef %1880, ptr noundef %1882, ptr noundef %1884, i32 noundef %1885) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

1887:                                             ; preds = %1856
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %4, i8 0, i64 40, i1 false)
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = add nsw i32 %1888, 1
  store i32 %1889, ptr @test_count, align 4, !tbaa !5
  %1890 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %4, i32 noundef 0) #13
  %1891 = icmp eq i32 %1890, -1
  br i1 %1891, label %1892, label %1916

1892:                                             ; preds = %1887
  %1893 = tail call ptr @__errno_location() #14
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1896 = call i32 @s2n_print_stacktrace(ptr noundef %1895) #13
  %1897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1898 = trunc nuw i8 %1897 to i1
  br i1 %1898, label %1899, label %1903

1899:                                             ; preds = %1892
  %1900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1901 = call i32 @fileno(ptr noundef %1900) #13
  %1902 = call i32 @isatty(i32 noundef %1901) #13
  %.not1212 = icmp eq i32 %1902, 0
  br i1 %.not1212, label %1903, label %1904

1903:                                             ; preds = %1899, %1892
  br label %1904

1904:                                             ; preds = %1899, %1903
  %.str.25.sink2277 = phi ptr [ @.str.25, %1903 ], [ @.str.22, %1899 ]
  store i32 %1894, ptr %1893, align 4, !tbaa !5
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror(i32 noundef %1908, ptr noundef nonnull @.str.24) #13
  %1910 = load i32, ptr %1907, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror_debug(i32 noundef %1910, ptr noundef nonnull @.str.24) #13
  %1912 = load i32, ptr %1893, align 4, !tbaa !5
  %1913 = call ptr @strerror(i32 noundef %1912) #13
  %1914 = load i32, ptr %1893, align 4, !tbaa !5
  %1915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1905, ptr noundef nonnull %.str.25.sink2277, i32 noundef %1906, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 432, ptr noundef %1909, ptr noundef %1911, ptr noundef %1913, i32 noundef %1914) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1916:                                             ; preds = %1887
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %4, ptr noundef null, ptr noundef nonnull %1857) #13
  %1920 = icmp eq i32 %1919, -1
  br i1 %1920, label %1921, label %1945

1921:                                             ; preds = %1916
  %1922 = tail call ptr @__errno_location() #14
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = call i32 @s2n_print_stacktrace(ptr noundef %1924) #13
  %1926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1927 = trunc nuw i8 %1926 to i1
  br i1 %1927, label %1928, label %1932

1928:                                             ; preds = %1921
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = call i32 @fileno(ptr noundef %1929) #13
  %1931 = call i32 @isatty(i32 noundef %1930) #13
  %.not1211 = icmp eq i32 %1931, 0
  br i1 %.not1211, label %1932, label %1933

1932:                                             ; preds = %1928, %1921
  br label %1933

1933:                                             ; preds = %1928, %1932
  %.str.25.sink2288 = phi ptr [ @.str.25, %1932 ], [ @.str.22, %1928 ]
  store i32 %1923, ptr %1922, align 4, !tbaa !5
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror(i32 noundef %1937, ptr noundef nonnull @.str.24) #13
  %1939 = load i32, ptr %1936, align 4, !tbaa !5
  %1940 = call ptr @s2n_strerror_debug(i32 noundef %1939, ptr noundef nonnull @.str.24) #13
  %1941 = load i32, ptr %1922, align 4, !tbaa !5
  %1942 = call ptr @strerror(i32 noundef %1941) #13
  %1943 = load i32, ptr %1922, align 4, !tbaa !5
  %1944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1934, ptr noundef nonnull %.str.25.sink2288, i32 noundef %1935, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 433, ptr noundef %1938, ptr noundef %1940, ptr noundef %1942, i32 noundef %1943) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1945:                                             ; preds = %1916
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = add nsw i32 %1946, 1
  store i32 %1947, ptr @test_count, align 4, !tbaa !5
  %1948 = call i32 @s2n_setup_handler_to_expect(i32 noundef 14, i8 noundef zeroext 1)
  %1949 = icmp eq i32 %1948, -1
  br i1 %1949, label %1953, label %.lr.ph1441

.lr.ph1441:                                       ; preds = %1945
  %1950 = getelementptr inbounds i8, ptr %1857, i64 2172
  %1951 = getelementptr inbounds i8, ptr %1857, i64 1936
  %1952 = getelementptr inbounds i8, ptr %1857, i64 2176
  %smax1613 = call i32 @llvm.smax.i32(i32 %.1942, i32 1)
  %wide.trip.count1614 = zext nneg i32 %smax1613 to i64
  br label %1981

1953:                                             ; preds = %1945
  %1954 = tail call ptr @__errno_location() #14
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = call i32 @s2n_print_stacktrace(ptr noundef %1956) #13
  %1958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1959 = trunc nuw i8 %1958 to i1
  br i1 %1959, label %1960, label %1964

1960:                                             ; preds = %1953
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = call i32 @fileno(ptr noundef %1961) #13
  %1963 = call i32 @isatty(i32 noundef %1962) #13
  %.not1210 = icmp eq i32 %1963, 0
  br i1 %.not1210, label %1964, label %1965

1964:                                             ; preds = %1960, %1953
  br label %1965

1965:                                             ; preds = %1960, %1964
  %.str.25.sink2299 = phi ptr [ @.str.25, %1964 ], [ @.str.22, %1960 ]
  store i32 %1955, ptr %1954, align 4, !tbaa !5
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = load i32, ptr @test_count, align 4, !tbaa !5
  %1968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @s2n_strerror(i32 noundef %1969, ptr noundef nonnull @.str.24) #13
  %1971 = load i32, ptr %1968, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror_debug(i32 noundef %1971, ptr noundef nonnull @.str.24) #13
  %1973 = load i32, ptr %1954, align 4, !tbaa !5
  %1974 = call ptr @strerror(i32 noundef %1973) #13
  %1975 = load i32, ptr %1954, align 4, !tbaa !5
  %1976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1966, ptr noundef nonnull %.str.25.sink2299, i32 noundef %1967, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.21, i32 noundef 435, ptr noundef %1970, ptr noundef %1972, ptr noundef %1974, i32 noundef %1975) #15
  call void @exit(i32 noundef 1) #16
  unreachable

._crit_edge1442:                                  ; preds = %1987
  %1977 = load i32, ptr @test_count, align 4, !tbaa !5
  %1978 = add nsw i32 %1977, 1
  store i32 %1978, ptr @test_count, align 4, !tbaa !5
  %1979 = call i32 @s2n_stuffer_free(ptr noundef nonnull %4) #13
  %1980 = icmp eq i32 %1979, -1
  br i1 %1980, label %2191, label %2215

1981:                                             ; preds = %.lr.ph1441, %1987
  %indvars.iv1610 = phi i64 [ 0, %.lr.ph1441 ], [ %indvars.iv.next1611, %1987 ]
  %1982 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv1610
  %1983 = load i16, ptr %1982, align 2, !tbaa !15
  %1984 = zext i16 %1983 to i32
  store i32 %1984, ptr %1950, align 4, !tbaa !58
  store i32 0, ptr %1951, align 8, !tbaa !64
  %1985 = zext i16 %1983 to i64
  br label %1988

1986:                                             ; preds = %2163
  %indvars.iv.next1607 = add nuw nsw i64 %indvars.iv1606, 1
  %exitcond1609.not = icmp eq i64 %indvars.iv.next1607, 32
  br i1 %exitcond1609.not, label %1987, label %1988, !llvm.loop !65

1987:                                             ; preds = %1986
  %indvars.iv.next1611 = add nuw nsw i64 %indvars.iv1610, 1
  %exitcond1615.not = icmp eq i64 %indvars.iv.next1611, %wide.trip.count1614
  br i1 %exitcond1615.not, label %._crit_edge1442, label %1981, !llvm.loop !66

1988:                                             ; preds = %1981, %1986
  %indvars.iv1606 = phi i64 [ 1, %1981 ], [ %indvars.iv.next1607, %1986 ]
  %1989 = trunc nuw nsw i64 %indvars.iv1606 to i32
  store i32 %1989, ptr %1952, align 8, !tbaa !59
  %1990 = load i32, ptr @test_count, align 4, !tbaa !5
  %1991 = add nsw i32 %1990, 1
  store i32 %1991, ptr @test_count, align 4, !tbaa !5
  %1992 = call i32 @s2n_test_write_header(ptr noundef nonnull %4, i8 noundef zeroext 20, i8 noundef zeroext 0)
  %1993 = icmp eq i32 %1992, -1
  br i1 %1993, label %1994, label %2018

1994:                                             ; preds = %1988
  %1995 = tail call ptr @__errno_location() #14
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = call i32 @s2n_print_stacktrace(ptr noundef %1997) #13
  %1999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2000 = trunc nuw i8 %1999 to i1
  br i1 %2000, label %2001, label %2005

2001:                                             ; preds = %1994
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = call i32 @fileno(ptr noundef %2002) #13
  %2004 = call i32 @isatty(i32 noundef %2003) #13
  %.not1209 = icmp eq i32 %2004, 0
  br i1 %.not1209, label %2005, label %2006

2005:                                             ; preds = %2001, %1994
  br label %2006

2006:                                             ; preds = %2001, %2005
  %.str.25.sink2310 = phi ptr [ @.str.25, %2005 ], [ @.str.22, %2001 ]
  store i32 %1996, ptr %1995, align 4, !tbaa !5
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = load i32, ptr @test_count, align 4, !tbaa !5
  %2009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2010 = load i32, ptr %2009, align 4, !tbaa !5
  %2011 = call ptr @s2n_strerror(i32 noundef %2010, ptr noundef nonnull @.str.24) #13
  %2012 = load i32, ptr %2009, align 4, !tbaa !5
  %2013 = call ptr @s2n_strerror_debug(i32 noundef %2012, ptr noundef nonnull @.str.24) #13
  %2014 = load i32, ptr %1995, align 4, !tbaa !5
  %2015 = call ptr @strerror(i32 noundef %2014) #13
  %2016 = load i32, ptr %1995, align 4, !tbaa !5
  %2017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2007, ptr noundef nonnull %.str.25.sink2310, i32 noundef %2008, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.21, i32 noundef 446, ptr noundef %2011, ptr noundef %2013, ptr noundef %2015, i32 noundef %2016) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2018:                                             ; preds = %1988
  %2019 = load i32, ptr @test_count, align 4, !tbaa !5
  %2020 = add nsw i32 %2019, 1
  store i32 %2020, ptr @test_count, align 4, !tbaa !5
  %2021 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %1857)
  %2022 = icmp eq i32 %2021, -1
  br i1 %2022, label %2023, label %2047

2023:                                             ; preds = %2018
  %2024 = tail call ptr @__errno_location() #14
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = call i32 @s2n_print_stacktrace(ptr noundef %2026) #13
  %2028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2029 = trunc nuw i8 %2028 to i1
  br i1 %2029, label %2030, label %2034

2030:                                             ; preds = %2023
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = call i32 @fileno(ptr noundef %2031) #13
  %2033 = call i32 @isatty(i32 noundef %2032) #13
  %.not1208 = icmp eq i32 %2033, 0
  br i1 %.not1208, label %2034, label %2035

2034:                                             ; preds = %2030, %2023
  br label %2035

2035:                                             ; preds = %2030, %2034
  %.str.25.sink2321 = phi ptr [ @.str.25, %2034 ], [ @.str.22, %2030 ]
  store i32 %2025, ptr %2024, align 4, !tbaa !5
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2039 = load i32, ptr %2038, align 4, !tbaa !5
  %2040 = call ptr @s2n_strerror(i32 noundef %2039, ptr noundef nonnull @.str.24) #13
  %2041 = load i32, ptr %2038, align 4, !tbaa !5
  %2042 = call ptr @s2n_strerror_debug(i32 noundef %2041, ptr noundef nonnull @.str.24) #13
  %2043 = load i32, ptr %2024, align 4, !tbaa !5
  %2044 = call ptr @strerror(i32 noundef %2043) #13
  %2045 = load i32, ptr %2024, align 4, !tbaa !5
  %2046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2036, ptr noundef nonnull %.str.25.sink2321, i32 noundef %2037, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.21, i32 noundef 448, ptr noundef %2040, ptr noundef %2042, ptr noundef %2044, i32 noundef %2045) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2047:                                             ; preds = %2018
  %2048 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %1985, i64 %indvars.iv1606
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = icmp eq i32 %2049, 14
  %2051 = load i32, ptr @test_count, align 4, !tbaa !5
  %2052 = add nsw i32 %2051, 1
  store i32 %2052, ptr @test_count, align 4, !tbaa !5
  %2053 = load i32, ptr %1952, align 8, !tbaa !59
  br i1 %2050, label %2054, label %2082

2054:                                             ; preds = %2047
  %2055 = add nuw nsw i64 %indvars.iv1606, 1
  %2056 = zext i32 %2053 to i64
  %2057 = icmp eq i64 %2055, %2056
  br i1 %2057, label %2109, label %2058

2058:                                             ; preds = %2054
  %2059 = tail call ptr @__errno_location() #14
  %2060 = load i32, ptr %2059, align 4, !tbaa !5
  %2061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2062 = call i32 @s2n_print_stacktrace(ptr noundef %2061) #13
  %2063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2064 = trunc nuw i8 %2063 to i1
  br i1 %2064, label %2065, label %2069

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

2069:                                             ; preds = %2065, %2058
  br label %2070

2070:                                             ; preds = %2065, %2069
  %.str.25.sink2332 = phi ptr [ @.str.25, %2069 ], [ @.str.22, %2065 ]
  store i32 %2060, ptr %2059, align 4, !tbaa !5
  %2071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2072 = load i32, ptr @test_count, align 4, !tbaa !5
  %2073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  %2075 = call ptr @s2n_strerror(i32 noundef %2074, ptr noundef nonnull @.str.24) #13
  %2076 = load i32, ptr %2073, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror_debug(i32 noundef %2076, ptr noundef nonnull @.str.24) #13
  %2078 = load i32, ptr %2059, align 4, !tbaa !5
  %2079 = call ptr @strerror(i32 noundef %2078) #13
  %2080 = load i32, ptr %2059, align 4, !tbaa !5
  %2081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2071, ptr noundef nonnull %.str.25.sink2332, i32 noundef %2072, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 451, ptr noundef %2075, ptr noundef %2077, ptr noundef %2079, i32 noundef %2080) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2082:                                             ; preds = %2047
  %2083 = zext i32 %2053 to i64
  %2084 = icmp eq i64 %indvars.iv1606, %2083
  br i1 %2084, label %2109, label %2085

2085:                                             ; preds = %2082
  %2086 = tail call ptr @__errno_location() #14
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2089 = call i32 @s2n_print_stacktrace(ptr noundef %2088) #13
  %2090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2091 = trunc nuw i8 %2090 to i1
  br i1 %2091, label %2092, label %2096

2092:                                             ; preds = %2085
  %2093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2094 = call i32 @fileno(ptr noundef %2093) #13
  %2095 = call i32 @isatty(i32 noundef %2094) #13
  %.not1201 = icmp eq i32 %2095, 0
  br i1 %.not1201, label %2096, label %2097

2096:                                             ; preds = %2092, %2085
  br label %2097

2097:                                             ; preds = %2092, %2096
  %.str.25.sink2343 = phi ptr [ @.str.25, %2096 ], [ @.str.22, %2092 ]
  store i32 %2087, ptr %2086, align 4, !tbaa !5
  %2098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2099 = load i32, ptr @test_count, align 4, !tbaa !5
  %2100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror(i32 noundef %2101, ptr noundef nonnull @.str.24) #13
  %2103 = load i32, ptr %2100, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror_debug(i32 noundef %2103, ptr noundef nonnull @.str.24) #13
  %2105 = load i32, ptr %2086, align 4, !tbaa !5
  %2106 = call ptr @strerror(i32 noundef %2105) #13
  %2107 = load i32, ptr %2086, align 4, !tbaa !5
  %2108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2098, ptr noundef nonnull %.str.25.sink2343, i32 noundef %2099, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 453, ptr noundef %2102, ptr noundef %2104, ptr noundef %2106, i32 noundef %2107) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2109:                                             ; preds = %2054, %2082
  %2110 = add nsw i32 %2051, 2
  store i32 %2110, ptr @test_count, align 4, !tbaa !5
  %2111 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not1203 = icmp eq i32 %2111, 0
  br i1 %.not1203, label %2136, label %2112

2112:                                             ; preds = %2109
  %2113 = tail call ptr @__errno_location() #14
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = call i32 @s2n_print_stacktrace(ptr noundef %2115) #13
  %2117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2118 = trunc nuw i8 %2117 to i1
  br i1 %2118, label %2119, label %2123

2119:                                             ; preds = %2112
  %2120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2121 = call i32 @fileno(ptr noundef %2120) #13
  %2122 = call i32 @isatty(i32 noundef %2121) #13
  %.not1207 = icmp eq i32 %2122, 0
  br i1 %.not1207, label %2123, label %2124

2123:                                             ; preds = %2119, %2112
  br label %2124

2124:                                             ; preds = %2119, %2123
  %.str.25.sink2354 = phi ptr [ @.str.25, %2123 ], [ @.str.22, %2119 ]
  store i32 %2114, ptr %2113, align 4, !tbaa !5
  %2125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror(i32 noundef %2128, ptr noundef nonnull @.str.24) #13
  %2130 = load i32, ptr %2127, align 4, !tbaa !5
  %2131 = call ptr @s2n_strerror_debug(i32 noundef %2130, ptr noundef nonnull @.str.24) #13
  %2132 = load i32, ptr %2113, align 4, !tbaa !5
  %2133 = call ptr @strerror(i32 noundef %2132) #13
  %2134 = load i32, ptr %2113, align 4, !tbaa !5
  %2135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2125, ptr noundef nonnull %.str.25.sink2354, i32 noundef %2126, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.21, i32 noundef 456, ptr noundef %2129, ptr noundef %2131, ptr noundef %2133, i32 noundef %2134) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2136:                                             ; preds = %2109
  %2137 = add nsw i32 %2051, 3
  store i32 %2137, ptr @test_count, align 4, !tbaa !5
  %2138 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not1204 = icmp eq i32 %2138, 0
  br i1 %.not1204, label %2139, label %2163

2139:                                             ; preds = %2136
  %2140 = tail call ptr @__errno_location() #14
  %2141 = load i32, ptr %2140, align 4, !tbaa !5
  %2142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2143 = call i32 @s2n_print_stacktrace(ptr noundef %2142) #13
  %2144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2145 = trunc nuw i8 %2144 to i1
  br i1 %2145, label %2146, label %2150

2146:                                             ; preds = %2139
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = call i32 @fileno(ptr noundef %2147) #13
  %2149 = call i32 @isatty(i32 noundef %2148) #13
  %.not1205 = icmp eq i32 %2149, 0
  br i1 %.not1205, label %2150, label %2151

2150:                                             ; preds = %2146, %2139
  br label %2151

2151:                                             ; preds = %2146, %2150
  %.str.25.sink2365 = phi ptr [ @.str.25, %2150 ], [ @.str.22, %2146 ]
  store i32 %2141, ptr %2140, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = load i32, ptr @test_count, align 4, !tbaa !5
  %2154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2155 = load i32, ptr %2154, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror(i32 noundef %2155, ptr noundef nonnull @.str.24) #13
  %2157 = load i32, ptr %2154, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror_debug(i32 noundef %2157, ptr noundef nonnull @.str.24) #13
  %2159 = load i32, ptr %2140, align 4, !tbaa !5
  %2160 = call ptr @strerror(i32 noundef %2159) #13
  %2161 = load i32, ptr %2140, align 4, !tbaa !5
  %2162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2152, ptr noundef nonnull %.str.25.sink2365, i32 noundef %2153, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.21, i32 noundef 457, ptr noundef %2156, ptr noundef %2158, ptr noundef %2160, i32 noundef %2161) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2163:                                             ; preds = %2136
  %2164 = add nsw i32 %2051, 4
  store i32 %2164, ptr @test_count, align 4, !tbaa !5
  %2165 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %4) #13
  %2166 = icmp eq i32 %2165, -1
  br i1 %2166, label %2167, label %1986

2167:                                             ; preds = %2163
  %2168 = tail call ptr @__errno_location() #14
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2171 = call i32 @s2n_print_stacktrace(ptr noundef %2170) #13
  %2172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2173 = trunc nuw i8 %2172 to i1
  br i1 %2173, label %2174, label %2178

2174:                                             ; preds = %2167
  %2175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2176 = call i32 @fileno(ptr noundef %2175) #13
  %2177 = call i32 @isatty(i32 noundef %2176) #13
  %.not1206 = icmp eq i32 %2177, 0
  br i1 %.not1206, label %2178, label %2179

2178:                                             ; preds = %2174, %2167
  br label %2179

2179:                                             ; preds = %2174, %2178
  %.str.25.sink2376 = phi ptr [ @.str.25, %2178 ], [ @.str.22, %2174 ]
  store i32 %2169, ptr %2168, align 4, !tbaa !5
  %2180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2181 = load i32, ptr @test_count, align 4, !tbaa !5
  %2182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror(i32 noundef %2183, ptr noundef nonnull @.str.24) #13
  %2185 = load i32, ptr %2182, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror_debug(i32 noundef %2185, ptr noundef nonnull @.str.24) #13
  %2187 = load i32, ptr %2168, align 4, !tbaa !5
  %2188 = call ptr @strerror(i32 noundef %2187) #13
  %2189 = load i32, ptr %2168, align 4, !tbaa !5
  %2190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2180, ptr noundef nonnull %.str.25.sink2376, i32 noundef %2181, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.21, i32 noundef 459, ptr noundef %2184, ptr noundef %2186, ptr noundef %2188, i32 noundef %2189) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2191:                                             ; preds = %._crit_edge1442
  %2192 = tail call ptr @__errno_location() #14
  %2193 = load i32, ptr %2192, align 4, !tbaa !5
  %2194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2195 = call i32 @s2n_print_stacktrace(ptr noundef %2194) #13
  %2196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2197 = trunc nuw i8 %2196 to i1
  br i1 %2197, label %2198, label %2202

2198:                                             ; preds = %2191
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = call i32 @fileno(ptr noundef %2199) #13
  %2201 = call i32 @isatty(i32 noundef %2200) #13
  %.not1200 = icmp eq i32 %2201, 0
  br i1 %.not1200, label %2202, label %2203

2202:                                             ; preds = %2198, %2191
  br label %2203

2203:                                             ; preds = %2198, %2202
  %.str.25.sink2387 = phi ptr [ @.str.25, %2202 ], [ @.str.22, %2198 ]
  store i32 %2193, ptr %2192, align 4, !tbaa !5
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = load i32, ptr @test_count, align 4, !tbaa !5
  %2206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  %2208 = call ptr @s2n_strerror(i32 noundef %2207, ptr noundef nonnull @.str.24) #13
  %2209 = load i32, ptr %2206, align 4, !tbaa !5
  %2210 = call ptr @s2n_strerror_debug(i32 noundef %2209, ptr noundef nonnull @.str.24) #13
  %2211 = load i32, ptr %2192, align 4, !tbaa !5
  %2212 = call ptr @strerror(i32 noundef %2211) #13
  %2213 = load i32, ptr %2192, align 4, !tbaa !5
  %2214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2204, ptr noundef nonnull %.str.25.sink2387, i32 noundef %2205, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 463, ptr noundef %2208, ptr noundef %2210, ptr noundef %2212, i32 noundef %2213) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2215:                                             ; preds = %._crit_edge1442
  %2216 = load i32, ptr @test_count, align 4, !tbaa !5
  %2217 = add nsw i32 %2216, 1
  store i32 %2217, ptr @test_count, align 4, !tbaa !5
  %2218 = call i32 @s2n_connection_free(ptr noundef nonnull %1857) #13
  %2219 = icmp eq i32 %2218, -1
  br i1 %2219, label %2220, label %2244

2220:                                             ; preds = %2215
  %2221 = tail call ptr @__errno_location() #14
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = call i32 @s2n_print_stacktrace(ptr noundef %2223) #13
  %2225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2226 = trunc nuw i8 %2225 to i1
  br i1 %2226, label %2227, label %2231

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

2231:                                             ; preds = %2227, %2220
  br label %2232

2232:                                             ; preds = %2227, %2231
  %.str.25.sink2398 = phi ptr [ @.str.25, %2231 ], [ @.str.22, %2227 ]
  store i32 %2222, ptr %2221, align 4, !tbaa !5
  %2233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2234 = load i32, ptr @test_count, align 4, !tbaa !5
  %2235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  %2237 = call ptr @s2n_strerror(i32 noundef %2236, ptr noundef nonnull @.str.24) #13
  %2238 = load i32, ptr %2235, align 4, !tbaa !5
  %2239 = call ptr @s2n_strerror_debug(i32 noundef %2238, ptr noundef nonnull @.str.24) #13
  %2240 = load i32, ptr %2221, align 4, !tbaa !5
  %2241 = call ptr @strerror(i32 noundef %2240) #13
  %2242 = load i32, ptr %2221, align 4, !tbaa !5
  %2243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2233, ptr noundef nonnull %.str.25.sink2398, i32 noundef %2234, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 464, ptr noundef %2237, ptr noundef %2239, ptr noundef %2241, i32 noundef %2242) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2244:                                             ; preds = %2215
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #13
  %2245 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %2246 = getelementptr inbounds i8, ptr %2245, i64 220
  store i8 34, ptr %2246, align 4, !tbaa !27
  %2247 = load i32, ptr @test_count, align 4, !tbaa !5
  %2248 = add nsw i32 %2247, 1
  store i32 %2248, ptr @test_count, align 4, !tbaa !5
  %2249 = call i32 @s2n_conn_choose_state_machine(ptr noundef %2245, i8 noundef zeroext 34)
  %2250 = call zeroext i1 @s2n_result_is_ok(i32 %2249)
  br i1 %2250, label %2275, label %2251

2251:                                             ; preds = %2244
  %2252 = tail call ptr @__errno_location() #14
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2255 = call i32 @s2n_print_stacktrace(ptr noundef %2254) #13
  %2256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2257 = trunc nuw i8 %2256 to i1
  br i1 %2257, label %2258, label %2262

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

2262:                                             ; preds = %2258, %2251
  br label %2263

2263:                                             ; preds = %2258, %2262
  %.str.25.sink2409 = phi ptr [ @.str.25, %2262 ], [ @.str.22, %2258 ]
  store i32 %2253, ptr %2252, align 4, !tbaa !5
  %2264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2265 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2267, ptr noundef nonnull @.str.24) #13
  %2269 = load i32, ptr %2266, align 4, !tbaa !5
  %2270 = call ptr @s2n_strerror_debug(i32 noundef %2269, ptr noundef nonnull @.str.24) #13
  %2271 = load i32, ptr %2252, align 4, !tbaa !5
  %2272 = call ptr @strerror(i32 noundef %2271) #13
  %2273 = load i32, ptr %2252, align 4, !tbaa !5
  %2274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2264, ptr noundef nonnull %.str.25.sink2409, i32 noundef %2265, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 471, ptr noundef %2268, ptr noundef %2270, ptr noundef %2272, i32 noundef %2273) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2275:                                             ; preds = %2244
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %5, i8 0, i64 40, i1 false)
  %2276 = load i32, ptr @test_count, align 4, !tbaa !5
  %2277 = add nsw i32 %2276, 1
  store i32 %2277, ptr @test_count, align 4, !tbaa !5
  %2278 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %5, i32 noundef 0) #13
  %2279 = icmp eq i32 %2278, -1
  br i1 %2279, label %2280, label %2304

2280:                                             ; preds = %2275
  %2281 = tail call ptr @__errno_location() #14
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = call i32 @s2n_print_stacktrace(ptr noundef %2283) #13
  %2285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2286 = trunc nuw i8 %2285 to i1
  br i1 %2286, label %2287, label %2291

2287:                                             ; preds = %2280
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = call i32 @fileno(ptr noundef %2288) #13
  %2290 = call i32 @isatty(i32 noundef %2289) #13
  %.not1198 = icmp eq i32 %2290, 0
  br i1 %.not1198, label %2291, label %2292

2291:                                             ; preds = %2287, %2280
  br label %2292

2292:                                             ; preds = %2287, %2291
  %.str.25.sink2420 = phi ptr [ @.str.25, %2291 ], [ @.str.22, %2287 ]
  store i32 %2282, ptr %2281, align 4, !tbaa !5
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = load i32, ptr @test_count, align 4, !tbaa !5
  %2295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror(i32 noundef %2296, ptr noundef nonnull @.str.24) #13
  %2298 = load i32, ptr %2295, align 4, !tbaa !5
  %2299 = call ptr @s2n_strerror_debug(i32 noundef %2298, ptr noundef nonnull @.str.24) #13
  %2300 = load i32, ptr %2281, align 4, !tbaa !5
  %2301 = call ptr @strerror(i32 noundef %2300) #13
  %2302 = load i32, ptr %2281, align 4, !tbaa !5
  %2303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2293, ptr noundef nonnull %.str.25.sink2420, i32 noundef %2294, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 474, ptr noundef %2297, ptr noundef %2299, ptr noundef %2301, i32 noundef %2302) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2304:                                             ; preds = %2275
  %2305 = load i32, ptr @test_count, align 4, !tbaa !5
  %2306 = add nsw i32 %2305, 1
  store i32 %2306, ptr @test_count, align 4, !tbaa !5
  %2307 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %5, ptr noundef null, ptr noundef nonnull %2245) #13
  %2308 = icmp eq i32 %2307, -1
  br i1 %2308, label %2309, label %2333

2309:                                             ; preds = %2304
  %2310 = tail call ptr @__errno_location() #14
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @s2n_print_stacktrace(ptr noundef %2312) #13
  %2314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2315 = trunc nuw i8 %2314 to i1
  br i1 %2315, label %2316, label %2320

2316:                                             ; preds = %2309
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = call i32 @fileno(ptr noundef %2317) #13
  %2319 = call i32 @isatty(i32 noundef %2318) #13
  %.not1197 = icmp eq i32 %2319, 0
  br i1 %.not1197, label %2320, label %2321

2320:                                             ; preds = %2316, %2309
  br label %2321

2321:                                             ; preds = %2316, %2320
  %.str.25.sink2431 = phi ptr [ @.str.25, %2320 ], [ @.str.22, %2316 ]
  store i32 %2311, ptr %2310, 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 nonnull @.str.24) #13
  %2327 = load i32, ptr %2324, align 4, !tbaa !5
  %2328 = call ptr @s2n_strerror_debug(i32 noundef %2327, ptr noundef nonnull @.str.24) #13
  %2329 = load i32, ptr %2310, align 4, !tbaa !5
  %2330 = call ptr @strerror(i32 noundef %2329) #13
  %2331 = load i32, ptr %2310, align 4, !tbaa !5
  %2332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2322, ptr noundef nonnull %.str.25.sink2431, i32 noundef %2323, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 475, ptr noundef %2326, ptr noundef %2328, ptr noundef %2330, i32 noundef %2331) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2333:                                             ; preds = %2304
  %2334 = load i32, ptr @test_count, align 4, !tbaa !5
  %2335 = add nsw i32 %2334, 1
  store i32 %2335, ptr @test_count, align 4, !tbaa !5
  %2336 = call i32 @s2n_setup_handler_to_expect(i32 noundef 11, i8 noundef zeroext 0)
  %2337 = icmp eq i32 %2336, -1
  br i1 %2337, label %2341, label %.lr.ph1445

.lr.ph1445:                                       ; preds = %2333
  %2338 = getelementptr inbounds i8, ptr %2245, i64 2172
  %2339 = getelementptr inbounds i8, ptr %2245, i64 1936
  %2340 = getelementptr inbounds i8, ptr %2245, i64 2176
  %smax1623 = call i32 @llvm.smax.i32(i32 %.1942, i32 1)
  %wide.trip.count1624 = zext nneg i32 %smax1623 to i64
  br label %2369

2341:                                             ; preds = %2333
  %2342 = tail call ptr @__errno_location() #14
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = call i32 @s2n_print_stacktrace(ptr noundef %2344) #13
  %2346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2347 = trunc nuw i8 %2346 to i1
  br i1 %2347, label %2348, label %2352

2348:                                             ; preds = %2341
  %2349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2350 = call i32 @fileno(ptr noundef %2349) #13
  %2351 = call i32 @isatty(i32 noundef %2350) #13
  %.not1196 = icmp eq i32 %2351, 0
  br i1 %.not1196, label %2352, label %2353

2352:                                             ; preds = %2348, %2341
  br label %2353

2353:                                             ; preds = %2348, %2352
  %.str.25.sink2442 = phi ptr [ @.str.25, %2352 ], [ @.str.22, %2348 ]
  store i32 %2343, ptr %2342, align 4, !tbaa !5
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = load i32, ptr @test_count, align 4, !tbaa !5
  %2356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror(i32 noundef %2357, ptr noundef nonnull @.str.24) #13
  %2359 = load i32, ptr %2356, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror_debug(i32 noundef %2359, ptr noundef nonnull @.str.24) #13
  %2361 = load i32, ptr %2342, align 4, !tbaa !5
  %2362 = call ptr @strerror(i32 noundef %2361) #13
  %2363 = load i32, ptr %2342, align 4, !tbaa !5
  %2364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2354, ptr noundef nonnull %.str.25.sink2442, i32 noundef %2355, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.21, i32 noundef 477, ptr noundef %2358, ptr noundef %2360, ptr noundef %2362, i32 noundef %2363) #15
  call void @exit(i32 noundef 1) #16
  unreachable

._crit_edge1446:                                  ; preds = %2375
  %2365 = load i32, ptr @test_count, align 4, !tbaa !5
  %2366 = add nsw i32 %2365, 1
  store i32 %2366, ptr @test_count, align 4, !tbaa !5
  %2367 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #13
  %2368 = icmp eq i32 %2367, -1
  br i1 %2368, label %2579, label %2603

2369:                                             ; preds = %.lr.ph1445, %2375
  %indvars.iv1620 = phi i64 [ 0, %.lr.ph1445 ], [ %indvars.iv.next1621, %2375 ]
  %2370 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv1620
  %2371 = load i16, ptr %2370, align 2, !tbaa !15
  %2372 = zext i16 %2371 to i32
  store i32 %2372, ptr %2338, align 4, !tbaa !58
  store i32 0, ptr %2339, align 8, !tbaa !64
  %2373 = zext i16 %2371 to i64
  br label %2376

2374:                                             ; preds = %2551
  %indvars.iv.next1617 = add nuw nsw i64 %indvars.iv1616, 1
  %exitcond1619.not = icmp eq i64 %indvars.iv.next1617, 32
  br i1 %exitcond1619.not, label %2375, label %2376, !llvm.loop !67

2375:                                             ; preds = %2374
  %indvars.iv.next1621 = add nuw nsw i64 %indvars.iv1620, 1
  %exitcond1625.not = icmp eq i64 %indvars.iv.next1621, %wide.trip.count1624
  br i1 %exitcond1625.not, label %._crit_edge1446, label %2369, !llvm.loop !68

2376:                                             ; preds = %2369, %2374
  %indvars.iv1616 = phi i64 [ 1, %2369 ], [ %indvars.iv.next1617, %2374 ]
  %2377 = trunc nuw nsw i64 %indvars.iv1616 to i32
  store i32 %2377, ptr %2340, align 8, !tbaa !59
  %2378 = load i32, ptr @test_count, align 4, !tbaa !5
  %2379 = add nsw i32 %2378, 1
  store i32 %2379, ptr @test_count, align 4, !tbaa !5
  %2380 = call i32 @s2n_test_write_header(ptr noundef nonnull %5, i8 noundef zeroext 20, i8 noundef zeroext 0)
  %2381 = icmp eq i32 %2380, -1
  br i1 %2381, label %2382, label %2406

2382:                                             ; preds = %2376
  %2383 = tail call ptr @__errno_location() #14
  %2384 = load i32, ptr %2383, align 4, !tbaa !5
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = call i32 @s2n_print_stacktrace(ptr noundef %2385) #13
  %2387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2388 = trunc nuw i8 %2387 to i1
  br i1 %2388, label %2389, label %2393

2389:                                             ; preds = %2382
  %2390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2391 = call i32 @fileno(ptr noundef %2390) #13
  %2392 = call i32 @isatty(i32 noundef %2391) #13
  %.not1195 = icmp eq i32 %2392, 0
  br i1 %.not1195, label %2393, label %2394

2393:                                             ; preds = %2389, %2382
  br label %2394

2394:                                             ; preds = %2389, %2393
  %.str.25.sink2453 = phi ptr [ @.str.25, %2393 ], [ @.str.22, %2389 ]
  store i32 %2384, ptr %2383, align 4, !tbaa !5
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2398 = load i32, ptr %2397, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror(i32 noundef %2398, ptr noundef nonnull @.str.24) #13
  %2400 = load i32, ptr %2397, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror_debug(i32 noundef %2400, ptr noundef nonnull @.str.24) #13
  %2402 = load i32, ptr %2383, align 4, !tbaa !5
  %2403 = call ptr @strerror(i32 noundef %2402) #13
  %2404 = load i32, ptr %2383, align 4, !tbaa !5
  %2405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2395, ptr noundef nonnull %.str.25.sink2453, i32 noundef %2396, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.21, i32 noundef 488, ptr noundef %2399, ptr noundef %2401, ptr noundef %2403, i32 noundef %2404) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2406:                                             ; preds = %2376
  %2407 = load i32, ptr @test_count, align 4, !tbaa !5
  %2408 = add nsw i32 %2407, 1
  store i32 %2408, ptr @test_count, align 4, !tbaa !5
  %2409 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2245)
  %2410 = icmp eq i32 %2409, -1
  br i1 %2410, label %2411, label %2435

2411:                                             ; preds = %2406
  %2412 = tail call ptr @__errno_location() #14
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = call i32 @s2n_print_stacktrace(ptr noundef %2414) #13
  %2416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2417 = trunc nuw i8 %2416 to i1
  br i1 %2417, label %2418, label %2422

2418:                                             ; preds = %2411
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = call i32 @fileno(ptr noundef %2419) #13
  %2421 = call i32 @isatty(i32 noundef %2420) #13
  %.not1194 = icmp eq i32 %2421, 0
  br i1 %.not1194, label %2422, label %2423

2422:                                             ; preds = %2418, %2411
  br label %2423

2423:                                             ; preds = %2418, %2422
  %.str.25.sink2464 = phi ptr [ @.str.25, %2422 ], [ @.str.22, %2418 ]
  store i32 %2413, ptr %2412, align 4, !tbaa !5
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = load i32, ptr @test_count, align 4, !tbaa !5
  %2426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror(i32 noundef %2427, ptr noundef nonnull @.str.24) #13
  %2429 = load i32, ptr %2426, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror_debug(i32 noundef %2429, ptr noundef nonnull @.str.24) #13
  %2431 = load i32, ptr %2412, align 4, !tbaa !5
  %2432 = call ptr @strerror(i32 noundef %2431) #13
  %2433 = load i32, ptr %2412, align 4, !tbaa !5
  %2434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2424, ptr noundef nonnull %.str.25.sink2464, i32 noundef %2425, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.21, i32 noundef 490, ptr noundef %2428, ptr noundef %2430, ptr noundef %2432, i32 noundef %2433) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2435:                                             ; preds = %2406
  %2436 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %2373, i64 %indvars.iv1616
  %2437 = load i32, ptr %2436, align 4, !tbaa !5
  %2438 = icmp eq i32 %2437, 11
  %2439 = load i32, ptr @test_count, align 4, !tbaa !5
  %2440 = add nsw i32 %2439, 1
  store i32 %2440, ptr @test_count, align 4, !tbaa !5
  %2441 = load i32, ptr %2340, align 8, !tbaa !59
  br i1 %2438, label %2442, label %2470

2442:                                             ; preds = %2435
  %2443 = add nuw nsw i64 %indvars.iv1616, 1
  %2444 = zext i32 %2441 to i64
  %2445 = icmp eq i64 %2443, %2444
  br i1 %2445, label %2497, label %2446

2446:                                             ; preds = %2442
  %2447 = tail call ptr @__errno_location() #14
  %2448 = load i32, ptr %2447, align 4, !tbaa !5
  %2449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2450 = call i32 @s2n_print_stacktrace(ptr noundef %2449) #13
  %2451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2452 = trunc nuw i8 %2451 to i1
  br i1 %2452, label %2453, label %2457

2453:                                             ; preds = %2446
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = call i32 @fileno(ptr noundef %2454) #13
  %2456 = call i32 @isatty(i32 noundef %2455) #13
  %.not1188 = icmp eq i32 %2456, 0
  br i1 %.not1188, label %2457, label %2458

2457:                                             ; preds = %2453, %2446
  br label %2458

2458:                                             ; preds = %2453, %2457
  %.str.25.sink2475 = phi ptr [ @.str.25, %2457 ], [ @.str.22, %2453 ]
  store i32 %2448, ptr %2447, align 4, !tbaa !5
  %2459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2460 = load i32, ptr @test_count, align 4, !tbaa !5
  %2461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror(i32 noundef %2462, ptr noundef nonnull @.str.24) #13
  %2464 = load i32, ptr %2461, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror_debug(i32 noundef %2464, ptr noundef nonnull @.str.24) #13
  %2466 = load i32, ptr %2447, align 4, !tbaa !5
  %2467 = call ptr @strerror(i32 noundef %2466) #13
  %2468 = load i32, ptr %2447, align 4, !tbaa !5
  %2469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2459, ptr noundef nonnull %.str.25.sink2475, i32 noundef %2460, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 493, ptr noundef %2463, ptr noundef %2465, ptr noundef %2467, i32 noundef %2468) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2470:                                             ; preds = %2435
  %2471 = zext i32 %2441 to i64
  %2472 = icmp eq i64 %indvars.iv1616, %2471
  br i1 %2472, label %2497, label %2473

2473:                                             ; preds = %2470
  %2474 = tail call ptr @__errno_location() #14
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2477 = call i32 @s2n_print_stacktrace(ptr noundef %2476) #13
  %2478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2479 = trunc nuw i8 %2478 to i1
  br i1 %2479, label %2480, label %2484

2480:                                             ; preds = %2473
  %2481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2482 = call i32 @fileno(ptr noundef %2481) #13
  %2483 = call i32 @isatty(i32 noundef %2482) #13
  %.not1187 = icmp eq i32 %2483, 0
  br i1 %.not1187, label %2484, label %2485

2484:                                             ; preds = %2480, %2473
  br label %2485

2485:                                             ; preds = %2480, %2484
  %.str.25.sink2486 = phi ptr [ @.str.25, %2484 ], [ @.str.22, %2480 ]
  store i32 %2475, ptr %2474, align 4, !tbaa !5
  %2486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2487 = load i32, ptr @test_count, align 4, !tbaa !5
  %2488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2489 = load i32, ptr %2488, align 4, !tbaa !5
  %2490 = call ptr @s2n_strerror(i32 noundef %2489, ptr noundef nonnull @.str.24) #13
  %2491 = load i32, ptr %2488, align 4, !tbaa !5
  %2492 = call ptr @s2n_strerror_debug(i32 noundef %2491, ptr noundef nonnull @.str.24) #13
  %2493 = load i32, ptr %2474, align 4, !tbaa !5
  %2494 = call ptr @strerror(i32 noundef %2493) #13
  %2495 = load i32, ptr %2474, align 4, !tbaa !5
  %2496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2486, ptr noundef nonnull %.str.25.sink2486, i32 noundef %2487, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 495, ptr noundef %2490, ptr noundef %2492, ptr noundef %2494, i32 noundef %2495) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2497:                                             ; preds = %2442, %2470
  %2498 = add nsw i32 %2439, 2
  store i32 %2498, ptr @test_count, align 4, !tbaa !5
  %2499 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not1189 = icmp eq i32 %2499, 0
  br i1 %.not1189, label %2524, label %2500

2500:                                             ; preds = %2497
  %2501 = tail call ptr @__errno_location() #14
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = call i32 @s2n_print_stacktrace(ptr noundef %2503) #13
  %2505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2506 = trunc nuw i8 %2505 to i1
  br i1 %2506, label %2507, label %2511

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

2511:                                             ; preds = %2507, %2500
  br label %2512

2512:                                             ; preds = %2507, %2511
  %.str.25.sink2497 = phi ptr [ @.str.25, %2511 ], [ @.str.22, %2507 ]
  store i32 %2502, ptr %2501, align 4, !tbaa !5
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = load i32, ptr @test_count, align 4, !tbaa !5
  %2515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call ptr @s2n_strerror(i32 noundef %2516, ptr noundef nonnull @.str.24) #13
  %2518 = load i32, ptr %2515, align 4, !tbaa !5
  %2519 = call ptr @s2n_strerror_debug(i32 noundef %2518, ptr noundef nonnull @.str.24) #13
  %2520 = load i32, ptr %2501, align 4, !tbaa !5
  %2521 = call ptr @strerror(i32 noundef %2520) #13
  %2522 = load i32, ptr %2501, align 4, !tbaa !5
  %2523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2513, ptr noundef nonnull %.str.25.sink2497, i32 noundef %2514, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.21, i32 noundef 498, ptr noundef %2517, ptr noundef %2519, ptr noundef %2521, i32 noundef %2522) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2524:                                             ; preds = %2497
  %2525 = add nsw i32 %2439, 3
  store i32 %2525, ptr @test_count, align 4, !tbaa !5
  %2526 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not1190 = icmp eq i32 %2526, 0
  br i1 %.not1190, label %2527, label %2551

2527:                                             ; preds = %2524
  %2528 = tail call ptr @__errno_location() #14
  %2529 = load i32, ptr %2528, align 4, !tbaa !5
  %2530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2531 = call i32 @s2n_print_stacktrace(ptr noundef %2530) #13
  %2532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2533 = trunc nuw i8 %2532 to i1
  br i1 %2533, label %2534, label %2538

2534:                                             ; preds = %2527
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = call i32 @fileno(ptr noundef %2535) #13
  %2537 = call i32 @isatty(i32 noundef %2536) #13
  %.not1191 = icmp eq i32 %2537, 0
  br i1 %.not1191, label %2538, label %2539

2538:                                             ; preds = %2534, %2527
  br label %2539

2539:                                             ; preds = %2534, %2538
  %.str.25.sink2508 = phi ptr [ @.str.25, %2538 ], [ @.str.22, %2534 ]
  store i32 %2529, ptr %2528, align 4, !tbaa !5
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = load i32, ptr @test_count, align 4, !tbaa !5
  %2542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = call ptr @s2n_strerror(i32 noundef %2543, ptr noundef nonnull @.str.24) #13
  %2545 = load i32, ptr %2542, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror_debug(i32 noundef %2545, ptr noundef nonnull @.str.24) #13
  %2547 = load i32, ptr %2528, align 4, !tbaa !5
  %2548 = call ptr @strerror(i32 noundef %2547) #13
  %2549 = load i32, ptr %2528, align 4, !tbaa !5
  %2550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2540, ptr noundef nonnull %.str.25.sink2508, i32 noundef %2541, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.21, i32 noundef 499, ptr noundef %2544, ptr noundef %2546, ptr noundef %2548, i32 noundef %2549) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2551:                                             ; preds = %2524
  %2552 = add nsw i32 %2439, 4
  store i32 %2552, ptr @test_count, align 4, !tbaa !5
  %2553 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %5) #13
  %2554 = icmp eq i32 %2553, -1
  br i1 %2554, label %2555, label %2374

2555:                                             ; preds = %2551
  %2556 = tail call ptr @__errno_location() #14
  %2557 = load i32, ptr %2556, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = call i32 @s2n_print_stacktrace(ptr noundef %2558) #13
  %2560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2561 = trunc nuw i8 %2560 to i1
  br i1 %2561, label %2562, label %2566

2562:                                             ; preds = %2555
  %2563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2564 = call i32 @fileno(ptr noundef %2563) #13
  %2565 = call i32 @isatty(i32 noundef %2564) #13
  %.not1192 = icmp eq i32 %2565, 0
  br i1 %.not1192, label %2566, label %2567

2566:                                             ; preds = %2562, %2555
  br label %2567

2567:                                             ; preds = %2562, %2566
  %.str.25.sink2519 = phi ptr [ @.str.25, %2566 ], [ @.str.22, %2562 ]
  store i32 %2557, ptr %2556, align 4, !tbaa !5
  %2568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2569 = load i32, ptr @test_count, align 4, !tbaa !5
  %2570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2571 = load i32, ptr %2570, align 4, !tbaa !5
  %2572 = call ptr @s2n_strerror(i32 noundef %2571, ptr noundef nonnull @.str.24) #13
  %2573 = load i32, ptr %2570, align 4, !tbaa !5
  %2574 = call ptr @s2n_strerror_debug(i32 noundef %2573, ptr noundef nonnull @.str.24) #13
  %2575 = load i32, ptr %2556, align 4, !tbaa !5
  %2576 = call ptr @strerror(i32 noundef %2575) #13
  %2577 = load i32, ptr %2556, align 4, !tbaa !5
  %2578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2568, ptr noundef nonnull %.str.25.sink2519, i32 noundef %2569, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.21, i32 noundef 501, ptr noundef %2572, ptr noundef %2574, ptr noundef %2576, i32 noundef %2577) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2579:                                             ; preds = %._crit_edge1446
  %2580 = tail call ptr @__errno_location() #14
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2583 = call i32 @s2n_print_stacktrace(ptr noundef %2582) #13
  %2584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2585 = trunc nuw i8 %2584 to i1
  br i1 %2585, label %2586, label %2590

2586:                                             ; preds = %2579
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = call i32 @fileno(ptr noundef %2587) #13
  %2589 = call i32 @isatty(i32 noundef %2588) #13
  %.not1186 = icmp eq i32 %2589, 0
  br i1 %.not1186, label %2590, label %2591

2590:                                             ; preds = %2586, %2579
  br label %2591

2591:                                             ; preds = %2586, %2590
  %.str.25.sink2530 = phi ptr [ @.str.25, %2590 ], [ @.str.22, %2586 ]
  store i32 %2581, ptr %2580, align 4, !tbaa !5
  %2592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2593 = load i32, ptr @test_count, align 4, !tbaa !5
  %2594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2595 = load i32, ptr %2594, align 4, !tbaa !5
  %2596 = call ptr @s2n_strerror(i32 noundef %2595, ptr noundef nonnull @.str.24) #13
  %2597 = load i32, ptr %2594, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror_debug(i32 noundef %2597, ptr noundef nonnull @.str.24) #13
  %2599 = load i32, ptr %2580, align 4, !tbaa !5
  %2600 = call ptr @strerror(i32 noundef %2599) #13
  %2601 = load i32, ptr %2580, align 4, !tbaa !5
  %2602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2592, ptr noundef nonnull %.str.25.sink2530, i32 noundef %2593, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 505, ptr noundef %2596, ptr noundef %2598, ptr noundef %2600, i32 noundef %2601) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2603:                                             ; preds = %._crit_edge1446
  %2604 = load i32, ptr @test_count, align 4, !tbaa !5
  %2605 = add nsw i32 %2604, 1
  store i32 %2605, ptr @test_count, align 4, !tbaa !5
  %2606 = call i32 @s2n_connection_free(ptr noundef nonnull %2245) #13
  %2607 = icmp eq i32 %2606, -1
  br i1 %2607, label %2608, label %2632

2608:                                             ; preds = %2603
  %2609 = tail call ptr @__errno_location() #14
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2612 = call i32 @s2n_print_stacktrace(ptr noundef %2611) #13
  %2613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2614 = trunc nuw i8 %2613 to i1
  br i1 %2614, label %2615, label %2619

2615:                                             ; preds = %2608
  %2616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2617 = call i32 @fileno(ptr noundef %2616) #13
  %2618 = call i32 @isatty(i32 noundef %2617) #13
  %.not1185 = icmp eq i32 %2618, 0
  br i1 %.not1185, label %2619, label %2620

2619:                                             ; preds = %2615, %2608
  br label %2620

2620:                                             ; preds = %2615, %2619
  %.str.25.sink2541 = phi ptr [ @.str.25, %2619 ], [ @.str.22, %2615 ]
  store i32 %2610, ptr %2609, align 4, !tbaa !5
  %2621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2622 = load i32, ptr @test_count, align 4, !tbaa !5
  %2623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call ptr @s2n_strerror(i32 noundef %2624, ptr noundef nonnull @.str.24) #13
  %2626 = load i32, ptr %2623, align 4, !tbaa !5
  %2627 = call ptr @s2n_strerror_debug(i32 noundef %2626, ptr noundef nonnull @.str.24) #13
  %2628 = load i32, ptr %2609, align 4, !tbaa !5
  %2629 = call ptr @strerror(i32 noundef %2628) #13
  %2630 = load i32, ptr %2609, align 4, !tbaa !5
  %2631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2621, ptr noundef nonnull %.str.25.sink2541, i32 noundef %2622, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 506, ptr noundef %2625, ptr noundef %2627, ptr noundef %2629, i32 noundef %2630) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2632:                                             ; preds = %2603
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #13
  %2633 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %2634 = getelementptr inbounds i8, ptr %2633, i64 220
  store i8 34, ptr %2634, align 4, !tbaa !27
  %2635 = load i32, ptr @test_count, align 4, !tbaa !5
  %2636 = add nsw i32 %2635, 1
  store i32 %2636, ptr @test_count, align 4, !tbaa !5
  %2637 = call i32 @s2n_conn_choose_state_machine(ptr noundef %2633, i8 noundef zeroext 34)
  %2638 = call zeroext i1 @s2n_result_is_ok(i32 %2637)
  br i1 %2638, label %2663, label %2639

2639:                                             ; preds = %2632
  %2640 = tail call ptr @__errno_location() #14
  %2641 = load i32, ptr %2640, align 4, !tbaa !5
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = call i32 @s2n_print_stacktrace(ptr noundef %2642) #13
  %2644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2645 = trunc nuw i8 %2644 to i1
  br i1 %2645, label %2646, label %2650

2646:                                             ; preds = %2639
  %2647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2648 = call i32 @fileno(ptr noundef %2647) #13
  %2649 = call i32 @isatty(i32 noundef %2648) #13
  %.not1011 = icmp eq i32 %2649, 0
  br i1 %.not1011, label %2650, label %2651

2650:                                             ; preds = %2646, %2639
  br label %2651

2651:                                             ; preds = %2646, %2650
  %.str.25.sink2552 = phi ptr [ @.str.25, %2650 ], [ @.str.22, %2646 ]
  store i32 %2641, ptr %2640, align 4, !tbaa !5
  %2652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2653 = load i32, ptr @test_count, align 4, !tbaa !5
  %2654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2655 = load i32, ptr %2654, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror(i32 noundef %2655, ptr noundef nonnull @.str.24) #13
  %2657 = load i32, ptr %2654, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror_debug(i32 noundef %2657, ptr noundef nonnull @.str.24) #13
  %2659 = load i32, ptr %2640, align 4, !tbaa !5
  %2660 = call ptr @strerror(i32 noundef %2659) #13
  %2661 = load i32, ptr %2640, align 4, !tbaa !5
  %2662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2652, ptr noundef nonnull %.str.25.sink2552, i32 noundef %2653, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 515, ptr noundef %2656, ptr noundef %2658, ptr noundef %2660, i32 noundef %2661) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2663:                                             ; preds = %2632
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %2664 = load i32, ptr @test_count, align 4, !tbaa !5
  %2665 = add nsw i32 %2664, 1
  store i32 %2665, ptr @test_count, align 4, !tbaa !5
  %2666 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #13
  %2667 = icmp eq i32 %2666, -1
  br i1 %2667, label %2668, label %2692

2668:                                             ; preds = %2663
  %2669 = tail call ptr @__errno_location() #14
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = call i32 @s2n_print_stacktrace(ptr noundef %2671) #13
  %2673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2674 = trunc nuw i8 %2673 to i1
  br i1 %2674, label %2675, label %2679

2675:                                             ; preds = %2668
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = call i32 @fileno(ptr noundef %2676) #13
  %2678 = call i32 @isatty(i32 noundef %2677) #13
  %.not1184 = icmp eq i32 %2678, 0
  br i1 %.not1184, label %2679, label %2680

2679:                                             ; preds = %2675, %2668
  br label %2680

2680:                                             ; preds = %2675, %2679
  %.str.25.sink2563 = phi ptr [ @.str.25, %2679 ], [ @.str.22, %2675 ]
  store i32 %2670, ptr %2669, align 4, !tbaa !5
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = load i32, ptr @test_count, align 4, !tbaa !5
  %2683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2684 = load i32, ptr %2683, align 4, !tbaa !5
  %2685 = call ptr @s2n_strerror(i32 noundef %2684, ptr noundef nonnull @.str.24) #13
  %2686 = load i32, ptr %2683, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror_debug(i32 noundef %2686, ptr noundef nonnull @.str.24) #13
  %2688 = load i32, ptr %2669, align 4, !tbaa !5
  %2689 = call ptr @strerror(i32 noundef %2688) #13
  %2690 = load i32, ptr %2669, align 4, !tbaa !5
  %2691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2681, ptr noundef nonnull %.str.25.sink2563, i32 noundef %2682, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 518, ptr noundef %2685, ptr noundef %2687, ptr noundef %2689, i32 noundef %2690) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2692:                                             ; preds = %2663
  %2693 = load i32, ptr @test_count, align 4, !tbaa !5
  %2694 = add nsw i32 %2693, 1
  store i32 %2694, ptr @test_count, align 4, !tbaa !5
  %2695 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %6, ptr noundef null, ptr noundef nonnull %2633) #13
  %2696 = icmp eq i32 %2695, -1
  br i1 %2696, label %2697, label %2721

2697:                                             ; preds = %2692
  %2698 = tail call ptr @__errno_location() #14
  %2699 = load i32, ptr %2698, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = call i32 @s2n_print_stacktrace(ptr noundef %2700) #13
  %2702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2703 = trunc nuw i8 %2702 to i1
  br i1 %2703, label %2704, label %2708

2704:                                             ; preds = %2697
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = call i32 @fileno(ptr noundef %2705) #13
  %2707 = call i32 @isatty(i32 noundef %2706) #13
  %.not1183 = icmp eq i32 %2707, 0
  br i1 %.not1183, label %2708, label %2709

2708:                                             ; preds = %2704, %2697
  br label %2709

2709:                                             ; preds = %2704, %2708
  %.str.25.sink2574 = phi ptr [ @.str.25, %2708 ], [ @.str.22, %2704 ]
  store i32 %2699, ptr %2698, align 4, !tbaa !5
  %2710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror(i32 noundef %2713, ptr noundef nonnull @.str.24) #13
  %2715 = load i32, ptr %2712, align 4, !tbaa !5
  %2716 = call ptr @s2n_strerror_debug(i32 noundef %2715, ptr noundef nonnull @.str.24) #13
  %2717 = load i32, ptr %2698, align 4, !tbaa !5
  %2718 = call ptr @strerror(i32 noundef %2717) #13
  %2719 = load i32, ptr %2698, align 4, !tbaa !5
  %2720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2710, ptr noundef nonnull %.str.25.sink2574, i32 noundef %2711, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 519, ptr noundef %2714, ptr noundef %2716, ptr noundef %2718, i32 noundef %2719) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2721:                                             ; preds = %2692
  %2722 = getelementptr inbounds i8, ptr %2633, i64 2172
  store i32 0, ptr %2722, align 4, !tbaa !58
  %2723 = getelementptr inbounds i8, ptr %2633, i64 2176
  store i32 0, ptr %2723, align 8, !tbaa !59
  %2724 = getelementptr inbounds i8, ptr %2633, i64 232
  %2725 = load ptr, ptr %2724, align 8, !tbaa !69
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %2725, align 8, !tbaa !70
  %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 %2633, i64 2204
  %2729 = load i32, ptr %2728, align 4, !tbaa !57
  %2730 = icmp eq i32 %2729, 2
  %tls13_handshakes.val = load i32, ptr @tls13_handshakes, align 16
  %handshakes.val = load i32, ptr @handshakes, align 16
  %2731 = select i1 %2730, i32 %tls13_handshakes.val, i32 %handshakes.val
  %2732 = icmp eq i32 %2731, 0
  br i1 %2732, label %2757, label %2733

2733:                                             ; preds = %2721
  %2734 = tail call ptr @__errno_location() #14
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = call i32 @s2n_print_stacktrace(ptr noundef %2736) #13
  %2738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2739 = trunc nuw i8 %2738 to i1
  br i1 %2739, label %2740, label %2744

2740:                                             ; preds = %2733
  %2741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2742 = call i32 @fileno(ptr noundef %2741) #13
  %2743 = call i32 @isatty(i32 noundef %2742) #13
  %.not1012 = icmp eq i32 %2743, 0
  br i1 %.not1012, label %2744, label %2745

2744:                                             ; preds = %2740, %2733
  br label %2745

2745:                                             ; preds = %2740, %2744
  %.str.25.sink2585 = phi ptr [ @.str.25, %2744 ], [ @.str.22, %2740 ]
  store i32 %2735, ptr %2734, align 4, !tbaa !5
  %2746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2747 = load i32, ptr @test_count, align 4, !tbaa !5
  %2748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2749 = load i32, ptr %2748, align 4, !tbaa !5
  %2750 = call ptr @s2n_strerror(i32 noundef %2749, ptr noundef nonnull @.str.24) #13
  %2751 = load i32, ptr %2748, align 4, !tbaa !5
  %2752 = call ptr @s2n_strerror_debug(i32 noundef %2751, ptr noundef nonnull @.str.24) #13
  %2753 = load i32, ptr %2734, align 4, !tbaa !5
  %2754 = call ptr @strerror(i32 noundef %2753) #13
  %2755 = load i32, ptr %2734, align 4, !tbaa !5
  %2756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2746, ptr noundef nonnull %.str.25.sink2585, i32 noundef %2747, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.21, i32 noundef 524, ptr noundef %2750, ptr noundef %2752, ptr noundef %2754, i32 noundef %2755) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2757:                                             ; preds = %2721
  %2758 = add nsw i32 %2726, 2
  store i32 %2758, ptr @test_count, align 4, !tbaa !5
  %2759 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %2760 = icmp eq i32 %2759, -1
  br i1 %2760, label %2761, label %2785

2761:                                             ; preds = %2757
  %2762 = tail call ptr @__errno_location() #14
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2765 = call i32 @s2n_print_stacktrace(ptr noundef %2764) #13
  %2766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2767 = trunc nuw i8 %2766 to i1
  br i1 %2767, label %2768, label %2772

2768:                                             ; preds = %2761
  %2769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2770 = call i32 @fileno(ptr noundef %2769) #13
  %2771 = call i32 @isatty(i32 noundef %2770) #13
  %.not1182 = icmp eq i32 %2771, 0
  br i1 %.not1182, label %2772, label %2773

2772:                                             ; preds = %2768, %2761
  br label %2773

2773:                                             ; preds = %2768, %2772
  %.str.25.sink2596 = phi ptr [ @.str.25, %2772 ], [ @.str.22, %2768 ]
  store i32 %2763, ptr %2762, align 4, !tbaa !5
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = load i32, ptr @test_count, align 4, !tbaa !5
  %2776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2777 = load i32, ptr %2776, align 4, !tbaa !5
  %2778 = call ptr @s2n_strerror(i32 noundef %2777, ptr noundef nonnull @.str.24) #13
  %2779 = load i32, ptr %2776, align 4, !tbaa !5
  %2780 = call ptr @s2n_strerror_debug(i32 noundef %2779, ptr noundef nonnull @.str.24) #13
  %2781 = load i32, ptr %2762, align 4, !tbaa !5
  %2782 = call ptr @strerror(i32 noundef %2781) #13
  %2783 = load i32, ptr %2762, align 4, !tbaa !5
  %2784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2774, ptr noundef nonnull %.str.25.sink2596, i32 noundef %2775, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.21, i32 noundef 525, ptr noundef %2778, ptr noundef %2780, ptr noundef %2782, i32 noundef %2783) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2785:                                             ; preds = %2757
  %2786 = load i32, ptr @test_count, align 4, !tbaa !5
  %2787 = add nsw i32 %2786, 1
  store i32 %2787, ptr @test_count, align 4, !tbaa !5
  %2788 = call i32 @s2n_test_write_header(ptr noundef nonnull %6, i8 noundef zeroext 22, i8 noundef zeroext 1)
  %2789 = icmp eq i32 %2788, -1
  br i1 %2789, label %2790, label %2814

2790:                                             ; preds = %2785
  %2791 = tail call ptr @__errno_location() #14
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2794 = call i32 @s2n_print_stacktrace(ptr noundef %2793) #13
  %2795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2796 = trunc nuw i8 %2795 to i1
  br i1 %2796, label %2797, label %2801

2797:                                             ; preds = %2790
  %2798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2799 = call i32 @fileno(ptr noundef %2798) #13
  %2800 = call i32 @isatty(i32 noundef %2799) #13
  %.not1181 = icmp eq i32 %2800, 0
  br i1 %.not1181, label %2801, label %2802

2801:                                             ; preds = %2797, %2790
  br label %2802

2802:                                             ; preds = %2797, %2801
  %.str.25.sink2607 = phi ptr [ @.str.25, %2801 ], [ @.str.22, %2797 ]
  store i32 %2792, ptr %2791, align 4, !tbaa !5
  %2803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2804 = load i32, ptr @test_count, align 4, !tbaa !5
  %2805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  %2807 = call ptr @s2n_strerror(i32 noundef %2806, ptr noundef nonnull @.str.24) #13
  %2808 = load i32, ptr %2805, align 4, !tbaa !5
  %2809 = call ptr @s2n_strerror_debug(i32 noundef %2808, ptr noundef nonnull @.str.24) #13
  %2810 = load i32, ptr %2791, align 4, !tbaa !5
  %2811 = call ptr @strerror(i32 noundef %2810) #13
  %2812 = load i32, ptr %2791, align 4, !tbaa !5
  %2813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2803, ptr noundef nonnull %.str.25.sink2607, i32 noundef %2804, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.21, i32 noundef 527, ptr noundef %2807, ptr noundef %2809, ptr noundef %2811, i32 noundef %2812) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2814:                                             ; preds = %2785
  %2815 = load i32, ptr @test_count, align 4, !tbaa !5
  %2816 = add nsw i32 %2815, 1
  store i32 %2816, ptr @test_count, align 4, !tbaa !5
  %2817 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2633)
  %2818 = icmp eq i32 %2817, -1
  br i1 %2818, label %2819, label %2843

2819:                                             ; preds = %2814
  %2820 = tail call ptr @__errno_location() #14
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = call i32 @s2n_print_stacktrace(ptr noundef %2822) #13
  %2824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2825 = trunc nuw i8 %2824 to i1
  br i1 %2825, label %2826, label %2830

2826:                                             ; preds = %2819
  %2827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2828 = call i32 @fileno(ptr noundef %2827) #13
  %2829 = call i32 @isatty(i32 noundef %2828) #13
  %.not1180 = icmp eq i32 %2829, 0
  br i1 %.not1180, label %2830, label %2831

2830:                                             ; preds = %2826, %2819
  br label %2831

2831:                                             ; preds = %2826, %2830
  %.str.25.sink2618 = phi ptr [ @.str.25, %2830 ], [ @.str.22, %2826 ]
  store i32 %2821, ptr %2820, align 4, !tbaa !5
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = load i32, ptr @test_count, align 4, !tbaa !5
  %2834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = call ptr @s2n_strerror(i32 noundef %2835, ptr noundef nonnull @.str.24) #13
  %2837 = load i32, ptr %2834, align 4, !tbaa !5
  %2838 = call ptr @s2n_strerror_debug(i32 noundef %2837, ptr noundef nonnull @.str.24) #13
  %2839 = load i32, ptr %2820, align 4, !tbaa !5
  %2840 = call ptr @strerror(i32 noundef %2839) #13
  %2841 = load i32, ptr %2820, align 4, !tbaa !5
  %2842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2832, ptr noundef nonnull %.str.25.sink2618, i32 noundef %2833, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.21, i32 noundef 528, ptr noundef %2836, ptr noundef %2838, ptr noundef %2840, i32 noundef %2841) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2843:                                             ; preds = %2814
  %2844 = load i32, ptr @test_count, align 4, !tbaa !5
  %2845 = add nsw i32 %2844, 1
  store i32 %2845, ptr @test_count, align 4, !tbaa !5
  %2846 = load i32, ptr %2723, align 8, !tbaa !59
  %2847 = icmp eq i32 %2846, 1
  br i1 %2847, label %2872, label %2848

2848:                                             ; preds = %2843
  %2849 = tail call ptr @__errno_location() #14
  %2850 = load i32, ptr %2849, align 4, !tbaa !5
  %2851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2852 = call i32 @s2n_print_stacktrace(ptr noundef %2851) #13
  %2853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2854 = trunc nuw i8 %2853 to i1
  br i1 %2854, label %2855, label %2859

2855:                                             ; preds = %2848
  %2856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2857 = call i32 @fileno(ptr noundef %2856) #13
  %2858 = call i32 @isatty(i32 noundef %2857) #13
  %.not1013 = icmp eq i32 %2858, 0
  br i1 %.not1013, label %2859, label %2860

2859:                                             ; preds = %2855, %2848
  br label %2860

2860:                                             ; preds = %2855, %2859
  %.str.25.sink2629 = phi ptr [ @.str.25, %2859 ], [ @.str.22, %2855 ]
  store i32 %2850, ptr %2849, align 4, !tbaa !5
  %2861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2862 = load i32, ptr @test_count, align 4, !tbaa !5
  %2863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call ptr @s2n_strerror(i32 noundef %2864, ptr noundef nonnull @.str.24) #13
  %2866 = load i32, ptr %2863, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror_debug(i32 noundef %2866, ptr noundef nonnull @.str.24) #13
  %2868 = load i32, ptr %2849, align 4, !tbaa !5
  %2869 = call ptr @strerror(i32 noundef %2868) #13
  %2870 = load i32, ptr %2849, align 4, !tbaa !5
  %2871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2861, ptr noundef nonnull %.str.25.sink2629, i32 noundef %2862, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.21, i32 noundef 530, ptr noundef %2865, ptr noundef %2867, ptr noundef %2869, i32 noundef %2870) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2872:                                             ; preds = %2843
  %2873 = add nsw i32 %2844, 2
  store i32 %2873, ptr @test_count, align 4, !tbaa !5
  %2874 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not1014 = icmp eq i32 %2874, 0
  br i1 %.not1014, label %2899, label %2875

2875:                                             ; preds = %2872
  %2876 = tail call ptr @__errno_location() #14
  %2877 = load i32, ptr %2876, align 4, !tbaa !5
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = call i32 @s2n_print_stacktrace(ptr noundef %2878) #13
  %2880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2881 = trunc nuw i8 %2880 to i1
  br i1 %2881, label %2882, label %2886

2882:                                             ; preds = %2875
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = call i32 @fileno(ptr noundef %2883) #13
  %2885 = call i32 @isatty(i32 noundef %2884) #13
  %.not1179 = icmp eq i32 %2885, 0
  br i1 %.not1179, label %2886, label %2887

2886:                                             ; preds = %2882, %2875
  br label %2887

2887:                                             ; preds = %2882, %2886
  %.str.25.sink2640 = phi ptr [ @.str.25, %2886 ], [ @.str.22, %2882 ]
  store i32 %2877, ptr %2876, align 4, !tbaa !5
  %2888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2889 = load i32, ptr @test_count, align 4, !tbaa !5
  %2890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2891 = load i32, ptr %2890, align 4, !tbaa !5
  %2892 = call ptr @s2n_strerror(i32 noundef %2891, ptr noundef nonnull @.str.24) #13
  %2893 = load i32, ptr %2890, align 4, !tbaa !5
  %2894 = call ptr @s2n_strerror_debug(i32 noundef %2893, ptr noundef nonnull @.str.24) #13
  %2895 = load i32, ptr %2876, align 4, !tbaa !5
  %2896 = call ptr @strerror(i32 noundef %2895) #13
  %2897 = load i32, ptr %2876, align 4, !tbaa !5
  %2898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2888, ptr noundef nonnull %.str.25.sink2640, i32 noundef %2889, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.21, i32 noundef 531, ptr noundef %2892, ptr noundef %2894, ptr noundef %2896, i32 noundef %2897) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2899:                                             ; preds = %2872
  %2900 = add nsw i32 %2844, 3
  store i32 %2900, ptr @test_count, align 4, !tbaa !5
  %2901 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not1015 = icmp eq i32 %2901, 0
  br i1 %.not1015, label %2902, label %2926

2902:                                             ; preds = %2899
  %2903 = tail call ptr @__errno_location() #14
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = call i32 @s2n_print_stacktrace(ptr noundef %2905) #13
  %2907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2908 = trunc nuw i8 %2907 to i1
  br i1 %2908, label %2909, label %2913

2909:                                             ; preds = %2902
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = call i32 @fileno(ptr noundef %2910) #13
  %2912 = call i32 @isatty(i32 noundef %2911) #13
  %.not1016 = icmp eq i32 %2912, 0
  br i1 %.not1016, label %2913, label %2914

2913:                                             ; preds = %2909, %2902
  br label %2914

2914:                                             ; preds = %2909, %2913
  %.str.25.sink2651 = phi ptr [ @.str.25, %2913 ], [ @.str.22, %2909 ]
  store i32 %2904, ptr %2903, align 4, !tbaa !5
  %2915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2916 = load i32, ptr @test_count, align 4, !tbaa !5
  %2917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2918 = load i32, ptr %2917, align 4, !tbaa !5
  %2919 = call ptr @s2n_strerror(i32 noundef %2918, ptr noundef nonnull @.str.24) #13
  %2920 = load i32, ptr %2917, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror_debug(i32 noundef %2920, ptr noundef nonnull @.str.24) #13
  %2922 = load i32, ptr %2903, align 4, !tbaa !5
  %2923 = call ptr @strerror(i32 noundef %2922) #13
  %2924 = load i32, ptr %2903, align 4, !tbaa !5
  %2925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2915, ptr noundef nonnull %.str.25.sink2651, i32 noundef %2916, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.21, i32 noundef 532, ptr noundef %2919, ptr noundef %2921, ptr noundef %2923, i32 noundef %2924) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2926:                                             ; preds = %2899
  %2927 = add nsw i32 %2844, 4
  store i32 %2927, ptr @test_count, align 4, !tbaa !5
  %2928 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #13
  %2929 = icmp eq i32 %2928, -1
  br i1 %2929, label %2930, label %2954

2930:                                             ; preds = %2926
  %2931 = tail call ptr @__errno_location() #14
  %2932 = load i32, ptr %2931, align 4, !tbaa !5
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = call i32 @s2n_print_stacktrace(ptr noundef %2933) #13
  %2935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2936 = trunc nuw i8 %2935 to i1
  br i1 %2936, label %2937, label %2941

2937:                                             ; preds = %2930
  %2938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2939 = call i32 @fileno(ptr noundef %2938) #13
  %2940 = call i32 @isatty(i32 noundef %2939) #13
  %.not1178 = icmp eq i32 %2940, 0
  br i1 %.not1178, label %2941, label %2942

2941:                                             ; preds = %2937, %2930
  br label %2942

2942:                                             ; preds = %2937, %2941
  %.str.25.sink2662 = phi ptr [ @.str.25, %2941 ], [ @.str.22, %2937 ]
  store i32 %2932, ptr %2931, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef nonnull @.str.24) #13
  %2948 = load i32, ptr %2945, align 4, !tbaa !5
  %2949 = call ptr @s2n_strerror_debug(i32 noundef %2948, ptr noundef nonnull @.str.24) #13
  %2950 = load i32, ptr %2931, align 4, !tbaa !5
  %2951 = call ptr @strerror(i32 noundef %2950) #13
  %2952 = load i32, ptr %2931, align 4, !tbaa !5
  %2953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef nonnull %.str.25.sink2662, i32 noundef %2944, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 534, ptr noundef %2947, ptr noundef %2949, ptr noundef %2951, i32 noundef %2952) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2954:                                             ; preds = %2926
  %2955 = load i32, ptr @test_count, align 4, !tbaa !5
  %2956 = add nsw i32 %2955, 1
  store i32 %2956, ptr @test_count, align 4, !tbaa !5
  %2957 = call i32 @s2n_connection_free(ptr noundef nonnull %2633) #13
  %2958 = icmp eq i32 %2957, -1
  br i1 %2958, label %2959, label %2983

2959:                                             ; preds = %2954
  %2960 = tail call ptr @__errno_location() #14
  %2961 = load i32, ptr %2960, align 4, !tbaa !5
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = call i32 @s2n_print_stacktrace(ptr noundef %2962) #13
  %2964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2965 = trunc nuw i8 %2964 to i1
  br i1 %2965, label %2966, label %2970

2966:                                             ; preds = %2959
  %2967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2968 = call i32 @fileno(ptr noundef %2967) #13
  %2969 = call i32 @isatty(i32 noundef %2968) #13
  %.not1177 = icmp eq i32 %2969, 0
  br i1 %.not1177, label %2970, label %2971

2970:                                             ; preds = %2966, %2959
  br label %2971

2971:                                             ; preds = %2966, %2970
  %.str.25.sink2673 = phi ptr [ @.str.25, %2970 ], [ @.str.22, %2966 ]
  store i32 %2961, ptr %2960, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror(i32 noundef %2975, ptr noundef nonnull @.str.24) #13
  %2977 = load i32, ptr %2974, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror_debug(i32 noundef %2977, ptr noundef nonnull @.str.24) #13
  %2979 = load i32, ptr %2960, align 4, !tbaa !5
  %2980 = call ptr @strerror(i32 noundef %2979) #13
  %2981 = load i32, ptr %2960, align 4, !tbaa !5
  %2982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2972, ptr noundef nonnull %.str.25.sink2673, i32 noundef %2973, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 535, ptr noundef %2976, ptr noundef %2978, ptr noundef %2980, i32 noundef %2981) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2983:                                             ; preds = %2954
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #13
  %2984 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %2985 = getelementptr inbounds i8, ptr %2984, i64 220
  store i8 34, ptr %2985, align 4, !tbaa !27
  %2986 = load i32, ptr @test_count, align 4, !tbaa !5
  %2987 = add nsw i32 %2986, 1
  store i32 %2987, ptr @test_count, align 4, !tbaa !5
  %2988 = call i32 @s2n_conn_choose_state_machine(ptr noundef %2984, i8 noundef zeroext 34)
  %2989 = call zeroext i1 @s2n_result_is_ok(i32 %2988)
  br i1 %2989, label %3014, label %2990

2990:                                             ; preds = %2983
  %2991 = tail call ptr @__errno_location() #14
  %2992 = load i32, ptr %2991, align 4, !tbaa !5
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2994 = call i32 @s2n_print_stacktrace(ptr noundef %2993) #13
  %2995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2996 = trunc nuw i8 %2995 to i1
  br i1 %2996, label %2997, label %3001

2997:                                             ; preds = %2990
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = call i32 @fileno(ptr noundef %2998) #13
  %3000 = call i32 @isatty(i32 noundef %2999) #13
  %.not1017 = icmp eq i32 %3000, 0
  br i1 %.not1017, label %3001, label %3002

3001:                                             ; preds = %2997, %2990
  br label %3002

3002:                                             ; preds = %2997, %3001
  %.str.25.sink2684 = phi ptr [ @.str.25, %3001 ], [ @.str.22, %2997 ]
  store i32 %2992, ptr %2991, align 4, !tbaa !5
  %3003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3004 = load i32, ptr @test_count, align 4, !tbaa !5
  %3005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3006 = load i32, ptr %3005, align 4, !tbaa !5
  %3007 = call ptr @s2n_strerror(i32 noundef %3006, ptr noundef nonnull @.str.24) #13
  %3008 = load i32, ptr %3005, align 4, !tbaa !5
  %3009 = call ptr @s2n_strerror_debug(i32 noundef %3008, ptr noundef nonnull @.str.24) #13
  %3010 = load i32, ptr %2991, align 4, !tbaa !5
  %3011 = call ptr @strerror(i32 noundef %3010) #13
  %3012 = load i32, ptr %2991, align 4, !tbaa !5
  %3013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3003, ptr noundef nonnull %.str.25.sink2684, i32 noundef %3004, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 542, ptr noundef %3007, ptr noundef %3009, ptr noundef %3011, i32 noundef %3012) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3014:                                             ; preds = %2983
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %3015 = load i32, ptr @test_count, align 4, !tbaa !5
  %3016 = add nsw i32 %3015, 1
  store i32 %3016, ptr @test_count, align 4, !tbaa !5
  %3017 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #13
  %3018 = icmp eq i32 %3017, -1
  br i1 %3018, label %3019, label %3043

3019:                                             ; preds = %3014
  %3020 = tail call ptr @__errno_location() #14
  %3021 = load i32, ptr %3020, align 4, !tbaa !5
  %3022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3023 = call i32 @s2n_print_stacktrace(ptr noundef %3022) #13
  %3024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3025 = trunc nuw i8 %3024 to i1
  br i1 %3025, label %3026, label %3030

3026:                                             ; preds = %3019
  %3027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3028 = call i32 @fileno(ptr noundef %3027) #13
  %3029 = call i32 @isatty(i32 noundef %3028) #13
  %.not1176 = icmp eq i32 %3029, 0
  br i1 %.not1176, label %3030, label %3031

3030:                                             ; preds = %3026, %3019
  br label %3031

3031:                                             ; preds = %3026, %3030
  %.str.25.sink2695 = phi ptr [ @.str.25, %3030 ], [ @.str.22, %3026 ]
  store i32 %3021, ptr %3020, align 4, !tbaa !5
  %3032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3033 = load i32, ptr @test_count, align 4, !tbaa !5
  %3034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3035 = load i32, ptr %3034, align 4, !tbaa !5
  %3036 = call ptr @s2n_strerror(i32 noundef %3035, ptr noundef nonnull @.str.24) #13
  %3037 = load i32, ptr %3034, align 4, !tbaa !5
  %3038 = call ptr @s2n_strerror_debug(i32 noundef %3037, ptr noundef nonnull @.str.24) #13
  %3039 = load i32, ptr %3020, align 4, !tbaa !5
  %3040 = call ptr @strerror(i32 noundef %3039) #13
  %3041 = load i32, ptr %3020, align 4, !tbaa !5
  %3042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3032, ptr noundef nonnull %.str.25.sink2695, i32 noundef %3033, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 545, ptr noundef %3036, ptr noundef %3038, ptr noundef %3040, i32 noundef %3041) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3043:                                             ; preds = %3014
  %3044 = load i32, ptr @test_count, align 4, !tbaa !5
  %3045 = add nsw i32 %3044, 1
  store i32 %3045, ptr @test_count, align 4, !tbaa !5
  %3046 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %7, ptr noundef null, ptr noundef nonnull %2984) #13
  %3047 = icmp eq i32 %3046, -1
  br i1 %3047, label %3048, label %3072

3048:                                             ; preds = %3043
  %3049 = tail call ptr @__errno_location() #14
  %3050 = load i32, ptr %3049, align 4, !tbaa !5
  %3051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3052 = call i32 @s2n_print_stacktrace(ptr noundef %3051) #13
  %3053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3054 = trunc nuw i8 %3053 to i1
  br i1 %3054, label %3055, label %3059

3055:                                             ; preds = %3048
  %3056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3057 = call i32 @fileno(ptr noundef %3056) #13
  %3058 = call i32 @isatty(i32 noundef %3057) #13
  %.not1175 = icmp eq i32 %3058, 0
  br i1 %.not1175, label %3059, label %3060

3059:                                             ; preds = %3055, %3048
  br label %3060

3060:                                             ; preds = %3055, %3059
  %.str.25.sink2706 = phi ptr [ @.str.25, %3059 ], [ @.str.22, %3055 ]
  store i32 %3050, ptr %3049, align 4, !tbaa !5
  %3061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3062 = load i32, ptr @test_count, align 4, !tbaa !5
  %3063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3064 = load i32, ptr %3063, align 4, !tbaa !5
  %3065 = call ptr @s2n_strerror(i32 noundef %3064, ptr noundef nonnull @.str.24) #13
  %3066 = load i32, ptr %3063, align 4, !tbaa !5
  %3067 = call ptr @s2n_strerror_debug(i32 noundef %3066, ptr noundef nonnull @.str.24) #13
  %3068 = load i32, ptr %3049, align 4, !tbaa !5
  %3069 = call ptr @strerror(i32 noundef %3068) #13
  %3070 = load i32, ptr %3049, align 4, !tbaa !5
  %3071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3061, ptr noundef nonnull %.str.25.sink2706, i32 noundef %3062, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 546, ptr noundef %3065, ptr noundef %3067, ptr noundef %3069, i32 noundef %3070) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3072:                                             ; preds = %3043
  %3073 = getelementptr inbounds i8, ptr %2984, i64 2172
  store i32 0, ptr %3073, align 4, !tbaa !58
  %3074 = getelementptr inbounds i8, ptr %2984, i64 2176
  store i32 0, ptr %3074, align 8, !tbaa !59
  %3075 = load i32, ptr @test_count, align 4, !tbaa !5
  %3076 = add nsw i32 %3075, 1
  store i32 %3076, ptr @test_count, align 4, !tbaa !5
  %3077 = getelementptr inbounds i8, ptr %2984, i64 2204
  %3078 = load i32, ptr %3077, align 4, !tbaa !57
  %3079 = icmp eq i32 %3078, 2
  %tls13_handshakes.val1656 = load i32, ptr @tls13_handshakes, align 16
  %handshakes.val1657 = load i32, ptr @handshakes, align 16
  %3080 = select i1 %3079, i32 %tls13_handshakes.val1656, i32 %handshakes.val1657
  %3081 = icmp eq i32 %3080, 0
  br i1 %3081, label %3106, label %3082

3082:                                             ; preds = %3072
  %3083 = tail call ptr @__errno_location() #14
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = call i32 @s2n_print_stacktrace(ptr noundef %3085) #13
  %3087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3088 = trunc nuw i8 %3087 to i1
  br i1 %3088, label %3089, label %3093

3089:                                             ; preds = %3082
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = call i32 @fileno(ptr noundef %3090) #13
  %3092 = call i32 @isatty(i32 noundef %3091) #13
  %.not1018 = icmp eq i32 %3092, 0
  br i1 %.not1018, label %3093, label %3094

3093:                                             ; preds = %3089, %3082
  br label %3094

3094:                                             ; preds = %3089, %3093
  %.str.25.sink2717 = phi ptr [ @.str.25, %3093 ], [ @.str.22, %3089 ]
  store i32 %3084, ptr %3083, align 4, !tbaa !5
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = load i32, ptr @test_count, align 4, !tbaa !5
  %3097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call ptr @s2n_strerror(i32 noundef %3098, ptr noundef nonnull @.str.24) #13
  %3100 = load i32, ptr %3097, align 4, !tbaa !5
  %3101 = call ptr @s2n_strerror_debug(i32 noundef %3100, ptr noundef nonnull @.str.24) #13
  %3102 = load i32, ptr %3083, align 4, !tbaa !5
  %3103 = call ptr @strerror(i32 noundef %3102) #13
  %3104 = load i32, ptr %3083, align 4, !tbaa !5
  %3105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3095, ptr noundef nonnull %.str.25.sink2717, i32 noundef %3096, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.21, i32 noundef 550, ptr noundef %3099, ptr noundef %3101, ptr noundef %3103, i32 noundef %3104) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3106:                                             ; preds = %3072
  %3107 = add nsw i32 %3075, 2
  store i32 %3107, ptr @test_count, align 4, !tbaa !5
  %3108 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %3109 = icmp eq i32 %3108, -1
  br i1 %3109, label %3110, label %3134

3110:                                             ; preds = %3106
  %3111 = tail call ptr @__errno_location() #14
  %3112 = load i32, ptr %3111, align 4, !tbaa !5
  %3113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3114 = call i32 @s2n_print_stacktrace(ptr noundef %3113) #13
  %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 = %3110
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = call i32 @fileno(ptr noundef %3118) #13
  %3120 = call i32 @isatty(i32 noundef %3119) #13
  %.not1174 = icmp eq i32 %3120, 0
  br i1 %.not1174, label %3121, label %3122

3121:                                             ; preds = %3117, %3110
  br label %3122

3122:                                             ; preds = %3117, %3121
  %.str.25.sink2728 = phi ptr [ @.str.25, %3121 ], [ @.str.22, %3117 ]
  store i32 %3112, ptr %3111, align 4, !tbaa !5
  %3123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3124 = load i32, ptr @test_count, align 4, !tbaa !5
  %3125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3126 = load i32, ptr %3125, align 4, !tbaa !5
  %3127 = call ptr @s2n_strerror(i32 noundef %3126, ptr noundef nonnull @.str.24) #13
  %3128 = load i32, ptr %3125, align 4, !tbaa !5
  %3129 = call ptr @s2n_strerror_debug(i32 noundef %3128, ptr noundef nonnull @.str.24) #13
  %3130 = load i32, ptr %3111, align 4, !tbaa !5
  %3131 = call ptr @strerror(i32 noundef %3130) #13
  %3132 = load i32, ptr %3111, align 4, !tbaa !5
  %3133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3123, ptr noundef nonnull %.str.25.sink2728, i32 noundef %3124, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.21, i32 noundef 551, ptr noundef %3127, ptr noundef %3129, ptr noundef %3131, i32 noundef %3132) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3134:                                             ; preds = %3106
  %3135 = load i32, ptr @test_count, align 4, !tbaa !5
  %3136 = add nsw i32 %3135, 1
  store i32 %3136, ptr @test_count, align 4, !tbaa !5
  %3137 = call i32 @s2n_test_write_header(ptr noundef nonnull %7, i8 noundef zeroext 22, i8 noundef zeroext 11)
  %3138 = icmp eq i32 %3137, -1
  br i1 %3138, label %3139, label %3163

3139:                                             ; preds = %3134
  %3140 = tail call ptr @__errno_location() #14
  %3141 = load i32, ptr %3140, align 4, !tbaa !5
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = call i32 @s2n_print_stacktrace(ptr noundef %3142) #13
  %3144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3145 = trunc nuw i8 %3144 to i1
  br i1 %3145, label %3146, label %3150

3146:                                             ; preds = %3139
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3148 = call i32 @fileno(ptr noundef %3147) #13
  %3149 = call i32 @isatty(i32 noundef %3148) #13
  %.not1173 = icmp eq i32 %3149, 0
  br i1 %.not1173, label %3150, label %3151

3150:                                             ; preds = %3146, %3139
  br label %3151

3151:                                             ; preds = %3146, %3150
  %.str.25.sink2739 = phi ptr [ @.str.25, %3150 ], [ @.str.22, %3146 ]
  store i32 %3141, ptr %3140, align 4, !tbaa !5
  %3152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3153 = load i32, ptr @test_count, align 4, !tbaa !5
  %3154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3155 = load i32, ptr %3154, align 4, !tbaa !5
  %3156 = call ptr @s2n_strerror(i32 noundef %3155, ptr noundef nonnull @.str.24) #13
  %3157 = load i32, ptr %3154, align 4, !tbaa !5
  %3158 = call ptr @s2n_strerror_debug(i32 noundef %3157, ptr noundef nonnull @.str.24) #13
  %3159 = load i32, ptr %3140, align 4, !tbaa !5
  %3160 = call ptr @strerror(i32 noundef %3159) #13
  %3161 = load i32, ptr %3140, align 4, !tbaa !5
  %3162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3152, ptr noundef nonnull %.str.25.sink2739, i32 noundef %3153, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.21, i32 noundef 553, ptr noundef %3156, ptr noundef %3158, ptr noundef %3160, i32 noundef %3161) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3163:                                             ; preds = %3134
  %3164 = load i32, ptr @test_count, align 4, !tbaa !5
  %3165 = add nsw i32 %3164, 1
  store i32 %3165, ptr @test_count, align 4, !tbaa !5
  %3166 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2984)
  %3167 = icmp eq i32 %3166, -1
  br i1 %3167, label %3192, label %3168

3168:                                             ; preds = %3163
  %3169 = tail call ptr @__errno_location() #14
  %3170 = load i32, ptr %3169, align 4, !tbaa !5
  %3171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3172 = call i32 @s2n_print_stacktrace(ptr noundef %3171) #13
  %3173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3174 = trunc nuw i8 %3173 to i1
  br i1 %3174, label %3175, label %3179

3175:                                             ; preds = %3168
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = call i32 @fileno(ptr noundef %3176) #13
  %3178 = call i32 @isatty(i32 noundef %3177) #13
  %.not1019 = icmp eq i32 %3178, 0
  br i1 %.not1019, label %3179, label %3180

3179:                                             ; preds = %3175, %3168
  br label %3180

3180:                                             ; preds = %3175, %3179
  %.str.25.sink2750 = phi ptr [ @.str.25, %3179 ], [ @.str.22, %3175 ]
  store i32 %3170, ptr %3169, align 4, !tbaa !5
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = load i32, ptr @test_count, align 4, !tbaa !5
  %3183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = call ptr @s2n_strerror(i32 noundef %3184, ptr noundef nonnull @.str.24) #13
  %3186 = load i32, ptr %3183, align 4, !tbaa !5
  %3187 = call ptr @s2n_strerror_debug(i32 noundef %3186, ptr noundef nonnull @.str.24) #13
  %3188 = load i32, ptr %3169, align 4, !tbaa !5
  %3189 = call ptr @strerror(i32 noundef %3188) #13
  %3190 = load i32, ptr %3169, align 4, !tbaa !5
  %3191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3181, ptr noundef nonnull %.str.25.sink2750, i32 noundef %3182, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.21, i32 noundef 554, ptr noundef %3185, ptr noundef %3187, ptr noundef %3189, i32 noundef %3190) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3192:                                             ; preds = %3163
  %3193 = load i32, ptr @test_count, align 4, !tbaa !5
  %3194 = add nsw i32 %3193, 1
  store i32 %3194, ptr @test_count, align 4, !tbaa !5
  %3195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = icmp eq i32 %3196, 335544322
  br i1 %3197, label %3221, label %3198

3198:                                             ; preds = %3192
  %3199 = tail call ptr @__errno_location() #14
  %3200 = load i32, ptr %3199, align 4, !tbaa !5
  %3201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3202 = call i32 @s2n_print_stacktrace(ptr noundef %3201) #13
  %3203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3204 = trunc nuw i8 %3203 to i1
  br i1 %3204, label %3205, label %3209

3205:                                             ; preds = %3198
  %3206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3207 = call i32 @fileno(ptr noundef %3206) #13
  %3208 = call i32 @isatty(i32 noundef %3207) #13
  %.not1020 = icmp eq i32 %3208, 0
  br i1 %.not1020, label %3209, label %3210

3209:                                             ; preds = %3205, %3198
  br label %3210

3210:                                             ; preds = %3205, %3209
  %.str.25.sink2761 = phi ptr [ @.str.25, %3209 ], [ @.str.22, %3205 ]
  store i32 %3200, ptr %3199, align 4, !tbaa !5
  %3211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3212 = load i32, ptr @test_count, align 4, !tbaa !5
  %3213 = load i32, ptr %3195, align 4, !tbaa !5
  %3214 = call ptr @s2n_strerror(i32 noundef %3213, ptr noundef nonnull @.str.24) #13
  %3215 = load i32, ptr %3195, align 4, !tbaa !5
  %3216 = call ptr @s2n_strerror_debug(i32 noundef %3215, ptr noundef nonnull @.str.24) #13
  %3217 = load i32, ptr %3199, align 4, !tbaa !5
  %3218 = call ptr @strerror(i32 noundef %3217) #13
  %3219 = load i32, ptr %3199, align 4, !tbaa !5
  %3220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3211, ptr noundef nonnull %.str.25.sink2761, i32 noundef %3212, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.21, i32 noundef 554, ptr noundef %3214, ptr noundef %3216, ptr noundef %3218, i32 noundef %3219) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3221:                                             ; preds = %3192
  %3222 = add nsw i32 %3193, 2
  store i32 %3222, ptr @test_count, align 4, !tbaa !5
  %3223 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #13
  %3224 = icmp eq ptr %3223, null
  br i1 %3224, label %3225, label %3248

3225:                                             ; preds = %3221
  %3226 = tail call ptr @__errno_location() #14
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3229 = call i32 @s2n_print_stacktrace(ptr noundef %3228) #13
  %3230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3231 = trunc nuw i8 %3230 to i1
  br i1 %3231, label %3232, label %3236

3232:                                             ; preds = %3225
  %3233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3234 = call i32 @fileno(ptr noundef %3233) #13
  %3235 = call i32 @isatty(i32 noundef %3234) #13
  %.not1172 = icmp eq i32 %3235, 0
  br i1 %.not1172, label %3236, label %3237

3236:                                             ; preds = %3232, %3225
  br label %3237

3237:                                             ; preds = %3232, %3236
  %.str.25.sink2770 = phi ptr [ @.str.25, %3236 ], [ @.str.22, %3232 ]
  store i32 %3227, ptr %3226, align 4, !tbaa !5
  %3238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3239 = load i32, ptr @test_count, align 4, !tbaa !5
  %3240 = load i32, ptr %3195, align 4, !tbaa !5
  %3241 = call ptr @s2n_strerror(i32 noundef %3240, ptr noundef nonnull @.str.24) #13
  %3242 = load i32, ptr %3195, align 4, !tbaa !5
  %3243 = call ptr @s2n_strerror_debug(i32 noundef %3242, ptr noundef nonnull @.str.24) #13
  %3244 = load i32, ptr %3226, align 4, !tbaa !5
  %3245 = call ptr @strerror(i32 noundef %3244) #13
  %3246 = load i32, ptr %3226, align 4, !tbaa !5
  %3247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3238, ptr noundef nonnull %.str.25.sink2770, i32 noundef %3239, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.21, i32 noundef 554, ptr noundef %3241, ptr noundef %3243, ptr noundef %3245, i32 noundef %3246) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3248:                                             ; preds = %3221
  store i32 0, ptr %3195, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  %3249 = tail call ptr @__errno_location() #14
  store i32 0, ptr %3249, align 4, !tbaa !5
  %3250 = load i32, ptr @test_count, align 4, !tbaa !5
  %3251 = add nsw i32 %3250, 1
  store i32 %3251, ptr @test_count, align 4, !tbaa !5
  %3252 = load i32, ptr %3074, align 8, !tbaa !59
  %3253 = icmp eq i32 %3252, 0
  br i1 %3253, label %3276, label %3254

3254:                                             ; preds = %3248
  %3255 = load i32, ptr %3249, align 4, !tbaa !5
  %3256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3257 = call i32 @s2n_print_stacktrace(ptr noundef %3256) #13
  %3258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3259 = trunc nuw i8 %3258 to i1
  br i1 %3259, label %3260, label %3264

3260:                                             ; preds = %3254
  %3261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3262 = call i32 @fileno(ptr noundef %3261) #13
  %3263 = call i32 @isatty(i32 noundef %3262) #13
  %.not1021 = icmp eq i32 %3263, 0
  br i1 %.not1021, label %3264, label %3265

3264:                                             ; preds = %3260, %3254
  br label %3265

3265:                                             ; preds = %3260, %3264
  %.str.25.sink2779 = phi ptr [ @.str.25, %3264 ], [ @.str.22, %3260 ]
  store i32 %3255, ptr %3249, align 4, !tbaa !5
  %3266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3267 = load i32, ptr @test_count, align 4, !tbaa !5
  %3268 = load i32, ptr %3195, align 4, !tbaa !5
  %3269 = call ptr @s2n_strerror(i32 noundef %3268, ptr noundef nonnull @.str.24) #13
  %3270 = load i32, ptr %3195, align 4, !tbaa !5
  %3271 = call ptr @s2n_strerror_debug(i32 noundef %3270, ptr noundef nonnull @.str.24) #13
  %3272 = load i32, ptr %3249, align 4, !tbaa !5
  %3273 = call ptr @strerror(i32 noundef %3272) #13
  %3274 = load i32, ptr %3249, align 4, !tbaa !5
  %3275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3266, ptr noundef nonnull %.str.25.sink2779, i32 noundef %3267, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.21, i32 noundef 556, ptr noundef %3269, ptr noundef %3271, ptr noundef %3273, i32 noundef %3274) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3276:                                             ; preds = %3248
  %3277 = add nsw i32 %3250, 2
  store i32 %3277, ptr @test_count, align 4, !tbaa !5
  %3278 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not1022 = icmp eq i32 %3278, 0
  br i1 %.not1022, label %3301, label %3279

3279:                                             ; preds = %3276
  %3280 = load i32, ptr %3249, align 4, !tbaa !5
  %3281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3282 = call i32 @s2n_print_stacktrace(ptr noundef %3281) #13
  %3283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3284 = trunc nuw i8 %3283 to i1
  br i1 %3284, label %3285, label %3289

3285:                                             ; preds = %3279
  %3286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3287 = call i32 @fileno(ptr noundef %3286) #13
  %3288 = call i32 @isatty(i32 noundef %3287) #13
  %.not1171 = icmp eq i32 %3288, 0
  br i1 %.not1171, label %3289, label %3290

3289:                                             ; preds = %3285, %3279
  br label %3290

3290:                                             ; preds = %3285, %3289
  %.str.25.sink2788 = phi ptr [ @.str.25, %3289 ], [ @.str.22, %3285 ]
  store i32 %3280, ptr %3249, align 4, !tbaa !5
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = load i32, ptr @test_count, align 4, !tbaa !5
  %3293 = load i32, ptr %3195, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror(i32 noundef %3293, ptr noundef nonnull @.str.24) #13
  %3295 = load i32, ptr %3195, align 4, !tbaa !5
  %3296 = call ptr @s2n_strerror_debug(i32 noundef %3295, ptr noundef nonnull @.str.24) #13
  %3297 = load i32, ptr %3249, align 4, !tbaa !5
  %3298 = call ptr @strerror(i32 noundef %3297) #13
  %3299 = load i32, ptr %3249, align 4, !tbaa !5
  %3300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3291, ptr noundef nonnull %.str.25.sink2788, i32 noundef %3292, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.21, i32 noundef 557, ptr noundef %3294, ptr noundef %3296, ptr noundef %3298, i32 noundef %3299) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3301:                                             ; preds = %3276
  %3302 = add nsw i32 %3250, 3
  store i32 %3302, ptr @test_count, align 4, !tbaa !5
  %3303 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not1023 = icmp eq i32 %3303, 0
  br i1 %.not1023, label %3326, label %3304

3304:                                             ; preds = %3301
  %3305 = load i32, ptr %3249, align 4, !tbaa !5
  %3306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3307 = call i32 @s2n_print_stacktrace(ptr noundef %3306) #13
  %3308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3309 = trunc nuw i8 %3308 to i1
  br i1 %3309, label %3310, label %3314

3310:                                             ; preds = %3304
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = call i32 @fileno(ptr noundef %3311) #13
  %3313 = call i32 @isatty(i32 noundef %3312) #13
  %.not1170 = icmp eq i32 %3313, 0
  br i1 %.not1170, label %3314, label %3315

3314:                                             ; preds = %3310, %3304
  br label %3315

3315:                                             ; preds = %3310, %3314
  %.str.25.sink2797 = phi ptr [ @.str.25, %3314 ], [ @.str.22, %3310 ]
  store i32 %3305, ptr %3249, align 4, !tbaa !5
  %3316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3317 = load i32, ptr @test_count, align 4, !tbaa !5
  %3318 = load i32, ptr %3195, align 4, !tbaa !5
  %3319 = call ptr @s2n_strerror(i32 noundef %3318, ptr noundef nonnull @.str.24) #13
  %3320 = load i32, ptr %3195, align 4, !tbaa !5
  %3321 = call ptr @s2n_strerror_debug(i32 noundef %3320, ptr noundef nonnull @.str.24) #13
  %3322 = load i32, ptr %3249, align 4, !tbaa !5
  %3323 = call ptr @strerror(i32 noundef %3322) #13
  %3324 = load i32, ptr %3249, align 4, !tbaa !5
  %3325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3316, ptr noundef nonnull %.str.25.sink2797, i32 noundef %3317, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.21, i32 noundef 558, ptr noundef %3319, ptr noundef %3321, ptr noundef %3323, i32 noundef %3324) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3326:                                             ; preds = %3301
  %3327 = add nsw i32 %3250, 4
  store i32 %3327, ptr @test_count, align 4, !tbaa !5
  %3328 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #13
  %3329 = icmp eq i32 %3328, -1
  br i1 %3329, label %3330, label %3352

3330:                                             ; preds = %3326
  %3331 = load i32, ptr %3249, align 4, !tbaa !5
  %3332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3333 = call i32 @s2n_print_stacktrace(ptr noundef %3332) #13
  %3334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3335 = trunc nuw i8 %3334 to i1
  br i1 %3335, label %3336, label %3340

3336:                                             ; preds = %3330
  %3337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3338 = call i32 @fileno(ptr noundef %3337) #13
  %3339 = call i32 @isatty(i32 noundef %3338) #13
  %.not1169 = icmp eq i32 %3339, 0
  br i1 %.not1169, label %3340, label %3341

3340:                                             ; preds = %3336, %3330
  br label %3341

3341:                                             ; preds = %3336, %3340
  %.str.25.sink2806 = phi ptr [ @.str.25, %3340 ], [ @.str.22, %3336 ]
  store i32 %3331, ptr %3249, align 4, !tbaa !5
  %3342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3343 = load i32, ptr @test_count, align 4, !tbaa !5
  %3344 = load i32, ptr %3195, align 4, !tbaa !5
  %3345 = call ptr @s2n_strerror(i32 noundef %3344, ptr noundef nonnull @.str.24) #13
  %3346 = load i32, ptr %3195, align 4, !tbaa !5
  %3347 = call ptr @s2n_strerror_debug(i32 noundef %3346, ptr noundef nonnull @.str.24) #13
  %3348 = load i32, ptr %3249, align 4, !tbaa !5
  %3349 = call ptr @strerror(i32 noundef %3348) #13
  %3350 = load i32, ptr %3249, align 4, !tbaa !5
  %3351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3342, ptr noundef nonnull %.str.25.sink2806, i32 noundef %3343, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 560, ptr noundef %3345, ptr noundef %3347, ptr noundef %3349, i32 noundef %3350) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3352:                                             ; preds = %3326
  %3353 = load i32, ptr @test_count, align 4, !tbaa !5
  %3354 = add nsw i32 %3353, 1
  store i32 %3354, ptr @test_count, align 4, !tbaa !5
  %3355 = call i32 @s2n_connection_free(ptr noundef nonnull %2984) #13
  %3356 = icmp eq i32 %3355, -1
  br i1 %3356, label %3357, label %3379

3357:                                             ; preds = %3352
  %3358 = load i32, ptr %3249, align 4, !tbaa !5
  %3359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3360 = call i32 @s2n_print_stacktrace(ptr noundef %3359) #13
  %3361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3362 = trunc nuw i8 %3361 to i1
  br i1 %3362, label %3363, label %3367

3363:                                             ; preds = %3357
  %3364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3365 = call i32 @fileno(ptr noundef %3364) #13
  %3366 = call i32 @isatty(i32 noundef %3365) #13
  %.not1168 = icmp eq i32 %3366, 0
  br i1 %.not1168, label %3367, label %3368

3367:                                             ; preds = %3363, %3357
  br label %3368

3368:                                             ; preds = %3363, %3367
  %.str.25.sink2815 = phi ptr [ @.str.25, %3367 ], [ @.str.22, %3363 ]
  store i32 %3358, ptr %3249, align 4, !tbaa !5
  %3369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3370 = load i32, ptr @test_count, align 4, !tbaa !5
  %3371 = load i32, ptr %3195, align 4, !tbaa !5
  %3372 = call ptr @s2n_strerror(i32 noundef %3371, ptr noundef nonnull @.str.24) #13
  %3373 = load i32, ptr %3195, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror_debug(i32 noundef %3373, ptr noundef nonnull @.str.24) #13
  %3375 = load i32, ptr %3249, align 4, !tbaa !5
  %3376 = call ptr @strerror(i32 noundef %3375) #13
  %3377 = load i32, ptr %3249, align 4, !tbaa !5
  %3378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3369, ptr noundef nonnull %.str.25.sink2815, i32 noundef %3370, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 561, ptr noundef %3372, ptr noundef %3374, ptr noundef %3376, i32 noundef %3377) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3379:                                             ; preds = %3352
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #13
  %3380 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %3381 = getelementptr inbounds i8, ptr %3380, i64 220
  store i8 34, ptr %3381, align 4, !tbaa !27
  %3382 = load i32, ptr @test_count, align 4, !tbaa !5
  %3383 = add nsw i32 %3382, 1
  store i32 %3383, ptr @test_count, align 4, !tbaa !5
  %3384 = call i32 @s2n_conn_choose_state_machine(ptr noundef %3380, i8 noundef zeroext 34)
  %3385 = call zeroext i1 @s2n_result_is_ok(i32 %3384)
  br i1 %3385, label %3408, label %3386

3386:                                             ; preds = %3379
  %3387 = load i32, ptr %3249, align 4, !tbaa !5
  %3388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3389 = call i32 @s2n_print_stacktrace(ptr noundef %3388) #13
  %3390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3391 = trunc nuw i8 %3390 to i1
  br i1 %3391, label %3392, label %3396

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

3396:                                             ; preds = %3392, %3386
  br label %3397

3397:                                             ; preds = %3392, %3396
  %.str.25.sink2824 = phi ptr [ @.str.25, %3396 ], [ @.str.22, %3392 ]
  store i32 %3387, ptr %3249, align 4, !tbaa !5
  %3398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3399 = load i32, ptr @test_count, align 4, !tbaa !5
  %3400 = load i32, ptr %3195, align 4, !tbaa !5
  %3401 = call ptr @s2n_strerror(i32 noundef %3400, ptr noundef nonnull @.str.24) #13
  %3402 = load i32, ptr %3195, align 4, !tbaa !5
  %3403 = call ptr @s2n_strerror_debug(i32 noundef %3402, ptr noundef nonnull @.str.24) #13
  %3404 = load i32, ptr %3249, align 4, !tbaa !5
  %3405 = call ptr @strerror(i32 noundef %3404) #13
  %3406 = load i32, ptr %3249, align 4, !tbaa !5
  %3407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3398, ptr noundef nonnull %.str.25.sink2824, i32 noundef %3399, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 568, ptr noundef %3401, ptr noundef %3403, ptr noundef %3405, i32 noundef %3406) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3408:                                             ; preds = %3379
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %3409 = load i32, ptr @test_count, align 4, !tbaa !5
  %3410 = add nsw i32 %3409, 1
  store i32 %3410, ptr @test_count, align 4, !tbaa !5
  %3411 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #13
  %3412 = icmp eq i32 %3411, -1
  br i1 %3412, label %3413, label %3435

3413:                                             ; preds = %3408
  %3414 = load i32, ptr %3249, align 4, !tbaa !5
  %3415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3416 = call i32 @s2n_print_stacktrace(ptr noundef %3415) #13
  %3417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3418 = trunc nuw i8 %3417 to i1
  br i1 %3418, label %3419, label %3423

3419:                                             ; preds = %3413
  %3420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3421 = call i32 @fileno(ptr noundef %3420) #13
  %3422 = call i32 @isatty(i32 noundef %3421) #13
  %.not1167 = icmp eq i32 %3422, 0
  br i1 %.not1167, label %3423, label %3424

3423:                                             ; preds = %3419, %3413
  br label %3424

3424:                                             ; preds = %3419, %3423
  %.str.25.sink2833 = phi ptr [ @.str.25, %3423 ], [ @.str.22, %3419 ]
  store i32 %3414, ptr %3249, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = load i32, ptr @test_count, align 4, !tbaa !5
  %3427 = load i32, ptr %3195, align 4, !tbaa !5
  %3428 = call ptr @s2n_strerror(i32 noundef %3427, ptr noundef nonnull @.str.24) #13
  %3429 = load i32, ptr %3195, align 4, !tbaa !5
  %3430 = call ptr @s2n_strerror_debug(i32 noundef %3429, ptr noundef nonnull @.str.24) #13
  %3431 = load i32, ptr %3249, align 4, !tbaa !5
  %3432 = call ptr @strerror(i32 noundef %3431) #13
  %3433 = load i32, ptr %3249, align 4, !tbaa !5
  %3434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3425, ptr noundef nonnull %.str.25.sink2833, i32 noundef %3426, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 571, ptr noundef %3428, ptr noundef %3430, ptr noundef %3432, i32 noundef %3433) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3435:                                             ; preds = %3408
  %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 i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %8, ptr noundef null, ptr noundef nonnull %3380) #13
  %3439 = icmp eq i32 %3438, -1
  br i1 %3439, label %3440, label %3462

3440:                                             ; preds = %3435
  %3441 = load i32, ptr %3249, align 4, !tbaa !5
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = call i32 @s2n_print_stacktrace(ptr noundef %3442) #13
  %3444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3445 = trunc nuw i8 %3444 to i1
  br i1 %3445, label %3446, label %3450

3446:                                             ; preds = %3440
  %3447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3448 = call i32 @fileno(ptr noundef %3447) #13
  %3449 = call i32 @isatty(i32 noundef %3448) #13
  %.not1166 = icmp eq i32 %3449, 0
  br i1 %.not1166, label %3450, label %3451

3450:                                             ; preds = %3446, %3440
  br label %3451

3451:                                             ; preds = %3446, %3450
  %.str.25.sink2842 = phi ptr [ @.str.25, %3450 ], [ @.str.22, %3446 ]
  store i32 %3441, ptr %3249, align 4, !tbaa !5
  %3452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3453 = load i32, ptr @test_count, align 4, !tbaa !5
  %3454 = load i32, ptr %3195, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror(i32 noundef %3454, ptr noundef nonnull @.str.24) #13
  %3456 = load i32, ptr %3195, align 4, !tbaa !5
  %3457 = call ptr @s2n_strerror_debug(i32 noundef %3456, ptr noundef nonnull @.str.24) #13
  %3458 = load i32, ptr %3249, align 4, !tbaa !5
  %3459 = call ptr @strerror(i32 noundef %3458) #13
  %3460 = load i32, ptr %3249, align 4, !tbaa !5
  %3461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3452, ptr noundef nonnull %.str.25.sink2842, i32 noundef %3453, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 572, ptr noundef %3455, ptr noundef %3457, ptr noundef %3459, i32 noundef %3460) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3462:                                             ; preds = %3435
  %3463 = getelementptr inbounds i8, ptr %3380, i64 2172
  store i32 0, ptr %3463, align 4, !tbaa !58
  %3464 = getelementptr inbounds i8, ptr %3380, i64 2176
  store i32 0, ptr %3464, align 8, !tbaa !59
  %3465 = load i32, ptr @test_count, align 4, !tbaa !5
  %3466 = add nsw i32 %3465, 1
  store i32 %3466, ptr @test_count, align 4, !tbaa !5
  %3467 = getelementptr inbounds i8, ptr %3380, i64 2204
  %3468 = load i32, ptr %3467, align 4, !tbaa !57
  %3469 = icmp eq i32 %3468, 2
  %tls13_handshakes.val1658 = load i32, ptr @tls13_handshakes, align 16
  %handshakes.val1659 = load i32, ptr @handshakes, align 16
  %3470 = select i1 %3469, i32 %tls13_handshakes.val1658, i32 %handshakes.val1659
  %3471 = icmp eq i32 %3470, 0
  br i1 %3471, label %3494, label %3472

3472:                                             ; preds = %3462
  %3473 = load i32, ptr %3249, align 4, !tbaa !5
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = call i32 @s2n_print_stacktrace(ptr noundef %3474) #13
  %3476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3477 = trunc nuw i8 %3476 to i1
  br i1 %3477, label %3478, label %3482

3478:                                             ; preds = %3472
  %3479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3480 = call i32 @fileno(ptr noundef %3479) #13
  %3481 = call i32 @isatty(i32 noundef %3480) #13
  %.not1025 = icmp eq i32 %3481, 0
  br i1 %.not1025, label %3482, label %3483

3482:                                             ; preds = %3478, %3472
  br label %3483

3483:                                             ; preds = %3478, %3482
  %.str.25.sink2851 = phi ptr [ @.str.25, %3482 ], [ @.str.22, %3478 ]
  store i32 %3473, ptr %3249, align 4, !tbaa !5
  %3484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3485 = load i32, ptr @test_count, align 4, !tbaa !5
  %3486 = load i32, ptr %3195, align 4, !tbaa !5
  %3487 = call ptr @s2n_strerror(i32 noundef %3486, ptr noundef nonnull @.str.24) #13
  %3488 = load i32, ptr %3195, align 4, !tbaa !5
  %3489 = call ptr @s2n_strerror_debug(i32 noundef %3488, ptr noundef nonnull @.str.24) #13
  %3490 = load i32, ptr %3249, align 4, !tbaa !5
  %3491 = call ptr @strerror(i32 noundef %3490) #13
  %3492 = load i32, ptr %3249, align 4, !tbaa !5
  %3493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3484, ptr noundef nonnull %.str.25.sink2851, i32 noundef %3485, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.21, i32 noundef 576, ptr noundef %3487, ptr noundef %3489, ptr noundef %3491, i32 noundef %3492) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3494:                                             ; preds = %3462
  %3495 = add nsw i32 %3465, 2
  store i32 %3495, ptr @test_count, align 4, !tbaa !5
  %3496 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %3497 = icmp eq i32 %3496, -1
  br i1 %3497, label %3498, label %3520

3498:                                             ; preds = %3494
  %3499 = load i32, ptr %3249, align 4, !tbaa !5
  %3500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3501 = call i32 @s2n_print_stacktrace(ptr noundef %3500) #13
  %3502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3503 = trunc nuw i8 %3502 to i1
  br i1 %3503, label %3504, label %3508

3504:                                             ; preds = %3498
  %3505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3506 = call i32 @fileno(ptr noundef %3505) #13
  %3507 = call i32 @isatty(i32 noundef %3506) #13
  %.not1165 = icmp eq i32 %3507, 0
  br i1 %.not1165, label %3508, label %3509

3508:                                             ; preds = %3504, %3498
  br label %3509

3509:                                             ; preds = %3504, %3508
  %.str.25.sink2860 = phi ptr [ @.str.25, %3508 ], [ @.str.22, %3504 ]
  store i32 %3499, ptr %3249, align 4, !tbaa !5
  %3510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3511 = load i32, ptr @test_count, align 4, !tbaa !5
  %3512 = load i32, ptr %3195, align 4, !tbaa !5
  %3513 = call ptr @s2n_strerror(i32 noundef %3512, ptr noundef nonnull @.str.24) #13
  %3514 = load i32, ptr %3195, align 4, !tbaa !5
  %3515 = call ptr @s2n_strerror_debug(i32 noundef %3514, ptr noundef nonnull @.str.24) #13
  %3516 = load i32, ptr %3249, align 4, !tbaa !5
  %3517 = call ptr @strerror(i32 noundef %3516) #13
  %3518 = load i32, ptr %3249, align 4, !tbaa !5
  %3519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3510, ptr noundef nonnull %.str.25.sink2860, i32 noundef %3511, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.21, i32 noundef 577, ptr noundef %3513, ptr noundef %3515, ptr noundef %3517, i32 noundef %3518) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3520:                                             ; preds = %3494
  %3521 = load i32, ptr @test_count, align 4, !tbaa !5
  %3522 = add nsw i32 %3521, 1
  store i32 %3522, ptr @test_count, align 4, !tbaa !5
  %3523 = call i32 @s2n_test_write_header(ptr noundef nonnull %8, i8 noundef zeroext 22, i8 noundef zeroext 1)
  %3524 = icmp eq i32 %3523, -1
  br i1 %3524, label %3525, label %3547

3525:                                             ; preds = %3520
  %3526 = load i32, ptr %3249, align 4, !tbaa !5
  %3527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3528 = call i32 @s2n_print_stacktrace(ptr noundef %3527) #13
  %3529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3530 = trunc nuw i8 %3529 to i1
  br i1 %3530, label %3531, label %3535

3531:                                             ; preds = %3525
  %3532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3533 = call i32 @fileno(ptr noundef %3532) #13
  %3534 = call i32 @isatty(i32 noundef %3533) #13
  %.not1164 = icmp eq i32 %3534, 0
  br i1 %.not1164, label %3535, label %3536

3535:                                             ; preds = %3531, %3525
  br label %3536

3536:                                             ; preds = %3531, %3535
  %.str.25.sink2869 = phi ptr [ @.str.25, %3535 ], [ @.str.22, %3531 ]
  store i32 %3526, ptr %3249, align 4, !tbaa !5
  %3537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3538 = load i32, ptr @test_count, align 4, !tbaa !5
  %3539 = load i32, ptr %3195, align 4, !tbaa !5
  %3540 = call ptr @s2n_strerror(i32 noundef %3539, ptr noundef nonnull @.str.24) #13
  %3541 = load i32, ptr %3195, align 4, !tbaa !5
  %3542 = call ptr @s2n_strerror_debug(i32 noundef %3541, ptr noundef nonnull @.str.24) #13
  %3543 = load i32, ptr %3249, align 4, !tbaa !5
  %3544 = call ptr @strerror(i32 noundef %3543) #13
  %3545 = load i32, ptr %3249, align 4, !tbaa !5
  %3546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3537, ptr noundef nonnull %.str.25.sink2869, i32 noundef %3538, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.21, i32 noundef 579, ptr noundef %3540, ptr noundef %3542, ptr noundef %3544, i32 noundef %3545) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3547:                                             ; preds = %3520
  %3548 = load i32, ptr @test_count, align 4, !tbaa !5
  %3549 = add nsw i32 %3548, 1
  store i32 %3549, ptr @test_count, align 4, !tbaa !5
  %3550 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %3380)
  %3551 = icmp eq i32 %3550, -1
  br i1 %3551, label %3574, label %3552

3552:                                             ; preds = %3547
  %3553 = load i32, ptr %3249, align 4, !tbaa !5
  %3554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3555 = call i32 @s2n_print_stacktrace(ptr noundef %3554) #13
  %3556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3557 = trunc nuw i8 %3556 to i1
  br i1 %3557, label %3558, label %3562

3558:                                             ; preds = %3552
  %3559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3560 = call i32 @fileno(ptr noundef %3559) #13
  %3561 = call i32 @isatty(i32 noundef %3560) #13
  %.not1026 = icmp eq i32 %3561, 0
  br i1 %.not1026, label %3562, label %3563

3562:                                             ; preds = %3558, %3552
  br label %3563

3563:                                             ; preds = %3558, %3562
  %.str.25.sink2878 = phi ptr [ @.str.25, %3562 ], [ @.str.22, %3558 ]
  store i32 %3553, ptr %3249, align 4, !tbaa !5
  %3564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3565 = load i32, ptr @test_count, align 4, !tbaa !5
  %3566 = load i32, ptr %3195, align 4, !tbaa !5
  %3567 = call ptr @s2n_strerror(i32 noundef %3566, ptr noundef nonnull @.str.24) #13
  %3568 = load i32, ptr %3195, align 4, !tbaa !5
  %3569 = call ptr @s2n_strerror_debug(i32 noundef %3568, ptr noundef nonnull @.str.24) #13
  %3570 = load i32, ptr %3249, align 4, !tbaa !5
  %3571 = call ptr @strerror(i32 noundef %3570) #13
  %3572 = load i32, ptr %3249, align 4, !tbaa !5
  %3573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3564, ptr noundef nonnull %.str.25.sink2878, i32 noundef %3565, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.21, i32 noundef 580, ptr noundef %3567, ptr noundef %3569, ptr noundef %3571, i32 noundef %3572) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3574:                                             ; preds = %3547
  %3575 = load i32, ptr @test_count, align 4, !tbaa !5
  %3576 = add nsw i32 %3575, 1
  store i32 %3576, ptr @test_count, align 4, !tbaa !5
  %3577 = load i32, ptr %3195, align 4, !tbaa !5
  %3578 = icmp eq i32 %3577, 335544322
  br i1 %3578, label %3601, label %3579

3579:                                             ; preds = %3574
  %3580 = load i32, ptr %3249, align 4, !tbaa !5
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = call i32 @s2n_print_stacktrace(ptr noundef %3581) #13
  %3583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3584 = trunc nuw i8 %3583 to i1
  br i1 %3584, label %3585, label %3589

3585:                                             ; preds = %3579
  %3586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3587 = call i32 @fileno(ptr noundef %3586) #13
  %3588 = call i32 @isatty(i32 noundef %3587) #13
  %.not1027 = icmp eq i32 %3588, 0
  br i1 %.not1027, label %3589, label %3590

3589:                                             ; preds = %3585, %3579
  br label %3590

3590:                                             ; preds = %3585, %3589
  %.str.25.sink2887 = phi ptr [ @.str.25, %3589 ], [ @.str.22, %3585 ]
  store i32 %3580, ptr %3249, align 4, !tbaa !5
  %3591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3592 = load i32, ptr @test_count, align 4, !tbaa !5
  %3593 = load i32, ptr %3195, align 4, !tbaa !5
  %3594 = call ptr @s2n_strerror(i32 noundef %3593, ptr noundef nonnull @.str.24) #13
  %3595 = load i32, ptr %3195, align 4, !tbaa !5
  %3596 = call ptr @s2n_strerror_debug(i32 noundef %3595, ptr noundef nonnull @.str.24) #13
  %3597 = load i32, ptr %3249, align 4, !tbaa !5
  %3598 = call ptr @strerror(i32 noundef %3597) #13
  %3599 = load i32, ptr %3249, align 4, !tbaa !5
  %3600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3591, ptr noundef nonnull %.str.25.sink2887, i32 noundef %3592, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.21, i32 noundef 580, ptr noundef %3594, ptr noundef %3596, ptr noundef %3598, i32 noundef %3599) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3601:                                             ; preds = %3574
  %3602 = add nsw i32 %3575, 2
  store i32 %3602, ptr @test_count, align 4, !tbaa !5
  %3603 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #13
  %3604 = icmp eq ptr %3603, null
  br i1 %3604, label %3605, label %3627

3605:                                             ; preds = %3601
  %3606 = load i32, ptr %3249, align 4, !tbaa !5
  %3607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3608 = call i32 @s2n_print_stacktrace(ptr noundef %3607) #13
  %3609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3610 = trunc nuw i8 %3609 to i1
  br i1 %3610, label %3611, label %3615

3611:                                             ; preds = %3605
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = call i32 @fileno(ptr noundef %3612) #13
  %3614 = call i32 @isatty(i32 noundef %3613) #13
  %.not1163 = icmp eq i32 %3614, 0
  br i1 %.not1163, label %3615, label %3616

3615:                                             ; preds = %3611, %3605
  br label %3616

3616:                                             ; preds = %3611, %3615
  %.str.25.sink2896 = phi ptr [ @.str.25, %3615 ], [ @.str.22, %3611 ]
  store i32 %3606, ptr %3249, align 4, !tbaa !5
  %3617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3618 = load i32, ptr @test_count, align 4, !tbaa !5
  %3619 = load i32, ptr %3195, align 4, !tbaa !5
  %3620 = call ptr @s2n_strerror(i32 noundef %3619, ptr noundef nonnull @.str.24) #13
  %3621 = load i32, ptr %3195, align 4, !tbaa !5
  %3622 = call ptr @s2n_strerror_debug(i32 noundef %3621, ptr noundef nonnull @.str.24) #13
  %3623 = load i32, ptr %3249, align 4, !tbaa !5
  %3624 = call ptr @strerror(i32 noundef %3623) #13
  %3625 = load i32, ptr %3249, align 4, !tbaa !5
  %3626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3617, ptr noundef nonnull %.str.25.sink2896, i32 noundef %3618, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.21, i32 noundef 580, ptr noundef %3620, ptr noundef %3622, ptr noundef %3624, i32 noundef %3625) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3627:                                             ; preds = %3601
  store i32 0, ptr %3195, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %3249, align 4, !tbaa !5
  %3628 = load i32, ptr @test_count, align 4, !tbaa !5
  %3629 = add nsw i32 %3628, 1
  store i32 %3629, ptr @test_count, align 4, !tbaa !5
  %3630 = load i32, ptr %3464, align 8, !tbaa !59
  %3631 = icmp eq i32 %3630, 0
  br i1 %3631, label %3654, label %3632

3632:                                             ; preds = %3627
  %3633 = load i32, ptr %3249, align 4, !tbaa !5
  %3634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3635 = call i32 @s2n_print_stacktrace(ptr noundef %3634) #13
  %3636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3637 = trunc nuw i8 %3636 to i1
  br i1 %3637, label %3638, label %3642

3638:                                             ; preds = %3632
  %3639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3640 = call i32 @fileno(ptr noundef %3639) #13
  %3641 = call i32 @isatty(i32 noundef %3640) #13
  %.not1028 = icmp eq i32 %3641, 0
  br i1 %.not1028, label %3642, label %3643

3642:                                             ; preds = %3638, %3632
  br label %3643

3643:                                             ; preds = %3638, %3642
  %.str.25.sink2905 = phi ptr [ @.str.25, %3642 ], [ @.str.22, %3638 ]
  store i32 %3633, ptr %3249, align 4, !tbaa !5
  %3644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3645 = load i32, ptr @test_count, align 4, !tbaa !5
  %3646 = load i32, ptr %3195, align 4, !tbaa !5
  %3647 = call ptr @s2n_strerror(i32 noundef %3646, ptr noundef nonnull @.str.24) #13
  %3648 = load i32, ptr %3195, align 4, !tbaa !5
  %3649 = call ptr @s2n_strerror_debug(i32 noundef %3648, ptr noundef nonnull @.str.24) #13
  %3650 = load i32, ptr %3249, align 4, !tbaa !5
  %3651 = call ptr @strerror(i32 noundef %3650) #13
  %3652 = load i32, ptr %3249, align 4, !tbaa !5
  %3653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3644, ptr noundef nonnull %.str.25.sink2905, i32 noundef %3645, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.21, i32 noundef 582, ptr noundef %3647, ptr noundef %3649, ptr noundef %3651, i32 noundef %3652) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3654:                                             ; preds = %3627
  %3655 = add nsw i32 %3628, 2
  store i32 %3655, ptr @test_count, align 4, !tbaa !5
  %3656 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not1029 = icmp eq i32 %3656, 0
  br i1 %.not1029, label %3679, label %3657

3657:                                             ; preds = %3654
  %3658 = load i32, ptr %3249, align 4, !tbaa !5
  %3659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3660 = call i32 @s2n_print_stacktrace(ptr noundef %3659) #13
  %3661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3662 = trunc nuw i8 %3661 to i1
  br i1 %3662, label %3663, label %3667

3663:                                             ; preds = %3657
  %3664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3665 = call i32 @fileno(ptr noundef %3664) #13
  %3666 = call i32 @isatty(i32 noundef %3665) #13
  %.not1162 = icmp eq i32 %3666, 0
  br i1 %.not1162, label %3667, label %3668

3667:                                             ; preds = %3663, %3657
  br label %3668

3668:                                             ; preds = %3663, %3667
  %.str.25.sink2914 = phi ptr [ @.str.25, %3667 ], [ @.str.22, %3663 ]
  store i32 %3658, ptr %3249, align 4, !tbaa !5
  %3669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3670 = load i32, ptr @test_count, align 4, !tbaa !5
  %3671 = load i32, ptr %3195, align 4, !tbaa !5
  %3672 = call ptr @s2n_strerror(i32 noundef %3671, ptr noundef nonnull @.str.24) #13
  %3673 = load i32, ptr %3195, align 4, !tbaa !5
  %3674 = call ptr @s2n_strerror_debug(i32 noundef %3673, ptr noundef nonnull @.str.24) #13
  %3675 = load i32, ptr %3249, align 4, !tbaa !5
  %3676 = call ptr @strerror(i32 noundef %3675) #13
  %3677 = load i32, ptr %3249, align 4, !tbaa !5
  %3678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3669, ptr noundef nonnull %.str.25.sink2914, i32 noundef %3670, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.21, i32 noundef 583, ptr noundef %3672, ptr noundef %3674, ptr noundef %3676, i32 noundef %3677) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3679:                                             ; preds = %3654
  %3680 = add nsw i32 %3628, 3
  store i32 %3680, ptr @test_count, align 4, !tbaa !5
  %3681 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not1030 = icmp eq i32 %3681, 0
  br i1 %.not1030, label %3704, label %3682

3682:                                             ; preds = %3679
  %3683 = load i32, ptr %3249, align 4, !tbaa !5
  %3684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3685 = call i32 @s2n_print_stacktrace(ptr noundef %3684) #13
  %3686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3687 = trunc nuw i8 %3686 to i1
  br i1 %3687, label %3688, label %3692

3688:                                             ; preds = %3682
  %3689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3690 = call i32 @fileno(ptr noundef %3689) #13
  %3691 = call i32 @isatty(i32 noundef %3690) #13
  %.not1161 = icmp eq i32 %3691, 0
  br i1 %.not1161, label %3692, label %3693

3692:                                             ; preds = %3688, %3682
  br label %3693

3693:                                             ; preds = %3688, %3692
  %.str.25.sink2923 = phi ptr [ @.str.25, %3692 ], [ @.str.22, %3688 ]
  store i32 %3683, ptr %3249, align 4, !tbaa !5
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = load i32, ptr @test_count, align 4, !tbaa !5
  %3696 = load i32, ptr %3195, align 4, !tbaa !5
  %3697 = call ptr @s2n_strerror(i32 noundef %3696, ptr noundef nonnull @.str.24) #13
  %3698 = load i32, ptr %3195, align 4, !tbaa !5
  %3699 = call ptr @s2n_strerror_debug(i32 noundef %3698, ptr noundef nonnull @.str.24) #13
  %3700 = load i32, ptr %3249, align 4, !tbaa !5
  %3701 = call ptr @strerror(i32 noundef %3700) #13
  %3702 = load i32, ptr %3249, align 4, !tbaa !5
  %3703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3694, ptr noundef nonnull %.str.25.sink2923, i32 noundef %3695, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.21, i32 noundef 584, ptr noundef %3697, ptr noundef %3699, ptr noundef %3701, i32 noundef %3702) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3704:                                             ; preds = %3679
  %3705 = add nsw i32 %3628, 4
  store i32 %3705, ptr @test_count, align 4, !tbaa !5
  %3706 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #13
  %3707 = icmp eq i32 %3706, -1
  br i1 %3707, label %3708, label %3730

3708:                                             ; preds = %3704
  %3709 = load i32, ptr %3249, align 4, !tbaa !5
  %3710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3711 = call i32 @s2n_print_stacktrace(ptr noundef %3710) #13
  %3712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3713 = trunc nuw i8 %3712 to i1
  br i1 %3713, label %3714, label %3718

3714:                                             ; preds = %3708
  %3715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3716 = call i32 @fileno(ptr noundef %3715) #13
  %3717 = call i32 @isatty(i32 noundef %3716) #13
  %.not1160 = icmp eq i32 %3717, 0
  br i1 %.not1160, label %3718, label %3719

3718:                                             ; preds = %3714, %3708
  br label %3719

3719:                                             ; preds = %3714, %3718
  %.str.25.sink2932 = phi ptr [ @.str.25, %3718 ], [ @.str.22, %3714 ]
  store i32 %3709, ptr %3249, align 4, !tbaa !5
  %3720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3721 = load i32, ptr @test_count, align 4, !tbaa !5
  %3722 = load i32, ptr %3195, align 4, !tbaa !5
  %3723 = call ptr @s2n_strerror(i32 noundef %3722, ptr noundef nonnull @.str.24) #13
  %3724 = load i32, ptr %3195, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef nonnull @.str.24) #13
  %3726 = load i32, ptr %3249, align 4, !tbaa !5
  %3727 = call ptr @strerror(i32 noundef %3726) #13
  %3728 = load i32, ptr %3249, align 4, !tbaa !5
  %3729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3720, ptr noundef nonnull %.str.25.sink2932, i32 noundef %3721, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 586, ptr noundef %3723, ptr noundef %3725, ptr noundef %3727, i32 noundef %3728) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3730:                                             ; preds = %3704
  %3731 = load i32, ptr @test_count, align 4, !tbaa !5
  %3732 = add nsw i32 %3731, 1
  store i32 %3732, ptr @test_count, align 4, !tbaa !5
  %3733 = call i32 @s2n_connection_free(ptr noundef nonnull %3380) #13
  %3734 = icmp eq i32 %3733, -1
  br i1 %3734, label %3735, label %3757

3735:                                             ; preds = %3730
  %3736 = load i32, ptr %3249, align 4, !tbaa !5
  %3737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3738 = call i32 @s2n_print_stacktrace(ptr noundef %3737) #13
  %3739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3740 = trunc nuw i8 %3739 to i1
  br i1 %3740, label %3741, label %3745

3741:                                             ; preds = %3735
  %3742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3743 = call i32 @fileno(ptr noundef %3742) #13
  %3744 = call i32 @isatty(i32 noundef %3743) #13
  %.not1159 = icmp eq i32 %3744, 0
  br i1 %.not1159, label %3745, label %3746

3745:                                             ; preds = %3741, %3735
  br label %3746

3746:                                             ; preds = %3741, %3745
  %.str.25.sink2941 = phi ptr [ @.str.25, %3745 ], [ @.str.22, %3741 ]
  store i32 %3736, ptr %3249, align 4, !tbaa !5
  %3747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3748 = load i32, ptr @test_count, align 4, !tbaa !5
  %3749 = load i32, ptr %3195, align 4, !tbaa !5
  %3750 = call ptr @s2n_strerror(i32 noundef %3749, ptr noundef nonnull @.str.24) #13
  %3751 = load i32, ptr %3195, align 4, !tbaa !5
  %3752 = call ptr @s2n_strerror_debug(i32 noundef %3751, ptr noundef nonnull @.str.24) #13
  %3753 = load i32, ptr %3249, align 4, !tbaa !5
  %3754 = call ptr @strerror(i32 noundef %3753) #13
  %3755 = load i32, ptr %3249, align 4, !tbaa !5
  %3756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3747, ptr noundef nonnull %.str.25.sink2941, i32 noundef %3748, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 587, ptr noundef %3750, ptr noundef %3752, ptr noundef %3754, i32 noundef %3755) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3757:                                             ; preds = %3730
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #13
  %3758 = load i8, ptr getelementptr inbounds (i8, ptr @state_machine, i64 337), align 1, !tbaa !75
  store i8 1, ptr getelementptr inbounds (i8, ptr @state_machine, i64 337), align 1, !tbaa !75
  %3759 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %3760 = getelementptr inbounds i8, ptr %3759, i64 220
  store i8 34, ptr %3760, align 4, !tbaa !27
  %3761 = load i32, ptr @test_count, align 4, !tbaa !5
  %3762 = add nsw i32 %3761, 1
  store i32 %3762, ptr @test_count, align 4, !tbaa !5
  %3763 = call i32 @s2n_conn_choose_state_machine(ptr noundef %3759, i8 noundef zeroext 34)
  %3764 = call zeroext i1 @s2n_result_is_ok(i32 %3763)
  br i1 %3764, label %3787, label %3765

3765:                                             ; preds = %3757
  %3766 = load i32, ptr %3249, align 4, !tbaa !5
  %3767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3768 = call i32 @s2n_print_stacktrace(ptr noundef %3767) #13
  %3769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3770 = trunc nuw i8 %3769 to i1
  br i1 %3770, label %3771, label %3775

3771:                                             ; preds = %3765
  %3772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3773 = call i32 @fileno(ptr noundef %3772) #13
  %3774 = call i32 @isatty(i32 noundef %3773) #13
  %.not1031 = icmp eq i32 %3774, 0
  br i1 %.not1031, label %3775, label %3776

3775:                                             ; preds = %3771, %3765
  br label %3776

3776:                                             ; preds = %3771, %3775
  %.str.25.sink2950 = phi ptr [ @.str.25, %3775 ], [ @.str.22, %3771 ]
  store i32 %3766, ptr %3249, align 4, !tbaa !5
  %3777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3778 = load i32, ptr @test_count, align 4, !tbaa !5
  %3779 = load i32, ptr %3195, align 4, !tbaa !5
  %3780 = call ptr @s2n_strerror(i32 noundef %3779, ptr noundef nonnull @.str.24) #13
  %3781 = load i32, ptr %3195, align 4, !tbaa !5
  %3782 = call ptr @s2n_strerror_debug(i32 noundef %3781, ptr noundef nonnull @.str.24) #13
  %3783 = load i32, ptr %3249, align 4, !tbaa !5
  %3784 = call ptr @strerror(i32 noundef %3783) #13
  %3785 = load i32, ptr %3249, align 4, !tbaa !5
  %3786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3777, ptr noundef nonnull %.str.25.sink2950, i32 noundef %3778, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 604, ptr noundef %3780, ptr noundef %3782, ptr noundef %3784, i32 noundef %3785) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3787:                                             ; preds = %3757
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %3788 = load i32, ptr @test_count, align 4, !tbaa !5
  %3789 = add nsw i32 %3788, 1
  store i32 %3789, ptr @test_count, align 4, !tbaa !5
  %3790 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #13
  %3791 = icmp eq i32 %3790, -1
  br i1 %3791, label %3792, label %3814

3792:                                             ; preds = %3787
  %3793 = load i32, ptr %3249, align 4, !tbaa !5
  %3794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3795 = call i32 @s2n_print_stacktrace(ptr noundef %3794) #13
  %3796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3797 = trunc nuw i8 %3796 to i1
  br i1 %3797, label %3798, label %3802

3798:                                             ; preds = %3792
  %3799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3800 = call i32 @fileno(ptr noundef %3799) #13
  %3801 = call i32 @isatty(i32 noundef %3800) #13
  %.not1158 = icmp eq i32 %3801, 0
  br i1 %.not1158, label %3802, label %3803

3802:                                             ; preds = %3798, %3792
  br label %3803

3803:                                             ; preds = %3798, %3802
  %.str.25.sink2959 = phi ptr [ @.str.25, %3802 ], [ @.str.22, %3798 ]
  store i32 %3793, ptr %3249, align 4, !tbaa !5
  %3804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3805 = load i32, ptr @test_count, align 4, !tbaa !5
  %3806 = load i32, ptr %3195, align 4, !tbaa !5
  %3807 = call ptr @s2n_strerror(i32 noundef %3806, ptr noundef nonnull @.str.24) #13
  %3808 = load i32, ptr %3195, align 4, !tbaa !5
  %3809 = call ptr @s2n_strerror_debug(i32 noundef %3808, ptr noundef nonnull @.str.24) #13
  %3810 = load i32, ptr %3249, align 4, !tbaa !5
  %3811 = call ptr @strerror(i32 noundef %3810) #13
  %3812 = load i32, ptr %3249, align 4, !tbaa !5
  %3813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3804, ptr noundef nonnull %.str.25.sink2959, i32 noundef %3805, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 607, ptr noundef %3807, ptr noundef %3809, ptr noundef %3811, i32 noundef %3812) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3814:                                             ; preds = %3787
  %3815 = load i32, ptr @test_count, align 4, !tbaa !5
  %3816 = add nsw i32 %3815, 1
  store i32 %3816, ptr @test_count, align 4, !tbaa !5
  %3817 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %9, ptr noundef null, ptr noundef nonnull %3759) #13
  %3818 = icmp eq i32 %3817, -1
  br i1 %3818, label %3819, label %3841

3819:                                             ; preds = %3814
  %3820 = load i32, ptr %3249, align 4, !tbaa !5
  %3821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3822 = call i32 @s2n_print_stacktrace(ptr noundef %3821) #13
  %3823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3824 = trunc nuw i8 %3823 to i1
  br i1 %3824, label %3825, label %3829

3825:                                             ; preds = %3819
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = call i32 @fileno(ptr noundef %3826) #13
  %3828 = call i32 @isatty(i32 noundef %3827) #13
  %.not1157 = icmp eq i32 %3828, 0
  br i1 %.not1157, label %3829, label %3830

3829:                                             ; preds = %3825, %3819
  br label %3830

3830:                                             ; preds = %3825, %3829
  %.str.25.sink2968 = phi ptr [ @.str.25, %3829 ], [ @.str.22, %3825 ]
  store i32 %3820, ptr %3249, align 4, !tbaa !5
  %3831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3832 = load i32, ptr @test_count, align 4, !tbaa !5
  %3833 = load i32, ptr %3195, align 4, !tbaa !5
  %3834 = call ptr @s2n_strerror(i32 noundef %3833, ptr noundef nonnull @.str.24) #13
  %3835 = load i32, ptr %3195, align 4, !tbaa !5
  %3836 = call ptr @s2n_strerror_debug(i32 noundef %3835, ptr noundef nonnull @.str.24) #13
  %3837 = load i32, ptr %3249, align 4, !tbaa !5
  %3838 = call ptr @strerror(i32 noundef %3837) #13
  %3839 = load i32, ptr %3249, align 4, !tbaa !5
  %3840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3831, ptr noundef nonnull %.str.25.sink2968, i32 noundef %3832, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 608, ptr noundef %3834, ptr noundef %3836, ptr noundef %3838, i32 noundef %3839) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3841:                                             ; preds = %3814
  %3842 = getelementptr inbounds i8, ptr %3759, i64 2172
  store i32 35, ptr %3842, align 4, !tbaa !58
  %3843 = getelementptr inbounds i8, ptr %3759, i64 2176
  store i32 2, ptr %3843, align 8, !tbaa !59
  %3844 = load i32, ptr @test_count, align 4, !tbaa !5
  %3845 = add nsw i32 %3844, 1
  store i32 %3845, ptr @test_count, align 4, !tbaa !5
  %3846 = getelementptr inbounds i8, ptr %3759, i64 2204
  %3847 = load i32, ptr %3846, align 4, !tbaa !57
  %3848 = icmp eq i32 %3847, 2
  %.val = load i32, ptr getelementptr inbounds (i8, ptr @tls13_handshakes, i64 4488), align 8
  %.val1660 = load i32, ptr getelementptr inbounds (i8, ptr @handshakes, i64 4488), align 8
  %3849 = select i1 %3848, i32 %.val, i32 %.val1660
  %3850 = icmp eq i32 %3849, 14
  br i1 %3850, label %3873, label %3851

3851:                                             ; preds = %3841
  %3852 = load i32, ptr %3249, align 4, !tbaa !5
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = call i32 @s2n_print_stacktrace(ptr noundef %3853) #13
  %3855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3856 = trunc nuw i8 %3855 to i1
  br i1 %3856, label %3857, label %3861

3857:                                             ; preds = %3851
  %3858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3859 = call i32 @fileno(ptr noundef %3858) #13
  %3860 = call i32 @isatty(i32 noundef %3859) #13
  %.not1032 = icmp eq i32 %3860, 0
  br i1 %.not1032, label %3861, label %3862

3861:                                             ; preds = %3857, %3851
  br label %3862

3862:                                             ; preds = %3857, %3861
  %.str.25.sink2977 = phi ptr [ @.str.25, %3861 ], [ @.str.22, %3857 ]
  store i32 %3852, ptr %3249, align 4, !tbaa !5
  %3863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3864 = load i32, ptr @test_count, align 4, !tbaa !5
  %3865 = load i32, ptr %3195, align 4, !tbaa !5
  %3866 = call ptr @s2n_strerror(i32 noundef %3865, ptr noundef nonnull @.str.24) #13
  %3867 = load i32, ptr %3195, align 4, !tbaa !5
  %3868 = call ptr @s2n_strerror_debug(i32 noundef %3867, ptr noundef nonnull @.str.24) #13
  %3869 = load i32, ptr %3249, align 4, !tbaa !5
  %3870 = call ptr @strerror(i32 noundef %3869) #13
  %3871 = load i32, ptr %3249, align 4, !tbaa !5
  %3872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3863, ptr noundef nonnull %.str.25.sink2977, i32 noundef %3864, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.21, i32 noundef 613, ptr noundef %3866, ptr noundef %3868, ptr noundef %3870, i32 noundef %3871) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3873:                                             ; preds = %3841
  %3874 = add nsw i32 %3844, 2
  store i32 %3874, ptr @test_count, align 4, !tbaa !5
  %3875 = call i32 @s2n_setup_handler_to_expect(i32 noundef 14, i8 noundef zeroext 1)
  %3876 = icmp eq i32 %3875, -1
  br i1 %3876, label %3877, label %3899

3877:                                             ; preds = %3873
  %3878 = load i32, ptr %3249, align 4, !tbaa !5
  %3879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3880 = call i32 @s2n_print_stacktrace(ptr noundef %3879) #13
  %3881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3882 = trunc nuw i8 %3881 to i1
  br i1 %3882, label %3883, label %3887

3883:                                             ; preds = %3877
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = call i32 @fileno(ptr noundef %3884) #13
  %3886 = call i32 @isatty(i32 noundef %3885) #13
  %.not1156 = icmp eq i32 %3886, 0
  br i1 %.not1156, label %3887, label %3888

3887:                                             ; preds = %3883, %3877
  br label %3888

3888:                                             ; preds = %3883, %3887
  %.str.25.sink2986 = phi ptr [ @.str.25, %3887 ], [ @.str.22, %3883 ]
  store i32 %3878, ptr %3249, align 4, !tbaa !5
  %3889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3890 = load i32, ptr @test_count, align 4, !tbaa !5
  %3891 = load i32, ptr %3195, align 4, !tbaa !5
  %3892 = call ptr @s2n_strerror(i32 noundef %3891, ptr noundef nonnull @.str.24) #13
  %3893 = load i32, ptr %3195, align 4, !tbaa !5
  %3894 = call ptr @s2n_strerror_debug(i32 noundef %3893, ptr noundef nonnull @.str.24) #13
  %3895 = load i32, ptr %3249, align 4, !tbaa !5
  %3896 = call ptr @strerror(i32 noundef %3895) #13
  %3897 = load i32, ptr %3249, align 4, !tbaa !5
  %3898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3889, ptr noundef nonnull %.str.25.sink2986, i32 noundef %3890, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.21, i32 noundef 614, ptr noundef %3892, ptr noundef %3894, ptr noundef %3896, i32 noundef %3897) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3899:                                             ; preds = %3873
  %3900 = load i32, ptr @test_count, align 4, !tbaa !5
  %3901 = add nsw i32 %3900, 1
  store i32 %3901, ptr @test_count, align 4, !tbaa !5
  %3902 = load i32, ptr %3846, align 4, !tbaa !57
  %3903 = icmp eq i32 %3902, 2
  %3904 = select i1 %3903, ptr @tls13_state_machine, ptr @state_machine
  %3905 = select i1 %3903, ptr @tls13_handshakes, ptr @handshakes
  %3906 = load i32, ptr %3842, align 4, !tbaa !58
  %3907 = zext i32 %3906 to i64
  %3908 = load i32, ptr %3843, align 8, !tbaa !59
  %3909 = sext i32 %3908 to i64
  %3910 = getelementptr inbounds [32 x i32], ptr %3905, i64 %3907, i64 %3909
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  %3912 = zext i32 %3911 to i64
  %3913 = getelementptr inbounds %struct.s2n_handshake_action, ptr %3904, i64 %3912, i32 1
  %3914 = load i8, ptr %3913, align 1, !tbaa !75
  %3915 = call i32 @s2n_test_write_header(ptr noundef nonnull %9, i8 noundef zeroext 22, i8 noundef zeroext %3914)
  %3916 = icmp eq i32 %3915, -1
  br i1 %3916, label %3917, label %3939

3917:                                             ; preds = %3899
  %3918 = load i32, ptr %3249, align 4, !tbaa !5
  %3919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3920 = call i32 @s2n_print_stacktrace(ptr noundef %3919) #13
  %3921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3922 = trunc nuw i8 %3921 to i1
  br i1 %3922, label %3923, label %3927

3923:                                             ; preds = %3917
  %3924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3925 = call i32 @fileno(ptr noundef %3924) #13
  %3926 = call i32 @isatty(i32 noundef %3925) #13
  %.not1155 = icmp eq i32 %3926, 0
  br i1 %.not1155, label %3927, label %3928

3927:                                             ; preds = %3923, %3917
  br label %3928

3928:                                             ; preds = %3923, %3927
  %.str.25.sink2995 = phi ptr [ @.str.25, %3927 ], [ @.str.22, %3923 ]
  store i32 %3918, ptr %3249, align 4, !tbaa !5
  %3929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3930 = load i32, ptr @test_count, align 4, !tbaa !5
  %3931 = load i32, ptr %3195, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror(i32 noundef %3931, ptr noundef nonnull @.str.24) #13
  %3933 = load i32, ptr %3195, align 4, !tbaa !5
  %3934 = call ptr @s2n_strerror_debug(i32 noundef %3933, ptr noundef nonnull @.str.24) #13
  %3935 = load i32, ptr %3249, align 4, !tbaa !5
  %3936 = call ptr @strerror(i32 noundef %3935) #13
  %3937 = load i32, ptr %3249, align 4, !tbaa !5
  %3938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3929, ptr noundef nonnull %.str.25.sink2995, i32 noundef %3930, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.21, i32 noundef 616, ptr noundef %3932, ptr noundef %3934, ptr noundef %3936, i32 noundef %3937) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3939:                                             ; preds = %3899
  %3940 = load i32, ptr @test_count, align 4, !tbaa !5
  %3941 = add nsw i32 %3940, 1
  store i32 %3941, ptr @test_count, align 4, !tbaa !5
  %3942 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %3759)
  %3943 = icmp eq i32 %3942, -1
  br i1 %3943, label %3966, label %3944

3944:                                             ; preds = %3939
  %3945 = load i32, ptr %3249, align 4, !tbaa !5
  %3946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3947 = call i32 @s2n_print_stacktrace(ptr noundef %3946) #13
  %3948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3949 = trunc nuw i8 %3948 to i1
  br i1 %3949, label %3950, label %3954

3950:                                             ; preds = %3944
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = call i32 @fileno(ptr noundef %3951) #13
  %3953 = call i32 @isatty(i32 noundef %3952) #13
  %.not1033 = icmp eq i32 %3953, 0
  br i1 %.not1033, label %3954, label %3955

3954:                                             ; preds = %3950, %3944
  br label %3955

3955:                                             ; preds = %3950, %3954
  %.str.25.sink3004 = phi ptr [ @.str.25, %3954 ], [ @.str.22, %3950 ]
  store i32 %3945, ptr %3249, align 4, !tbaa !5
  %3956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3957 = load i32, ptr @test_count, align 4, !tbaa !5
  %3958 = load i32, ptr %3195, align 4, !tbaa !5
  %3959 = call ptr @s2n_strerror(i32 noundef %3958, ptr noundef nonnull @.str.24) #13
  %3960 = load i32, ptr %3195, align 4, !tbaa !5
  %3961 = call ptr @s2n_strerror_debug(i32 noundef %3960, ptr noundef nonnull @.str.24) #13
  %3962 = load i32, ptr %3249, align 4, !tbaa !5
  %3963 = call ptr @strerror(i32 noundef %3962) #13
  %3964 = load i32, ptr %3249, align 4, !tbaa !5
  %3965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3956, ptr noundef nonnull %.str.25.sink3004, i32 noundef %3957, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.21, i32 noundef 617, ptr noundef %3959, ptr noundef %3961, ptr noundef %3963, i32 noundef %3964) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3966:                                             ; preds = %3939
  %3967 = load i32, ptr @test_count, align 4, !tbaa !5
  %3968 = add nsw i32 %3967, 1
  store i32 %3968, ptr @test_count, align 4, !tbaa !5
  %3969 = load i32, ptr %3195, align 4, !tbaa !5
  %3970 = icmp eq i32 %3969, 335544322
  br i1 %3970, label %3993, label %3971

3971:                                             ; preds = %3966
  %3972 = load i32, ptr %3249, align 4, !tbaa !5
  %3973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3974 = call i32 @s2n_print_stacktrace(ptr noundef %3973) #13
  %3975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3976 = trunc nuw i8 %3975 to i1
  br i1 %3976, label %3977, label %3981

3977:                                             ; preds = %3971
  %3978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3979 = call i32 @fileno(ptr noundef %3978) #13
  %3980 = call i32 @isatty(i32 noundef %3979) #13
  %.not1034 = icmp eq i32 %3980, 0
  br i1 %.not1034, label %3981, label %3982

3981:                                             ; preds = %3977, %3971
  br label %3982

3982:                                             ; preds = %3977, %3981
  %.str.25.sink3013 = phi ptr [ @.str.25, %3981 ], [ @.str.22, %3977 ]
  store i32 %3972, ptr %3249, align 4, !tbaa !5
  %3983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3984 = load i32, ptr @test_count, align 4, !tbaa !5
  %3985 = load i32, ptr %3195, align 4, !tbaa !5
  %3986 = call ptr @s2n_strerror(i32 noundef %3985, ptr noundef nonnull @.str.24) #13
  %3987 = load i32, ptr %3195, align 4, !tbaa !5
  %3988 = call ptr @s2n_strerror_debug(i32 noundef %3987, ptr noundef nonnull @.str.24) #13
  %3989 = load i32, ptr %3249, align 4, !tbaa !5
  %3990 = call ptr @strerror(i32 noundef %3989) #13
  %3991 = load i32, ptr %3249, align 4, !tbaa !5
  %3992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3983, ptr noundef nonnull %.str.25.sink3013, i32 noundef %3984, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.21, i32 noundef 617, ptr noundef %3986, ptr noundef %3988, ptr noundef %3990, i32 noundef %3991) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3993:                                             ; preds = %3966
  %3994 = add nsw i32 %3967, 2
  store i32 %3994, ptr @test_count, align 4, !tbaa !5
  %3995 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #13
  %3996 = icmp eq ptr %3995, null
  br i1 %3996, label %3997, label %4019

3997:                                             ; preds = %3993
  %3998 = load i32, ptr %3249, align 4, !tbaa !5
  %3999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4000 = call i32 @s2n_print_stacktrace(ptr noundef %3999) #13
  %4001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4002 = trunc nuw i8 %4001 to i1
  br i1 %4002, label %4003, label %4007

4003:                                             ; preds = %3997
  %4004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4005 = call i32 @fileno(ptr noundef %4004) #13
  %4006 = call i32 @isatty(i32 noundef %4005) #13
  %.not1154 = icmp eq i32 %4006, 0
  br i1 %.not1154, label %4007, label %4008

4007:                                             ; preds = %4003, %3997
  br label %4008

4008:                                             ; preds = %4003, %4007
  %.str.25.sink3022 = phi ptr [ @.str.25, %4007 ], [ @.str.22, %4003 ]
  store i32 %3998, ptr %3249, align 4, !tbaa !5
  %4009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4010 = load i32, ptr @test_count, align 4, !tbaa !5
  %4011 = load i32, ptr %3195, align 4, !tbaa !5
  %4012 = call ptr @s2n_strerror(i32 noundef %4011, ptr noundef nonnull @.str.24) #13
  %4013 = load i32, ptr %3195, align 4, !tbaa !5
  %4014 = call ptr @s2n_strerror_debug(i32 noundef %4013, ptr noundef nonnull @.str.24) #13
  %4015 = load i32, ptr %3249, align 4, !tbaa !5
  %4016 = call ptr @strerror(i32 noundef %4015) #13
  %4017 = load i32, ptr %3249, align 4, !tbaa !5
  %4018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4009, ptr noundef nonnull %.str.25.sink3022, i32 noundef %4010, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.21, i32 noundef 617, ptr noundef %4012, ptr noundef %4014, ptr noundef %4016, i32 noundef %4017) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4019:                                             ; preds = %3993
  store i32 0, ptr %3195, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %3249, align 4, !tbaa !5
  %4020 = load i32, ptr @test_count, align 4, !tbaa !5
  %4021 = add nsw i32 %4020, 1
  store i32 %4021, ptr @test_count, align 4, !tbaa !5
  %4022 = load i32, ptr %3843, align 8, !tbaa !59
  %4023 = icmp eq i32 %4022, 2
  br i1 %4023, label %4046, label %4024

4024:                                             ; preds = %4019
  %4025 = load i32, ptr %3249, align 4, !tbaa !5
  %4026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4027 = call i32 @s2n_print_stacktrace(ptr noundef %4026) #13
  %4028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4029 = trunc nuw i8 %4028 to i1
  br i1 %4029, label %4030, label %4034

4030:                                             ; preds = %4024
  %4031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4032 = call i32 @fileno(ptr noundef %4031) #13
  %4033 = call i32 @isatty(i32 noundef %4032) #13
  %.not1035 = icmp eq i32 %4033, 0
  br i1 %.not1035, label %4034, label %4035

4034:                                             ; preds = %4030, %4024
  br label %4035

4035:                                             ; preds = %4030, %4034
  %.str.25.sink3031 = phi ptr [ @.str.25, %4034 ], [ @.str.22, %4030 ]
  store i32 %4025, ptr %3249, align 4, !tbaa !5
  %4036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4037 = load i32, ptr @test_count, align 4, !tbaa !5
  %4038 = load i32, ptr %3195, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror(i32 noundef %4038, ptr noundef nonnull @.str.24) #13
  %4040 = load i32, ptr %3195, align 4, !tbaa !5
  %4041 = call ptr @s2n_strerror_debug(i32 noundef %4040, ptr noundef nonnull @.str.24) #13
  %4042 = load i32, ptr %3249, align 4, !tbaa !5
  %4043 = call ptr @strerror(i32 noundef %4042) #13
  %4044 = load i32, ptr %3249, align 4, !tbaa !5
  %4045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4036, ptr noundef nonnull %.str.25.sink3031, i32 noundef %4037, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.21, i32 noundef 619, ptr noundef %4039, ptr noundef %4041, ptr noundef %4043, i32 noundef %4044) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4046:                                             ; preds = %4019
  %4047 = add nsw i32 %4020, 2
  store i32 %4047, ptr @test_count, align 4, !tbaa !5
  %4048 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not1036 = icmp eq i32 %4048, 0
  br i1 %.not1036, label %4071, label %4049

4049:                                             ; preds = %4046
  %4050 = load i32, ptr %3249, align 4, !tbaa !5
  %4051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4052 = call i32 @s2n_print_stacktrace(ptr noundef %4051) #13
  %4053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4054 = trunc nuw i8 %4053 to i1
  br i1 %4054, label %4055, label %4059

4055:                                             ; preds = %4049
  %4056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4057 = call i32 @fileno(ptr noundef %4056) #13
  %4058 = call i32 @isatty(i32 noundef %4057) #13
  %.not1153 = icmp eq i32 %4058, 0
  br i1 %.not1153, label %4059, label %4060

4059:                                             ; preds = %4055, %4049
  br label %4060

4060:                                             ; preds = %4055, %4059
  %.str.25.sink3040 = phi ptr [ @.str.25, %4059 ], [ @.str.22, %4055 ]
  store i32 %4050, ptr %3249, align 4, !tbaa !5
  %4061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4062 = load i32, ptr @test_count, align 4, !tbaa !5
  %4063 = load i32, ptr %3195, align 4, !tbaa !5
  %4064 = call ptr @s2n_strerror(i32 noundef %4063, ptr noundef nonnull @.str.24) #13
  %4065 = load i32, ptr %3195, align 4, !tbaa !5
  %4066 = call ptr @s2n_strerror_debug(i32 noundef %4065, ptr noundef nonnull @.str.24) #13
  %4067 = load i32, ptr %3249, align 4, !tbaa !5
  %4068 = call ptr @strerror(i32 noundef %4067) #13
  %4069 = load i32, ptr %3249, align 4, !tbaa !5
  %4070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4061, ptr noundef nonnull %.str.25.sink3040, i32 noundef %4062, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.21, i32 noundef 620, ptr noundef %4064, ptr noundef %4066, ptr noundef %4068, i32 noundef %4069) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4071:                                             ; preds = %4046
  %4072 = add nsw i32 %4020, 3
  store i32 %4072, ptr @test_count, align 4, !tbaa !5
  %4073 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not1037 = icmp eq i32 %4073, 0
  br i1 %.not1037, label %4096, label %4074

4074:                                             ; preds = %4071
  %4075 = load i32, ptr %3249, align 4, !tbaa !5
  %4076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4077 = call i32 @s2n_print_stacktrace(ptr noundef %4076) #13
  %4078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4079 = trunc nuw i8 %4078 to i1
  br i1 %4079, label %4080, label %4084

4080:                                             ; preds = %4074
  %4081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4082 = call i32 @fileno(ptr noundef %4081) #13
  %4083 = call i32 @isatty(i32 noundef %4082) #13
  %.not1152 = icmp eq i32 %4083, 0
  br i1 %.not1152, label %4084, label %4085

4084:                                             ; preds = %4080, %4074
  br label %4085

4085:                                             ; preds = %4080, %4084
  %.str.25.sink3049 = phi ptr [ @.str.25, %4084 ], [ @.str.22, %4080 ]
  store i32 %4075, ptr %3249, align 4, !tbaa !5
  %4086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4087 = load i32, ptr @test_count, align 4, !tbaa !5
  %4088 = load i32, ptr %3195, align 4, !tbaa !5
  %4089 = call ptr @s2n_strerror(i32 noundef %4088, ptr noundef nonnull @.str.24) #13
  %4090 = load i32, ptr %3195, align 4, !tbaa !5
  %4091 = call ptr @s2n_strerror_debug(i32 noundef %4090, ptr noundef nonnull @.str.24) #13
  %4092 = load i32, ptr %3249, align 4, !tbaa !5
  %4093 = call ptr @strerror(i32 noundef %4092) #13
  %4094 = load i32, ptr %3249, align 4, !tbaa !5
  %4095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4086, ptr noundef nonnull %.str.25.sink3049, i32 noundef %4087, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.21, i32 noundef 621, ptr noundef %4089, ptr noundef %4091, ptr noundef %4093, i32 noundef %4094) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4096:                                             ; preds = %4071
  %4097 = add nsw i32 %4020, 4
  store i32 %4097, ptr @test_count, align 4, !tbaa !5
  %4098 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #13
  %4099 = icmp eq i32 %4098, -1
  br i1 %4099, label %4100, label %4122

4100:                                             ; preds = %4096
  %4101 = load i32, ptr %3249, align 4, !tbaa !5
  %4102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4103 = call i32 @s2n_print_stacktrace(ptr noundef %4102) #13
  %4104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4105 = trunc nuw i8 %4104 to i1
  br i1 %4105, label %4106, label %4110

4106:                                             ; preds = %4100
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4108 = call i32 @fileno(ptr noundef %4107) #13
  %4109 = call i32 @isatty(i32 noundef %4108) #13
  %.not1151 = icmp eq i32 %4109, 0
  br i1 %.not1151, label %4110, label %4111

4110:                                             ; preds = %4106, %4100
  br label %4111

4111:                                             ; preds = %4106, %4110
  %.str.25.sink3058 = phi ptr [ @.str.25, %4110 ], [ @.str.22, %4106 ]
  store i32 %4101, ptr %3249, align 4, !tbaa !5
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = load i32, ptr @test_count, align 4, !tbaa !5
  %4114 = load i32, ptr %3195, align 4, !tbaa !5
  %4115 = call ptr @s2n_strerror(i32 noundef %4114, ptr noundef nonnull @.str.24) #13
  %4116 = load i32, ptr %3195, align 4, !tbaa !5
  %4117 = call ptr @s2n_strerror_debug(i32 noundef %4116, ptr noundef nonnull @.str.24) #13
  %4118 = load i32, ptr %3249, align 4, !tbaa !5
  %4119 = call ptr @strerror(i32 noundef %4118) #13
  %4120 = load i32, ptr %3249, align 4, !tbaa !5
  %4121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4112, ptr noundef nonnull %.str.25.sink3058, i32 noundef %4113, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 623, ptr noundef %4115, ptr noundef %4117, ptr noundef %4119, i32 noundef %4120) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4122:                                             ; preds = %4096
  %4123 = load i32, ptr @test_count, align 4, !tbaa !5
  %4124 = add nsw i32 %4123, 1
  store i32 %4124, ptr @test_count, align 4, !tbaa !5
  %4125 = call i32 @s2n_connection_free(ptr noundef nonnull %3759) #13
  %4126 = icmp eq i32 %4125, -1
  br i1 %4126, label %4127, label %4149

4127:                                             ; preds = %4122
  %4128 = load i32, ptr %3249, align 4, !tbaa !5
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = call i32 @s2n_print_stacktrace(ptr noundef %4129) #13
  %4131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4132 = trunc nuw i8 %4131 to i1
  br i1 %4132, label %4133, label %4137

4133:                                             ; preds = %4127
  %4134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4135 = call i32 @fileno(ptr noundef %4134) #13
  %4136 = call i32 @isatty(i32 noundef %4135) #13
  %.not1150 = icmp eq i32 %4136, 0
  br i1 %.not1150, label %4137, label %4138

4137:                                             ; preds = %4133, %4127
  br label %4138

4138:                                             ; preds = %4133, %4137
  %.str.25.sink3067 = phi ptr [ @.str.25, %4137 ], [ @.str.22, %4133 ]
  store i32 %4128, ptr %3249, align 4, !tbaa !5
  %4139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4140 = load i32, ptr @test_count, align 4, !tbaa !5
  %4141 = load i32, ptr %3195, align 4, !tbaa !5
  %4142 = call ptr @s2n_strerror(i32 noundef %4141, ptr noundef nonnull @.str.24) #13
  %4143 = load i32, ptr %3195, align 4, !tbaa !5
  %4144 = call ptr @s2n_strerror_debug(i32 noundef %4143, ptr noundef nonnull @.str.24) #13
  %4145 = load i32, ptr %3249, align 4, !tbaa !5
  %4146 = call ptr @strerror(i32 noundef %4145) #13
  %4147 = load i32, ptr %3249, align 4, !tbaa !5
  %4148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4139, ptr noundef nonnull %.str.25.sink3067, i32 noundef %4140, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 624, ptr noundef %4142, ptr noundef %4144, ptr noundef %4146, i32 noundef %4147) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4149:                                             ; preds = %4122
  store i8 %3758, ptr getelementptr inbounds (i8, ptr @state_machine, i64 337), align 1, !tbaa !75
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #13
  %4150 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %4151 = getelementptr inbounds i8, ptr %4150, i64 220
  store i8 34, ptr %4151, align 4, !tbaa !27
  %4152 = load i32, ptr @test_count, align 4, !tbaa !5
  %4153 = add nsw i32 %4152, 1
  store i32 %4153, ptr @test_count, align 4, !tbaa !5
  %4154 = call i32 @s2n_conn_choose_state_machine(ptr noundef %4150, i8 noundef zeroext 34)
  %4155 = call zeroext i1 @s2n_result_is_ok(i32 %4154)
  br i1 %4155, label %4178, label %4156

4156:                                             ; preds = %4149
  %4157 = load i32, ptr %3249, align 4, !tbaa !5
  %4158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4159 = call i32 @s2n_print_stacktrace(ptr noundef %4158) #13
  %4160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4161 = trunc nuw i8 %4160 to i1
  br i1 %4161, label %4162, label %4166

4162:                                             ; preds = %4156
  %4163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4164 = call i32 @fileno(ptr noundef %4163) #13
  %4165 = call i32 @isatty(i32 noundef %4164) #13
  %.not1038 = icmp eq i32 %4165, 0
  br i1 %.not1038, label %4166, label %4167

4166:                                             ; preds = %4162, %4156
  br label %4167

4167:                                             ; preds = %4162, %4166
  %.str.25.sink3076 = phi ptr [ @.str.25, %4166 ], [ @.str.22, %4162 ]
  store i32 %4157, ptr %3249, align 4, !tbaa !5
  %4168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4169 = load i32, ptr @test_count, align 4, !tbaa !5
  %4170 = load i32, ptr %3195, align 4, !tbaa !5
  %4171 = call ptr @s2n_strerror(i32 noundef %4170, ptr noundef nonnull @.str.24) #13
  %4172 = load i32, ptr %3195, align 4, !tbaa !5
  %4173 = call ptr @s2n_strerror_debug(i32 noundef %4172, ptr noundef nonnull @.str.24) #13
  %4174 = load i32, ptr %3249, align 4, !tbaa !5
  %4175 = call ptr @strerror(i32 noundef %4174) #13
  %4176 = load i32, ptr %3249, align 4, !tbaa !5
  %4177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4168, ptr noundef nonnull %.str.25.sink3076, i32 noundef %4169, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 632, ptr noundef %4171, ptr noundef %4173, ptr noundef %4175, i32 noundef %4176) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4178:                                             ; preds = %4149
  %4179 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %4150, i32 noundef 2) #13
  %4180 = icmp sgt i32 %4179, -1
  br i1 %4180, label %4181, label %.thread

4181:                                             ; preds = %4178
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %10, i8 0, i64 40, i1 false)
  %4182 = load i32, ptr @test_count, align 4, !tbaa !5
  %4183 = add nsw i32 %4182, 1
  store i32 %4183, ptr @test_count, align 4, !tbaa !5
  %4184 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %10, i32 noundef 0) #13
  %4185 = icmp eq i32 %4184, -1
  br i1 %4185, label %4186, label %4208

4186:                                             ; preds = %4181
  %4187 = load i32, ptr %3249, align 4, !tbaa !5
  %4188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4189 = call i32 @s2n_print_stacktrace(ptr noundef %4188) #13
  %4190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4191 = trunc nuw i8 %4190 to i1
  br i1 %4191, label %4192, label %4196

4192:                                             ; preds = %4186
  %4193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4194 = call i32 @fileno(ptr noundef %4193) #13
  %4195 = call i32 @isatty(i32 noundef %4194) #13
  %.not1149 = icmp eq i32 %4195, 0
  br i1 %.not1149, label %4196, label %4197

4196:                                             ; preds = %4192, %4186
  br label %4197

4197:                                             ; preds = %4192, %4196
  %.str.25.sink3085 = phi ptr [ @.str.25, %4196 ], [ @.str.22, %4192 ]
  store i32 %4187, ptr %3249, align 4, !tbaa !5
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = load i32, ptr @test_count, align 4, !tbaa !5
  %4200 = load i32, ptr %3195, align 4, !tbaa !5
  %4201 = call ptr @s2n_strerror(i32 noundef %4200, ptr noundef nonnull @.str.24) #13
  %4202 = load i32, ptr %3195, align 4, !tbaa !5
  %4203 = call ptr @s2n_strerror_debug(i32 noundef %4202, ptr noundef nonnull @.str.24) #13
  %4204 = load i32, ptr %3249, align 4, !tbaa !5
  %4205 = call ptr @strerror(i32 noundef %4204) #13
  %4206 = load i32, ptr %3249, align 4, !tbaa !5
  %4207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4198, ptr noundef nonnull %.str.25.sink3085, i32 noundef %4199, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 636, ptr noundef %4201, ptr noundef %4203, ptr noundef %4205, i32 noundef %4206) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4208:                                             ; preds = %4181
  %4209 = load i32, ptr @test_count, align 4, !tbaa !5
  %4210 = add nsw i32 %4209, 1
  store i32 %4210, ptr @test_count, align 4, !tbaa !5
  %4211 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %10, ptr noundef null, ptr noundef nonnull %4150) #13
  %4212 = icmp eq i32 %4211, -1
  br i1 %4212, label %4213, label %4235

4213:                                             ; preds = %4208
  %4214 = load i32, ptr %3249, align 4, !tbaa !5
  %4215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4216 = call i32 @s2n_print_stacktrace(ptr noundef %4215) #13
  %4217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4218 = trunc nuw i8 %4217 to i1
  br i1 %4218, label %4219, label %4223

4219:                                             ; preds = %4213
  %4220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4221 = call i32 @fileno(ptr noundef %4220) #13
  %4222 = call i32 @isatty(i32 noundef %4221) #13
  %.not1148 = icmp eq i32 %4222, 0
  br i1 %.not1148, label %4223, label %4224

4223:                                             ; preds = %4219, %4213
  br label %4224

4224:                                             ; preds = %4219, %4223
  %.str.25.sink3094 = phi ptr [ @.str.25, %4223 ], [ @.str.22, %4219 ]
  store i32 %4214, ptr %3249, align 4, !tbaa !5
  %4225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4226 = load i32, ptr @test_count, align 4, !tbaa !5
  %4227 = load i32, ptr %3195, align 4, !tbaa !5
  %4228 = call ptr @s2n_strerror(i32 noundef %4227, ptr noundef nonnull @.str.24) #13
  %4229 = load i32, ptr %3195, align 4, !tbaa !5
  %4230 = call ptr @s2n_strerror_debug(i32 noundef %4229, ptr noundef nonnull @.str.24) #13
  %4231 = load i32, ptr %3249, align 4, !tbaa !5
  %4232 = call ptr @strerror(i32 noundef %4231) #13
  %4233 = load i32, ptr %3249, align 4, !tbaa !5
  %4234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4225, ptr noundef nonnull %.str.25.sink3094, i32 noundef %4226, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 637, ptr noundef %4228, ptr noundef %4230, ptr noundef %4232, i32 noundef %4233) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4235:                                             ; preds = %4208
  %4236 = load i32, ptr @test_count, align 4, !tbaa !5
  %4237 = add nsw i32 %4236, 1
  store i32 %4237, ptr @test_count, align 4, !tbaa !5
  %4238 = call i32 @s2n_test_write_header(ptr noundef nonnull %10, i8 noundef zeroext 22, i8 noundef zeroext 13)
  %4239 = icmp eq i32 %4238, -1
  br i1 %4239, label %4240, label %4262

4240:                                             ; preds = %4235
  %4241 = load i32, ptr %3249, align 4, !tbaa !5
  %4242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4243 = call i32 @s2n_print_stacktrace(ptr noundef %4242) #13
  %4244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4245 = trunc nuw i8 %4244 to i1
  br i1 %4245, label %4246, label %4250

4246:                                             ; preds = %4240
  %4247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4248 = call i32 @fileno(ptr noundef %4247) #13
  %4249 = call i32 @isatty(i32 noundef %4248) #13
  %.not1147 = icmp eq i32 %4249, 0
  br i1 %.not1147, label %4250, label %4251

4250:                                             ; preds = %4246, %4240
  br label %4251

4251:                                             ; preds = %4246, %4250
  %.str.25.sink3103 = phi ptr [ @.str.25, %4250 ], [ @.str.22, %4246 ]
  store i32 %4241, ptr %3249, align 4, !tbaa !5
  %4252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4253 = load i32, ptr @test_count, align 4, !tbaa !5
  %4254 = load i32, ptr %3195, align 4, !tbaa !5
  %4255 = call ptr @s2n_strerror(i32 noundef %4254, ptr noundef nonnull @.str.24) #13
  %4256 = load i32, ptr %3195, align 4, !tbaa !5
  %4257 = call ptr @s2n_strerror_debug(i32 noundef %4256, ptr noundef nonnull @.str.24) #13
  %4258 = load i32, ptr %3249, align 4, !tbaa !5
  %4259 = call ptr @strerror(i32 noundef %4258) #13
  %4260 = load i32, ptr %3249, align 4, !tbaa !5
  %4261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4252, ptr noundef nonnull %.str.25.sink3103, i32 noundef %4253, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.21, i32 noundef 639, ptr noundef %4255, ptr noundef %4257, ptr noundef %4259, i32 noundef %4260) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4262:                                             ; preds = %4235
  %4263 = load i32, ptr @test_count, align 4, !tbaa !5
  %4264 = add nsw i32 %4263, 1
  store i32 %4264, ptr @test_count, align 4, !tbaa !5
  %4265 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %4150)
  %4266 = icmp eq i32 %4265, -1
  br i1 %4266, label %4289, label %4267

4267:                                             ; preds = %4262
  %4268 = load i32, ptr %3249, align 4, !tbaa !5
  %4269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4270 = call i32 @s2n_print_stacktrace(ptr noundef %4269) #13
  %4271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4272 = trunc nuw i8 %4271 to i1
  br i1 %4272, label %4273, label %4277

4273:                                             ; preds = %4267
  %4274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4275 = call i32 @fileno(ptr noundef %4274) #13
  %4276 = call i32 @isatty(i32 noundef %4275) #13
  %.not1039 = icmp eq i32 %4276, 0
  br i1 %.not1039, label %4277, label %4278

4277:                                             ; preds = %4273, %4267
  br label %4278

4278:                                             ; preds = %4273, %4277
  %.str.25.sink3112 = phi ptr [ @.str.25, %4277 ], [ @.str.22, %4273 ]
  store i32 %4268, ptr %3249, align 4, !tbaa !5
  %4279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4280 = load i32, ptr @test_count, align 4, !tbaa !5
  %4281 = load i32, ptr %3195, align 4, !tbaa !5
  %4282 = call ptr @s2n_strerror(i32 noundef %4281, ptr noundef nonnull @.str.24) #13
  %4283 = load i32, ptr %3195, align 4, !tbaa !5
  %4284 = call ptr @s2n_strerror_debug(i32 noundef %4283, ptr noundef nonnull @.str.24) #13
  %4285 = load i32, ptr %3249, align 4, !tbaa !5
  %4286 = call ptr @strerror(i32 noundef %4285) #13
  %4287 = load i32, ptr %3249, align 4, !tbaa !5
  %4288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4279, ptr noundef nonnull %.str.25.sink3112, i32 noundef %4280, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.21, i32 noundef 640, ptr noundef %4282, ptr noundef %4284, ptr noundef %4286, i32 noundef %4287) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4289:                                             ; preds = %4262
  %4290 = load i32, ptr @test_count, align 4, !tbaa !5
  %4291 = add nsw i32 %4290, 1
  store i32 %4291, ptr @test_count, align 4, !tbaa !5
  %4292 = load i32, ptr %3195, align 4, !tbaa !5
  %4293 = icmp eq i32 %4292, 402653218
  br i1 %4293, label %4316, label %4294

4294:                                             ; preds = %4289
  %4295 = load i32, ptr %3249, align 4, !tbaa !5
  %4296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4297 = call i32 @s2n_print_stacktrace(ptr noundef %4296) #13
  %4298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4299 = trunc nuw i8 %4298 to i1
  br i1 %4299, label %4300, label %4304

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

4304:                                             ; preds = %4300, %4294
  br label %4305

4305:                                             ; preds = %4300, %4304
  %.str.25.sink3121 = phi ptr [ @.str.25, %4304 ], [ @.str.22, %4300 ]
  store i32 %4295, ptr %3249, align 4, !tbaa !5
  %4306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4307 = load i32, ptr @test_count, align 4, !tbaa !5
  %4308 = load i32, ptr %3195, align 4, !tbaa !5
  %4309 = call ptr @s2n_strerror(i32 noundef %4308, ptr noundef nonnull @.str.24) #13
  %4310 = load i32, ptr %3195, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror_debug(i32 noundef %4310, ptr noundef nonnull @.str.24) #13
  %4312 = load i32, ptr %3249, align 4, !tbaa !5
  %4313 = call ptr @strerror(i32 noundef %4312) #13
  %4314 = load i32, ptr %3249, align 4, !tbaa !5
  %4315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4306, ptr noundef nonnull %.str.25.sink3121, i32 noundef %4307, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.21, i32 noundef 640, ptr noundef %4309, ptr noundef %4311, ptr noundef %4313, i32 noundef %4314) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4316:                                             ; preds = %4289
  %4317 = add nsw i32 %4290, 2
  store i32 %4317, ptr @test_count, align 4, !tbaa !5
  %4318 = call ptr @s2n_strerror_debug(i32 noundef 402653218, ptr noundef nonnull @.str.24) #13
  %4319 = icmp eq ptr %4318, null
  br i1 %4319, label %4320, label %4342

4320:                                             ; preds = %4316
  %4321 = load i32, ptr %3249, align 4, !tbaa !5
  %4322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4323 = call i32 @s2n_print_stacktrace(ptr noundef %4322) #13
  %4324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4325 = trunc nuw i8 %4324 to i1
  br i1 %4325, label %4326, label %4330

4326:                                             ; preds = %4320
  %4327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4328 = call i32 @fileno(ptr noundef %4327) #13
  %4329 = call i32 @isatty(i32 noundef %4328) #13
  %.not1146 = icmp eq i32 %4329, 0
  br i1 %.not1146, label %4330, label %4331

4330:                                             ; preds = %4326, %4320
  br label %4331

4331:                                             ; preds = %4326, %4330
  %.str.25.sink3130 = phi ptr [ @.str.25, %4330 ], [ @.str.22, %4326 ]
  store i32 %4321, ptr %3249, align 4, !tbaa !5
  %4332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4333 = load i32, ptr @test_count, align 4, !tbaa !5
  %4334 = load i32, ptr %3195, align 4, !tbaa !5
  %4335 = call ptr @s2n_strerror(i32 noundef %4334, ptr noundef nonnull @.str.24) #13
  %4336 = load i32, ptr %3195, align 4, !tbaa !5
  %4337 = call ptr @s2n_strerror_debug(i32 noundef %4336, ptr noundef nonnull @.str.24) #13
  %4338 = load i32, ptr %3249, align 4, !tbaa !5
  %4339 = call ptr @strerror(i32 noundef %4338) #13
  %4340 = load i32, ptr %3249, align 4, !tbaa !5
  %4341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4332, ptr noundef nonnull %.str.25.sink3130, i32 noundef %4333, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.21, i32 noundef 640, ptr noundef %4335, ptr noundef %4337, ptr noundef %4339, i32 noundef %4340) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4342:                                             ; preds = %4316
  store i32 0, ptr %3195, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %3249, align 4, !tbaa !5
  %4343 = load i32, ptr @test_count, align 4, !tbaa !5
  %4344 = add nsw i32 %4343, 1
  store i32 %4344, ptr @test_count, align 4, !tbaa !5
  %4345 = call i32 @s2n_stuffer_free(ptr noundef nonnull %10) #13
  %4346 = icmp eq i32 %4345, -1
  br i1 %4346, label %4347, label %4369

4347:                                             ; preds = %4342
  %4348 = load i32, ptr %3249, align 4, !tbaa !5
  %4349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4350 = call i32 @s2n_print_stacktrace(ptr noundef %4349) #13
  %4351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4352 = trunc nuw i8 %4351 to i1
  br i1 %4352, label %4353, label %4357

4353:                                             ; preds = %4347
  %4354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4355 = call i32 @fileno(ptr noundef %4354) #13
  %4356 = call i32 @isatty(i32 noundef %4355) #13
  %.not1145 = icmp eq i32 %4356, 0
  br i1 %.not1145, label %4357, label %4358

4357:                                             ; preds = %4353, %4347
  br label %4358

4358:                                             ; preds = %4353, %4357
  %.str.25.sink3139 = phi ptr [ @.str.25, %4357 ], [ @.str.22, %4353 ]
  store i32 %4348, ptr %3249, align 4, !tbaa !5
  %4359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4360 = load i32, ptr @test_count, align 4, !tbaa !5
  %4361 = load i32, ptr %3195, align 4, !tbaa !5
  %4362 = call ptr @s2n_strerror(i32 noundef %4361, ptr noundef nonnull @.str.24) #13
  %4363 = load i32, ptr %3195, align 4, !tbaa !5
  %4364 = call ptr @s2n_strerror_debug(i32 noundef %4363, ptr noundef nonnull @.str.24) #13
  %4365 = load i32, ptr %3249, align 4, !tbaa !5
  %4366 = call ptr @strerror(i32 noundef %4365) #13
  %4367 = load i32, ptr %3249, align 4, !tbaa !5
  %4368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4359, ptr noundef nonnull %.str.25.sink3139, i32 noundef %4360, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 642, ptr noundef %4362, ptr noundef %4364, ptr noundef %4366, i32 noundef %4367) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4369:                                             ; preds = %4342
  %4370 = load i32, ptr @test_count, align 4, !tbaa !5
  %4371 = add nsw i32 %4370, 1
  store i32 %4371, ptr @test_count, align 4, !tbaa !5
  %4372 = call i32 @s2n_connection_free(ptr noundef nonnull %4150) #13
  %4373 = icmp eq i32 %4372, -1
  br i1 %4373, label %4374, label %4396

4374:                                             ; preds = %4369
  %4375 = load i32, ptr %3249, align 4, !tbaa !5
  %4376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4377 = call i32 @s2n_print_stacktrace(ptr noundef %4376) #13
  %4378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4379 = trunc nuw i8 %4378 to i1
  br i1 %4379, label %4380, label %4384

4380:                                             ; preds = %4374
  %4381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4382 = call i32 @fileno(ptr noundef %4381) #13
  %4383 = call i32 @isatty(i32 noundef %4382) #13
  %.not1144 = icmp eq i32 %4383, 0
  br i1 %.not1144, label %4384, label %4385

4384:                                             ; preds = %4380, %4374
  br label %4385

4385:                                             ; preds = %4380, %4384
  %.str.25.sink3148 = phi ptr [ @.str.25, %4384 ], [ @.str.22, %4380 ]
  store i32 %4375, ptr %3249, align 4, !tbaa !5
  %4386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4387 = load i32, ptr @test_count, align 4, !tbaa !5
  %4388 = load i32, ptr %3195, align 4, !tbaa !5
  %4389 = call ptr @s2n_strerror(i32 noundef %4388, ptr noundef nonnull @.str.24) #13
  %4390 = load i32, ptr %3195, align 4, !tbaa !5
  %4391 = call ptr @s2n_strerror_debug(i32 noundef %4390, ptr noundef nonnull @.str.24) #13
  %4392 = load i32, ptr %3249, align 4, !tbaa !5
  %4393 = call ptr @strerror(i32 noundef %4392) #13
  %4394 = load i32, ptr %3249, align 4, !tbaa !5
  %4395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4386, ptr noundef nonnull %.str.25.sink3148, i32 noundef %4387, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 643, ptr noundef %4389, ptr noundef %4391, ptr noundef %4393, i32 noundef %4394) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4396:                                             ; preds = %4369
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #13
  %test_count.promoted = load i32, ptr @test_count, align 4, !tbaa !5
  %umax = call i64 @llvm.umax.i64(i64 %169, i64 1)
  br label %4397

4397:                                             ; preds = %4396, %4506
  %.09821448 = phi i64 [ 0, %4396 ], [ %4507, %4506 ]
  %4398 = phi i32 [ %test_count.promoted, %4396 ], [ %test_count.promoted1453, %4506 ]
  %4399 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %.09821448
  %4400 = load i16, ptr %4399, align 2, !tbaa !15
  %4401 = zext i16 %4400 to i64
  %4402 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %4401
  %4403 = and i16 %4400, 161
  %or.cond1262 = icmp eq i16 %4403, 33
  br i1 %or.cond1262, label %.preheader1276, label %4506

.preheader1276:                                   ; preds = %4397, %4479
  %.09841447 = phi i64 [ %4480, %4479 ], [ 1, %4397 ]
  %4404 = getelementptr inbounds i32, ptr %4402, i64 %.09841447
  %4405 = load i32, ptr %4404, align 4, !tbaa !5
  %4406 = zext i32 %4405 to i64
  %4407 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %4406, i32 2
  %4408 = load i8, ptr %4407, align 2, !tbaa !77
  %.not1139 = icmp eq i8 %4408, 67
  br i1 %.not1139, label %4409, label %4472

4409:                                             ; preds = %.preheader1276
  %4410 = getelementptr i8, ptr %4404, i64 -4
  %4411 = load i32, ptr %4410, align 4, !tbaa !5
  %4412 = zext i32 %4411 to i64
  %4413 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %4412, i32 2
  %4414 = load i8, ptr %4413, align 2, !tbaa !77
  %.not1140 = icmp eq i8 %4414, 83
  br i1 %.not1140, label %4415, label %4472

4415:                                             ; preds = %.preheader1276.1, %4409
  %4416 = phi i64 [ %.09841447, %4409 ], [ %4473, %.preheader1276.1 ]
  %.lcssa4025 = phi i32 [ %4405, %4409 ], [ %4475, %.preheader1276.1 ]
  %4417 = add nsw i32 %4398, 1
  store i32 %4417, ptr @test_count, align 4, !tbaa !5
  %4418 = icmp eq i32 %.lcssa4025, 11
  br i1 %4418, label %4441, label %4419

4419:                                             ; preds = %4415
  %4420 = load i32, ptr %3249, align 4, !tbaa !5
  %4421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4422 = call i32 @s2n_print_stacktrace(ptr noundef %4421) #13
  %4423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4424 = trunc nuw i8 %4423 to i1
  br i1 %4424, label %4425, label %4429

4425:                                             ; preds = %4419
  %4426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4427 = call i32 @fileno(ptr noundef %4426) #13
  %4428 = call i32 @isatty(i32 noundef %4427) #13
  %.not1141 = icmp eq i32 %4428, 0
  br i1 %.not1141, label %4429, label %4430

4429:                                             ; preds = %4425, %4419
  br label %4430

4430:                                             ; preds = %4425, %4429
  %.str.25.sink3157 = phi ptr [ @.str.25, %4429 ], [ @.str.22, %4425 ]
  store i32 %4420, ptr %3249, align 4, !tbaa !5
  %4431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4432 = load i32, ptr @test_count, align 4, !tbaa !5
  %4433 = load i32, ptr %3195, align 4, !tbaa !5
  %4434 = call ptr @s2n_strerror(i32 noundef %4433, ptr noundef nonnull @.str.24) #13
  %4435 = load i32, ptr %3195, align 4, !tbaa !5
  %4436 = call ptr @s2n_strerror_debug(i32 noundef %4435, ptr noundef nonnull @.str.24) #13
  %4437 = load i32, ptr %3249, align 4, !tbaa !5
  %4438 = call ptr @strerror(i32 noundef %4437) #13
  %4439 = load i32, ptr %3249, align 4, !tbaa !5
  %4440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4431, ptr noundef nonnull %.str.25.sink3157, i32 noundef %4432, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.21, i32 noundef 686, ptr noundef %4434, ptr noundef %4436, ptr noundef %4438, i32 noundef %4439) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4441:                                             ; preds = %4415
  %4442 = getelementptr inbounds i32, ptr %4402, i64 %4416
  %4443 = add nsw i32 %4398, 2
  store i32 %4443, ptr @test_count, align 4, !tbaa !5
  %4444 = getelementptr inbounds i8, ptr %4442, i64 4
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = zext i32 %4445 to i64
  %4447 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %4446, i32 2
  %4448 = load i8, ptr %4447, align 2, !tbaa !77
  %4449 = icmp eq i8 %4448, 67
  br i1 %4449, label %4481, label %4450

4450:                                             ; preds = %4441
  %4451 = load i32, ptr %3249, align 4, !tbaa !5
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = call i32 @s2n_print_stacktrace(ptr noundef %4452) #13
  %4454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4455 = trunc nuw i8 %4454 to i1
  br i1 %4455, label %4456, label %4460

4456:                                             ; preds = %4450
  %4457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4458 = call i32 @fileno(ptr noundef %4457) #13
  %4459 = call i32 @isatty(i32 noundef %4458) #13
  %.not1142 = icmp eq i32 %4459, 0
  br i1 %.not1142, label %4460, label %4461

4460:                                             ; preds = %4456, %4450
  br label %4461

4461:                                             ; preds = %4456, %4460
  %.str.25.sink3166 = phi ptr [ @.str.25, %4460 ], [ @.str.22, %4456 ]
  store i32 %4451, ptr %3249, align 4, !tbaa !5
  %4462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4463 = load i32, ptr @test_count, align 4, !tbaa !5
  %4464 = load i32, ptr %3195, align 4, !tbaa !5
  %4465 = call ptr @s2n_strerror(i32 noundef %4464, ptr noundef nonnull @.str.24) #13
  %4466 = load i32, ptr %3195, align 4, !tbaa !5
  %4467 = call ptr @s2n_strerror_debug(i32 noundef %4466, ptr noundef nonnull @.str.24) #13
  %4468 = load i32, ptr %3249, align 4, !tbaa !5
  %4469 = call ptr @strerror(i32 noundef %4468) #13
  %4470 = load i32, ptr %3249, align 4, !tbaa !5
  %4471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4462, ptr noundef nonnull %.str.25.sink3166, i32 noundef %4463, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.21, i32 noundef 687, ptr noundef %4465, ptr noundef %4467, ptr noundef %4469, i32 noundef %4470) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4472:                                             ; preds = %.preheader1276, %4409
  %4473 = add nuw nsw i64 %.09841447, 1
  %exitcond1626.not = icmp eq i64 %4473, 32
  br i1 %exitcond1626.not, label %4483, label %.preheader1276.1, !llvm.loop !78

.preheader1276.1:                                 ; preds = %4472
  %4474 = getelementptr inbounds i32, ptr %4402, i64 %4473
  %4475 = load i32, ptr %4474, align 4, !tbaa !5
  %4476 = zext i32 %4475 to i64
  %4477 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %4476, i32 2
  %4478 = load i8, ptr %4477, align 2, !tbaa !77
  %.not1139.1 = icmp eq i8 %4478, 67
  %.not1140.1 = icmp eq i8 %4408, 83
  %or.cond = and i1 %.not1139.1, %.not1140.1
  br i1 %or.cond, label %4415, label %4479

4479:                                             ; preds = %.preheader1276.1
  %4480 = add nuw nsw i64 %.09841447, 2
  br label %.preheader1276

4481:                                             ; preds = %4441
  %4482 = add nsw i32 %4398, 3
  store i32 %4482, ptr @test_count, align 4, !tbaa !5
  br label %4506

4483:                                             ; preds = %4472
  %4484 = add nsw i32 %4398, 1
  store i32 %4484, ptr @test_count, align 4, !tbaa !5
  %4485 = load i32, ptr %3249, align 4, !tbaa !5
  %4486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4487 = call i32 @s2n_print_stacktrace(ptr noundef %4486) #13
  %4488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4489 = trunc nuw i8 %4488 to i1
  br i1 %4489, label %4490, label %4494

4490:                                             ; preds = %4483
  %4491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4492 = call i32 @fileno(ptr noundef %4491) #13
  %4493 = call i32 @isatty(i32 noundef %4492) #13
  %.not1143 = icmp eq i32 %4493, 0
  br i1 %.not1143, label %4494, label %4495

4494:                                             ; preds = %4490, %4483
  br label %4495

4495:                                             ; preds = %4490, %4494
  %.str.25.sink3175 = phi ptr [ @.str.25, %4494 ], [ @.str.22, %4490 ]
  store i32 %4485, ptr %3249, align 4, !tbaa !5
  %4496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4497 = load i32, ptr @test_count, align 4, !tbaa !5
  %4498 = load i32, ptr %3195, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror(i32 noundef %4498, ptr noundef nonnull @.str.24) #13
  %4500 = load i32, ptr %3195, align 4, !tbaa !5
  %4501 = call ptr @s2n_strerror_debug(i32 noundef %4500, ptr noundef nonnull @.str.24) #13
  %4502 = load i32, ptr %3249, align 4, !tbaa !5
  %4503 = call ptr @strerror(i32 noundef %4502) #13
  %4504 = load i32, ptr %3249, align 4, !tbaa !5
  %4505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4496, ptr noundef nonnull %.str.25.sink3175, i32 noundef %4497, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.21, i32 noundef 694, ptr noundef %4499, ptr noundef %4501, ptr noundef %4503, i32 noundef %4504) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4506:                                             ; preds = %4481, %4397
  %test_count.promoted1453 = phi i32 [ %4482, %4481 ], [ %4398, %4397 ]
  %4507 = add nuw nsw i64 %.09821448, 1
  %exitcond1627.not = icmp eq i64 %4507, %umax
  br i1 %exitcond1627.not, label %.preheader1275, label %4397, !llvm.loop !79

.preheader1275:                                   ; preds = %4506, %4707
  %.09851457 = phi i64 [ %4708, %4707 ], [ 0, %4506 ]
  %.lcssa145014551456 = phi i32 [ %test_count.promoted1459, %4707 ], [ %test_count.promoted1453, %4506 ]
  %4508 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %.09851457
  %4509 = load i16, ptr %4508, align 2, !tbaa !15
  %4510 = zext i16 %4509 to i64
  %4511 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %4510
  %4512 = and i16 %4509, 128
  %.not1132 = icmp eq i16 %4512, 0
  br i1 %.not1132, label %4707, label %4513

4513:                                             ; preds = %.preheader1275
  %4514 = add nsw i32 %.lcssa145014551456, 1
  store i32 %4514, ptr @test_count, align 4, !tbaa !5
  %4515 = load i32, ptr %4511, align 16, !tbaa !5
  %4516 = icmp eq i32 %4515, 0
  br i1 %4516, label %4539, label %4517

4517:                                             ; preds = %4513
  %4518 = load i32, ptr %3249, align 4, !tbaa !5
  %4519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4520 = call i32 @s2n_print_stacktrace(ptr noundef %4519) #13
  %4521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4522 = trunc nuw i8 %4521 to i1
  br i1 %4522, label %4523, label %4527

4523:                                             ; preds = %4517
  %4524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4525 = call i32 @fileno(ptr noundef %4524) #13
  %4526 = call i32 @isatty(i32 noundef %4525) #13
  %.not1133 = icmp eq i32 %4526, 0
  br i1 %.not1133, label %4527, label %4528

4527:                                             ; preds = %4523, %4517
  br label %4528

4528:                                             ; preds = %4523, %4527
  %.str.25.sink3184 = phi ptr [ @.str.25, %4527 ], [ @.str.22, %4523 ]
  store i32 %4518, ptr %3249, align 4, !tbaa !5
  %4529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4530 = load i32, ptr @test_count, align 4, !tbaa !5
  %4531 = load i32, ptr %3195, align 4, !tbaa !5
  %4532 = call ptr @s2n_strerror(i32 noundef %4531, ptr noundef nonnull @.str.24) #13
  %4533 = load i32, ptr %3195, align 4, !tbaa !5
  %4534 = call ptr @s2n_strerror_debug(i32 noundef %4533, ptr noundef nonnull @.str.24) #13
  %4535 = load i32, ptr %3249, align 4, !tbaa !5
  %4536 = call ptr @strerror(i32 noundef %4535) #13
  %4537 = load i32, ptr %3249, align 4, !tbaa !5
  %4538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4529, ptr noundef nonnull %.str.25.sink3184, i32 noundef %4530, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.21, i32 noundef 712, ptr noundef %4532, ptr noundef %4534, ptr noundef %4536, i32 noundef %4537) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4539:                                             ; preds = %4513
  %4540 = add nsw i32 %.lcssa145014551456, 2
  store i32 %4540, ptr @test_count, align 4, !tbaa !5
  %4541 = getelementptr inbounds i8, ptr %4511, i64 4
  %4542 = load i32, ptr %4541, align 4, !tbaa !5
  %4543 = icmp eq i32 %4542, 11
  br i1 %4543, label %.preheader1274.preheader, label %4548

.preheader1274.preheader:                         ; preds = %4539
  %4544 = add i32 %.lcssa145014551456, 32
  %4545 = getelementptr inbounds i8, ptr %4511, i64 8
  %4546 = load i32, ptr %4545, align 8, !tbaa !5
  %4547 = icmp eq i32 %4546, 11
  br i1 %4547, label %.split.loop.exit1786, label %.preheader1274.1

4548:                                             ; preds = %4539
  %4549 = load i32, ptr %3249, align 4, !tbaa !5
  %4550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4551 = call i32 @s2n_print_stacktrace(ptr noundef %4550) #13
  %4552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4553 = trunc nuw i8 %4552 to i1
  br i1 %4553, label %4554, label %4558

4554:                                             ; preds = %4548
  %4555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4556 = call i32 @fileno(ptr noundef %4555) #13
  %4557 = call i32 @isatty(i32 noundef %4556) #13
  %.not1134 = icmp eq i32 %4557, 0
  br i1 %.not1134, label %4558, label %4559

4558:                                             ; preds = %4554, %4548
  br label %4559

4559:                                             ; preds = %4554, %4558
  %.str.25.sink3193 = phi ptr [ @.str.25, %4558 ], [ @.str.22, %4554 ]
  store i32 %4549, ptr %3249, align 4, !tbaa !5
  %4560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4561 = load i32, ptr @test_count, align 4, !tbaa !5
  %4562 = load i32, ptr %3195, align 4, !tbaa !5
  %4563 = call ptr @s2n_strerror(i32 noundef %4562, ptr noundef nonnull @.str.24) #13
  %4564 = load i32, ptr %3195, align 4, !tbaa !5
  %4565 = call ptr @s2n_strerror_debug(i32 noundef %4564, ptr noundef nonnull @.str.24) #13
  %4566 = load i32, ptr %3249, align 4, !tbaa !5
  %4567 = call ptr @strerror(i32 noundef %4566) #13
  %4568 = load i32, ptr %3249, align 4, !tbaa !5
  %4569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4560, ptr noundef nonnull %.str.25.sink3193, i32 noundef %4561, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.21, i32 noundef 713, ptr noundef %4563, ptr noundef %4565, ptr noundef %4567, i32 noundef %4568) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader1274.1:                                 ; preds = %.preheader1274.preheader
  %4570 = getelementptr inbounds i8, ptr %4511, i64 12
  %4571 = load i32, ptr %4570, align 4, !tbaa !5
  %4572 = icmp eq i32 %4571, 11
  br i1 %4572, label %.split.loop.exit1784, label %.preheader1274.2

.preheader1274.2:                                 ; preds = %.preheader1274.1
  %4573 = getelementptr inbounds i8, ptr %4511, i64 16
  %4574 = load i32, ptr %4573, align 16, !tbaa !5
  %4575 = icmp eq i32 %4574, 11
  br i1 %4575, label %.split.loop.exit1782, label %.preheader1274.3

.preheader1274.3:                                 ; preds = %.preheader1274.2
  %4576 = getelementptr inbounds i8, ptr %4511, i64 20
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = icmp eq i32 %4577, 11
  br i1 %4578, label %.split.loop.exit1780, label %.preheader1274.4

.preheader1274.4:                                 ; preds = %.preheader1274.3
  %4579 = getelementptr inbounds i8, ptr %4511, i64 24
  %4580 = load i32, ptr %4579, align 8, !tbaa !5
  %4581 = icmp eq i32 %4580, 11
  br i1 %4581, label %.split.loop.exit1778, label %.preheader1274.5

.preheader1274.5:                                 ; preds = %.preheader1274.4
  %4582 = getelementptr inbounds i8, ptr %4511, i64 28
  %4583 = load i32, ptr %4582, align 4, !tbaa !5
  %4584 = icmp eq i32 %4583, 11
  br i1 %4584, label %.split.loop.exit1776, label %.preheader1274.6

.preheader1274.6:                                 ; preds = %.preheader1274.5
  %4585 = getelementptr inbounds i8, ptr %4511, i64 32
  %4586 = load i32, ptr %4585, align 16, !tbaa !5
  %4587 = icmp eq i32 %4586, 11
  br i1 %4587, label %.split.loop.exit1774, label %.preheader1274.7

.preheader1274.7:                                 ; preds = %.preheader1274.6
  %4588 = getelementptr inbounds i8, ptr %4511, i64 36
  %4589 = load i32, ptr %4588, align 4, !tbaa !5
  %4590 = icmp eq i32 %4589, 11
  br i1 %4590, label %.split.loop.exit1772, label %.preheader1274.8

.preheader1274.8:                                 ; preds = %.preheader1274.7
  %4591 = getelementptr inbounds i8, ptr %4511, i64 40
  %4592 = load i32, ptr %4591, align 8, !tbaa !5
  %4593 = icmp eq i32 %4592, 11
  br i1 %4593, label %.split.loop.exit1770, label %.preheader1274.9

.preheader1274.9:                                 ; preds = %.preheader1274.8
  %4594 = getelementptr inbounds i8, ptr %4511, i64 44
  %4595 = load i32, ptr %4594, align 4, !tbaa !5
  %4596 = icmp eq i32 %4595, 11
  br i1 %4596, label %.split.loop.exit1768, label %.preheader1274.10

.preheader1274.10:                                ; preds = %.preheader1274.9
  %4597 = getelementptr inbounds i8, ptr %4511, i64 48
  %4598 = load i32, ptr %4597, align 16, !tbaa !5
  %4599 = icmp eq i32 %4598, 11
  br i1 %4599, label %.split.loop.exit1766, label %.preheader1274.11

.preheader1274.11:                                ; preds = %.preheader1274.10
  %4600 = getelementptr inbounds i8, ptr %4511, i64 52
  %4601 = load i32, ptr %4600, align 4, !tbaa !5
  %4602 = icmp eq i32 %4601, 11
  br i1 %4602, label %.split.loop.exit1764, label %.preheader1274.12

.preheader1274.12:                                ; preds = %.preheader1274.11
  %4603 = getelementptr inbounds i8, ptr %4511, i64 56
  %4604 = load i32, ptr %4603, align 8, !tbaa !5
  %4605 = icmp eq i32 %4604, 11
  br i1 %4605, label %.split.loop.exit1762, label %.preheader1274.13

.preheader1274.13:                                ; preds = %.preheader1274.12
  %4606 = getelementptr inbounds i8, ptr %4511, i64 60
  %4607 = load i32, ptr %4606, align 4, !tbaa !5
  %4608 = icmp eq i32 %4607, 11
  br i1 %4608, label %.split.loop.exit1760, label %.preheader1274.14

.preheader1274.14:                                ; preds = %.preheader1274.13
  %4609 = getelementptr inbounds i8, ptr %4511, i64 64
  %4610 = load i32, ptr %4609, align 16, !tbaa !5
  %4611 = icmp eq i32 %4610, 11
  br i1 %4611, label %.split.loop.exit1758, label %.preheader1274.15

.preheader1274.15:                                ; preds = %.preheader1274.14
  %4612 = getelementptr inbounds i8, ptr %4511, i64 68
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  %4614 = icmp eq i32 %4613, 11
  br i1 %4614, label %.split.loop.exit1756, label %.preheader1274.16

.preheader1274.16:                                ; preds = %.preheader1274.15
  %4615 = getelementptr inbounds i8, ptr %4511, i64 72
  %4616 = load i32, ptr %4615, align 8, !tbaa !5
  %4617 = icmp eq i32 %4616, 11
  br i1 %4617, label %.split.loop.exit1754, label %.preheader1274.17

.preheader1274.17:                                ; preds = %.preheader1274.16
  %4618 = getelementptr inbounds i8, ptr %4511, i64 76
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = icmp eq i32 %4619, 11
  br i1 %4620, label %.split.loop.exit1752, label %.preheader1274.18

.preheader1274.18:                                ; preds = %.preheader1274.17
  %4621 = getelementptr inbounds i8, ptr %4511, i64 80
  %4622 = load i32, ptr %4621, align 16, !tbaa !5
  %4623 = icmp eq i32 %4622, 11
  br i1 %4623, label %.split.loop.exit1750, label %.preheader1274.19

.preheader1274.19:                                ; preds = %.preheader1274.18
  %4624 = getelementptr inbounds i8, ptr %4511, i64 84
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = icmp eq i32 %4625, 11
  br i1 %4626, label %.split.loop.exit1748, label %.preheader1274.20

.preheader1274.20:                                ; preds = %.preheader1274.19
  %4627 = getelementptr inbounds i8, ptr %4511, i64 88
  %4628 = load i32, ptr %4627, align 8, !tbaa !5
  %4629 = icmp eq i32 %4628, 11
  br i1 %4629, label %.split.loop.exit1746, label %.preheader1274.21

.preheader1274.21:                                ; preds = %.preheader1274.20
  %4630 = getelementptr inbounds i8, ptr %4511, i64 92
  %4631 = load i32, ptr %4630, align 4, !tbaa !5
  %4632 = icmp eq i32 %4631, 11
  br i1 %4632, label %.split.loop.exit1744, label %.preheader1274.22

.preheader1274.22:                                ; preds = %.preheader1274.21
  %4633 = getelementptr inbounds i8, ptr %4511, i64 96
  %4634 = load i32, ptr %4633, align 16, !tbaa !5
  %4635 = icmp eq i32 %4634, 11
  br i1 %4635, label %.split.loop.exit1742, label %.preheader1274.23

.preheader1274.23:                                ; preds = %.preheader1274.22
  %4636 = getelementptr inbounds i8, ptr %4511, i64 100
  %4637 = load i32, ptr %4636, align 4, !tbaa !5
  %4638 = icmp eq i32 %4637, 11
  br i1 %4638, label %.split.loop.exit1740, label %.preheader1274.24

.preheader1274.24:                                ; preds = %.preheader1274.23
  %4639 = getelementptr inbounds i8, ptr %4511, i64 104
  %4640 = load i32, ptr %4639, align 8, !tbaa !5
  %4641 = icmp eq i32 %4640, 11
  br i1 %4641, label %.split.loop.exit1738, label %.preheader1274.25

.preheader1274.25:                                ; preds = %.preheader1274.24
  %4642 = getelementptr inbounds i8, ptr %4511, i64 108
  %4643 = load i32, ptr %4642, align 4, !tbaa !5
  %4644 = icmp eq i32 %4643, 11
  br i1 %4644, label %.split.loop.exit1736, label %.preheader1274.26

.preheader1274.26:                                ; preds = %.preheader1274.25
  %4645 = getelementptr inbounds i8, ptr %4511, i64 112
  %4646 = load i32, ptr %4645, align 16, !tbaa !5
  %4647 = icmp eq i32 %4646, 11
  br i1 %4647, label %.split.loop.exit1734, label %.preheader1274.27

.preheader1274.27:                                ; preds = %.preheader1274.26
  %4648 = getelementptr inbounds i8, ptr %4511, i64 116
  %4649 = load i32, ptr %4648, align 4, !tbaa !5
  %4650 = icmp eq i32 %4649, 11
  br i1 %4650, label %.split.loop.exit1732, label %.preheader1274.28

.preheader1274.28:                                ; preds = %.preheader1274.27
  %4651 = getelementptr inbounds i8, ptr %4511, i64 120
  %4652 = load i32, ptr %4651, align 8, !tbaa !5
  %4653 = icmp eq i32 %4652, 11
  br i1 %4653, label %.split.loop.exit1730, label %.preheader1274.29

.preheader1274.29:                                ; preds = %.preheader1274.28
  %4654 = getelementptr inbounds i8, ptr %4511, i64 124
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  %4656 = icmp eq i32 %4655, 11
  br i1 %4656, label %.split.loop.exit, label %.loopexit

.loopexit:                                        ; preds = %.preheader1274.29
  store i32 %4544, ptr @test_count, align 4, !tbaa !5
  br label %4707

.split.loop.exit1730:                             ; preds = %.preheader1274.28
  %4657 = add nsw i32 %.lcssa145014551456, 31
  br label %.split.loop.exit

.split.loop.exit1732:                             ; preds = %.preheader1274.27
  %4658 = add nsw i32 %.lcssa145014551456, 30
  br label %.split.loop.exit

.split.loop.exit1734:                             ; preds = %.preheader1274.26
  %4659 = add nsw i32 %.lcssa145014551456, 29
  br label %.split.loop.exit

.split.loop.exit1736:                             ; preds = %.preheader1274.25
  %4660 = add nsw i32 %.lcssa145014551456, 28
  br label %.split.loop.exit

.split.loop.exit1738:                             ; preds = %.preheader1274.24
  %4661 = add nsw i32 %.lcssa145014551456, 27
  br label %.split.loop.exit

.split.loop.exit1740:                             ; preds = %.preheader1274.23
  %4662 = add nsw i32 %.lcssa145014551456, 26
  br label %.split.loop.exit

.split.loop.exit1742:                             ; preds = %.preheader1274.22
  %4663 = add nsw i32 %.lcssa145014551456, 25
  br label %.split.loop.exit

.split.loop.exit1744:                             ; preds = %.preheader1274.21
  %4664 = add nsw i32 %.lcssa145014551456, 24
  br label %.split.loop.exit

.split.loop.exit1746:                             ; preds = %.preheader1274.20
  %4665 = add nsw i32 %.lcssa145014551456, 23
  br label %.split.loop.exit

.split.loop.exit1748:                             ; preds = %.preheader1274.19
  %4666 = add nsw i32 %.lcssa145014551456, 22
  br label %.split.loop.exit

.split.loop.exit1750:                             ; preds = %.preheader1274.18
  %4667 = add nsw i32 %.lcssa145014551456, 21
  br label %.split.loop.exit

.split.loop.exit1752:                             ; preds = %.preheader1274.17
  %4668 = add nsw i32 %.lcssa145014551456, 20
  br label %.split.loop.exit

.split.loop.exit1754:                             ; preds = %.preheader1274.16
  %4669 = add nsw i32 %.lcssa145014551456, 19
  br label %.split.loop.exit

.split.loop.exit1756:                             ; preds = %.preheader1274.15
  %4670 = add nsw i32 %.lcssa145014551456, 18
  br label %.split.loop.exit

.split.loop.exit1758:                             ; preds = %.preheader1274.14
  %4671 = add nsw i32 %.lcssa145014551456, 17
  br label %.split.loop.exit

.split.loop.exit1760:                             ; preds = %.preheader1274.13
  %4672 = add nsw i32 %.lcssa145014551456, 16
  br label %.split.loop.exit

.split.loop.exit1762:                             ; preds = %.preheader1274.12
  %4673 = add nsw i32 %.lcssa145014551456, 15
  br label %.split.loop.exit

.split.loop.exit1764:                             ; preds = %.preheader1274.11
  %4674 = add nsw i32 %.lcssa145014551456, 14
  br label %.split.loop.exit

.split.loop.exit1766:                             ; preds = %.preheader1274.10
  %4675 = add nsw i32 %.lcssa145014551456, 13
  br label %.split.loop.exit

.split.loop.exit1768:                             ; preds = %.preheader1274.9
  %4676 = add nsw i32 %.lcssa145014551456, 12
  br label %.split.loop.exit

.split.loop.exit1770:                             ; preds = %.preheader1274.8
  %4677 = add nsw i32 %.lcssa145014551456, 11
  br label %.split.loop.exit

.split.loop.exit1772:                             ; preds = %.preheader1274.7
  %4678 = add nsw i32 %.lcssa145014551456, 10
  br label %.split.loop.exit

.split.loop.exit1774:                             ; preds = %.preheader1274.6
  %4679 = add nsw i32 %.lcssa145014551456, 9
  br label %.split.loop.exit

.split.loop.exit1776:                             ; preds = %.preheader1274.5
  %4680 = add nsw i32 %.lcssa145014551456, 8
  br label %.split.loop.exit

.split.loop.exit1778:                             ; preds = %.preheader1274.4
  %4681 = add nsw i32 %.lcssa145014551456, 7
  br label %.split.loop.exit

.split.loop.exit1780:                             ; preds = %.preheader1274.3
  %4682 = add nsw i32 %.lcssa145014551456, 6
  br label %.split.loop.exit

.split.loop.exit1782:                             ; preds = %.preheader1274.2
  %4683 = add nsw i32 %.lcssa145014551456, 5
  br label %.split.loop.exit

.split.loop.exit1784:                             ; preds = %.preheader1274.1
  %4684 = add nsw i32 %.lcssa145014551456, 4
  br label %.split.loop.exit

.split.loop.exit1786:                             ; preds = %.preheader1274.preheader
  %4685 = add nsw i32 %.lcssa145014551456, 3
  br label %.split.loop.exit

.split.loop.exit:                                 ; preds = %.preheader1274.29, %.split.loop.exit1786, %.split.loop.exit1784, %.split.loop.exit1782, %.split.loop.exit1780, %.split.loop.exit1778, %.split.loop.exit1776, %.split.loop.exit1774, %.split.loop.exit1772, %.split.loop.exit1770, %.split.loop.exit1768, %.split.loop.exit1766, %.split.loop.exit1764, %.split.loop.exit1762, %.split.loop.exit1760, %.split.loop.exit1758, %.split.loop.exit1756, %.split.loop.exit1754, %.split.loop.exit1752, %.split.loop.exit1750, %.split.loop.exit1748, %.split.loop.exit1746, %.split.loop.exit1744, %.split.loop.exit1742, %.split.loop.exit1740, %.split.loop.exit1738, %.split.loop.exit1736, %.split.loop.exit1734, %.split.loop.exit1732, %.split.loop.exit1730
  %.lcssa1485 = phi i32 [ %4657, %.split.loop.exit1730 ], [ %4658, %.split.loop.exit1732 ], [ %4659, %.split.loop.exit1734 ], [ %4660, %.split.loop.exit1736 ], [ %4661, %.split.loop.exit1738 ], [ %4662, %.split.loop.exit1740 ], [ %4663, %.split.loop.exit1742 ], [ %4664, %.split.loop.exit1744 ], [ %4665, %.split.loop.exit1746 ], [ %4666, %.split.loop.exit1748 ], [ %4667, %.split.loop.exit1750 ], [ %4668, %.split.loop.exit1752 ], [ %4669, %.split.loop.exit1754 ], [ %4670, %.split.loop.exit1756 ], [ %4671, %.split.loop.exit1758 ], [ %4672, %.split.loop.exit1760 ], [ %4673, %.split.loop.exit1762 ], [ %4674, %.split.loop.exit1764 ], [ %4675, %.split.loop.exit1766 ], [ %4676, %.split.loop.exit1768 ], [ %4677, %.split.loop.exit1770 ], [ %4678, %.split.loop.exit1772 ], [ %4679, %.split.loop.exit1774 ], [ %4680, %.split.loop.exit1776 ], [ %4681, %.split.loop.exit1778 ], [ %4682, %.split.loop.exit1780 ], [ %4683, %.split.loop.exit1782 ], [ %4684, %.split.loop.exit1784 ], [ %4685, %.split.loop.exit1786 ], [ %4544, %.preheader1274.29 ]
  store i32 %.lcssa1485, ptr @test_count, align 4, !tbaa !5
  %4686 = load i32, ptr %3249, align 4, !tbaa !5
  %4687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4688 = call i32 @s2n_print_stacktrace(ptr noundef %4687) #13
  %4689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4690 = trunc nuw i8 %4689 to i1
  br i1 %4690, label %4691, label %4695

4691:                                             ; preds = %.split.loop.exit
  %4692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4693 = call i32 @fileno(ptr noundef %4692) #13
  %4694 = call i32 @isatty(i32 noundef %4693) #13
  %.not1135 = icmp eq i32 %4694, 0
  br i1 %.not1135, label %4695, label %4696

4695:                                             ; preds = %4691, %.split.loop.exit
  br label %4696

4696:                                             ; preds = %4691, %4695
  %.str.25.sink3202 = phi ptr [ @.str.25, %4695 ], [ @.str.22, %4691 ]
  store i32 %4686, ptr %3249, align 4, !tbaa !5
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = load i32, ptr @test_count, align 4, !tbaa !5
  %4699 = load i32, ptr %3195, align 4, !tbaa !5
  %4700 = call ptr @s2n_strerror(i32 noundef %4699, ptr noundef nonnull @.str.24) #13
  %4701 = load i32, ptr %3195, align 4, !tbaa !5
  %4702 = call ptr @s2n_strerror_debug(i32 noundef %4701, ptr noundef nonnull @.str.24) #13
  %4703 = load i32, ptr %3249, align 4, !tbaa !5
  %4704 = call ptr @strerror(i32 noundef %4703) #13
  %4705 = load i32, ptr %3249, align 4, !tbaa !5
  %4706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4697, ptr noundef nonnull %.str.25.sink3202, i32 noundef %4698, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.21, i32 noundef 715, ptr noundef %4700, ptr noundef %4702, ptr noundef %4704, i32 noundef %4705) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4707:                                             ; preds = %.loopexit, %.preheader1275
  %test_count.promoted1459 = phi i32 [ %4544, %.loopexit ], [ %.lcssa145014551456, %.preheader1275 ]
  %4708 = add nuw nsw i64 %.09851457, 1
  %exitcond1629.not = icmp eq i64 %4708, %umax
  br i1 %exitcond1629.not, label %.preheader1273, label %.preheader1275, !llvm.loop !80

4709:                                             ; preds = %4824
  %4710 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %4711 = getelementptr inbounds i8, ptr %4710, i64 8
  %4712 = load ptr, ptr %4711, align 8, !tbaa !81
  %4713 = load i32, ptr %4712, align 8
  %4714 = or i32 %4713, 1
  store i32 %4714, ptr %4712, align 8
  %4715 = getelementptr inbounds i8, ptr %4710, i64 3780
  store i32 2, ptr %4715, align 4, !tbaa !82
  %4716 = load i32, ptr @test_count, align 4, !tbaa !5
  %4717 = add nsw i32 %4716, 1
  store i32 %4717, ptr @test_count, align 4, !tbaa !5
  %4718 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %4710, i32 noundef 1) #13
  %4719 = icmp eq i32 %4718, -1
  br i1 %4719, label %4827, label %4849

.preheader1273:                                   ; preds = %4707, %4824
  %.09871460 = phi i64 [ %4826, %4824 ], [ 0, %4707 ]
  %4720 = phi i32 [ %4825, %4824 ], [ %test_count.promoted1459, %4707 ]
  %4721 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %.09871460
  %4722 = load i16, ptr %4721, align 2, !tbaa !15
  %4723 = zext i16 %4722 to i64
  %4724 = getelementptr inbounds [256 x [32 x i32]], ptr @tls13_handshakes, i64 0, i64 %4723
  %4725 = and i16 %4722, 33
  %or.cond1265.not = icmp eq i16 %4725, 33
  br i1 %or.cond1265.not, label %.preheader1272, label %4824

.preheader1272:                                   ; preds = %.preheader1273, %4797
  %.09891458 = phi i64 [ %4798, %4797 ], [ 1, %.preheader1273 ]
  %4726 = getelementptr inbounds i32, ptr %4724, i64 %.09891458
  %4727 = load i32, ptr %4726, align 4, !tbaa !5
  %4728 = zext i32 %4727 to i64
  %4729 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %4728, i32 2
  %4730 = load i8, ptr %4729, align 2, !tbaa !77
  %.not1127 = icmp eq i8 %4730, 83
  br i1 %.not1127, label %4731, label %4790

4731:                                             ; preds = %.preheader1272
  %4732 = getelementptr i8, ptr %4726, i64 -4
  %4733 = load i32, ptr %4732, align 4, !tbaa !5
  %4734 = zext i32 %4733 to i64
  %4735 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %4734, i32 2
  %4736 = load i8, ptr %4735, align 2, !tbaa !77
  %.not1128 = icmp eq i8 %4736, 67
  br i1 %.not1128, label %4737, label %4790

4737:                                             ; preds = %.preheader1272.1, %4731
  %4738 = phi i64 [ %.09891458, %4731 ], [ %4791, %.preheader1272.1 ]
  %.lcssa3955 = phi i32 [ %4727, %4731 ], [ %4793, %.preheader1272.1 ]
  %4739 = getelementptr inbounds i32, ptr %4724, i64 %4738
  %4740 = add nsw i32 %4720, 1
  store i32 %4740, ptr @test_count, align 4, !tbaa !5
  %4741 = getelementptr inbounds i8, ptr %4739, i64 4
  %4742 = load i32, ptr %4741, align 4, !tbaa !5
  %4743 = icmp eq i32 %4742, 14
  br i1 %4743, label %4766, label %4744

4744:                                             ; preds = %4737
  %4745 = load i32, ptr %3249, align 4, !tbaa !5
  %4746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4747 = call i32 @s2n_print_stacktrace(ptr noundef %4746) #13
  %4748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4749 = trunc nuw i8 %4748 to i1
  br i1 %4749, label %4750, label %4754

4750:                                             ; preds = %4744
  %4751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4752 = call i32 @fileno(ptr noundef %4751) #13
  %4753 = call i32 @isatty(i32 noundef %4752) #13
  %.not1129 = icmp eq i32 %4753, 0
  br i1 %.not1129, label %4754, label %4755

4754:                                             ; preds = %4750, %4744
  br label %4755

4755:                                             ; preds = %4750, %4754
  %.str.25.sink3211 = phi ptr [ @.str.25, %4754 ], [ @.str.22, %4750 ]
  store i32 %4745, ptr %3249, align 4, !tbaa !5
  %4756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4757 = load i32, ptr @test_count, align 4, !tbaa !5
  %4758 = load i32, ptr %3195, align 4, !tbaa !5
  %4759 = call ptr @s2n_strerror(i32 noundef %4758, ptr noundef nonnull @.str.24) #13
  %4760 = load i32, ptr %3195, align 4, !tbaa !5
  %4761 = call ptr @s2n_strerror_debug(i32 noundef %4760, ptr noundef nonnull @.str.24) #13
  %4762 = load i32, ptr %3249, align 4, !tbaa !5
  %4763 = call ptr @strerror(i32 noundef %4762) #13
  %4764 = load i32, ptr %3249, align 4, !tbaa !5
  %4765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4756, ptr noundef nonnull %.str.25.sink3211, i32 noundef %4757, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.21, i32 noundef 744, ptr noundef %4759, ptr noundef %4761, ptr noundef %4763, i32 noundef %4764) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4766:                                             ; preds = %4737
  %4767 = add nsw i32 %4720, 2
  store i32 %4767, ptr @test_count, align 4, !tbaa !5
  switch i32 %.lcssa3955, label %4768 [
    i32 1, label %4799
    i32 18, label %4799
  ]

4768:                                             ; preds = %4766
  %4769 = load i32, ptr %3249, align 4, !tbaa !5
  %4770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4771 = call i32 @s2n_print_stacktrace(ptr noundef %4770) #13
  %4772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4773 = trunc nuw i8 %4772 to i1
  br i1 %4773, label %4774, label %4778

4774:                                             ; preds = %4768
  %4775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4776 = call i32 @fileno(ptr noundef %4775) #13
  %4777 = call i32 @isatty(i32 noundef %4776) #13
  %.not1130 = icmp eq i32 %4777, 0
  br i1 %.not1130, label %4778, label %4779

4778:                                             ; preds = %4774, %4768
  br label %4779

4779:                                             ; preds = %4774, %4778
  %.str.25.sink3220 = phi ptr [ @.str.25, %4778 ], [ @.str.22, %4774 ]
  store i32 %4769, ptr %3249, align 4, !tbaa !5
  %4780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4781 = load i32, ptr @test_count, align 4, !tbaa !5
  %4782 = load i32, ptr %3195, align 4, !tbaa !5
  %4783 = call ptr @s2n_strerror(i32 noundef %4782, ptr noundef nonnull @.str.24) #13
  %4784 = load i32, ptr %3195, align 4, !tbaa !5
  %4785 = call ptr @s2n_strerror_debug(i32 noundef %4784, ptr noundef nonnull @.str.24) #13
  %4786 = load i32, ptr %3249, align 4, !tbaa !5
  %4787 = call ptr @strerror(i32 noundef %4786) #13
  %4788 = load i32, ptr %3249, align 4, !tbaa !5
  %4789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4780, ptr noundef nonnull %.str.25.sink3220, i32 noundef %4781, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.21, i32 noundef 745, ptr noundef %4783, ptr noundef %4785, ptr noundef %4787, i32 noundef %4788) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4790:                                             ; preds = %.preheader1272, %4731
  %4791 = add nuw nsw i64 %.09891458, 1
  %exitcond1630.not = icmp eq i64 %4791, 32
  br i1 %exitcond1630.not, label %4801, label %.preheader1272.1, !llvm.loop !83

.preheader1272.1:                                 ; preds = %4790
  %4792 = getelementptr inbounds i32, ptr %4724, i64 %4791
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = zext i32 %4793 to i64
  %4795 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %4794, i32 2
  %4796 = load i8, ptr %4795, align 2, !tbaa !77
  %.not1127.1 = icmp eq i8 %4796, 83
  %.not1128.1 = icmp eq i8 %4730, 67
  %or.cond4209 = and i1 %.not1127.1, %.not1128.1
  br i1 %or.cond4209, label %4737, label %4797

4797:                                             ; preds = %.preheader1272.1
  %4798 = add nuw nsw i64 %.09891458, 2
  br label %.preheader1272

4799:                                             ; preds = %4766, %4766
  %4800 = add nsw i32 %4720, 3
  store i32 %4800, ptr @test_count, align 4, !tbaa !5
  br label %4824

4801:                                             ; preds = %4790
  %4802 = add nsw i32 %4720, 1
  store i32 %4802, ptr @test_count, align 4, !tbaa !5
  %4803 = load i32, ptr %3249, align 4, !tbaa !5
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = call i32 @s2n_print_stacktrace(ptr noundef %4804) #13
  %4806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4807 = trunc nuw i8 %4806 to i1
  br i1 %4807, label %4808, label %4812

4808:                                             ; preds = %4801
  %4809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4810 = call i32 @fileno(ptr noundef %4809) #13
  %4811 = call i32 @isatty(i32 noundef %4810) #13
  %.not1131 = icmp eq i32 %4811, 0
  br i1 %.not1131, label %4812, label %4813

4812:                                             ; preds = %4808, %4801
  br label %4813

4813:                                             ; preds = %4808, %4812
  %.str.25.sink3229 = phi ptr [ @.str.25, %4812 ], [ @.str.22, %4808 ]
  store i32 %4803, ptr %3249, align 4, !tbaa !5
  %4814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4815 = load i32, ptr @test_count, align 4, !tbaa !5
  %4816 = load i32, ptr %3195, align 4, !tbaa !5
  %4817 = call ptr @s2n_strerror(i32 noundef %4816, ptr noundef nonnull @.str.24) #13
  %4818 = load i32, ptr %3195, align 4, !tbaa !5
  %4819 = call ptr @s2n_strerror_debug(i32 noundef %4818, ptr noundef nonnull @.str.24) #13
  %4820 = load i32, ptr %3249, align 4, !tbaa !5
  %4821 = call ptr @strerror(i32 noundef %4820) #13
  %4822 = load i32, ptr %3249, align 4, !tbaa !5
  %4823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4814, ptr noundef nonnull %.str.25.sink3229, i32 noundef %4815, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.21, i32 noundef 752, ptr noundef %4817, ptr noundef %4819, ptr noundef %4821, i32 noundef %4822) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4824:                                             ; preds = %4799, %.preheader1273
  %4825 = phi i32 [ %4800, %4799 ], [ %4720, %.preheader1273 ]
  %4826 = add nuw nsw i64 %.09871460, 1
  %exitcond1631.not = icmp eq i64 %4826, %umax
  br i1 %exitcond1631.not, label %4709, label %.preheader1273, !llvm.loop !84

4827:                                             ; preds = %4709
  %4828 = load i32, ptr %3249, align 4, !tbaa !5
  %4829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4830 = call i32 @s2n_print_stacktrace(ptr noundef %4829) #13
  %4831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4832 = trunc nuw i8 %4831 to i1
  br i1 %4832, label %4833, label %4837

4833:                                             ; preds = %4827
  %4834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4835 = call i32 @fileno(ptr noundef %4834) #13
  %4836 = call i32 @isatty(i32 noundef %4835) #13
  %.not1124 = icmp eq i32 %4836, 0
  br i1 %.not1124, label %4837, label %4838

4837:                                             ; preds = %4833, %4827
  br label %4838

4838:                                             ; preds = %4833, %4837
  %.str.25.sink3238 = phi ptr [ @.str.25, %4837 ], [ @.str.22, %4833 ]
  store i32 %4828, ptr %3249, align 4, !tbaa !5
  %4839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4840 = load i32, ptr @test_count, align 4, !tbaa !5
  %4841 = load i32, ptr %3195, align 4, !tbaa !5
  %4842 = call ptr @s2n_strerror(i32 noundef %4841, ptr noundef nonnull @.str.24) #13
  %4843 = load i32, ptr %3195, align 4, !tbaa !5
  %4844 = call ptr @s2n_strerror_debug(i32 noundef %4843, ptr noundef nonnull @.str.24) #13
  %4845 = load i32, ptr %3249, align 4, !tbaa !5
  %4846 = call ptr @strerror(i32 noundef %4845) #13
  %4847 = load i32, ptr %3249, align 4, !tbaa !5
  %4848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4839, ptr noundef nonnull %.str.25.sink3238, i32 noundef %4840, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.21, i32 noundef 765, ptr noundef %4842, ptr noundef %4844, ptr noundef %4846, i32 noundef %4847) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4849:                                             ; preds = %4709
  %4850 = getelementptr inbounds i8, ptr %4710, i64 232
  %4851 = load ptr, ptr %4850, align 8, !tbaa !69
  store ptr @s2n_dhe_rsa_with_chacha20_poly1305_sha256, ptr %4851, align 8, !tbaa !70
  %4852 = getelementptr inbounds i8, ptr %4710, i64 2784
  store i32 1, ptr %4852, align 8, !tbaa !85
  %4853 = getelementptr inbounds i8, ptr %4710, i64 220
  store i8 33, ptr %4853, align 4, !tbaa !27
  %4854 = load i32, ptr @test_count, align 4, !tbaa !5
  %4855 = add nsw i32 %4854, 1
  store i32 %4855, ptr @test_count, align 4, !tbaa !5
  %4856 = call i32 @s2n_conn_set_handshake_type(ptr noundef nonnull %4710)
  %4857 = icmp eq i32 %4856, -1
  br i1 %4857, label %4858, label %4880

4858:                                             ; preds = %4849
  %4859 = load i32, ptr %3249, align 4, !tbaa !5
  %4860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4861 = call i32 @s2n_print_stacktrace(ptr noundef %4860) #13
  %4862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4863 = trunc nuw i8 %4862 to i1
  br i1 %4863, label %4864, label %4868

4864:                                             ; preds = %4858
  %4865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4866 = call i32 @fileno(ptr noundef %4865) #13
  %4867 = call i32 @isatty(i32 noundef %4866) #13
  %.not1123 = icmp eq i32 %4867, 0
  br i1 %.not1123, label %4868, label %4869

4868:                                             ; preds = %4864, %4858
  br label %4869

4869:                                             ; preds = %4864, %4868
  %.str.25.sink3247 = phi ptr [ @.str.25, %4868 ], [ @.str.22, %4864 ]
  store i32 %4859, ptr %3249, align 4, !tbaa !5
  %4870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4871 = load i32, ptr @test_count, align 4, !tbaa !5
  %4872 = load i32, ptr %3195, align 4, !tbaa !5
  %4873 = call ptr @s2n_strerror(i32 noundef %4872, ptr noundef nonnull @.str.24) #13
  %4874 = load i32, ptr %3195, align 4, !tbaa !5
  %4875 = call ptr @s2n_strerror_debug(i32 noundef %4874, ptr noundef nonnull @.str.24) #13
  %4876 = load i32, ptr %3249, align 4, !tbaa !5
  %4877 = call ptr @strerror(i32 noundef %4876) #13
  %4878 = load i32, ptr %3249, align 4, !tbaa !5
  %4879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4870, ptr noundef nonnull %.str.25.sink3247, i32 noundef %4871, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.21, i32 noundef 775, ptr noundef %4873, ptr noundef %4875, ptr noundef %4877, i32 noundef %4878) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4880:                                             ; preds = %4849
  %4881 = load i32, ptr @test_count, align 4, !tbaa !5
  %4882 = add nsw i32 %4881, 1
  store i32 %4882, ptr @test_count, align 4, !tbaa !5
  %4883 = getelementptr inbounds i8, ptr %4710, i64 2172
  %4884 = load i32, ptr %4883, align 4, !tbaa !58
  %4885 = and i32 %4884, 16
  %.not1041 = icmp eq i32 %4885, 0
  br i1 %.not1041, label %4886, label %4908

4886:                                             ; preds = %4880
  %4887 = load i32, ptr %3249, align 4, !tbaa !5
  %4888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4889 = call i32 @s2n_print_stacktrace(ptr noundef %4888) #13
  %4890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4891 = trunc nuw i8 %4890 to i1
  br i1 %4891, label %4892, label %4896

4892:                                             ; preds = %4886
  %4893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4894 = call i32 @fileno(ptr noundef %4893) #13
  %4895 = call i32 @isatty(i32 noundef %4894) #13
  %.not1042 = icmp eq i32 %4895, 0
  br i1 %.not1042, label %4896, label %4897

4896:                                             ; preds = %4892, %4886
  br label %4897

4897:                                             ; preds = %4892, %4896
  %.str.25.sink3256 = phi ptr [ @.str.25, %4896 ], [ @.str.22, %4892 ]
  store i32 %4887, ptr %3249, align 4, !tbaa !5
  %4898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4899 = load i32, ptr @test_count, align 4, !tbaa !5
  %4900 = load i32, ptr %3195, align 4, !tbaa !5
  %4901 = call ptr @s2n_strerror(i32 noundef %4900, ptr noundef nonnull @.str.24) #13
  %4902 = load i32, ptr %3195, align 4, !tbaa !5
  %4903 = call ptr @s2n_strerror_debug(i32 noundef %4902, ptr noundef nonnull @.str.24) #13
  %4904 = load i32, ptr %3249, align 4, !tbaa !5
  %4905 = call ptr @strerror(i32 noundef %4904) #13
  %4906 = load i32, ptr %3249, align 4, !tbaa !5
  %4907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4898, ptr noundef nonnull %.str.25.sink3256, i32 noundef %4899, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.21, i32 noundef 776, ptr noundef %4901, ptr noundef %4903, ptr noundef %4905, i32 noundef %4906) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4908:                                             ; preds = %4880
  %4909 = add nsw i32 %4881, 2
  store i32 %4909, ptr @test_count, align 4, !tbaa !5
  %4910 = and i32 %4884, 32
  %.not1043 = icmp eq i32 %4910, 0
  br i1 %.not1043, label %4911, label %4933

4911:                                             ; preds = %4908
  %4912 = load i32, ptr %3249, align 4, !tbaa !5
  %4913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4914 = call i32 @s2n_print_stacktrace(ptr noundef %4913) #13
  %4915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4916 = trunc nuw i8 %4915 to i1
  br i1 %4916, label %4917, label %4921

4917:                                             ; preds = %4911
  %4918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4919 = call i32 @fileno(ptr noundef %4918) #13
  %4920 = call i32 @isatty(i32 noundef %4919) #13
  %.not1044 = icmp eq i32 %4920, 0
  br i1 %.not1044, label %4921, label %4922

4921:                                             ; preds = %4917, %4911
  br label %4922

4922:                                             ; preds = %4917, %4921
  %.str.25.sink3265 = phi ptr [ @.str.25, %4921 ], [ @.str.22, %4917 ]
  store i32 %4912, ptr %3249, align 4, !tbaa !5
  %4923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4924 = load i32, ptr @test_count, align 4, !tbaa !5
  %4925 = load i32, ptr %3195, align 4, !tbaa !5
  %4926 = call ptr @s2n_strerror(i32 noundef %4925, ptr noundef nonnull @.str.24) #13
  %4927 = load i32, ptr %3195, align 4, !tbaa !5
  %4928 = call ptr @s2n_strerror_debug(i32 noundef %4927, ptr noundef nonnull @.str.24) #13
  %4929 = load i32, ptr %3249, align 4, !tbaa !5
  %4930 = call ptr @strerror(i32 noundef %4929) #13
  %4931 = load i32, ptr %3249, align 4, !tbaa !5
  %4932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4923, ptr noundef nonnull %.str.25.sink3265, i32 noundef %4924, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.21, i32 noundef 777, ptr noundef %4926, ptr noundef %4928, ptr noundef %4930, i32 noundef %4931) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4933:                                             ; preds = %4908
  %4934 = add nsw i32 %4881, 3
  store i32 %4934, ptr @test_count, align 4, !tbaa !5
  %4935 = and i32 %4884, 64
  %.not1045 = icmp eq i32 %4935, 0
  br i1 %.not1045, label %4936, label %4958

4936:                                             ; preds = %4933
  %4937 = load i32, ptr %3249, align 4, !tbaa !5
  %4938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4939 = call i32 @s2n_print_stacktrace(ptr noundef %4938) #13
  %4940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4941 = trunc nuw i8 %4940 to i1
  br i1 %4941, label %4942, label %4946

4942:                                             ; preds = %4936
  %4943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4944 = call i32 @fileno(ptr noundef %4943) #13
  %4945 = call i32 @isatty(i32 noundef %4944) #13
  %.not1046 = icmp eq i32 %4945, 0
  br i1 %.not1046, label %4946, label %4947

4946:                                             ; preds = %4942, %4936
  br label %4947

4947:                                             ; preds = %4942, %4946
  %.str.25.sink3274 = phi ptr [ @.str.25, %4946 ], [ @.str.22, %4942 ]
  store i32 %4937, ptr %3249, align 4, !tbaa !5
  %4948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4949 = load i32, ptr @test_count, align 4, !tbaa !5
  %4950 = load i32, ptr %3195, align 4, !tbaa !5
  %4951 = call ptr @s2n_strerror(i32 noundef %4950, ptr noundef nonnull @.str.24) #13
  %4952 = load i32, ptr %3195, align 4, !tbaa !5
  %4953 = call ptr @s2n_strerror_debug(i32 noundef %4952, ptr noundef nonnull @.str.24) #13
  %4954 = load i32, ptr %3249, align 4, !tbaa !5
  %4955 = call ptr @strerror(i32 noundef %4954) #13
  %4956 = load i32, ptr %3249, align 4, !tbaa !5
  %4957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4948, ptr noundef nonnull %.str.25.sink3274, i32 noundef %4949, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.21, i32 noundef 778, ptr noundef %4951, ptr noundef %4953, ptr noundef %4955, i32 noundef %4956) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4958:                                             ; preds = %4933
  %4959 = add nsw i32 %4881, 4
  store i32 %4959, ptr @test_count, align 4, !tbaa !5
  %4960 = and i32 %4884, 4
  %.not1047 = icmp eq i32 %4960, 0
  br i1 %.not1047, label %4961, label %4983

4961:                                             ; preds = %4958
  %4962 = load i32, ptr %3249, align 4, !tbaa !5
  %4963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4964 = call i32 @s2n_print_stacktrace(ptr noundef %4963) #13
  %4965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4966 = trunc nuw i8 %4965 to i1
  br i1 %4966, label %4967, label %4971

4967:                                             ; preds = %4961
  %4968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4969 = call i32 @fileno(ptr noundef %4968) #13
  %4970 = call i32 @isatty(i32 noundef %4969) #13
  %.not1048 = icmp eq i32 %4970, 0
  br i1 %.not1048, label %4971, label %4972

4971:                                             ; preds = %4967, %4961
  br label %4972

4972:                                             ; preds = %4967, %4971
  %.str.25.sink3283 = phi ptr [ @.str.25, %4971 ], [ @.str.22, %4967 ]
  store i32 %4962, ptr %3249, align 4, !tbaa !5
  %4973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4974 = load i32, ptr @test_count, align 4, !tbaa !5
  %4975 = load i32, ptr %3195, align 4, !tbaa !5
  %4976 = call ptr @s2n_strerror(i32 noundef %4975, ptr noundef nonnull @.str.24) #13
  %4977 = load i32, ptr %3195, align 4, !tbaa !5
  %4978 = call ptr @s2n_strerror_debug(i32 noundef %4977, ptr noundef nonnull @.str.24) #13
  %4979 = load i32, ptr %3249, align 4, !tbaa !5
  %4980 = call ptr @strerror(i32 noundef %4979) #13
  %4981 = load i32, ptr %3249, align 4, !tbaa !5
  %4982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4973, ptr noundef nonnull %.str.25.sink3283, i32 noundef %4974, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.21, i32 noundef 779, ptr noundef %4976, ptr noundef %4978, ptr noundef %4980, i32 noundef %4981) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4983:                                             ; preds = %4958
  %4984 = add nsw i32 %4881, 5
  store i32 %4984, ptr @test_count, align 4, !tbaa !5
  %4985 = call i32 @s2n_handshake_type_reset(ptr noundef nonnull %4710) #13
  %4986 = call zeroext i1 @s2n_result_is_ok(i32 %4985)
  br i1 %4986, label %5009, label %4987

4987:                                             ; preds = %4983
  %4988 = load i32, ptr %3249, align 4, !tbaa !5
  %4989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4990 = call i32 @s2n_print_stacktrace(ptr noundef %4989) #13
  %4991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4992 = trunc nuw i8 %4991 to i1
  br i1 %4992, label %4993, label %4997

4993:                                             ; preds = %4987
  %4994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4995 = call i32 @fileno(ptr noundef %4994) #13
  %4996 = call i32 @isatty(i32 noundef %4995) #13
  %.not1049 = icmp eq i32 %4996, 0
  br i1 %.not1049, label %4997, label %4998

4997:                                             ; preds = %4993, %4987
  br label %4998

4998:                                             ; preds = %4993, %4997
  %.str.25.sink3292 = phi ptr [ @.str.25, %4997 ], [ @.str.22, %4993 ]
  store i32 %4988, ptr %3249, align 4, !tbaa !5
  %4999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5000 = load i32, ptr @test_count, align 4, !tbaa !5
  %5001 = load i32, ptr %3195, align 4, !tbaa !5
  %5002 = call ptr @s2n_strerror(i32 noundef %5001, ptr noundef nonnull @.str.24) #13
  %5003 = load i32, ptr %3195, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror_debug(i32 noundef %5003, ptr noundef nonnull @.str.24) #13
  %5005 = load i32, ptr %3249, align 4, !tbaa !5
  %5006 = call ptr @strerror(i32 noundef %5005) #13
  %5007 = load i32, ptr %3249, align 4, !tbaa !5
  %5008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4999, ptr noundef nonnull %.str.25.sink3292, i32 noundef %5000, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.21, i32 noundef 782, ptr noundef %5002, ptr noundef %5004, ptr noundef %5006, i32 noundef %5007) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5009:                                             ; preds = %4983
  %5010 = getelementptr inbounds i8, ptr %4710, i64 2204
  store i32 0, ptr %5010, align 4, !tbaa !57
  store i8 34, ptr %4853, align 4, !tbaa !27
  %5011 = load i32, ptr @test_count, align 4, !tbaa !5
  %5012 = add nsw i32 %5011, 1
  store i32 %5012, ptr @test_count, align 4, !tbaa !5
  %5013 = call i32 @s2n_conn_choose_state_machine(ptr noundef nonnull %4710, i8 noundef zeroext 34)
  %5014 = call zeroext i1 @s2n_result_is_ok(i32 %5013)
  br i1 %5014, label %5037, label %5015

5015:                                             ; preds = %5009
  %5016 = load i32, ptr %3249, align 4, !tbaa !5
  %5017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5018 = call i32 @s2n_print_stacktrace(ptr noundef %5017) #13
  %5019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5020 = trunc nuw i8 %5019 to i1
  br i1 %5020, label %5021, label %5025

5021:                                             ; preds = %5015
  %5022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5023 = call i32 @fileno(ptr noundef %5022) #13
  %5024 = call i32 @isatty(i32 noundef %5023) #13
  %.not1050 = icmp eq i32 %5024, 0
  br i1 %.not1050, label %5025, label %5026

5025:                                             ; preds = %5021, %5015
  br label %5026

5026:                                             ; preds = %5021, %5025
  %.str.25.sink3301 = phi ptr [ @.str.25, %5025 ], [ @.str.22, %5021 ]
  store i32 %5016, ptr %3249, align 4, !tbaa !5
  %5027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5028 = load i32, ptr @test_count, align 4, !tbaa !5
  %5029 = load i32, ptr %3195, align 4, !tbaa !5
  %5030 = call ptr @s2n_strerror(i32 noundef %5029, ptr noundef nonnull @.str.24) #13
  %5031 = load i32, ptr %3195, align 4, !tbaa !5
  %5032 = call ptr @s2n_strerror_debug(i32 noundef %5031, ptr noundef nonnull @.str.24) #13
  %5033 = load i32, ptr %3249, align 4, !tbaa !5
  %5034 = call ptr @strerror(i32 noundef %5033) #13
  %5035 = load i32, ptr %3249, align 4, !tbaa !5
  %5036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5027, ptr noundef nonnull %.str.25.sink3301, i32 noundef %5028, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 787, ptr noundef %5030, ptr noundef %5032, ptr noundef %5034, i32 noundef %5035) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5037:                                             ; preds = %5009
  %5038 = load i32, ptr @test_count, align 4, !tbaa !5
  %5039 = add nsw i32 %5038, 1
  store i32 %5039, ptr @test_count, align 4, !tbaa !5
  %5040 = call i32 @s2n_conn_set_handshake_type(ptr noundef nonnull %4710)
  %5041 = icmp eq i32 %5040, -1
  br i1 %5041, label %5042, label %5064

5042:                                             ; preds = %5037
  %5043 = load i32, ptr %3249, align 4, !tbaa !5
  %5044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5045 = call i32 @s2n_print_stacktrace(ptr noundef %5044) #13
  %5046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5047 = trunc nuw i8 %5046 to i1
  br i1 %5047, label %5048, label %5052

5048:                                             ; preds = %5042
  %5049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5050 = call i32 @fileno(ptr noundef %5049) #13
  %5051 = call i32 @isatty(i32 noundef %5050) #13
  %.not1122 = icmp eq i32 %5051, 0
  br i1 %.not1122, label %5052, label %5053

5052:                                             ; preds = %5048, %5042
  br label %5053

5053:                                             ; preds = %5048, %5052
  %.str.25.sink3310 = phi ptr [ @.str.25, %5052 ], [ @.str.22, %5048 ]
  store i32 %5043, ptr %3249, align 4, !tbaa !5
  %5054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5055 = load i32, ptr @test_count, align 4, !tbaa !5
  %5056 = load i32, ptr %3195, align 4, !tbaa !5
  %5057 = call ptr @s2n_strerror(i32 noundef %5056, ptr noundef nonnull @.str.24) #13
  %5058 = load i32, ptr %3195, align 4, !tbaa !5
  %5059 = call ptr @s2n_strerror_debug(i32 noundef %5058, ptr noundef nonnull @.str.24) #13
  %5060 = load i32, ptr %3249, align 4, !tbaa !5
  %5061 = call ptr @strerror(i32 noundef %5060) #13
  %5062 = load i32, ptr %3249, align 4, !tbaa !5
  %5063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5054, ptr noundef nonnull %.str.25.sink3310, i32 noundef %5055, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.21, i32 noundef 788, ptr noundef %5057, ptr noundef %5059, ptr noundef %5061, i32 noundef %5062) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5064:                                             ; preds = %5037
  %5065 = load i32, ptr @test_count, align 4, !tbaa !5
  %5066 = add nsw i32 %5065, 1
  store i32 %5066, ptr @test_count, align 4, !tbaa !5
  %5067 = load i32, ptr %4883, align 4, !tbaa !58
  %5068 = icmp eq i32 %5067, 39
  br i1 %5068, label %5091, label %5069

5069:                                             ; preds = %5064
  %5070 = load i32, ptr %3249, align 4, !tbaa !5
  %5071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5072 = call i32 @s2n_print_stacktrace(ptr noundef %5071) #13
  %5073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5074 = trunc nuw i8 %5073 to i1
  br i1 %5074, label %5075, label %5079

5075:                                             ; preds = %5069
  %5076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5077 = call i32 @fileno(ptr noundef %5076) #13
  %5078 = call i32 @isatty(i32 noundef %5077) #13
  %.not1051 = icmp eq i32 %5078, 0
  br i1 %.not1051, label %5079, label %5080

5079:                                             ; preds = %5075, %5069
  br label %5080

5080:                                             ; preds = %5075, %5079
  %.str.25.sink3319 = phi ptr [ @.str.25, %5079 ], [ @.str.22, %5075 ]
  store i32 %5070, ptr %3249, align 4, !tbaa !5
  %5081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5082 = load i32, ptr @test_count, align 4, !tbaa !5
  %5083 = load i32, ptr %3195, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror(i32 noundef %5083, ptr noundef nonnull @.str.24) #13
  %5085 = load i32, ptr %3195, align 4, !tbaa !5
  %5086 = call ptr @s2n_strerror_debug(i32 noundef %5085, ptr noundef nonnull @.str.24) #13
  %5087 = load i32, ptr %3249, align 4, !tbaa !5
  %5088 = call ptr @strerror(i32 noundef %5087) #13
  %5089 = load i32, ptr %3249, align 4, !tbaa !5
  %5090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5081, ptr noundef nonnull %.str.25.sink3319, i32 noundef %5082, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.21, i32 noundef 789, ptr noundef %5084, ptr noundef %5086, ptr noundef %5088, i32 noundef %5089) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5091:                                             ; preds = %5064
  %5092 = add nsw i32 %5065, 2
  store i32 %5092, ptr @test_count, align 4, !tbaa !5
  %5093 = call i32 @s2n_connection_free(ptr noundef nonnull %4710) #13
  %5094 = icmp eq i32 %5093, -1
  br i1 %5094, label %5095, label %5117

5095:                                             ; preds = %5091
  %5096 = load i32, ptr %3249, align 4, !tbaa !5
  %5097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5098 = call i32 @s2n_print_stacktrace(ptr noundef %5097) #13
  %5099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5100 = trunc nuw i8 %5099 to i1
  br i1 %5100, label %5101, label %5105

5101:                                             ; preds = %5095
  %5102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5103 = call i32 @fileno(ptr noundef %5102) #13
  %5104 = call i32 @isatty(i32 noundef %5103) #13
  %.not1121 = icmp eq i32 %5104, 0
  br i1 %.not1121, label %5105, label %5106

5105:                                             ; preds = %5101, %5095
  br label %5106

5106:                                             ; preds = %5101, %5105
  %.str.25.sink3328 = phi ptr [ @.str.25, %5105 ], [ @.str.22, %5101 ]
  store i32 %5096, ptr %3249, align 4, !tbaa !5
  %5107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5108 = load i32, ptr @test_count, align 4, !tbaa !5
  %5109 = load i32, ptr %3195, align 4, !tbaa !5
  %5110 = call ptr @s2n_strerror(i32 noundef %5109, ptr noundef nonnull @.str.24) #13
  %5111 = load i32, ptr %3195, align 4, !tbaa !5
  %5112 = call ptr @s2n_strerror_debug(i32 noundef %5111, ptr noundef nonnull @.str.24) #13
  %5113 = load i32, ptr %3249, align 4, !tbaa !5
  %5114 = call ptr @strerror(i32 noundef %5113) #13
  %5115 = load i32, ptr %3249, align 4, !tbaa !5
  %5116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5107, ptr noundef nonnull %.str.25.sink3328, i32 noundef %5108, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 791, ptr noundef %5110, ptr noundef %5112, ptr noundef %5114, i32 noundef %5115) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5117:                                             ; preds = %5091
  %5118 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %5119 = getelementptr inbounds i8, ptr %5118, i64 220
  store i8 34, ptr %5119, align 4, !tbaa !27
  %5120 = load i32, ptr @test_count, align 4, !tbaa !5
  %5121 = add nsw i32 %5120, 1
  store i32 %5121, ptr @test_count, align 4, !tbaa !5
  %5122 = call i32 @s2n_conn_choose_state_machine(ptr noundef %5118, i8 noundef zeroext 34)
  %5123 = call zeroext i1 @s2n_result_is_ok(i32 %5122)
  br i1 %5123, label %5146, label %5124

5124:                                             ; preds = %5117
  %5125 = load i32, ptr %3249, align 4, !tbaa !5
  %5126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5127 = call i32 @s2n_print_stacktrace(ptr noundef %5126) #13
  %5128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5129 = trunc nuw i8 %5128 to i1
  br i1 %5129, label %5130, label %5134

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

5134:                                             ; preds = %5130, %5124
  br label %5135

5135:                                             ; preds = %5130, %5134
  %.str.25.sink3337 = phi ptr [ @.str.25, %5134 ], [ @.str.22, %5130 ]
  store i32 %5125, ptr %3249, align 4, !tbaa !5
  %5136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5137 = load i32, ptr @test_count, align 4, !tbaa !5
  %5138 = load i32, ptr %3195, align 4, !tbaa !5
  %5139 = call ptr @s2n_strerror(i32 noundef %5138, ptr noundef nonnull @.str.24) #13
  %5140 = load i32, ptr %3195, align 4, !tbaa !5
  %5141 = call ptr @s2n_strerror_debug(i32 noundef %5140, ptr noundef nonnull @.str.24) #13
  %5142 = load i32, ptr %3249, align 4, !tbaa !5
  %5143 = call ptr @strerror(i32 noundef %5142) #13
  %5144 = load i32, ptr %3249, align 4, !tbaa !5
  %5145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5136, ptr noundef nonnull %.str.25.sink3337, i32 noundef %5137, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 800, ptr noundef %5139, ptr noundef %5141, ptr noundef %5143, i32 noundef %5144) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5146:                                             ; preds = %5117
  %5147 = getelementptr inbounds i8, ptr %5118, i64 2172
  store i32 16, ptr %5147, align 4, !tbaa !58
  %5148 = load i32, ptr @test_count, align 4, !tbaa !5
  %5149 = add nsw i32 %5148, 1
  store i32 %5149, ptr @test_count, align 4, !tbaa !5
  %5150 = call i32 @s2n_conn_set_handshake_type(ptr noundef nonnull %5118)
  %5151 = icmp eq i32 %5150, -1
  br i1 %5151, label %5152, label %5174

5152:                                             ; preds = %5146
  %5153 = load i32, ptr %3249, align 4, !tbaa !5
  %5154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5155 = call i32 @s2n_print_stacktrace(ptr noundef %5154) #13
  %5156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5157 = trunc nuw i8 %5156 to i1
  br i1 %5157, label %5158, label %5162

5158:                                             ; preds = %5152
  %5159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5160 = call i32 @fileno(ptr noundef %5159) #13
  %5161 = call i32 @isatty(i32 noundef %5160) #13
  %.not1120 = icmp eq i32 %5161, 0
  br i1 %.not1120, label %5162, label %5163

5162:                                             ; preds = %5158, %5152
  br label %5163

5163:                                             ; preds = %5158, %5162
  %.str.25.sink3346 = phi ptr [ @.str.25, %5162 ], [ @.str.22, %5158 ]
  store i32 %5153, ptr %3249, align 4, !tbaa !5
  %5164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5165 = load i32, ptr @test_count, align 4, !tbaa !5
  %5166 = load i32, ptr %3195, align 4, !tbaa !5
  %5167 = call ptr @s2n_strerror(i32 noundef %5166, ptr noundef nonnull @.str.24) #13
  %5168 = load i32, ptr %3195, align 4, !tbaa !5
  %5169 = call ptr @s2n_strerror_debug(i32 noundef %5168, ptr noundef nonnull @.str.24) #13
  %5170 = load i32, ptr %3249, align 4, !tbaa !5
  %5171 = call ptr @strerror(i32 noundef %5170) #13
  %5172 = load i32, ptr %3249, align 4, !tbaa !5
  %5173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5164, ptr noundef nonnull %.str.25.sink3346, i32 noundef %5165, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.21, i32 noundef 802, ptr noundef %5167, ptr noundef %5169, ptr noundef %5171, i32 noundef %5172) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5174:                                             ; preds = %5146
  %5175 = load i32, ptr @test_count, align 4, !tbaa !5
  %5176 = add nsw i32 %5175, 1
  store i32 %5176, ptr @test_count, align 4, !tbaa !5
  %5177 = load i32, ptr %5147, align 4, !tbaa !58
  %5178 = and i32 %5177, 16
  %.not1053 = icmp eq i32 %5178, 0
  br i1 %.not1053, label %5179, label %5201

5179:                                             ; preds = %5174
  %5180 = load i32, ptr %3249, align 4, !tbaa !5
  %5181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5182 = call i32 @s2n_print_stacktrace(ptr noundef %5181) #13
  %5183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5184 = trunc nuw i8 %5183 to i1
  br i1 %5184, label %5185, label %5189

5185:                                             ; preds = %5179
  %5186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5187 = call i32 @fileno(ptr noundef %5186) #13
  %5188 = call i32 @isatty(i32 noundef %5187) #13
  %.not1054 = icmp eq i32 %5188, 0
  br i1 %.not1054, label %5189, label %5190

5189:                                             ; preds = %5185, %5179
  br label %5190

5190:                                             ; preds = %5185, %5189
  %.str.25.sink3355 = phi ptr [ @.str.25, %5189 ], [ @.str.22, %5185 ]
  store i32 %5180, ptr %3249, align 4, !tbaa !5
  %5191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5192 = load i32, ptr @test_count, align 4, !tbaa !5
  %5193 = load i32, ptr %3195, align 4, !tbaa !5
  %5194 = call ptr @s2n_strerror(i32 noundef %5193, ptr noundef nonnull @.str.24) #13
  %5195 = load i32, ptr %3195, align 4, !tbaa !5
  %5196 = call ptr @s2n_strerror_debug(i32 noundef %5195, ptr noundef nonnull @.str.24) #13
  %5197 = load i32, ptr %3249, align 4, !tbaa !5
  %5198 = call ptr @strerror(i32 noundef %5197) #13
  %5199 = load i32, ptr %3249, align 4, !tbaa !5
  %5200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5191, ptr noundef nonnull %.str.25.sink3355, i32 noundef %5192, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.21, i32 noundef 803, ptr noundef %5194, ptr noundef %5196, ptr noundef %5198, i32 noundef %5199) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5201:                                             ; preds = %5174
  %5202 = getelementptr inbounds i8, ptr %5118, i64 2204
  store i32 0, ptr %5202, align 4, !tbaa !57
  store i8 33, ptr %5119, align 4, !tbaa !27
  %5203 = add nsw i32 %5175, 2
  store i32 %5203, ptr @test_count, align 4, !tbaa !5
  %5204 = call i32 @s2n_conn_choose_state_machine(ptr noundef nonnull %5118, i8 noundef zeroext 33)
  %5205 = call zeroext i1 @s2n_result_is_ok(i32 %5204)
  br i1 %5205, label %5228, label %5206

5206:                                             ; preds = %5201
  %5207 = load i32, ptr %3249, align 4, !tbaa !5
  %5208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5209 = call i32 @s2n_print_stacktrace(ptr noundef %5208) #13
  %5210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5211 = trunc nuw i8 %5210 to i1
  br i1 %5211, label %5212, label %5216

5212:                                             ; preds = %5206
  %5213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5214 = call i32 @fileno(ptr noundef %5213) #13
  %5215 = call i32 @isatty(i32 noundef %5214) #13
  %.not1055 = icmp eq i32 %5215, 0
  br i1 %.not1055, label %5216, label %5217

5216:                                             ; preds = %5212, %5206
  br label %5217

5217:                                             ; preds = %5212, %5216
  %.str.25.sink3364 = phi ptr [ @.str.25, %5216 ], [ @.str.22, %5212 ]
  store i32 %5207, ptr %3249, align 4, !tbaa !5
  %5218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5219 = load i32, ptr @test_count, align 4, !tbaa !5
  %5220 = load i32, ptr %3195, align 4, !tbaa !5
  %5221 = call ptr @s2n_strerror(i32 noundef %5220, ptr noundef nonnull @.str.24) #13
  %5222 = load i32, ptr %3195, align 4, !tbaa !5
  %5223 = call ptr @s2n_strerror_debug(i32 noundef %5222, ptr noundef nonnull @.str.24) #13
  %5224 = load i32, ptr %3249, align 4, !tbaa !5
  %5225 = call ptr @strerror(i32 noundef %5224) #13
  %5226 = load i32, ptr %3249, align 4, !tbaa !5
  %5227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5218, ptr noundef nonnull %.str.25.sink3364, i32 noundef %5219, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.21, i32 noundef 810, ptr noundef %5221, ptr noundef %5223, ptr noundef %5225, i32 noundef %5226) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5228:                                             ; preds = %5201
  store i32 16, ptr %5147, align 4, !tbaa !58
  %5229 = load i32, ptr @test_count, align 4, !tbaa !5
  %5230 = add nsw i32 %5229, 1
  store i32 %5230, ptr @test_count, align 4, !tbaa !5
  %5231 = call i32 @s2n_conn_set_handshake_type(ptr noundef nonnull %5118)
  %5232 = icmp eq i32 %5231, -1
  br i1 %5232, label %5233, label %5255

5233:                                             ; preds = %5228
  %5234 = load i32, ptr %3249, align 4, !tbaa !5
  %5235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5236 = call i32 @s2n_print_stacktrace(ptr noundef %5235) #13
  %5237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5238 = trunc nuw i8 %5237 to i1
  br i1 %5238, label %5239, label %5243

5239:                                             ; preds = %5233
  %5240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5241 = call i32 @fileno(ptr noundef %5240) #13
  %5242 = call i32 @isatty(i32 noundef %5241) #13
  %.not1119 = icmp eq i32 %5242, 0
  br i1 %.not1119, label %5243, label %5244

5243:                                             ; preds = %5239, %5233
  br label %5244

5244:                                             ; preds = %5239, %5243
  %.str.25.sink3373 = phi ptr [ @.str.25, %5243 ], [ @.str.22, %5239 ]
  store i32 %5234, ptr %3249, align 4, !tbaa !5
  %5245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5246 = load i32, ptr @test_count, align 4, !tbaa !5
  %5247 = load i32, ptr %3195, align 4, !tbaa !5
  %5248 = call ptr @s2n_strerror(i32 noundef %5247, ptr noundef nonnull @.str.24) #13
  %5249 = load i32, ptr %3195, align 4, !tbaa !5
  %5250 = call ptr @s2n_strerror_debug(i32 noundef %5249, ptr noundef nonnull @.str.24) #13
  %5251 = load i32, ptr %3249, align 4, !tbaa !5
  %5252 = call ptr @strerror(i32 noundef %5251) #13
  %5253 = load i32, ptr %3249, align 4, !tbaa !5
  %5254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5245, ptr noundef nonnull %.str.25.sink3373, i32 noundef %5246, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.21, i32 noundef 812, ptr noundef %5248, ptr noundef %5250, ptr noundef %5252, i32 noundef %5253) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5255:                                             ; preds = %5228
  %5256 = load i32, ptr @test_count, align 4, !tbaa !5
  %5257 = add nsw i32 %5256, 1
  store i32 %5257, ptr @test_count, align 4, !tbaa !5
  %5258 = load i32, ptr %5147, align 4, !tbaa !58
  %5259 = and i32 %5258, 16
  %.not1056 = icmp eq i32 %5259, 0
  br i1 %.not1056, label %5282, label %5260

5260:                                             ; preds = %5255
  %5261 = load i32, ptr %3249, align 4, !tbaa !5
  %5262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5263 = call i32 @s2n_print_stacktrace(ptr noundef %5262) #13
  %5264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5265 = trunc nuw i8 %5264 to i1
  br i1 %5265, label %5266, label %5270

5266:                                             ; preds = %5260
  %5267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5268 = call i32 @fileno(ptr noundef %5267) #13
  %5269 = call i32 @isatty(i32 noundef %5268) #13
  %.not1118 = icmp eq i32 %5269, 0
  br i1 %.not1118, label %5270, label %5271

5270:                                             ; preds = %5266, %5260
  br label %5271

5271:                                             ; preds = %5266, %5270
  %.str.25.sink3382 = phi ptr [ @.str.25, %5270 ], [ @.str.22, %5266 ]
  store i32 %5261, ptr %3249, align 4, !tbaa !5
  %5272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5273 = load i32, ptr @test_count, align 4, !tbaa !5
  %5274 = load i32, ptr %3195, align 4, !tbaa !5
  %5275 = call ptr @s2n_strerror(i32 noundef %5274, ptr noundef nonnull @.str.24) #13
  %5276 = load i32, ptr %3195, align 4, !tbaa !5
  %5277 = call ptr @s2n_strerror_debug(i32 noundef %5276, ptr noundef nonnull @.str.24) #13
  %5278 = load i32, ptr %3249, align 4, !tbaa !5
  %5279 = call ptr @strerror(i32 noundef %5278) #13
  %5280 = load i32, ptr %3249, align 4, !tbaa !5
  %5281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5272, ptr noundef nonnull %.str.25.sink3382, i32 noundef %5273, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.21, i32 noundef 813, ptr noundef %5275, ptr noundef %5277, ptr noundef %5279, i32 noundef %5280) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5282:                                             ; preds = %5255
  %5283 = add nsw i32 %5256, 2
  store i32 %5283, ptr @test_count, align 4, !tbaa !5
  %5284 = call i32 @s2n_connection_free(ptr noundef nonnull %5118) #13
  %5285 = icmp eq i32 %5284, -1
  br i1 %5285, label %5286, label %5308

5286:                                             ; preds = %5282
  %5287 = load i32, ptr %3249, align 4, !tbaa !5
  %5288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5289 = call i32 @s2n_print_stacktrace(ptr noundef %5288) #13
  %5290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5291 = trunc nuw i8 %5290 to i1
  br i1 %5291, label %5292, label %5296

5292:                                             ; preds = %5286
  %5293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5294 = call i32 @fileno(ptr noundef %5293) #13
  %5295 = call i32 @isatty(i32 noundef %5294) #13
  %.not1117 = icmp eq i32 %5295, 0
  br i1 %.not1117, label %5296, label %5297

5296:                                             ; preds = %5292, %5286
  br label %5297

5297:                                             ; preds = %5292, %5296
  %.str.25.sink3391 = phi ptr [ @.str.25, %5296 ], [ @.str.22, %5292 ]
  store i32 %5287, ptr %3249, align 4, !tbaa !5
  %5298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5299 = load i32, ptr @test_count, align 4, !tbaa !5
  %5300 = load i32, ptr %3195, align 4, !tbaa !5
  %5301 = call ptr @s2n_strerror(i32 noundef %5300, ptr noundef nonnull @.str.24) #13
  %5302 = load i32, ptr %3195, align 4, !tbaa !5
  %5303 = call ptr @s2n_strerror_debug(i32 noundef %5302, ptr noundef nonnull @.str.24) #13
  %5304 = load i32, ptr %3249, align 4, !tbaa !5
  %5305 = call ptr @strerror(i32 noundef %5304) #13
  %5306 = load i32, ptr %3249, align 4, !tbaa !5
  %5307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5298, ptr noundef nonnull %.str.25.sink3391, i32 noundef %5299, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 815, ptr noundef %5301, ptr noundef %5303, ptr noundef %5305, i32 noundef %5306) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5308:                                             ; preds = %5282
  %5309 = call ptr @s2n_connection_new(i32 noundef 1) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #13
  store ptr null, ptr %11, align 8, !tbaa !9
  %5310 = getelementptr inbounds i8, ptr %5309, i64 220
  store i8 34, ptr %5310, align 4, !tbaa !27
  %5311 = load i32, ptr @test_count, align 4, !tbaa !5
  %5312 = add nsw i32 %5311, 1
  store i32 %5312, ptr @test_count, align 4, !tbaa !5
  %5313 = call i32 @s2n_conn_choose_state_machine(ptr noundef %5309, i8 noundef zeroext 34)
  %5314 = call zeroext i1 @s2n_result_is_ok(i32 %5313)
  br i1 %5314, label %5337, label %5315

5315:                                             ; preds = %5308
  %5316 = load i32, ptr %3249, align 4, !tbaa !5
  %5317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5318 = call i32 @s2n_print_stacktrace(ptr noundef %5317) #13
  %5319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5320 = trunc nuw i8 %5319 to i1
  br i1 %5320, label %5321, label %5325

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

5325:                                             ; preds = %5321, %5315
  br label %5326

5326:                                             ; preds = %5321, %5325
  %.str.25.sink3400 = phi ptr [ @.str.25, %5325 ], [ @.str.22, %5321 ]
  store i32 %5316, ptr %3249, align 4, !tbaa !5
  %5327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5328 = load i32, ptr @test_count, align 4, !tbaa !5
  %5329 = load i32, ptr %3195, align 4, !tbaa !5
  %5330 = call ptr @s2n_strerror(i32 noundef %5329, ptr noundef nonnull @.str.24) #13
  %5331 = load i32, ptr %3195, align 4, !tbaa !5
  %5332 = call ptr @s2n_strerror_debug(i32 noundef %5331, ptr noundef nonnull @.str.24) #13
  %5333 = load i32, ptr %3249, align 4, !tbaa !5
  %5334 = call ptr @strerror(i32 noundef %5333) #13
  %5335 = load i32, ptr %3249, align 4, !tbaa !5
  %5336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5327, ptr noundef nonnull %.str.25.sink3400, i32 noundef %5328, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 824, ptr noundef %5330, ptr noundef %5332, ptr noundef %5334, i32 noundef %5335) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5337:                                             ; preds = %5308
  %5338 = load i32, ptr @test_count, align 4, !tbaa !5
  %5339 = add nsw i32 %5338, 1
  store i32 %5339, ptr @test_count, align 4, !tbaa !5
  %5340 = getelementptr inbounds i8, ptr %5309, i64 1696
  %5341 = call i32 @s2n_array_pushback(ptr noundef nonnull %5340, ptr noundef nonnull %11) #13
  %5342 = call zeroext i1 @s2n_result_is_ok(i32 %5341)
  br i1 %5342, label %5365, label %5343

5343:                                             ; preds = %5337
  %5344 = load i32, ptr %3249, align 4, !tbaa !5
  %5345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5346 = call i32 @s2n_print_stacktrace(ptr noundef %5345) #13
  %5347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5348 = trunc nuw i8 %5347 to i1
  br i1 %5348, label %5349, label %5353

5349:                                             ; preds = %5343
  %5350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5351 = call i32 @fileno(ptr noundef %5350) #13
  %5352 = call i32 @isatty(i32 noundef %5351) #13
  %.not1058 = icmp eq i32 %5352, 0
  br i1 %.not1058, label %5353, label %5354

5353:                                             ; preds = %5349, %5343
  br label %5354

5354:                                             ; preds = %5349, %5353
  %.str.25.sink3409 = phi ptr [ @.str.25, %5353 ], [ @.str.22, %5349 ]
  store i32 %5344, ptr %3249, align 4, !tbaa !5
  %5355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5356 = load i32, ptr @test_count, align 4, !tbaa !5
  %5357 = load i32, ptr %3195, align 4, !tbaa !5
  %5358 = call ptr @s2n_strerror(i32 noundef %5357, ptr noundef nonnull @.str.24) #13
  %5359 = load i32, ptr %3195, align 4, !tbaa !5
  %5360 = call ptr @s2n_strerror_debug(i32 noundef %5359, ptr noundef nonnull @.str.24) #13
  %5361 = load i32, ptr %3249, align 4, !tbaa !5
  %5362 = call ptr @strerror(i32 noundef %5361) #13
  %5363 = load i32, ptr %3249, align 4, !tbaa !5
  %5364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5355, ptr noundef nonnull %.str.25.sink3409, i32 noundef %5356, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.21, i32 noundef 825, ptr noundef %5358, ptr noundef %5360, ptr noundef %5362, i32 noundef %5363) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5365:                                             ; preds = %5337
  %5366 = load ptr, ptr %11, align 8, !tbaa !9
  %5367 = getelementptr inbounds i8, ptr %5309, i64 1736
  store ptr %5366, ptr %5367, align 8, !tbaa !86
  %5368 = load i32, ptr @test_count, align 4, !tbaa !5
  %5369 = add nsw i32 %5368, 1
  store i32 %5369, ptr @test_count, align 4, !tbaa !5
  %5370 = icmp eq ptr %5366, null
  br i1 %5370, label %5371, label %5393

5371:                                             ; preds = %5365
  %5372 = load i32, ptr %3249, align 4, !tbaa !5
  %5373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5374 = call i32 @s2n_print_stacktrace(ptr noundef %5373) #13
  %5375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5376 = trunc nuw i8 %5375 to i1
  br i1 %5376, label %5377, label %5381

5377:                                             ; preds = %5371
  %5378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5379 = call i32 @fileno(ptr noundef %5378) #13
  %5380 = call i32 @isatty(i32 noundef %5379) #13
  %.not1116 = icmp eq i32 %5380, 0
  br i1 %.not1116, label %5381, label %5382

5381:                                             ; preds = %5377, %5371
  br label %5382

5382:                                             ; preds = %5377, %5381
  %.str.25.sink3418 = phi ptr [ @.str.25, %5381 ], [ @.str.22, %5377 ]
  store i32 %5372, ptr %3249, align 4, !tbaa !5
  %5383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5384 = load i32, ptr @test_count, align 4, !tbaa !5
  %5385 = load i32, ptr %3195, align 4, !tbaa !5
  %5386 = call ptr @s2n_strerror(i32 noundef %5385, ptr noundef nonnull @.str.24) #13
  %5387 = load i32, ptr %3195, align 4, !tbaa !5
  %5388 = call ptr @s2n_strerror_debug(i32 noundef %5387, ptr noundef nonnull @.str.24) #13
  %5389 = load i32, ptr %3249, align 4, !tbaa !5
  %5390 = call ptr @strerror(i32 noundef %5389) #13
  %5391 = load i32, ptr %3249, align 4, !tbaa !5
  %5392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5383, ptr noundef nonnull %.str.25.sink3418, i32 noundef %5384, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.21, i32 noundef 828, ptr noundef %5386, ptr noundef %5388, ptr noundef %5390, i32 noundef %5391) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5393:                                             ; preds = %5365
  %5394 = add nsw i32 %5368, 2
  store i32 %5394, ptr @test_count, align 4, !tbaa !5
  %5395 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef nonnull %5309)
  %5396 = call zeroext i1 @s2n_result_is_ok(i32 %5395)
  br i1 %5396, label %5419, label %5397

5397:                                             ; preds = %5393
  %5398 = load i32, ptr %3249, align 4, !tbaa !5
  %5399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5400 = call i32 @s2n_print_stacktrace(ptr noundef %5399) #13
  %5401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5402 = trunc nuw i8 %5401 to i1
  br i1 %5402, label %5403, label %5407

5403:                                             ; preds = %5397
  %5404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5405 = call i32 @fileno(ptr noundef %5404) #13
  %5406 = call i32 @isatty(i32 noundef %5405) #13
  %.not1059 = icmp eq i32 %5406, 0
  br i1 %.not1059, label %5407, label %5408

5407:                                             ; preds = %5403, %5397
  br label %5408

5408:                                             ; preds = %5403, %5407
  %.str.25.sink3427 = phi ptr [ @.str.25, %5407 ], [ @.str.22, %5403 ]
  store i32 %5398, ptr %3249, align 4, !tbaa !5
  %5409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5410 = load i32, ptr @test_count, align 4, !tbaa !5
  %5411 = load i32, ptr %3195, align 4, !tbaa !5
  %5412 = call ptr @s2n_strerror(i32 noundef %5411, ptr noundef nonnull @.str.24) #13
  %5413 = load i32, ptr %3195, align 4, !tbaa !5
  %5414 = call ptr @s2n_strerror_debug(i32 noundef %5413, ptr noundef nonnull @.str.24) #13
  %5415 = load i32, ptr %3249, align 4, !tbaa !5
  %5416 = call ptr @strerror(i32 noundef %5415) #13
  %5417 = load i32, ptr %3249, align 4, !tbaa !5
  %5418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5409, ptr noundef nonnull %.str.25.sink3427, i32 noundef %5410, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.21, i32 noundef 829, ptr noundef %5412, ptr noundef %5414, ptr noundef %5416, i32 noundef %5417) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5419:                                             ; preds = %5393
  %5420 = load i32, ptr @test_count, align 4, !tbaa !5
  %5421 = add nsw i32 %5420, 1
  store i32 %5421, ptr @test_count, align 4, !tbaa !5
  %5422 = getelementptr inbounds i8, ptr %5309, i64 2172
  %5423 = load i32, ptr %5422, align 4, !tbaa !58
  %5424 = and i32 %5423, 2
  %.not1060 = icmp eq i32 %5424, 0
  br i1 %.not1060, label %5447, label %5425

5425:                                             ; preds = %5419
  %5426 = load i32, ptr %3249, align 4, !tbaa !5
  %5427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5428 = call i32 @s2n_print_stacktrace(ptr noundef %5427) #13
  %5429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5430 = trunc nuw i8 %5429 to i1
  br i1 %5430, label %5431, label %5435

5431:                                             ; preds = %5425
  %5432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5433 = call i32 @fileno(ptr noundef %5432) #13
  %5434 = call i32 @isatty(i32 noundef %5433) #13
  %.not1115 = icmp eq i32 %5434, 0
  br i1 %.not1115, label %5435, label %5436

5435:                                             ; preds = %5431, %5425
  br label %5436

5436:                                             ; preds = %5431, %5435
  %.str.25.sink3436 = phi ptr [ @.str.25, %5435 ], [ @.str.22, %5431 ]
  store i32 %5426, ptr %3249, align 4, !tbaa !5
  %5437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5438 = load i32, ptr @test_count, align 4, !tbaa !5
  %5439 = load i32, ptr %3195, align 4, !tbaa !5
  %5440 = call ptr @s2n_strerror(i32 noundef %5439, ptr noundef nonnull @.str.24) #13
  %5441 = load i32, ptr %3195, align 4, !tbaa !5
  %5442 = call ptr @s2n_strerror_debug(i32 noundef %5441, ptr noundef nonnull @.str.24) #13
  %5443 = load i32, ptr %3249, align 4, !tbaa !5
  %5444 = call ptr @strerror(i32 noundef %5443) #13
  %5445 = load i32, ptr %3249, align 4, !tbaa !5
  %5446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5437, ptr noundef nonnull %.str.25.sink3436, i32 noundef %5438, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.21, i32 noundef 830, ptr noundef %5440, ptr noundef %5442, ptr noundef %5444, i32 noundef %5445) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5447:                                             ; preds = %5419
  store ptr null, ptr %5367, align 8, !tbaa !86
  %5448 = add nsw i32 %5420, 2
  store i32 %5448, ptr @test_count, align 4, !tbaa !5
  %5449 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef nonnull %5309)
  %5450 = call zeroext i1 @s2n_result_is_ok(i32 %5449)
  br i1 %5450, label %5473, label %5451

5451:                                             ; preds = %5447
  %5452 = load i32, ptr %3249, align 4, !tbaa !5
  %5453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5454 = call i32 @s2n_print_stacktrace(ptr noundef %5453) #13
  %5455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5456 = trunc nuw i8 %5455 to i1
  br i1 %5456, label %5457, label %5461

5457:                                             ; preds = %5451
  %5458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5459 = call i32 @fileno(ptr noundef %5458) #13
  %5460 = call i32 @isatty(i32 noundef %5459) #13
  %.not1061 = icmp eq i32 %5460, 0
  br i1 %.not1061, label %5461, label %5462

5461:                                             ; preds = %5457, %5451
  br label %5462

5462:                                             ; preds = %5457, %5461
  %.str.25.sink3445 = phi ptr [ @.str.25, %5461 ], [ @.str.22, %5457 ]
  store i32 %5452, ptr %3249, align 4, !tbaa !5
  %5463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5464 = load i32, ptr @test_count, align 4, !tbaa !5
  %5465 = load i32, ptr %3195, align 4, !tbaa !5
  %5466 = call ptr @s2n_strerror(i32 noundef %5465, ptr noundef nonnull @.str.24) #13
  %5467 = load i32, ptr %3195, align 4, !tbaa !5
  %5468 = call ptr @s2n_strerror_debug(i32 noundef %5467, ptr noundef nonnull @.str.24) #13
  %5469 = load i32, ptr %3249, align 4, !tbaa !5
  %5470 = call ptr @strerror(i32 noundef %5469) #13
  %5471 = load i32, ptr %3249, align 4, !tbaa !5
  %5472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5463, ptr noundef nonnull %.str.25.sink3445, i32 noundef %5464, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.21, i32 noundef 833, ptr noundef %5466, ptr noundef %5468, ptr noundef %5470, i32 noundef %5471) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5473:                                             ; preds = %5447
  %5474 = load i32, ptr @test_count, align 4, !tbaa !5
  %5475 = add nsw i32 %5474, 1
  store i32 %5475, ptr @test_count, align 4, !tbaa !5
  %5476 = load i32, ptr %5422, align 4, !tbaa !58
  %5477 = and i32 %5476, 2
  %.not1062 = icmp eq i32 %5477, 0
  br i1 %.not1062, label %5478, label %5500

5478:                                             ; preds = %5473
  %5479 = load i32, ptr %3249, align 4, !tbaa !5
  %5480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5481 = call i32 @s2n_print_stacktrace(ptr noundef %5480) #13
  %5482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5483 = trunc nuw i8 %5482 to i1
  br i1 %5483, label %5484, label %5488

5484:                                             ; preds = %5478
  %5485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5486 = call i32 @fileno(ptr noundef %5485) #13
  %5487 = call i32 @isatty(i32 noundef %5486) #13
  %.not1063 = icmp eq i32 %5487, 0
  br i1 %.not1063, label %5488, label %5489

5488:                                             ; preds = %5484, %5478
  br label %5489

5489:                                             ; preds = %5484, %5488
  %.str.25.sink3454 = phi ptr [ @.str.25, %5488 ], [ @.str.22, %5484 ]
  store i32 %5479, ptr %3249, align 4, !tbaa !5
  %5490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5491 = load i32, ptr @test_count, align 4, !tbaa !5
  %5492 = load i32, ptr %3195, align 4, !tbaa !5
  %5493 = call ptr @s2n_strerror(i32 noundef %5492, ptr noundef nonnull @.str.24) #13
  %5494 = load i32, ptr %3195, align 4, !tbaa !5
  %5495 = call ptr @s2n_strerror_debug(i32 noundef %5494, ptr noundef nonnull @.str.24) #13
  %5496 = load i32, ptr %3249, align 4, !tbaa !5
  %5497 = call ptr @strerror(i32 noundef %5496) #13
  %5498 = load i32, ptr %3249, align 4, !tbaa !5
  %5499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5490, ptr noundef nonnull %.str.25.sink3454, i32 noundef %5491, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.21, i32 noundef 834, ptr noundef %5493, ptr noundef %5495, ptr noundef %5497, i32 noundef %5498) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5500:                                             ; preds = %5473
  %5501 = add nsw i32 %5474, 2
  store i32 %5501, ptr @test_count, align 4, !tbaa !5
  %5502 = call i32 @s2n_connection_free(ptr noundef nonnull %5309) #13
  %5503 = icmp eq i32 %5502, -1
  br i1 %5503, label %5504, label %5526

5504:                                             ; preds = %5500
  %5505 = load i32, ptr %3249, align 4, !tbaa !5
  %5506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5507 = call i32 @s2n_print_stacktrace(ptr noundef %5506) #13
  %5508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5509 = trunc nuw i8 %5508 to i1
  br i1 %5509, label %5510, label %5514

5510:                                             ; preds = %5504
  %5511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5512 = call i32 @fileno(ptr noundef %5511) #13
  %5513 = call i32 @isatty(i32 noundef %5512) #13
  %.not1114 = icmp eq i32 %5513, 0
  br i1 %.not1114, label %5514, label %5515

5514:                                             ; preds = %5510, %5504
  br label %5515

5515:                                             ; preds = %5510, %5514
  %.str.25.sink3463 = phi ptr [ @.str.25, %5514 ], [ @.str.22, %5510 ]
  store i32 %5505, ptr %3249, align 4, !tbaa !5
  %5516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5517 = load i32, ptr @test_count, align 4, !tbaa !5
  %5518 = load i32, ptr %3195, align 4, !tbaa !5
  %5519 = call ptr @s2n_strerror(i32 noundef %5518, ptr noundef nonnull @.str.24) #13
  %5520 = load i32, ptr %3195, align 4, !tbaa !5
  %5521 = call ptr @s2n_strerror_debug(i32 noundef %5520, ptr noundef nonnull @.str.24) #13
  %5522 = load i32, ptr %3249, align 4, !tbaa !5
  %5523 = call ptr @strerror(i32 noundef %5522) #13
  %5524 = load i32, ptr %3249, align 4, !tbaa !5
  %5525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5516, ptr noundef nonnull %.str.25.sink3463, i32 noundef %5517, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 836, ptr noundef %5519, ptr noundef %5521, ptr noundef %5523, i32 noundef %5524) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5526:                                             ; preds = %5500
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #13
  %5527 = call ptr @s2n_connection_new(i32 noundef 1) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #13
  store ptr null, ptr %12, align 8, !tbaa !9
  %5528 = load i32, ptr @test_count, align 4, !tbaa !5
  %5529 = add nsw i32 %5528, 1
  store i32 %5529, ptr @test_count, align 4, !tbaa !5
  %5530 = getelementptr inbounds i8, ptr %5527, i64 1696
  %5531 = call i32 @s2n_array_pushback(ptr noundef nonnull %5530, ptr noundef nonnull %12) #13
  %5532 = call zeroext i1 @s2n_result_is_ok(i32 %5531)
  br i1 %5532, label %5555, label %5533

5533:                                             ; preds = %5526
  %5534 = load i32, ptr %3249, align 4, !tbaa !5
  %5535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5536 = call i32 @s2n_print_stacktrace(ptr noundef %5535) #13
  %5537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5538 = trunc nuw i8 %5537 to i1
  br i1 %5538, label %5539, label %5543

5539:                                             ; preds = %5533
  %5540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5541 = call i32 @fileno(ptr noundef %5540) #13
  %5542 = call i32 @isatty(i32 noundef %5541) #13
  %.not1064 = icmp eq i32 %5542, 0
  br i1 %.not1064, label %5543, label %5544

5543:                                             ; preds = %5539, %5533
  br label %5544

5544:                                             ; preds = %5539, %5543
  %.str.25.sink3472 = phi ptr [ @.str.25, %5543 ], [ @.str.22, %5539 ]
  store i32 %5534, ptr %3249, align 4, !tbaa !5
  %5545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5546 = load i32, ptr @test_count, align 4, !tbaa !5
  %5547 = load i32, ptr %3195, align 4, !tbaa !5
  %5548 = call ptr @s2n_strerror(i32 noundef %5547, ptr noundef nonnull @.str.24) #13
  %5549 = load i32, ptr %3195, align 4, !tbaa !5
  %5550 = call ptr @s2n_strerror_debug(i32 noundef %5549, ptr noundef nonnull @.str.24) #13
  %5551 = load i32, ptr %3249, align 4, !tbaa !5
  %5552 = call ptr @strerror(i32 noundef %5551) #13
  %5553 = load i32, ptr %3249, align 4, !tbaa !5
  %5554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5545, ptr noundef nonnull %.str.25.sink3472, i32 noundef %5546, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.21, i32 noundef 845, ptr noundef %5548, ptr noundef %5550, ptr noundef %5552, i32 noundef %5553) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5555:                                             ; preds = %5526
  %5556 = load ptr, ptr %12, align 8, !tbaa !9
  %5557 = getelementptr inbounds i8, ptr %5527, i64 1736
  store ptr %5556, ptr %5557, align 8, !tbaa !86
  %5558 = load i32, ptr @test_count, align 4, !tbaa !5
  %5559 = add nsw i32 %5558, 1
  store i32 %5559, ptr @test_count, align 4, !tbaa !5
  %5560 = icmp eq ptr %5556, null
  br i1 %5560, label %5561, label %5583

5561:                                             ; preds = %5555
  %5562 = load i32, ptr %3249, align 4, !tbaa !5
  %5563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5564 = call i32 @s2n_print_stacktrace(ptr noundef %5563) #13
  %5565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5566 = trunc nuw i8 %5565 to i1
  br i1 %5566, label %5567, label %5571

5567:                                             ; preds = %5561
  %5568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5569 = call i32 @fileno(ptr noundef %5568) #13
  %5570 = call i32 @isatty(i32 noundef %5569) #13
  %.not1113 = icmp eq i32 %5570, 0
  br i1 %.not1113, label %5571, label %5572

5571:                                             ; preds = %5567, %5561
  br label %5572

5572:                                             ; preds = %5567, %5571
  %.str.25.sink3481 = phi ptr [ @.str.25, %5571 ], [ @.str.22, %5567 ]
  store i32 %5562, ptr %3249, align 4, !tbaa !5
  %5573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5574 = load i32, ptr @test_count, align 4, !tbaa !5
  %5575 = load i32, ptr %3195, align 4, !tbaa !5
  %5576 = call ptr @s2n_strerror(i32 noundef %5575, ptr noundef nonnull @.str.24) #13
  %5577 = load i32, ptr %3195, align 4, !tbaa !5
  %5578 = call ptr @s2n_strerror_debug(i32 noundef %5577, ptr noundef nonnull @.str.24) #13
  %5579 = load i32, ptr %3249, align 4, !tbaa !5
  %5580 = call ptr @strerror(i32 noundef %5579) #13
  %5581 = load i32, ptr %3249, align 4, !tbaa !5
  %5582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5573, ptr noundef nonnull %.str.25.sink3481, i32 noundef %5574, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.21, i32 noundef 847, ptr noundef %5576, ptr noundef %5578, ptr noundef %5580, i32 noundef %5581) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5583:                                             ; preds = %5555
  %5584 = add nsw i32 %5558, 2
  store i32 %5584, ptr @test_count, align 4, !tbaa !5
  %5585 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %5527, i32 noundef 1) #13
  %5586 = icmp eq i32 %5585, -1
  br i1 %5586, label %5587, label %5609

5587:                                             ; preds = %5583
  %5588 = load i32, ptr %3249, align 4, !tbaa !5
  %5589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5590 = call i32 @s2n_print_stacktrace(ptr noundef %5589) #13
  %5591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5592 = trunc nuw i8 %5591 to i1
  br i1 %5592, label %5593, label %5597

5593:                                             ; preds = %5587
  %5594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5595 = call i32 @fileno(ptr noundef %5594) #13
  %5596 = call i32 @isatty(i32 noundef %5595) #13
  %.not1112 = icmp eq i32 %5596, 0
  br i1 %.not1112, label %5597, label %5598

5597:                                             ; preds = %5593, %5587
  br label %5598

5598:                                             ; preds = %5593, %5597
  %.str.25.sink3490 = phi ptr [ @.str.25, %5597 ], [ @.str.22, %5593 ]
  store i32 %5588, ptr %3249, align 4, !tbaa !5
  %5599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5600 = load i32, ptr @test_count, align 4, !tbaa !5
  %5601 = load i32, ptr %3195, align 4, !tbaa !5
  %5602 = call ptr @s2n_strerror(i32 noundef %5601, ptr noundef nonnull @.str.24) #13
  %5603 = load i32, ptr %3195, align 4, !tbaa !5
  %5604 = call ptr @s2n_strerror_debug(i32 noundef %5603, ptr noundef nonnull @.str.24) #13
  %5605 = load i32, ptr %3249, align 4, !tbaa !5
  %5606 = call ptr @strerror(i32 noundef %5605) #13
  %5607 = load i32, ptr %3249, align 4, !tbaa !5
  %5608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5599, ptr noundef nonnull %.str.25.sink3490, i32 noundef %5600, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.21, i32 noundef 849, ptr noundef %5602, ptr noundef %5604, ptr noundef %5606, i32 noundef %5607) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5609:                                             ; preds = %5583
  %5610 = load i32, ptr @test_count, align 4, !tbaa !5
  %5611 = add nsw i32 %5610, 1
  store i32 %5611, ptr @test_count, align 4, !tbaa !5
  %5612 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef nonnull %5527)
  %5613 = call zeroext i1 @s2n_result_is_ok(i32 %5612)
  br i1 %5613, label %5636, label %5614

5614:                                             ; preds = %5609
  %5615 = load i32, ptr %3249, align 4, !tbaa !5
  %5616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5617 = call i32 @s2n_print_stacktrace(ptr noundef %5616) #13
  %5618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5619 = trunc nuw i8 %5618 to i1
  br i1 %5619, label %5620, label %5624

5620:                                             ; preds = %5614
  %5621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5622 = call i32 @fileno(ptr noundef %5621) #13
  %5623 = call i32 @isatty(i32 noundef %5622) #13
  %.not1065 = icmp eq i32 %5623, 0
  br i1 %.not1065, label %5624, label %5625

5624:                                             ; preds = %5620, %5614
  br label %5625

5625:                                             ; preds = %5620, %5624
  %.str.25.sink3499 = phi ptr [ @.str.25, %5624 ], [ @.str.22, %5620 ]
  store i32 %5615, ptr %3249, align 4, !tbaa !5
  %5626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5627 = load i32, ptr @test_count, align 4, !tbaa !5
  %5628 = load i32, ptr %3195, align 4, !tbaa !5
  %5629 = call ptr @s2n_strerror(i32 noundef %5628, ptr noundef nonnull @.str.24) #13
  %5630 = load i32, ptr %3195, align 4, !tbaa !5
  %5631 = call ptr @s2n_strerror_debug(i32 noundef %5630, ptr noundef nonnull @.str.24) #13
  %5632 = load i32, ptr %3249, align 4, !tbaa !5
  %5633 = call ptr @strerror(i32 noundef %5632) #13
  %5634 = load i32, ptr %3249, align 4, !tbaa !5
  %5635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5626, ptr noundef nonnull %.str.25.sink3499, i32 noundef %5627, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.21, i32 noundef 851, ptr noundef %5629, ptr noundef %5631, ptr noundef %5633, i32 noundef %5634) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5636:                                             ; preds = %5609
  %5637 = load i32, ptr @test_count, align 4, !tbaa !5
  %5638 = add nsw i32 %5637, 1
  store i32 %5638, ptr @test_count, align 4, !tbaa !5
  %5639 = getelementptr inbounds i8, ptr %5527, i64 2172
  %5640 = load i32, ptr %5639, align 4, !tbaa !58
  %5641 = and i32 %5640, 4
  %.not1066 = icmp eq i32 %5641, 0
  br i1 %.not1066, label %5664, label %5642

5642:                                             ; preds = %5636
  %5643 = load i32, ptr %3249, align 4, !tbaa !5
  %5644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5645 = call i32 @s2n_print_stacktrace(ptr noundef %5644) #13
  %5646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5647 = trunc nuw i8 %5646 to i1
  br i1 %5647, label %5648, label %5652

5648:                                             ; preds = %5642
  %5649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5650 = call i32 @fileno(ptr noundef %5649) #13
  %5651 = call i32 @isatty(i32 noundef %5650) #13
  %.not1111 = icmp eq i32 %5651, 0
  br i1 %.not1111, label %5652, label %5653

5652:                                             ; preds = %5648, %5642
  br label %5653

5653:                                             ; preds = %5648, %5652
  %.str.25.sink3508 = phi ptr [ @.str.25, %5652 ], [ @.str.22, %5648 ]
  store i32 %5643, ptr %3249, align 4, !tbaa !5
  %5654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5655 = load i32, ptr @test_count, align 4, !tbaa !5
  %5656 = load i32, ptr %3195, align 4, !tbaa !5
  %5657 = call ptr @s2n_strerror(i32 noundef %5656, ptr noundef nonnull @.str.24) #13
  %5658 = load i32, ptr %3195, align 4, !tbaa !5
  %5659 = call ptr @s2n_strerror_debug(i32 noundef %5658, ptr noundef nonnull @.str.24) #13
  %5660 = load i32, ptr %3249, align 4, !tbaa !5
  %5661 = call ptr @strerror(i32 noundef %5660) #13
  %5662 = load i32, ptr %3249, align 4, !tbaa !5
  %5663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5654, ptr noundef nonnull %.str.25.sink3508, i32 noundef %5655, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.21, i32 noundef 852, ptr noundef %5657, ptr noundef %5659, ptr noundef %5661, i32 noundef %5662) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5664:                                             ; preds = %5636
  %5665 = add nsw i32 %5637, 2
  store i32 %5665, ptr @test_count, align 4, !tbaa !5
  %5666 = and i32 %5640, 2
  %.not1067 = icmp eq i32 %5666, 0
  br i1 %.not1067, label %5689, label %5667

5667:                                             ; preds = %5664
  %5668 = load i32, ptr %3249, align 4, !tbaa !5
  %5669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5670 = call i32 @s2n_print_stacktrace(ptr noundef %5669) #13
  %5671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5672 = trunc nuw i8 %5671 to i1
  br i1 %5672, label %5673, label %5677

5673:                                             ; preds = %5667
  %5674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5675 = call i32 @fileno(ptr noundef %5674) #13
  %5676 = call i32 @isatty(i32 noundef %5675) #13
  %.not1110 = icmp eq i32 %5676, 0
  br i1 %.not1110, label %5677, label %5678

5677:                                             ; preds = %5673, %5667
  br label %5678

5678:                                             ; preds = %5673, %5677
  %.str.25.sink3517 = phi ptr [ @.str.25, %5677 ], [ @.str.22, %5673 ]
  store i32 %5668, ptr %3249, align 4, !tbaa !5
  %5679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5680 = load i32, ptr @test_count, align 4, !tbaa !5
  %5681 = load i32, ptr %3195, align 4, !tbaa !5
  %5682 = call ptr @s2n_strerror(i32 noundef %5681, ptr noundef nonnull @.str.24) #13
  %5683 = load i32, ptr %3195, align 4, !tbaa !5
  %5684 = call ptr @s2n_strerror_debug(i32 noundef %5683, ptr noundef nonnull @.str.24) #13
  %5685 = load i32, ptr %3249, align 4, !tbaa !5
  %5686 = call ptr @strerror(i32 noundef %5685) #13
  %5687 = load i32, ptr %3249, align 4, !tbaa !5
  %5688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5679, ptr noundef nonnull %.str.25.sink3517, i32 noundef %5680, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.21, i32 noundef 853, ptr noundef %5682, ptr noundef %5684, ptr noundef %5686, i32 noundef %5687) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5689:                                             ; preds = %5664
  %5690 = add nsw i32 %5637, 3
  store i32 %5690, ptr @test_count, align 4, !tbaa !5
  %5691 = call i32 @s2n_connection_free(ptr noundef nonnull %5527) #13
  %5692 = icmp eq i32 %5691, -1
  br i1 %5692, label %5693, label %5715

5693:                                             ; preds = %5689
  %5694 = load i32, ptr %3249, align 4, !tbaa !5
  %5695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5696 = call i32 @s2n_print_stacktrace(ptr noundef %5695) #13
  %5697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5698 = trunc nuw i8 %5697 to i1
  br i1 %5698, label %5699, label %5703

5699:                                             ; preds = %5693
  %5700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5701 = call i32 @fileno(ptr noundef %5700) #13
  %5702 = call i32 @isatty(i32 noundef %5701) #13
  %.not1109 = icmp eq i32 %5702, 0
  br i1 %.not1109, label %5703, label %5704

5703:                                             ; preds = %5699, %5693
  br label %5704

5704:                                             ; preds = %5699, %5703
  %.str.25.sink3526 = phi ptr [ @.str.25, %5703 ], [ @.str.22, %5699 ]
  store i32 %5694, ptr %3249, align 4, !tbaa !5
  %5705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5706 = load i32, ptr @test_count, align 4, !tbaa !5
  %5707 = load i32, ptr %3195, align 4, !tbaa !5
  %5708 = call ptr @s2n_strerror(i32 noundef %5707, ptr noundef nonnull @.str.24) #13
  %5709 = load i32, ptr %3195, align 4, !tbaa !5
  %5710 = call ptr @s2n_strerror_debug(i32 noundef %5709, ptr noundef nonnull @.str.24) #13
  %5711 = load i32, ptr %3249, align 4, !tbaa !5
  %5712 = call ptr @strerror(i32 noundef %5711) #13
  %5713 = load i32, ptr %3249, align 4, !tbaa !5
  %5714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5705, ptr noundef nonnull %.str.25.sink3526, i32 noundef %5706, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.21, i32 noundef 855, ptr noundef %5708, ptr noundef %5710, ptr noundef %5712, i32 noundef %5713) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5715:                                             ; preds = %5689
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #13
  %5716 = call ptr @s2n_connection_new(i32 noundef 0) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #13
  store ptr null, ptr %13, align 8, !tbaa !9
  %5717 = load i32, ptr @test_count, align 4, !tbaa !5
  %5718 = add nsw i32 %5717, 1
  store i32 %5718, ptr @test_count, align 4, !tbaa !5
  %5719 = getelementptr inbounds i8, ptr %5716, i64 1696
  %5720 = call i32 @s2n_array_pushback(ptr noundef nonnull %5719, ptr noundef nonnull %13) #13
  %5721 = call zeroext i1 @s2n_result_is_ok(i32 %5720)
  br i1 %5721, label %5744, label %5722

5722:                                             ; preds = %5715
  %5723 = load i32, ptr %3249, align 4, !tbaa !5
  %5724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5725 = call i32 @s2n_print_stacktrace(ptr noundef %5724) #13
  %5726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5727 = trunc nuw i8 %5726 to i1
  br i1 %5727, label %5728, label %5732

5728:                                             ; preds = %5722
  %5729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5730 = call i32 @fileno(ptr noundef %5729) #13
  %5731 = call i32 @isatty(i32 noundef %5730) #13
  %.not1068 = icmp eq i32 %5731, 0
  br i1 %.not1068, label %5732, label %5733

5732:                                             ; preds = %5728, %5722
  br label %5733

5733:                                             ; preds = %5728, %5732
  %.str.25.sink3535 = phi ptr [ @.str.25, %5732 ], [ @.str.22, %5728 ]
  store i32 %5723, ptr %3249, align 4, !tbaa !5
  %5734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5735 = load i32, ptr @test_count, align 4, !tbaa !5
  %5736 = load i32, ptr %3195, align 4, !tbaa !5
  %5737 = call ptr @s2n_strerror(i32 noundef %5736, ptr noundef nonnull @.str.24) #13
  %5738 = load i32, ptr %3195, align 4, !tbaa !5
  %5739 = call ptr @s2n_strerror_debug(i32 noundef %5738, ptr noundef nonnull @.str.24) #13
  %5740 = load i32, ptr %3249, align 4, !tbaa !5
  %5741 = call ptr @strerror(i32 noundef %5740) #13
  %5742 = load i32, ptr %3249, align 4, !tbaa !5
  %5743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5734, ptr noundef nonnull %.str.25.sink3535, i32 noundef %5735, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.21, i32 noundef 864, ptr noundef %5737, ptr noundef %5739, ptr noundef %5741, i32 noundef %5742) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5744:                                             ; preds = %5715
  %5745 = load ptr, ptr %13, align 8, !tbaa !9
  %5746 = getelementptr inbounds i8, ptr %5716, i64 1736
  store ptr %5745, ptr %5746, align 8, !tbaa !86
  %5747 = load i32, ptr @test_count, align 4, !tbaa !5
  %5748 = add nsw i32 %5747, 1
  store i32 %5748, ptr @test_count, align 4, !tbaa !5
  %5749 = icmp eq ptr %5745, null
  br i1 %5749, label %5750, label %5772

5750:                                             ; preds = %5744
  %5751 = load i32, ptr %3249, align 4, !tbaa !5
  %5752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5753 = call i32 @s2n_print_stacktrace(ptr noundef %5752) #13
  %5754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5755 = trunc nuw i8 %5754 to i1
  br i1 %5755, label %5756, label %5760

5756:                                             ; preds = %5750
  %5757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5758 = call i32 @fileno(ptr noundef %5757) #13
  %5759 = call i32 @isatty(i32 noundef %5758) #13
  %.not1108 = icmp eq i32 %5759, 0
  br i1 %.not1108, label %5760, label %5761

5760:                                             ; preds = %5756, %5750
  br label %5761

5761:                                             ; preds = %5756, %5760
  %.str.25.sink3544 = phi ptr [ @.str.25, %5760 ], [ @.str.22, %5756 ]
  store i32 %5751, ptr %3249, align 4, !tbaa !5
  %5762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5763 = load i32, ptr @test_count, align 4, !tbaa !5
  %5764 = load i32, ptr %3195, align 4, !tbaa !5
  %5765 = call ptr @s2n_strerror(i32 noundef %5764, ptr noundef nonnull @.str.24) #13
  %5766 = load i32, ptr %3195, align 4, !tbaa !5
  %5767 = call ptr @s2n_strerror_debug(i32 noundef %5766, ptr noundef nonnull @.str.24) #13
  %5768 = load i32, ptr %3249, align 4, !tbaa !5
  %5769 = call ptr @strerror(i32 noundef %5768) #13
  %5770 = load i32, ptr %3249, align 4, !tbaa !5
  %5771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5762, ptr noundef nonnull %.str.25.sink3544, i32 noundef %5763, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.21, i32 noundef 866, ptr noundef %5765, ptr noundef %5767, ptr noundef %5769, i32 noundef %5770) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5772:                                             ; preds = %5744
  %5773 = add nsw i32 %5747, 2
  store i32 %5773, ptr @test_count, align 4, !tbaa !5
  %5774 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %5716, i32 noundef 1) #13
  %5775 = icmp eq i32 %5774, -1
  br i1 %5775, label %5776, label %5798

5776:                                             ; preds = %5772
  %5777 = load i32, ptr %3249, align 4, !tbaa !5
  %5778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5779 = call i32 @s2n_print_stacktrace(ptr noundef %5778) #13
  %5780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5781 = trunc nuw i8 %5780 to i1
  br i1 %5781, label %5782, label %5786

5782:                                             ; preds = %5776
  %5783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5784 = call i32 @fileno(ptr noundef %5783) #13
  %5785 = call i32 @isatty(i32 noundef %5784) #13
  %.not1107 = icmp eq i32 %5785, 0
  br i1 %.not1107, label %5786, label %5787

5786:                                             ; preds = %5782, %5776
  br label %5787

5787:                                             ; preds = %5782, %5786
  %.str.25.sink3553 = phi ptr [ @.str.25, %5786 ], [ @.str.22, %5782 ]
  store i32 %5777, ptr %3249, align 4, !tbaa !5
  %5788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5789 = load i32, ptr @test_count, align 4, !tbaa !5
  %5790 = load i32, ptr %3195, align 4, !tbaa !5
  %5791 = call ptr @s2n_strerror(i32 noundef %5790, ptr noundef nonnull @.str.24) #13
  %5792 = load i32, ptr %3195, align 4, !tbaa !5
  %5793 = call ptr @s2n_strerror_debug(i32 noundef %5792, ptr noundef nonnull @.str.24) #13
  %5794 = load i32, ptr %3249, align 4, !tbaa !5
  %5795 = call ptr @strerror(i32 noundef %5794) #13
  %5796 = load i32, ptr %3249, align 4, !tbaa !5
  %5797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5788, ptr noundef nonnull %.str.25.sink3553, i32 noundef %5789, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.21, i32 noundef 868, ptr noundef %5791, ptr noundef %5793, ptr noundef %5795, i32 noundef %5796) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5798:                                             ; preds = %5772
  %5799 = load i32, ptr @test_count, align 4, !tbaa !5
  %5800 = add nsw i32 %5799, 1
  store i32 %5800, ptr @test_count, align 4, !tbaa !5
  %5801 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef nonnull %5716)
  %5802 = call zeroext i1 @s2n_result_is_ok(i32 %5801)
  br i1 %5802, label %5825, label %5803

5803:                                             ; preds = %5798
  %5804 = load i32, ptr %3249, align 4, !tbaa !5
  %5805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5806 = call i32 @s2n_print_stacktrace(ptr noundef %5805) #13
  %5807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5808 = trunc nuw i8 %5807 to i1
  br i1 %5808, label %5809, label %5813

5809:                                             ; preds = %5803
  %5810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5811 = call i32 @fileno(ptr noundef %5810) #13
  %5812 = call i32 @isatty(i32 noundef %5811) #13
  %.not1069 = icmp eq i32 %5812, 0
  br i1 %.not1069, label %5813, label %5814

5813:                                             ; preds = %5809, %5803
  br label %5814

5814:                                             ; preds = %5809, %5813
  %.str.25.sink3562 = phi ptr [ @.str.25, %5813 ], [ @.str.22, %5809 ]
  store i32 %5804, ptr %3249, align 4, !tbaa !5
  %5815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5816 = load i32, ptr @test_count, align 4, !tbaa !5
  %5817 = load i32, ptr %3195, align 4, !tbaa !5
  %5818 = call ptr @s2n_strerror(i32 noundef %5817, ptr noundef nonnull @.str.24) #13
  %5819 = load i32, ptr %3195, align 4, !tbaa !5
  %5820 = call ptr @s2n_strerror_debug(i32 noundef %5819, ptr noundef nonnull @.str.24) #13
  %5821 = load i32, ptr %3249, align 4, !tbaa !5
  %5822 = call ptr @strerror(i32 noundef %5821) #13
  %5823 = load i32, ptr %3249, align 4, !tbaa !5
  %5824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5815, ptr noundef nonnull %.str.25.sink3562, i32 noundef %5816, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.21, i32 noundef 870, ptr noundef %5818, ptr noundef %5820, ptr noundef %5822, i32 noundef %5823) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5825:                                             ; preds = %5798
  %5826 = load i32, ptr @test_count, align 4, !tbaa !5
  %5827 = add nsw i32 %5826, 1
  store i32 %5827, ptr @test_count, align 4, !tbaa !5
  %5828 = getelementptr inbounds i8, ptr %5716, i64 2172
  %5829 = load i32, ptr %5828, align 4, !tbaa !58
  %5830 = and i32 %5829, 4
  %.not1070 = icmp eq i32 %5830, 0
  br i1 %.not1070, label %5853, label %5831

5831:                                             ; preds = %5825
  %5832 = load i32, ptr %3249, align 4, !tbaa !5
  %5833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5834 = call i32 @s2n_print_stacktrace(ptr noundef %5833) #13
  %5835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5836 = trunc nuw i8 %5835 to i1
  br i1 %5836, label %5837, label %5841

5837:                                             ; preds = %5831
  %5838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5839 = call i32 @fileno(ptr noundef %5838) #13
  %5840 = call i32 @isatty(i32 noundef %5839) #13
  %.not1106 = icmp eq i32 %5840, 0
  br i1 %.not1106, label %5841, label %5842

5841:                                             ; preds = %5837, %5831
  br label %5842

5842:                                             ; preds = %5837, %5841
  %.str.25.sink3571 = phi ptr [ @.str.25, %5841 ], [ @.str.22, %5837 ]
  store i32 %5832, ptr %3249, align 4, !tbaa !5
  %5843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5844 = load i32, ptr @test_count, align 4, !tbaa !5
  %5845 = load i32, ptr %3195, align 4, !tbaa !5
  %5846 = call ptr @s2n_strerror(i32 noundef %5845, ptr noundef nonnull @.str.24) #13
  %5847 = load i32, ptr %3195, align 4, !tbaa !5
  %5848 = call ptr @s2n_strerror_debug(i32 noundef %5847, ptr noundef nonnull @.str.24) #13
  %5849 = load i32, ptr %3249, align 4, !tbaa !5
  %5850 = call ptr @strerror(i32 noundef %5849) #13
  %5851 = load i32, ptr %3249, align 4, !tbaa !5
  %5852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5843, ptr noundef nonnull %.str.25.sink3571, i32 noundef %5844, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.21, i32 noundef 871, ptr noundef %5846, ptr noundef %5848, ptr noundef %5850, i32 noundef %5851) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5853:                                             ; preds = %5825
  %5854 = add nsw i32 %5826, 2
  store i32 %5854, ptr @test_count, align 4, !tbaa !5
  %5855 = and i32 %5829, 2
  %.not1071 = icmp eq i32 %5855, 0
  br i1 %.not1071, label %5878, label %5856

5856:                                             ; preds = %5853
  %5857 = load i32, ptr %3249, align 4, !tbaa !5
  %5858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5859 = call i32 @s2n_print_stacktrace(ptr noundef %5858) #13
  %5860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5861 = trunc nuw i8 %5860 to i1
  br i1 %5861, label %5862, label %5866

5862:                                             ; preds = %5856
  %5863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5864 = call i32 @fileno(ptr noundef %5863) #13
  %5865 = call i32 @isatty(i32 noundef %5864) #13
  %.not1105 = icmp eq i32 %5865, 0
  br i1 %.not1105, label %5866, label %5867

5866:                                             ; preds = %5862, %5856
  br label %5867

5867:                                             ; preds = %5862, %5866
  %.str.25.sink3580 = phi ptr [ @.str.25, %5866 ], [ @.str.22, %5862 ]
  store i32 %5857, ptr %3249, align 4, !tbaa !5
  %5868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5869 = load i32, ptr @test_count, align 4, !tbaa !5
  %5870 = load i32, ptr %3195, align 4, !tbaa !5
  %5871 = call ptr @s2n_strerror(i32 noundef %5870, ptr noundef nonnull @.str.24) #13
  %5872 = load i32, ptr %3195, align 4, !tbaa !5
  %5873 = call ptr @s2n_strerror_debug(i32 noundef %5872, ptr noundef nonnull @.str.24) #13
  %5874 = load i32, ptr %3249, align 4, !tbaa !5
  %5875 = call ptr @strerror(i32 noundef %5874) #13
  %5876 = load i32, ptr %3249, align 4, !tbaa !5
  %5877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5868, ptr noundef nonnull %.str.25.sink3580, i32 noundef %5869, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.21, i32 noundef 872, ptr noundef %5871, ptr noundef %5873, ptr noundef %5875, i32 noundef %5876) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5878:                                             ; preds = %5853
  %5879 = add nsw i32 %5826, 3
  store i32 %5879, ptr @test_count, align 4, !tbaa !5
  %5880 = call i32 @s2n_connection_free(ptr noundef nonnull %5716) #13
  %5881 = icmp eq i32 %5880, -1
  br i1 %5881, label %5882, label %5904

5882:                                             ; preds = %5878
  %5883 = load i32, ptr %3249, align 4, !tbaa !5
  %5884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5885 = call i32 @s2n_print_stacktrace(ptr noundef %5884) #13
  %5886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5887 = trunc nuw i8 %5886 to i1
  br i1 %5887, label %5888, label %5892

5888:                                             ; preds = %5882
  %5889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5890 = call i32 @fileno(ptr noundef %5889) #13
  %5891 = call i32 @isatty(i32 noundef %5890) #13
  %.not1104 = icmp eq i32 %5891, 0
  br i1 %.not1104, label %5892, label %5893

5892:                                             ; preds = %5888, %5882
  br label %5893

5893:                                             ; preds = %5888, %5892
  %.str.25.sink3589 = phi ptr [ @.str.25, %5892 ], [ @.str.22, %5888 ]
  store i32 %5883, ptr %3249, align 4, !tbaa !5
  %5894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5895 = load i32, ptr @test_count, align 4, !tbaa !5
  %5896 = load i32, ptr %3195, align 4, !tbaa !5
  %5897 = call ptr @s2n_strerror(i32 noundef %5896, ptr noundef nonnull @.str.24) #13
  %5898 = load i32, ptr %3195, align 4, !tbaa !5
  %5899 = call ptr @s2n_strerror_debug(i32 noundef %5898, ptr noundef nonnull @.str.24) #13
  %5900 = load i32, ptr %3249, align 4, !tbaa !5
  %5901 = call ptr @strerror(i32 noundef %5900) #13
  %5902 = load i32, ptr %3249, align 4, !tbaa !5
  %5903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5894, ptr noundef nonnull %.str.25.sink3589, i32 noundef %5895, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.21, i32 noundef 874, ptr noundef %5897, ptr noundef %5899, ptr noundef %5901, i32 noundef %5902) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5904:                                             ; preds = %5878
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #13
  %5905 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %5906 = getelementptr inbounds i8, ptr %5905, i64 220
  store i8 34, ptr %5906, align 4, !tbaa !27
  %5907 = getelementptr inbounds i8, ptr %5905, i64 4088
  store i32 3, ptr %5907, align 8, !tbaa !87
  %5908 = load i32, ptr @test_count, align 4, !tbaa !5
  %5909 = add nsw i32 %5908, 1
  store i32 %5909, ptr @test_count, align 4, !tbaa !5
  %5910 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef %5905)
  %5911 = call zeroext i1 @s2n_result_is_ok(i32 %5910)
  br i1 %5911, label %5934, label %5912

5912:                                             ; preds = %5904
  %5913 = load i32, ptr %3249, align 4, !tbaa !5
  %5914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5915 = call i32 @s2n_print_stacktrace(ptr noundef %5914) #13
  %5916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5917 = trunc nuw i8 %5916 to i1
  br i1 %5917, label %5918, label %5922

5918:                                             ; preds = %5912
  %5919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5920 = call i32 @fileno(ptr noundef %5919) #13
  %5921 = call i32 @isatty(i32 noundef %5920) #13
  %.not1072 = icmp eq i32 %5921, 0
  br i1 %.not1072, label %5922, label %5923

5922:                                             ; preds = %5918, %5912
  br label %5923

5923:                                             ; preds = %5918, %5922
  %.str.25.sink3598 = phi ptr [ @.str.25, %5922 ], [ @.str.22, %5918 ]
  store i32 %5913, ptr %3249, align 4, !tbaa !5
  %5924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5925 = load i32, ptr @test_count, align 4, !tbaa !5
  %5926 = load i32, ptr %3195, align 4, !tbaa !5
  %5927 = call ptr @s2n_strerror(i32 noundef %5926, ptr noundef nonnull @.str.24) #13
  %5928 = load i32, ptr %3195, align 4, !tbaa !5
  %5929 = call ptr @s2n_strerror_debug(i32 noundef %5928, ptr noundef nonnull @.str.24) #13
  %5930 = load i32, ptr %3249, align 4, !tbaa !5
  %5931 = call ptr @strerror(i32 noundef %5930) #13
  %5932 = load i32, ptr %3249, align 4, !tbaa !5
  %5933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5924, ptr noundef nonnull %.str.25.sink3598, i32 noundef %5925, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.21, i32 noundef 883, ptr noundef %5927, ptr noundef %5929, ptr noundef %5931, i32 noundef %5932) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5934:                                             ; preds = %5904
  %5935 = load i32, ptr @test_count, align 4, !tbaa !5
  %5936 = add nsw i32 %5935, 1
  store i32 %5936, ptr @test_count, align 4, !tbaa !5
  %5937 = getelementptr inbounds i8, ptr %5905, i64 2172
  %5938 = load i32, ptr %5937, align 4, !tbaa !58
  %5939 = and i32 %5938, 64
  %.not1073 = icmp eq i32 %5939, 0
  br i1 %.not1073, label %5940, label %5962

5940:                                             ; preds = %5934
  %5941 = load i32, ptr %3249, align 4, !tbaa !5
  %5942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5943 = call i32 @s2n_print_stacktrace(ptr noundef %5942) #13
  %5944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5945 = trunc nuw i8 %5944 to i1
  br i1 %5945, label %5946, label %5950

5946:                                             ; preds = %5940
  %5947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5948 = call i32 @fileno(ptr noundef %5947) #13
  %5949 = call i32 @isatty(i32 noundef %5948) #13
  %.not1074 = icmp eq i32 %5949, 0
  br i1 %.not1074, label %5950, label %5951

5950:                                             ; preds = %5946, %5940
  br label %5951

5951:                                             ; preds = %5946, %5950
  %.str.25.sink3607 = phi ptr [ @.str.25, %5950 ], [ @.str.22, %5946 ]
  store i32 %5941, ptr %3249, align 4, !tbaa !5
  %5952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5953 = load i32, ptr @test_count, align 4, !tbaa !5
  %5954 = load i32, ptr %3195, align 4, !tbaa !5
  %5955 = call ptr @s2n_strerror(i32 noundef %5954, ptr noundef nonnull @.str.24) #13
  %5956 = load i32, ptr %3195, align 4, !tbaa !5
  %5957 = call ptr @s2n_strerror_debug(i32 noundef %5956, ptr noundef nonnull @.str.24) #13
  %5958 = load i32, ptr %3249, align 4, !tbaa !5
  %5959 = call ptr @strerror(i32 noundef %5958) #13
  %5960 = load i32, ptr %3249, align 4, !tbaa !5
  %5961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5952, ptr noundef nonnull %.str.25.sink3607, i32 noundef %5953, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.21, i32 noundef 884, ptr noundef %5955, ptr noundef %5957, ptr noundef %5959, i32 noundef %5960) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5962:                                             ; preds = %5934
  %5963 = add nsw i32 %5935, 2
  store i32 %5963, ptr @test_count, align 4, !tbaa !5
  %5964 = and i32 %5938, 1
  %.not1075 = icmp eq i32 %5964, 0
  br i1 %.not1075, label %5965, label %5987

5965:                                             ; preds = %5962
  %5966 = load i32, ptr %3249, align 4, !tbaa !5
  %5967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5968 = call i32 @s2n_print_stacktrace(ptr noundef %5967) #13
  %5969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5970 = trunc nuw i8 %5969 to i1
  br i1 %5970, label %5971, label %5975

5971:                                             ; preds = %5965
  %5972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5973 = call i32 @fileno(ptr noundef %5972) #13
  %5974 = call i32 @isatty(i32 noundef %5973) #13
  %.not1076 = icmp eq i32 %5974, 0
  br i1 %.not1076, label %5975, label %5976

5975:                                             ; preds = %5971, %5965
  br label %5976

5976:                                             ; preds = %5971, %5975
  %.str.25.sink3616 = phi ptr [ @.str.25, %5975 ], [ @.str.22, %5971 ]
  store i32 %5966, ptr %3249, align 4, !tbaa !5
  %5977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5978 = load i32, ptr @test_count, align 4, !tbaa !5
  %5979 = load i32, ptr %3195, align 4, !tbaa !5
  %5980 = call ptr @s2n_strerror(i32 noundef %5979, ptr noundef nonnull @.str.24) #13
  %5981 = load i32, ptr %3195, align 4, !tbaa !5
  %5982 = call ptr @s2n_strerror_debug(i32 noundef %5981, ptr noundef nonnull @.str.24) #13
  %5983 = load i32, ptr %3249, align 4, !tbaa !5
  %5984 = call ptr @strerror(i32 noundef %5983) #13
  %5985 = load i32, ptr %3249, align 4, !tbaa !5
  %5986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5977, ptr noundef nonnull %.str.25.sink3616, i32 noundef %5978, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.21, i32 noundef 885, ptr noundef %5980, ptr noundef %5982, ptr noundef %5984, i32 noundef %5985) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5987:                                             ; preds = %5962
  %5988 = add nsw i32 %5935, 3
  store i32 %5988, ptr @test_count, align 4, !tbaa !5
  %5989 = call i32 @s2n_connection_free(ptr noundef nonnull %5905) #13
  %5990 = icmp eq i32 %5989, -1
  br i1 %5990, label %5991, label %6013

5991:                                             ; preds = %5987
  %5992 = load i32, ptr %3249, align 4, !tbaa !5
  %5993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5994 = call i32 @s2n_print_stacktrace(ptr noundef %5993) #13
  %5995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5996 = trunc nuw i8 %5995 to i1
  br i1 %5996, label %5997, label %6001

5997:                                             ; preds = %5991
  %5998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5999 = call i32 @fileno(ptr noundef %5998) #13
  %6000 = call i32 @isatty(i32 noundef %5999) #13
  %.not1103 = icmp eq i32 %6000, 0
  br i1 %.not1103, label %6001, label %6002

6001:                                             ; preds = %5997, %5991
  br label %6002

6002:                                             ; preds = %5997, %6001
  %.str.25.sink3625 = phi ptr [ @.str.25, %6001 ], [ @.str.22, %5997 ]
  store i32 %5992, ptr %3249, align 4, !tbaa !5
  %6003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6004 = load i32, ptr @test_count, align 4, !tbaa !5
  %6005 = load i32, ptr %3195, align 4, !tbaa !5
  %6006 = call ptr @s2n_strerror(i32 noundef %6005, ptr noundef nonnull @.str.24) #13
  %6007 = load i32, ptr %3195, align 4, !tbaa !5
  %6008 = call ptr @s2n_strerror_debug(i32 noundef %6007, ptr noundef nonnull @.str.24) #13
  %6009 = load i32, ptr %3249, align 4, !tbaa !5
  %6010 = call ptr @strerror(i32 noundef %6009) #13
  %6011 = load i32, ptr %3249, align 4, !tbaa !5
  %6012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6003, ptr noundef nonnull %.str.25.sink3625, i32 noundef %6004, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.21, i32 noundef 887, ptr noundef %6006, ptr noundef %6008, ptr noundef %6010, i32 noundef %6011) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6013:                                             ; preds = %5987
  %6014 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %6015 = getelementptr inbounds i8, ptr %6014, i64 220
  store i8 34, ptr %6015, align 4, !tbaa !27
  %6016 = getelementptr inbounds i8, ptr %6014, i64 4088
  store i32 4, ptr %6016, align 8, !tbaa !87
  %6017 = load i32, ptr @test_count, align 4, !tbaa !5
  %6018 = add nsw i32 %6017, 1
  store i32 %6018, ptr @test_count, align 4, !tbaa !5
  %6019 = call i32 @s2n_conn_set_tls13_handshake_type(ptr noundef %6014)
  %6020 = call zeroext i1 @s2n_result_is_ok(i32 %6019)
  br i1 %6020, label %6043, label %6021

6021:                                             ; preds = %6013
  %6022 = load i32, ptr %3249, align 4, !tbaa !5
  %6023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6024 = call i32 @s2n_print_stacktrace(ptr noundef %6023) #13
  %6025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6026 = trunc nuw i8 %6025 to i1
  br i1 %6026, label %6027, label %6031

6027:                                             ; preds = %6021
  %6028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6029 = call i32 @fileno(ptr noundef %6028) #13
  %6030 = call i32 @isatty(i32 noundef %6029) #13
  %.not1077 = icmp eq i32 %6030, 0
  br i1 %.not1077, label %6031, label %6032

6031:                                             ; preds = %6027, %6021
  br label %6032

6032:                                             ; preds = %6027, %6031
  %.str.25.sink3634 = phi ptr [ @.str.25, %6031 ], [ @.str.22, %6027 ]
  store i32 %6022, ptr %3249, align 4, !tbaa !5
  %6033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6034 = load i32, ptr @test_count, align 4, !tbaa !5
  %6035 = load i32, ptr %3195, align 4, !tbaa !5
  %6036 = call ptr @s2n_strerror(i32 noundef %6035, ptr noundef nonnull @.str.24) #13
  %6037 = load i32, ptr %3195, align 4, !tbaa !5
  %6038 = call ptr @s2n_strerror_debug(i32 noundef %6037, ptr noundef nonnull @.str.24) #13
  %6039 = load i32, ptr %3249, align 4, !tbaa !5
  %6040 = call ptr @strerror(i32 noundef %6039) #13
  %6041 = load i32, ptr %3249, align 4, !tbaa !5
  %6042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6033, ptr noundef nonnull %.str.25.sink3634, i32 noundef %6034, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.21, i32 noundef 896, ptr noundef %6036, ptr noundef %6038, ptr noundef %6040, i32 noundef %6041) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6043:                                             ; preds = %6013
  %6044 = load i32, ptr @test_count, align 4, !tbaa !5
  %6045 = add nsw i32 %6044, 1
  store i32 %6045, ptr @test_count, align 4, !tbaa !5
  %6046 = getelementptr inbounds i8, ptr %6014, i64 2172
  %6047 = load i32, ptr %6046, align 4, !tbaa !58
  %6048 = and i32 %6047, 64
  %.not1078 = icmp eq i32 %6048, 0
  br i1 %.not1078, label %6071, label %6049

6049:                                             ; preds = %6043
  %6050 = load i32, ptr %3249, align 4, !tbaa !5
  %6051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6052 = call i32 @s2n_print_stacktrace(ptr noundef %6051) #13
  %6053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6054 = trunc nuw i8 %6053 to i1
  br i1 %6054, label %6055, label %6059

6055:                                             ; preds = %6049
  %6056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6057 = call i32 @fileno(ptr noundef %6056) #13
  %6058 = call i32 @isatty(i32 noundef %6057) #13
  %.not1102 = icmp eq i32 %6058, 0
  br i1 %.not1102, label %6059, label %6060

6059:                                             ; preds = %6055, %6049
  br label %6060

6060:                                             ; preds = %6055, %6059
  %.str.25.sink3643 = phi ptr [ @.str.25, %6059 ], [ @.str.22, %6055 ]
  store i32 %6050, ptr %3249, align 4, !tbaa !5
  %6061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6062 = load i32, ptr @test_count, align 4, !tbaa !5
  %6063 = load i32, ptr %3195, align 4, !tbaa !5
  %6064 = call ptr @s2n_strerror(i32 noundef %6063, ptr noundef nonnull @.str.24) #13
  %6065 = load i32, ptr %3195, align 4, !tbaa !5
  %6066 = call ptr @s2n_strerror_debug(i32 noundef %6065, ptr noundef nonnull @.str.24) #13
  %6067 = load i32, ptr %3249, align 4, !tbaa !5
  %6068 = call ptr @strerror(i32 noundef %6067) #13
  %6069 = load i32, ptr %3249, align 4, !tbaa !5
  %6070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6061, ptr noundef nonnull %.str.25.sink3643, i32 noundef %6062, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.21, i32 noundef 897, ptr noundef %6064, ptr noundef %6066, ptr noundef %6068, i32 noundef %6069) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6071:                                             ; preds = %6043
  %6072 = add nsw i32 %6044, 2
  store i32 %6072, ptr @test_count, align 4, !tbaa !5
  %6073 = and i32 %6047, 1
  %.not1079 = icmp eq i32 %6073, 0
  br i1 %.not1079, label %6074, label %6096

6074:                                             ; preds = %6071
  %6075 = load i32, ptr %3249, align 4, !tbaa !5
  %6076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6077 = call i32 @s2n_print_stacktrace(ptr noundef %6076) #13
  %6078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6079 = trunc nuw i8 %6078 to i1
  br i1 %6079, label %6080, label %6084

6080:                                             ; preds = %6074
  %6081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6082 = call i32 @fileno(ptr noundef %6081) #13
  %6083 = call i32 @isatty(i32 noundef %6082) #13
  %.not1080 = icmp eq i32 %6083, 0
  br i1 %.not1080, label %6084, label %6085

6084:                                             ; preds = %6080, %6074
  br label %6085

6085:                                             ; preds = %6080, %6084
  %.str.25.sink3652 = phi ptr [ @.str.25, %6084 ], [ @.str.22, %6080 ]
  store i32 %6075, ptr %3249, align 4, !tbaa !5
  %6086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6087 = load i32, ptr @test_count, align 4, !tbaa !5
  %6088 = load i32, ptr %3195, align 4, !tbaa !5
  %6089 = call ptr @s2n_strerror(i32 noundef %6088, ptr noundef nonnull @.str.24) #13
  %6090 = load i32, ptr %3195, align 4, !tbaa !5
  %6091 = call ptr @s2n_strerror_debug(i32 noundef %6090, ptr noundef nonnull @.str.24) #13
  %6092 = load i32, ptr %3249, align 4, !tbaa !5
  %6093 = call ptr @strerror(i32 noundef %6092) #13
  %6094 = load i32, ptr %3249, align 4, !tbaa !5
  %6095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6086, ptr noundef nonnull %.str.25.sink3652, i32 noundef %6087, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.21, i32 noundef 898, ptr noundef %6089, ptr noundef %6091, ptr noundef %6093, i32 noundef %6094) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6096:                                             ; preds = %6071
  %6097 = add nsw i32 %6044, 3
  store i32 %6097, ptr @test_count, align 4, !tbaa !5
  %6098 = call i32 @s2n_connection_free(ptr noundef nonnull %6014) #13
  %6099 = icmp eq i32 %6098, -1
  br i1 %6099, label %6124, label %.preheader1271.preheader

.preheader1271.preheader:                         ; preds = %6096
  %6100 = load ptr, ptr @tls13_handshake_type_names, align 16, !tbaa !9
  %6101 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6100) #17
  %6102 = load ptr, ptr getelementptr inbounds (i8, ptr @tls13_handshake_type_names, i64 8), align 8, !tbaa !9
  %6103 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6102) #17
  %6104 = add i64 %6103, %6101
  %6105 = load ptr, ptr getelementptr inbounds (i8, ptr @tls13_handshake_type_names, i64 16), align 16, !tbaa !9
  %6106 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6105) #17
  %6107 = add i64 %6106, %6104
  %6108 = load ptr, ptr getelementptr inbounds (i8, ptr @tls13_handshake_type_names, i64 24), align 8, !tbaa !9
  %6109 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6108) #17
  %6110 = add i64 %6109, %6107
  %6111 = load ptr, ptr getelementptr inbounds (i8, ptr @tls13_handshake_type_names, i64 32), align 16, !tbaa !9
  %6112 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6111) #17
  %6113 = add i64 %6112, %6110
  %6114 = load ptr, ptr getelementptr inbounds (i8, ptr @tls13_handshake_type_names, i64 40), align 8, !tbaa !9
  %6115 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6114) #17
  %6116 = add i64 %6115, %6113
  %6117 = load ptr, ptr getelementptr inbounds (i8, ptr @tls13_handshake_type_names, i64 48), align 16, !tbaa !9
  %6118 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6117) #17
  %6119 = add i64 %6118, %6116
  %6120 = load ptr, ptr getelementptr inbounds (i8, ptr @tls13_handshake_type_names, i64 56), align 8, !tbaa !9
  %6121 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6120) #17
  %6122 = add i64 %6121, %6119
  %6123 = icmp ugt i64 %6122, 142
  br i1 %6123, label %6146, label %6170

6124:                                             ; preds = %6096
  %6125 = load i32, ptr %3249, align 4, !tbaa !5
  %6126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6127 = call i32 @s2n_print_stacktrace(ptr noundef %6126) #13
  %6128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6129 = trunc nuw i8 %6128 to i1
  br i1 %6129, label %6130, label %6134

6130:                                             ; preds = %6124
  %6131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6132 = call i32 @fileno(ptr noundef %6131) #13
  %6133 = call i32 @isatty(i32 noundef %6132) #13
  %.not1101 = icmp eq i32 %6133, 0
  br i1 %.not1101, label %6134, label %6135

6134:                                             ; preds = %6130, %6124
  br label %6135

6135:                                             ; preds = %6130, %6134
  %.str.25.sink3661 = phi ptr [ @.str.25, %6134 ], [ @.str.22, %6130 ]
  store i32 %6125, ptr %3249, align 4, !tbaa !5
  %6136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6137 = load i32, ptr @test_count, align 4, !tbaa !5
  %6138 = load i32, ptr %3195, align 4, !tbaa !5
  %6139 = call ptr @s2n_strerror(i32 noundef %6138, ptr noundef nonnull @.str.24) #13
  %6140 = load i32, ptr %3195, align 4, !tbaa !5
  %6141 = call ptr @s2n_strerror_debug(i32 noundef %6140, ptr noundef nonnull @.str.24) #13
  %6142 = load i32, ptr %3249, align 4, !tbaa !5
  %6143 = call ptr @strerror(i32 noundef %6142) #13
  %6144 = load i32, ptr %3249, align 4, !tbaa !5
  %6145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6136, ptr noundef nonnull %.str.25.sink3661, i32 noundef %6137, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.21, i32 noundef 900, ptr noundef %6139, ptr noundef %6141, ptr noundef %6143, i32 noundef %6144) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6146:                                             ; preds = %.preheader1271.preheader
  %6147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6147, ptr noundef nonnull @.str.120, i64 noundef %6122) #15
  %6149 = load i32, ptr %3249, align 4, !tbaa !5
  %6150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6151 = call i32 @s2n_print_stacktrace(ptr noundef %6150) #13
  %6152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6153 = trunc nuw i8 %6152 to i1
  br i1 %6153, label %6154, label %6158

6154:                                             ; preds = %6146
  %6155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6156 = call i32 @fileno(ptr noundef %6155) #13
  %6157 = call i32 @isatty(i32 noundef %6156) #13
  %.not1100 = icmp eq i32 %6157, 0
  br i1 %.not1100, label %6158, label %6159

6158:                                             ; preds = %6154, %6146
  br label %6159

6159:                                             ; preds = %6154, %6158
  %.str.25.sink3670 = phi ptr [ @.str.25, %6158 ], [ @.str.22, %6154 ]
  store i32 %6149, ptr %3249, align 4, !tbaa !5
  %6160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6161 = load i32, ptr @test_count, align 4, !tbaa !5
  %6162 = load i32, ptr %3195, align 4, !tbaa !5
  %6163 = call ptr @s2n_strerror(i32 noundef %6162, ptr noundef nonnull @.str.24) #13
  %6164 = load i32, ptr %3195, align 4, !tbaa !5
  %6165 = call ptr @s2n_strerror_debug(i32 noundef %6164, ptr noundef nonnull @.str.24) #13
  %6166 = load i32, ptr %3249, align 4, !tbaa !5
  %6167 = call ptr @strerror(i32 noundef %6166) #13
  %6168 = load i32, ptr %3249, align 4, !tbaa !5
  %6169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6160, ptr noundef nonnull %.str.25.sink3670, i32 noundef %6161, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.21, i32 noundef 912, ptr noundef %6163, ptr noundef %6165, ptr noundef %6167, i32 noundef %6168) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6170:                                             ; preds = %.preheader1271.preheader
  %6171 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %6172 = getelementptr inbounds i8, ptr %6171, i64 220
  store i8 34, ptr %6172, align 4, !tbaa !27
  %6173 = getelementptr inbounds i8, ptr %6171, i64 2172
  store i32 0, ptr %6173, align 4, !tbaa !58
  %6174 = load i32, ptr @test_count, align 4, !tbaa !5
  %6175 = add nsw i32 %6174, 1
  store i32 %6175, ptr @test_count, align 4, !tbaa !5
  %6176 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %6171)
  %6177 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @.str.11, ptr noundef nonnull dereferenceable(1) %6176) #17
  %6178 = icmp eq i32 %6177, 0
  br i1 %6178, label %6201, label %6179

6179:                                             ; preds = %6170
  %6180 = load i32, ptr %3249, align 4, !tbaa !5
  %6181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6182 = call i32 @s2n_print_stacktrace(ptr noundef %6181) #13
  %6183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6184 = trunc nuw i8 %6183 to i1
  br i1 %6184, label %6185, label %6189

6185:                                             ; preds = %6179
  %6186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6187 = call i32 @fileno(ptr noundef %6186) #13
  %6188 = call i32 @isatty(i32 noundef %6187) #13
  %.not1081 = icmp eq i32 %6188, 0
  br i1 %.not1081, label %6189, label %6190

6189:                                             ; preds = %6185, %6179
  br label %6190

6190:                                             ; preds = %6185, %6189
  %.str.25.sink3679 = phi ptr [ @.str.25, %6189 ], [ @.str.22, %6185 ]
  store i32 %6180, ptr %3249, align 4, !tbaa !5
  %6191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6192 = load i32, ptr @test_count, align 4, !tbaa !5
  %6193 = load i32, ptr %3195, align 4, !tbaa !5
  %6194 = call ptr @s2n_strerror(i32 noundef %6193, ptr noundef nonnull @.str.24) #13
  %6195 = load i32, ptr %3195, align 4, !tbaa !5
  %6196 = call ptr @s2n_strerror_debug(i32 noundef %6195, ptr noundef nonnull @.str.24) #13
  %6197 = load i32, ptr %3249, align 4, !tbaa !5
  %6198 = call ptr @strerror(i32 noundef %6197) #13
  %6199 = load i32, ptr %3249, align 4, !tbaa !5
  %6200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6191, ptr noundef nonnull %.str.25.sink3679, i32 noundef %6192, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.21, i32 noundef 922, ptr noundef %6194, ptr noundef %6196, ptr noundef %6198, i32 noundef %6199) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6201:                                             ; preds = %6170
  store i32 3, ptr %6173, align 4, !tbaa !58
  %6202 = load i32, ptr @test_count, align 4, !tbaa !5
  %6203 = add nsw i32 %6202, 1
  store i32 %6203, ptr @test_count, align 4, !tbaa !5
  %6204 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef nonnull %6171)
  %6205 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @.str.123, ptr noundef nonnull dereferenceable(1) %6204) #17
  %6206 = icmp eq i32 %6205, 0
  br i1 %6206, label %6229, label %6207

6207:                                             ; preds = %6201
  %6208 = load i32, ptr %3249, align 4, !tbaa !5
  %6209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6210 = call i32 @s2n_print_stacktrace(ptr noundef %6209) #13
  %6211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6212 = trunc nuw i8 %6211 to i1
  br i1 %6212, label %6213, label %6217

6213:                                             ; preds = %6207
  %6214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6215 = call i32 @fileno(ptr noundef %6214) #13
  %6216 = call i32 @isatty(i32 noundef %6215) #13
  %.not1082 = icmp eq i32 %6216, 0
  br i1 %.not1082, label %6217, label %6218

6217:                                             ; preds = %6213, %6207
  br label %6218

6218:                                             ; preds = %6213, %6217
  %.str.25.sink3688 = phi ptr [ @.str.25, %6217 ], [ @.str.22, %6213 ]
  store i32 %6208, ptr %3249, align 4, !tbaa !5
  %6219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6220 = load i32, ptr @test_count, align 4, !tbaa !5
  %6221 = load i32, ptr %3195, align 4, !tbaa !5
  %6222 = call ptr @s2n_strerror(i32 noundef %6221, ptr noundef nonnull @.str.24) #13
  %6223 = load i32, ptr %3195, align 4, !tbaa !5
  %6224 = call ptr @s2n_strerror_debug(i32 noundef %6223, ptr noundef nonnull @.str.24) #13
  %6225 = load i32, ptr %3249, align 4, !tbaa !5
  %6226 = call ptr @strerror(i32 noundef %6225) #13
  %6227 = load i32, ptr %3249, align 4, !tbaa !5
  %6228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6219, ptr noundef nonnull %.str.25.sink3688, i32 noundef %6220, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.21, i32 noundef 925, ptr noundef %6222, ptr noundef %6224, ptr noundef %6226, i32 noundef %6227) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6229:                                             ; preds = %6201
  store i32 19, ptr %6173, align 4, !tbaa !58
  %6230 = load i32, ptr @test_count, align 4, !tbaa !5
  %6231 = add nsw i32 %6230, 1
  store i32 %6231, ptr @test_count, align 4, !tbaa !5
  %6232 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef nonnull %6171)
  %6233 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @.str.125, ptr noundef nonnull dereferenceable(1) %6232) #17
  %6234 = icmp eq i32 %6233, 0
  br i1 %6234, label %6257, label %6235

6235:                                             ; preds = %6229
  %6236 = load i32, ptr %3249, align 4, !tbaa !5
  %6237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6238 = call i32 @s2n_print_stacktrace(ptr noundef %6237) #13
  %6239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6240 = trunc nuw i8 %6239 to i1
  br i1 %6240, label %6241, label %6245

6241:                                             ; preds = %6235
  %6242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6243 = call i32 @fileno(ptr noundef %6242) #13
  %6244 = call i32 @isatty(i32 noundef %6243) #13
  %.not1083 = icmp eq i32 %6244, 0
  br i1 %.not1083, label %6245, label %6246

6245:                                             ; preds = %6241, %6235
  br label %6246

6246:                                             ; preds = %6241, %6245
  %.str.25.sink3697 = phi ptr [ @.str.25, %6245 ], [ @.str.22, %6241 ]
  store i32 %6236, ptr %3249, align 4, !tbaa !5
  %6247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6248 = load i32, ptr @test_count, align 4, !tbaa !5
  %6249 = load i32, ptr %3195, align 4, !tbaa !5
  %6250 = call ptr @s2n_strerror(i32 noundef %6249, ptr noundef nonnull @.str.24) #13
  %6251 = load i32, ptr %3195, align 4, !tbaa !5
  %6252 = call ptr @s2n_strerror_debug(i32 noundef %6251, ptr noundef nonnull @.str.24) #13
  %6253 = load i32, ptr %3249, align 4, !tbaa !5
  %6254 = call ptr @strerror(i32 noundef %6253) #13
  %6255 = load i32, ptr %3249, align 4, !tbaa !5
  %6256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6247, ptr noundef nonnull %.str.25.sink3697, i32 noundef %6248, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.21, i32 noundef 928, ptr noundef %6250, ptr noundef %6252, ptr noundef %6254, i32 noundef %6255) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6257:                                             ; preds = %6229
  store i32 239, ptr %6173, align 4, !tbaa !58
  %6258 = load i32, ptr @test_count, align 4, !tbaa !5
  %6259 = add nsw i32 %6258, 1
  store i32 %6259, ptr @test_count, align 4, !tbaa !5
  %6260 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef nonnull %6171)
  %6261 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @.str.127, ptr noundef nonnull dereferenceable(1) %6260) #17
  %6262 = icmp eq i32 %6261, 0
  br i1 %6262, label %.lr.ph1468, label %6263

.lr.ph1468:                                       ; preds = %6257
  %smax1636 = call i32 @llvm.smax.i32(i32 %.1942, i32 1)
  %wide.trip.count1642 = zext nneg i32 %smax1636 to i64
  br label %.lr.ph1465.preheader

6263:                                             ; preds = %6257
  %6264 = load i32, ptr %3249, align 4, !tbaa !5
  %6265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6266 = call i32 @s2n_print_stacktrace(ptr noundef %6265) #13
  %6267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6268 = trunc nuw i8 %6267 to i1
  br i1 %6268, label %6269, label %6273

6269:                                             ; preds = %6263
  %6270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6271 = call i32 @fileno(ptr noundef %6270) #13
  %6272 = call i32 @isatty(i32 noundef %6271) #13
  %.not1084 = icmp eq i32 %6272, 0
  br i1 %.not1084, label %6273, label %6274

6273:                                             ; preds = %6269, %6263
  br label %6274

6274:                                             ; preds = %6269, %6273
  %.str.25.sink3706 = phi ptr [ @.str.25, %6273 ], [ @.str.22, %6269 ]
  store i32 %6264, ptr %3249, align 4, !tbaa !5
  %6275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6276 = load i32, ptr @test_count, align 4, !tbaa !5
  %6277 = load i32, ptr %3195, align 4, !tbaa !5
  %6278 = call ptr @s2n_strerror(i32 noundef %6277, ptr noundef nonnull @.str.24) #13
  %6279 = load i32, ptr %3195, align 4, !tbaa !5
  %6280 = call ptr @s2n_strerror_debug(i32 noundef %6279, ptr noundef nonnull @.str.24) #13
  %6281 = load i32, ptr %3249, align 4, !tbaa !5
  %6282 = call ptr @strerror(i32 noundef %6281) #13
  %6283 = load i32, ptr %3249, align 4, !tbaa !5
  %6284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6275, ptr noundef nonnull %.str.25.sink3706, i32 noundef %6276, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.21, i32 noundef 934, ptr noundef %6278, ptr noundef %6280, ptr noundef %6282, i32 noundef %6283) #15
  call void @exit(i32 noundef 1) #16
  unreachable

._crit_edge1469:                                  ; preds = %._crit_edge1466
  %6285 = load i32, ptr @test_count, align 4, !tbaa !5
  %6286 = add nsw i32 %6285, 1
  store i32 %6286, ptr @test_count, align 4, !tbaa !5
  %6287 = call i32 @s2n_connection_free(ptr noundef nonnull %6171) #13
  %6288 = icmp eq i32 %6287, -1
  br i1 %6288, label %6349, label %6371

.lr.ph1465.preheader:                             ; preds = %._crit_edge1466, %.lr.ph1468
  %indvars.iv1639 = phi i64 [ 0, %.lr.ph1468 ], [ %indvars.iv.next1640, %._crit_edge1466 ]
  %6289 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv1639
  %6290 = load i16, ptr %6289, align 2, !tbaa !15
  %6291 = zext i16 %6290 to i32
  store i32 %6291, ptr %6173, align 4, !tbaa !58
  %6292 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef nonnull %6171)
  br label %.lr.ph1465

._crit_edge1466:                                  ; preds = %6348
  %indvars.iv.next1640 = add nuw nsw i64 %indvars.iv1639, 1
  %exitcond1643.not = icmp eq i64 %indvars.iv.next1640, %wide.trip.count1642
  br i1 %exitcond1643.not, label %._crit_edge1469, label %.lr.ph1465.preheader, !llvm.loop !88

.lr.ph1465:                                       ; preds = %.lr.ph1465.preheader, %6348
  %indvars.iv1633 = phi i64 [ 0, %.lr.ph1465.preheader ], [ %indvars.iv.next1634, %6348 ]
  %6293 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv1633
  %6294 = load i16, ptr %6293, align 2, !tbaa !15
  %6295 = zext i16 %6294 to i32
  store i32 %6295, ptr %6173, align 4, !tbaa !58
  %6296 = icmp eq i64 %indvars.iv1639, %indvars.iv1633
  %6297 = load i32, ptr @test_count, align 4, !tbaa !5
  %6298 = add nsw i32 %6297, 1
  store i32 %6298, ptr @test_count, align 4, !tbaa !5
  %6299 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef nonnull %6171)
  %6300 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6292, ptr noundef nonnull dereferenceable(1) %6299) #17
  %6301 = icmp eq i32 %6300, 0
  br i1 %6296, label %6302, label %6325

6302:                                             ; preds = %.lr.ph1465
  br i1 %6301, label %6348, label %6303

6303:                                             ; preds = %6302
  %6304 = load i32, ptr %3249, align 4, !tbaa !5
  %6305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6306 = call i32 @s2n_print_stacktrace(ptr noundef %6305) #13
  %6307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6308 = trunc nuw i8 %6307 to i1
  br i1 %6308, label %6309, label %6313

6309:                                             ; preds = %6303
  %6310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6311 = call i32 @fileno(ptr noundef %6310) #13
  %6312 = call i32 @isatty(i32 noundef %6311) #13
  %.not1099 = icmp eq i32 %6312, 0
  br i1 %.not1099, label %6313, label %6314

6313:                                             ; preds = %6309, %6303
  br label %6314

6314:                                             ; preds = %6309, %6313
  %.str.25.sink3715 = phi ptr [ @.str.25, %6313 ], [ @.str.22, %6309 ]
  store i32 %6304, ptr %3249, align 4, !tbaa !5
  %6315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6316 = load i32, ptr @test_count, align 4, !tbaa !5
  %6317 = load i32, ptr %3195, align 4, !tbaa !5
  %6318 = call ptr @s2n_strerror(i32 noundef %6317, ptr noundef nonnull @.str.24) #13
  %6319 = load i32, ptr %3195, align 4, !tbaa !5
  %6320 = call ptr @s2n_strerror_debug(i32 noundef %6319, ptr noundef nonnull @.str.24) #13
  %6321 = load i32, ptr %3249, align 4, !tbaa !5
  %6322 = call ptr @strerror(i32 noundef %6321) #13
  %6323 = load i32, ptr %3249, align 4, !tbaa !5
  %6324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6315, ptr noundef nonnull %.str.25.sink3715, i32 noundef %6316, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.21, i32 noundef 946, ptr noundef %6318, ptr noundef %6320, ptr noundef %6322, i32 noundef %6323) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6325:                                             ; preds = %.lr.ph1465
  br i1 %6301, label %6326, label %6348

6326:                                             ; preds = %6325
  %6327 = load i32, ptr %3249, align 4, !tbaa !5
  %6328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6329 = call i32 @s2n_print_stacktrace(ptr noundef %6328) #13
  %6330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6331 = trunc nuw i8 %6330 to i1
  br i1 %6331, label %6332, label %6336

6332:                                             ; preds = %6326
  %6333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6334 = call i32 @fileno(ptr noundef %6333) #13
  %6335 = call i32 @isatty(i32 noundef %6334) #13
  %.not1098 = icmp eq i32 %6335, 0
  br i1 %.not1098, label %6336, label %6337

6336:                                             ; preds = %6332, %6326
  br label %6337

6337:                                             ; preds = %6332, %6336
  %.str.25.sink3724 = phi ptr [ @.str.25, %6336 ], [ @.str.22, %6332 ]
  store i32 %6327, ptr %3249, align 4, !tbaa !5
  %6338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6339 = load i32, ptr @test_count, align 4, !tbaa !5
  %6340 = load i32, ptr %3195, align 4, !tbaa !5
  %6341 = call ptr @s2n_strerror(i32 noundef %6340, ptr noundef nonnull @.str.24) #13
  %6342 = load i32, ptr %3195, align 4, !tbaa !5
  %6343 = call ptr @s2n_strerror_debug(i32 noundef %6342, ptr noundef nonnull @.str.24) #13
  %6344 = load i32, ptr %3249, align 4, !tbaa !5
  %6345 = call ptr @strerror(i32 noundef %6344) #13
  %6346 = load i32, ptr %3249, align 4, !tbaa !5
  %6347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6338, ptr noundef nonnull %.str.25.sink3724, i32 noundef %6339, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.21, i32 noundef 948, ptr noundef %6341, ptr noundef %6343, ptr noundef %6345, i32 noundef %6346) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6348:                                             ; preds = %6302, %6325
  %indvars.iv.next1634 = add nuw nsw i64 %indvars.iv1633, 1
  %exitcond1638.not = icmp eq i64 %indvars.iv.next1634, %wide.trip.count1642
  br i1 %exitcond1638.not, label %._crit_edge1466, label %.lr.ph1465, !llvm.loop !89

6349:                                             ; preds = %._crit_edge1469
  %6350 = load i32, ptr %3249, align 4, !tbaa !5
  %6351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6352 = call i32 @s2n_print_stacktrace(ptr noundef %6351) #13
  %6353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6354 = trunc nuw i8 %6353 to i1
  br i1 %6354, label %6355, label %6359

6355:                                             ; preds = %6349
  %6356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6357 = call i32 @fileno(ptr noundef %6356) #13
  %6358 = call i32 @isatty(i32 noundef %6357) #13
  %.not1097 = icmp eq i32 %6358, 0
  br i1 %.not1097, label %6359, label %6360

6359:                                             ; preds = %6355, %6349
  br label %6360

6360:                                             ; preds = %6355, %6359
  %.str.25.sink3733 = phi ptr [ @.str.25, %6359 ], [ @.str.22, %6355 ]
  store i32 %6350, ptr %3249, align 4, !tbaa !5
  %6361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6362 = load i32, ptr @test_count, align 4, !tbaa !5
  %6363 = load i32, ptr %3195, align 4, !tbaa !5
  %6364 = call ptr @s2n_strerror(i32 noundef %6363, ptr noundef nonnull @.str.24) #13
  %6365 = load i32, ptr %3195, align 4, !tbaa !5
  %6366 = call ptr @s2n_strerror_debug(i32 noundef %6365, ptr noundef nonnull @.str.24) #13
  %6367 = load i32, ptr %3249, align 4, !tbaa !5
  %6368 = call ptr @strerror(i32 noundef %6367) #13
  %6369 = load i32, ptr %3249, align 4, !tbaa !5
  %6370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6361, ptr noundef nonnull %.str.25.sink3733, i32 noundef %6362, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 953, ptr noundef %6364, ptr noundef %6366, ptr noundef %6368, i32 noundef %6369) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6371:                                             ; preds = %._crit_edge1469
  %6372 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %6373 = getelementptr inbounds i8, ptr %6372, i64 220
  store i8 34, ptr %6373, align 4, !tbaa !27
  %6374 = load i32, ptr @test_count, align 4, !tbaa !5
  %6375 = add nsw i32 %6374, 1
  store i32 %6375, ptr @test_count, align 4, !tbaa !5
  %6376 = call i32 @s2n_conn_choose_state_machine(ptr noundef %6372, i8 noundef zeroext 34)
  %6377 = call zeroext i1 @s2n_result_is_ok(i32 %6376)
  br i1 %6377, label %6400, label %6378

6378:                                             ; preds = %6371
  %6379 = load i32, ptr %3249, align 4, !tbaa !5
  %6380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6381 = call i32 @s2n_print_stacktrace(ptr noundef %6380) #13
  %6382 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6383 = trunc nuw i8 %6382 to i1
  br i1 %6383, label %6384, label %6388

6384:                                             ; preds = %6378
  %6385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6386 = call i32 @fileno(ptr noundef %6385) #13
  %6387 = call i32 @isatty(i32 noundef %6386) #13
  %.not1085 = icmp eq i32 %6387, 0
  br i1 %.not1085, label %6388, label %6389

6388:                                             ; preds = %6384, %6378
  br label %6389

6389:                                             ; preds = %6384, %6388
  %.str.25.sink3742 = phi ptr [ @.str.25, %6388 ], [ @.str.22, %6384 ]
  store i32 %6379, ptr %3249, align 4, !tbaa !5
  %6390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6391 = load i32, ptr @test_count, align 4, !tbaa !5
  %6392 = load i32, ptr %3195, align 4, !tbaa !5
  %6393 = call ptr @s2n_strerror(i32 noundef %6392, ptr noundef nonnull @.str.24) #13
  %6394 = load i32, ptr %3195, align 4, !tbaa !5
  %6395 = call ptr @s2n_strerror_debug(i32 noundef %6394, ptr noundef nonnull @.str.24) #13
  %6396 = load i32, ptr %3249, align 4, !tbaa !5
  %6397 = call ptr @strerror(i32 noundef %6396) #13
  %6398 = load i32, ptr %3249, align 4, !tbaa !5
  %6399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6390, ptr noundef nonnull %.str.25.sink3742, i32 noundef %6391, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 965, ptr noundef %6393, ptr noundef %6395, ptr noundef %6397, i32 noundef %6398) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6400:                                             ; preds = %6371
  %6401 = getelementptr inbounds i8, ptr %6372, i64 2172
  store i32 35, ptr %6401, align 4, !tbaa !58
  %6402 = getelementptr inbounds i8, ptr %6372, i64 2176
  store i32 0, ptr %6402, align 8, !tbaa !59
  %6403 = load i32, ptr @test_count, align 4, !tbaa !5
  %6404 = add nsw i32 %6403, 1
  store i32 %6404, ptr @test_count, align 4, !tbaa !5
  %6405 = load ptr, ptr @__const.main.expected, align 16, !tbaa !9
  %6406 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6372)
  %6407 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6405, ptr noundef nonnull dereferenceable(1) %6406) #17
  %6408 = icmp eq i32 %6407, 0
  br i1 %6408, label %6409, label %6477

6409:                                             ; preds = %6400
  store i32 1, ptr %6402, align 8, !tbaa !59
  %6410 = load i32, ptr @test_count, align 4, !tbaa !5
  %6411 = add nsw i32 %6410, 1
  store i32 %6411, ptr @test_count, align 4, !tbaa !5
  %6412 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 8), align 8, !tbaa !9
  %6413 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6372)
  %6414 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6412, ptr noundef nonnull dereferenceable(1) %6413) #17
  %6415 = icmp eq i32 %6414, 0
  br i1 %6415, label %6416, label %6477

6416:                                             ; preds = %6409
  store i32 2, ptr %6402, align 8, !tbaa !59
  %6417 = load i32, ptr @test_count, align 4, !tbaa !5
  %6418 = add nsw i32 %6417, 1
  store i32 %6418, ptr @test_count, align 4, !tbaa !5
  %6419 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 16), align 16, !tbaa !9
  %6420 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6372)
  %6421 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6419, ptr noundef nonnull dereferenceable(1) %6420) #17
  %6422 = icmp eq i32 %6421, 0
  br i1 %6422, label %6423, label %6477

6423:                                             ; preds = %6416
  store i32 3, ptr %6402, align 8, !tbaa !59
  %6424 = load i32, ptr @test_count, align 4, !tbaa !5
  %6425 = add nsw i32 %6424, 1
  store i32 %6425, ptr @test_count, align 4, !tbaa !5
  %6426 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 24), align 8, !tbaa !9
  %6427 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6372)
  %6428 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6426, ptr noundef nonnull dereferenceable(1) %6427) #17
  %6429 = icmp eq i32 %6428, 0
  br i1 %6429, label %6430, label %6477

6430:                                             ; preds = %6423
  store i32 4, ptr %6402, align 8, !tbaa !59
  %6431 = load i32, ptr @test_count, align 4, !tbaa !5
  %6432 = add nsw i32 %6431, 1
  store i32 %6432, ptr @test_count, align 4, !tbaa !5
  %6433 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 32), align 16, !tbaa !9
  %6434 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6372)
  %6435 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6433, ptr noundef nonnull dereferenceable(1) %6434) #17
  %6436 = icmp eq i32 %6435, 0
  br i1 %6436, label %6437, label %6477

6437:                                             ; preds = %6430
  store i32 5, ptr %6402, align 8, !tbaa !59
  %6438 = load i32, ptr @test_count, align 4, !tbaa !5
  %6439 = add nsw i32 %6438, 1
  store i32 %6439, ptr @test_count, align 4, !tbaa !5
  %6440 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 40), align 8, !tbaa !9
  %6441 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6372)
  %6442 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6440, ptr noundef nonnull dereferenceable(1) %6441) #17
  %6443 = icmp eq i32 %6442, 0
  br i1 %6443, label %6444, label %6477

6444:                                             ; preds = %6437
  store i32 6, ptr %6402, align 8, !tbaa !59
  %6445 = load i32, ptr @test_count, align 4, !tbaa !5
  %6446 = add nsw i32 %6445, 1
  store i32 %6446, ptr @test_count, align 4, !tbaa !5
  %6447 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 48), align 16, !tbaa !9
  %6448 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6372)
  %6449 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6447, ptr noundef nonnull dereferenceable(1) %6448) #17
  %6450 = icmp eq i32 %6449, 0
  br i1 %6450, label %6451, label %6477

6451:                                             ; preds = %6444
  store i32 7, ptr %6402, align 8, !tbaa !59
  %6452 = load i32, ptr @test_count, align 4, !tbaa !5
  %6453 = add nsw i32 %6452, 1
  store i32 %6453, ptr @test_count, align 4, !tbaa !5
  %6454 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 56), align 8, !tbaa !9
  %6455 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6372)
  %6456 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6454, ptr noundef nonnull dereferenceable(1) %6455) #17
  %6457 = icmp eq i32 %6456, 0
  br i1 %6457, label %6458, label %6477

6458:                                             ; preds = %6451
  store i32 8, ptr %6402, align 8, !tbaa !59
  %6459 = load i32, ptr @test_count, align 4, !tbaa !5
  %6460 = add nsw i32 %6459, 1
  store i32 %6460, ptr @test_count, align 4, !tbaa !5
  %6461 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 64), align 16, !tbaa !9
  %6462 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6372)
  %6463 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6461, ptr noundef nonnull dereferenceable(1) %6462) #17
  %6464 = icmp eq i32 %6463, 0
  br i1 %6464, label %6465, label %6477

6465:                                             ; preds = %6458
  store i32 9, ptr %6402, align 8, !tbaa !59
  %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 getelementptr inbounds (i8, ptr @__const.main.expected, i64 72), align 8, !tbaa !9
  %6469 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6372)
  %6470 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6468, ptr noundef nonnull dereferenceable(1) %6469) #17
  %6471 = icmp eq i32 %6470, 0
  br i1 %6471, label %6472, label %6477

6472:                                             ; preds = %6465
  %6473 = load i32, ptr @test_count, align 4, !tbaa !5
  %6474 = add nsw i32 %6473, 1
  store i32 %6474, ptr @test_count, align 4, !tbaa !5
  %6475 = call i32 @s2n_connection_free(ptr noundef nonnull %6372) #13
  %6476 = icmp eq i32 %6475, -1
  br i1 %6476, label %6499, label %6521

6477:                                             ; preds = %6465, %6458, %6451, %6444, %6437, %6430, %6423, %6416, %6409, %6400
  %6478 = load i32, ptr %3249, align 4, !tbaa !5
  %6479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6480 = call i32 @s2n_print_stacktrace(ptr noundef %6479) #13
  %6481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6482 = trunc nuw i8 %6481 to i1
  br i1 %6482, label %6483, label %6487

6483:                                             ; preds = %6477
  %6484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6485 = call i32 @fileno(ptr noundef %6484) #13
  %6486 = call i32 @isatty(i32 noundef %6485) #13
  %.not1096 = icmp eq i32 %6486, 0
  br i1 %.not1096, label %6487, label %6488

6487:                                             ; preds = %6483, %6477
  br label %6488

6488:                                             ; preds = %6483, %6487
  %.str.25.sink3751 = phi ptr [ @.str.25, %6487 ], [ @.str.22, %6483 ]
  store i32 %6478, ptr %3249, align 4, !tbaa !5
  %6489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6490 = load i32, ptr @test_count, align 4, !tbaa !5
  %6491 = load i32, ptr %3195, align 4, !tbaa !5
  %6492 = call ptr @s2n_strerror(i32 noundef %6491, ptr noundef nonnull @.str.24) #13
  %6493 = load i32, ptr %3195, align 4, !tbaa !5
  %6494 = call ptr @s2n_strerror_debug(i32 noundef %6493, ptr noundef nonnull @.str.24) #13
  %6495 = load i32, ptr %3249, align 4, !tbaa !5
  %6496 = call ptr @strerror(i32 noundef %6495) #13
  %6497 = load i32, ptr %3249, align 4, !tbaa !5
  %6498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6489, ptr noundef nonnull %.str.25.sink3751, i32 noundef %6490, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.21, i32 noundef 971, ptr noundef %6492, ptr noundef %6494, ptr noundef %6496, i32 noundef %6497) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6499:                                             ; preds = %6472
  %6500 = load i32, ptr %3249, align 4, !tbaa !5
  %6501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6502 = call i32 @s2n_print_stacktrace(ptr noundef %6501) #13
  %6503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6504 = trunc nuw i8 %6503 to i1
  br i1 %6504, label %6505, label %6509

6505:                                             ; preds = %6499
  %6506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6507 = call i32 @fileno(ptr noundef %6506) #13
  %6508 = call i32 @isatty(i32 noundef %6507) #13
  %.not1095 = icmp eq i32 %6508, 0
  br i1 %.not1095, label %6509, label %6510

6509:                                             ; preds = %6505, %6499
  br label %6510

6510:                                             ; preds = %6505, %6509
  %.str.25.sink3760 = phi ptr [ @.str.25, %6509 ], [ @.str.22, %6505 ]
  store i32 %6500, ptr %3249, align 4, !tbaa !5
  %6511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6512 = load i32, ptr @test_count, align 4, !tbaa !5
  %6513 = load i32, ptr %3195, align 4, !tbaa !5
  %6514 = call ptr @s2n_strerror(i32 noundef %6513, ptr noundef nonnull @.str.24) #13
  %6515 = load i32, ptr %3195, align 4, !tbaa !5
  %6516 = call ptr @s2n_strerror_debug(i32 noundef %6515, ptr noundef nonnull @.str.24) #13
  %6517 = load i32, ptr %3249, align 4, !tbaa !5
  %6518 = call ptr @strerror(i32 noundef %6517) #13
  %6519 = load i32, ptr %3249, align 4, !tbaa !5
  %6520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6511, ptr noundef nonnull %.str.25.sink3760, i32 noundef %6512, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 974, ptr noundef %6514, ptr noundef %6516, ptr noundef %6518, i32 noundef %6519) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6521:                                             ; preds = %6472
  %6522 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %6523 = getelementptr inbounds i8, ptr %6522, i64 220
  store i8 34, ptr %6523, align 4, !tbaa !27
  %6524 = load i32, ptr @test_count, align 4, !tbaa !5
  %6525 = add nsw i32 %6524, 1
  store i32 %6525, ptr @test_count, align 4, !tbaa !5
  %6526 = call i32 @s2n_conn_choose_state_machine(ptr noundef %6522, i8 noundef zeroext 34)
  %6527 = call zeroext i1 @s2n_result_is_ok(i32 %6526)
  br i1 %6527, label %6550, label %6528

6528:                                             ; preds = %6521
  %6529 = load i32, ptr %3249, align 4, !tbaa !5
  %6530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6531 = call i32 @s2n_print_stacktrace(ptr noundef %6530) #13
  %6532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6533 = trunc nuw i8 %6532 to i1
  br i1 %6533, label %6534, label %6538

6534:                                             ; preds = %6528
  %6535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6536 = call i32 @fileno(ptr noundef %6535) #13
  %6537 = call i32 @isatty(i32 noundef %6536) #13
  %.not1086 = icmp eq i32 %6537, 0
  br i1 %.not1086, label %6538, label %6539

6538:                                             ; preds = %6534, %6528
  br label %6539

6539:                                             ; preds = %6534, %6538
  %.str.25.sink3769 = phi ptr [ @.str.25, %6538 ], [ @.str.22, %6534 ]
  store i32 %6529, ptr %3249, align 4, !tbaa !5
  %6540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6541 = load i32, ptr @test_count, align 4, !tbaa !5
  %6542 = load i32, ptr %3195, align 4, !tbaa !5
  %6543 = call ptr @s2n_strerror(i32 noundef %6542, ptr noundef nonnull @.str.24) #13
  %6544 = load i32, ptr %3195, align 4, !tbaa !5
  %6545 = call ptr @s2n_strerror_debug(i32 noundef %6544, ptr noundef nonnull @.str.24) #13
  %6546 = load i32, ptr %3249, align 4, !tbaa !5
  %6547 = call ptr @strerror(i32 noundef %6546) #13
  %6548 = load i32, ptr %3249, align 4, !tbaa !5
  %6549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6540, ptr noundef nonnull %.str.25.sink3769, i32 noundef %6541, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 987, ptr noundef %6543, ptr noundef %6545, ptr noundef %6547, i32 noundef %6548) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6550:                                             ; preds = %6521
  %6551 = getelementptr inbounds i8, ptr %6522, i64 2172
  store i32 7, ptr %6551, align 4, !tbaa !58
  %6552 = getelementptr inbounds i8, ptr %6522, i64 2176
  store i32 0, ptr %6552, align 8, !tbaa !59
  %6553 = load i32, ptr @test_count, align 4, !tbaa !5
  %6554 = add nsw i32 %6553, 1
  store i32 %6554, ptr @test_count, align 4, !tbaa !5
  %6555 = load ptr, ptr @__const.main.expected.145, align 16, !tbaa !9
  %6556 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6557 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6555, ptr noundef nonnull dereferenceable(1) %6556) #17
  %6558 = icmp eq i32 %6557, 0
  br i1 %6558, label %6559, label %6638

6559:                                             ; preds = %6550
  store i32 1, ptr %6552, align 8, !tbaa !59
  %6560 = load i32, ptr @test_count, align 4, !tbaa !5
  %6561 = add nsw i32 %6560, 1
  store i32 %6561, ptr @test_count, align 4, !tbaa !5
  %6562 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected.145, i64 8), align 8, !tbaa !9
  %6563 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6564 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6562, ptr noundef nonnull dereferenceable(1) %6563) #17
  %6565 = icmp eq i32 %6564, 0
  br i1 %6565, label %6566, label %6638

6566:                                             ; preds = %6559
  store i32 2, ptr %6552, align 8, !tbaa !59
  %6567 = load i32, ptr @test_count, align 4, !tbaa !5
  %6568 = add nsw i32 %6567, 1
  store i32 %6568, ptr @test_count, align 4, !tbaa !5
  %6569 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected.145, i64 16), align 16, !tbaa !9
  %6570 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6571 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6569, ptr noundef nonnull dereferenceable(1) %6570) #17
  %6572 = icmp eq i32 %6571, 0
  br i1 %6572, label %6573, label %6638

6573:                                             ; preds = %6566
  store i32 3, ptr %6552, align 8, !tbaa !59
  %6574 = load i32, ptr @test_count, align 4, !tbaa !5
  %6575 = add nsw i32 %6574, 1
  store i32 %6575, ptr @test_count, align 4, !tbaa !5
  %6576 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected.145, i64 24), align 8, !tbaa !9
  %6577 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6578 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6576, ptr noundef nonnull dereferenceable(1) %6577) #17
  %6579 = icmp eq i32 %6578, 0
  br i1 %6579, label %6580, label %6638

6580:                                             ; preds = %6573
  store i32 4, ptr %6552, align 8, !tbaa !59
  %6581 = load i32, ptr @test_count, align 4, !tbaa !5
  %6582 = add nsw i32 %6581, 1
  store i32 %6582, ptr @test_count, align 4, !tbaa !5
  %6583 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected.145, i64 32), align 16, !tbaa !9
  %6584 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6585 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6583, ptr noundef nonnull dereferenceable(1) %6584) #17
  %6586 = icmp eq i32 %6585, 0
  br i1 %6586, label %6587, label %6638

6587:                                             ; preds = %6580
  store i32 5, ptr %6552, align 8, !tbaa !59
  %6588 = load i32, ptr @test_count, align 4, !tbaa !5
  %6589 = add nsw i32 %6588, 1
  store i32 %6589, ptr @test_count, align 4, !tbaa !5
  %6590 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected.145, i64 40), align 8, !tbaa !9
  %6591 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6592 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6590, ptr noundef nonnull dereferenceable(1) %6591) #17
  %6593 = icmp eq i32 %6592, 0
  br i1 %6593, label %6594, label %6638

6594:                                             ; preds = %6587
  store i32 6, ptr %6552, align 8, !tbaa !59
  %6595 = load i32, ptr @test_count, align 4, !tbaa !5
  %6596 = add nsw i32 %6595, 1
  store i32 %6596, ptr @test_count, align 4, !tbaa !5
  %6597 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected.145, i64 48), align 16, !tbaa !9
  %6598 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6599 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6597, ptr noundef nonnull dereferenceable(1) %6598) #17
  %6600 = icmp eq i32 %6599, 0
  br i1 %6600, label %6601, label %6638

6601:                                             ; preds = %6594
  store i32 7, ptr %6552, align 8, !tbaa !59
  %6602 = load i32, ptr @test_count, align 4, !tbaa !5
  %6603 = add nsw i32 %6602, 1
  store i32 %6603, ptr @test_count, align 4, !tbaa !5
  %6604 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected.145, i64 56), align 8, !tbaa !9
  %6605 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6606 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6604, ptr noundef nonnull dereferenceable(1) %6605) #17
  %6607 = icmp eq i32 %6606, 0
  br i1 %6607, label %6608, label %6638

6608:                                             ; preds = %6601
  store i32 8, ptr %6552, align 8, !tbaa !59
  %6609 = load i32, ptr @test_count, align 4, !tbaa !5
  %6610 = add nsw i32 %6609, 1
  store i32 %6610, ptr @test_count, align 4, !tbaa !5
  %6611 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected.145, i64 64), align 16, !tbaa !9
  %6612 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6613 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6611, ptr noundef nonnull dereferenceable(1) %6612) #17
  %6614 = icmp eq i32 %6613, 0
  br i1 %6614, label %6615, label %6638

6615:                                             ; preds = %6608
  store i32 9, ptr %6552, align 8, !tbaa !59
  %6616 = load i32, ptr @test_count, align 4, !tbaa !5
  %6617 = add nsw i32 %6616, 1
  store i32 %6617, ptr @test_count, align 4, !tbaa !5
  %6618 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected.145, i64 72), align 8, !tbaa !9
  %6619 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6620 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6618, ptr noundef nonnull dereferenceable(1) %6619) #17
  %6621 = icmp eq i32 %6620, 0
  br i1 %6621, label %6622, label %6638

6622:                                             ; preds = %6615
  store i32 10, ptr %6552, align 8, !tbaa !59
  %6623 = load i32, ptr @test_count, align 4, !tbaa !5
  %6624 = add nsw i32 %6623, 1
  store i32 %6624, ptr @test_count, align 4, !tbaa !5
  %6625 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected.145, i64 80), align 16, !tbaa !9
  %6626 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %6522)
  %6627 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %6625, ptr noundef nonnull dereferenceable(1) %6626) #17
  %6628 = icmp eq i32 %6627, 0
  br i1 %6628, label %6629, label %6638

6629:                                             ; preds = %6622
  %6630 = load i32, ptr @test_count, align 4, !tbaa !5
  %6631 = add nsw i32 %6630, 1
  store i32 %6631, ptr @test_count, align 4, !tbaa !5
  %6632 = call i32 @s2n_connection_free(ptr noundef nonnull %6522) #13
  %6633 = icmp eq i32 %6632, -1
  br i1 %6633, label %6660, label %.preheader

.preheader:                                       ; preds = %6629
  %test_count.promoted1472 = load i32, ptr @test_count, align 4, !tbaa !5
  %6634 = add i32 %test_count.promoted1472, 21
  %6635 = add nsw i32 %test_count.promoted1472, 1
  %6636 = load ptr, ptr @message_names, align 16, !tbaa !9
  %6637 = icmp eq ptr %6636, null
  br i1 %6637, label %6764, label %6682

6638:                                             ; preds = %6622, %6615, %6608, %6601, %6594, %6587, %6580, %6573, %6566, %6559, %6550
  %6639 = load i32, ptr %3249, align 4, !tbaa !5
  %6640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6641 = call i32 @s2n_print_stacktrace(ptr noundef %6640) #13
  %6642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6643 = trunc nuw i8 %6642 to i1
  br i1 %6643, label %6644, label %6648

6644:                                             ; preds = %6638
  %6645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6646 = call i32 @fileno(ptr noundef %6645) #13
  %6647 = call i32 @isatty(i32 noundef %6646) #13
  %.not1094 = icmp eq i32 %6647, 0
  br i1 %.not1094, label %6648, label %6649

6648:                                             ; preds = %6644, %6638
  br label %6649

6649:                                             ; preds = %6644, %6648
  %.str.25.sink3778 = phi ptr [ @.str.25, %6648 ], [ @.str.22, %6644 ]
  store i32 %6639, ptr %3249, align 4, !tbaa !5
  %6650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6651 = load i32, ptr @test_count, align 4, !tbaa !5
  %6652 = load i32, ptr %3195, align 4, !tbaa !5
  %6653 = call ptr @s2n_strerror(i32 noundef %6652, ptr noundef nonnull @.str.24) #13
  %6654 = load i32, ptr %3195, align 4, !tbaa !5
  %6655 = call ptr @s2n_strerror_debug(i32 noundef %6654, ptr noundef nonnull @.str.24) #13
  %6656 = load i32, ptr %3249, align 4, !tbaa !5
  %6657 = call ptr @strerror(i32 noundef %6656) #13
  %6658 = load i32, ptr %3249, align 4, !tbaa !5
  %6659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6650, ptr noundef nonnull %.str.25.sink3778, i32 noundef %6651, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.21, i32 noundef 993, ptr noundef %6653, ptr noundef %6655, ptr noundef %6657, i32 noundef %6658) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6660:                                             ; preds = %6629
  %6661 = load i32, ptr %3249, align 4, !tbaa !5
  %6662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6663 = call i32 @s2n_print_stacktrace(ptr noundef %6662) #13
  %6664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6665 = trunc nuw i8 %6664 to i1
  br i1 %6665, label %6666, label %6670

6666:                                             ; preds = %6660
  %6667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6668 = call i32 @fileno(ptr noundef %6667) #13
  %6669 = call i32 @isatty(i32 noundef %6668) #13
  %.not1093 = icmp eq i32 %6669, 0
  br i1 %.not1093, label %6670, label %6671

6670:                                             ; preds = %6666, %6660
  br label %6671

6671:                                             ; preds = %6666, %6670
  %.str.25.sink3787 = phi ptr [ @.str.25, %6670 ], [ @.str.22, %6666 ]
  store i32 %6661, ptr %3249, align 4, !tbaa !5
  %6672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6673 = load i32, ptr @test_count, align 4, !tbaa !5
  %6674 = load i32, ptr %3195, align 4, !tbaa !5
  %6675 = call ptr @s2n_strerror(i32 noundef %6674, ptr noundef nonnull @.str.24) #13
  %6676 = load i32, ptr %3195, align 4, !tbaa !5
  %6677 = call ptr @s2n_strerror_debug(i32 noundef %6676, ptr noundef nonnull @.str.24) #13
  %6678 = load i32, ptr %3249, align 4, !tbaa !5
  %6679 = call ptr @strerror(i32 noundef %6678) #13
  %6680 = load i32, ptr %3249, align 4, !tbaa !5
  %6681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6672, ptr noundef nonnull %.str.25.sink3787, i32 noundef %6673, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 996, ptr noundef %6675, ptr noundef %6677, ptr noundef %6679, i32 noundef %6680) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6682:                                             ; preds = %.preheader
  %6683 = add nsw i32 %test_count.promoted1472, 2
  %6684 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 8), align 8, !tbaa !9
  %6685 = icmp eq ptr %6684, null
  br i1 %6685, label %6764, label %6686

6686:                                             ; preds = %6682
  %6687 = add nsw i32 %test_count.promoted1472, 3
  %6688 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 16), align 16, !tbaa !9
  %6689 = icmp eq ptr %6688, null
  br i1 %6689, label %6764, label %6690

6690:                                             ; preds = %6686
  %6691 = add nsw i32 %test_count.promoted1472, 4
  %6692 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 24), align 8, !tbaa !9
  %6693 = icmp eq ptr %6692, null
  br i1 %6693, label %6764, label %6694

6694:                                             ; preds = %6690
  %6695 = add nsw i32 %test_count.promoted1472, 5
  %6696 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 32), align 16, !tbaa !9
  %6697 = icmp eq ptr %6696, null
  br i1 %6697, label %6764, label %6698

6698:                                             ; preds = %6694
  %6699 = add nsw i32 %test_count.promoted1472, 6
  %6700 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 40), align 8, !tbaa !9
  %6701 = icmp eq ptr %6700, null
  br i1 %6701, label %6764, label %6702

6702:                                             ; preds = %6698
  %6703 = add nsw i32 %test_count.promoted1472, 7
  %6704 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 48), align 16, !tbaa !9
  %6705 = icmp eq ptr %6704, null
  br i1 %6705, label %6764, label %6706

6706:                                             ; preds = %6702
  %6707 = add nsw i32 %test_count.promoted1472, 8
  %6708 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 56), align 8, !tbaa !9
  %6709 = icmp eq ptr %6708, null
  br i1 %6709, label %6764, label %6710

6710:                                             ; preds = %6706
  %6711 = add nsw i32 %test_count.promoted1472, 9
  %6712 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 64), align 16, !tbaa !9
  %6713 = icmp eq ptr %6712, null
  br i1 %6713, label %6764, label %6714

6714:                                             ; preds = %6710
  %6715 = add nsw i32 %test_count.promoted1472, 10
  %6716 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 72), align 8, !tbaa !9
  %6717 = icmp eq ptr %6716, null
  br i1 %6717, label %6764, label %6718

6718:                                             ; preds = %6714
  %6719 = add nsw i32 %test_count.promoted1472, 11
  %6720 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 80), align 16, !tbaa !9
  %6721 = icmp eq ptr %6720, null
  br i1 %6721, label %6764, label %6722

6722:                                             ; preds = %6718
  %6723 = add nsw i32 %test_count.promoted1472, 12
  %6724 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 88), align 8, !tbaa !9
  %6725 = icmp eq ptr %6724, null
  br i1 %6725, label %6764, label %6726

6726:                                             ; preds = %6722
  %6727 = add nsw i32 %test_count.promoted1472, 13
  %6728 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 96), align 16, !tbaa !9
  %6729 = icmp eq ptr %6728, null
  br i1 %6729, label %6764, label %6730

6730:                                             ; preds = %6726
  %6731 = add nsw i32 %test_count.promoted1472, 14
  %6732 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 104), align 8, !tbaa !9
  %6733 = icmp eq ptr %6732, null
  br i1 %6733, label %6764, label %6734

6734:                                             ; preds = %6730
  %6735 = add nsw i32 %test_count.promoted1472, 15
  %6736 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 112), align 16, !tbaa !9
  %6737 = icmp eq ptr %6736, null
  br i1 %6737, label %6764, label %6738

6738:                                             ; preds = %6734
  %6739 = add nsw i32 %test_count.promoted1472, 16
  %6740 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 120), align 8, !tbaa !9
  %6741 = icmp eq ptr %6740, null
  br i1 %6741, label %6764, label %6742

6742:                                             ; preds = %6738
  %6743 = add nsw i32 %test_count.promoted1472, 17
  %6744 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 128), align 16, !tbaa !9
  %6745 = icmp eq ptr %6744, null
  br i1 %6745, label %6764, label %6746

6746:                                             ; preds = %6742
  %6747 = add nsw i32 %test_count.promoted1472, 18
  %6748 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 136), align 8, !tbaa !9
  %6749 = icmp eq ptr %6748, null
  br i1 %6749, label %6764, label %6750

6750:                                             ; preds = %6746
  %6751 = add nsw i32 %test_count.promoted1472, 19
  %6752 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 144), align 16, !tbaa !9
  %6753 = icmp eq ptr %6752, null
  br i1 %6753, label %6764, label %6754

6754:                                             ; preds = %6750
  %6755 = add nsw i32 %test_count.promoted1472, 20
  %6756 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 152), align 8, !tbaa !9
  %6757 = icmp eq ptr %6756, null
  br i1 %6757, label %6764, label %6758

6758:                                             ; preds = %6754
  %6759 = load ptr, ptr getelementptr inbounds (i8, ptr @message_names, i64 160), align 16, !tbaa !9
  %6760 = icmp eq ptr %6759, null
  br i1 %6760, label %6764, label %6761

6761:                                             ; preds = %6758
  store i32 %6634, ptr @test_count, align 4, !tbaa !5
  %6762 = call i32 @s2n_cleanup() #13
  %6763 = icmp eq i32 %6762, -1
  br i1 %6763, label %6786, label %6808

6764:                                             ; preds = %6758, %6754, %6750, %6746, %6742, %6738, %6734, %6730, %6726, %6722, %6718, %6714, %6710, %6706, %6702, %6698, %6694, %6690, %6686, %6682, %.preheader
  %.lcssa = phi i32 [ %6635, %.preheader ], [ %6683, %6682 ], [ %6687, %6686 ], [ %6691, %6690 ], [ %6695, %6694 ], [ %6699, %6698 ], [ %6703, %6702 ], [ %6707, %6706 ], [ %6711, %6710 ], [ %6715, %6714 ], [ %6719, %6718 ], [ %6723, %6722 ], [ %6727, %6726 ], [ %6731, %6730 ], [ %6735, %6734 ], [ %6739, %6738 ], [ %6743, %6742 ], [ %6747, %6746 ], [ %6751, %6750 ], [ %6755, %6754 ], [ %6634, %6758 ]
  store i32 %.lcssa, ptr @test_count, align 4, !tbaa !5
  %6765 = load i32, ptr %3249, align 4, !tbaa !5
  %6766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6767 = call i32 @s2n_print_stacktrace(ptr noundef %6766) #13
  %6768 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6769 = trunc nuw i8 %6768 to i1
  br i1 %6769, label %6770, label %6774

6770:                                             ; preds = %6764
  %6771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6772 = call i32 @fileno(ptr noundef %6771) #13
  %6773 = call i32 @isatty(i32 noundef %6772) #13
  %.not1092 = icmp eq i32 %6773, 0
  br i1 %.not1092, label %6774, label %6775

6774:                                             ; preds = %6770, %6764
  br label %6775

6775:                                             ; preds = %6770, %6774
  %.str.25.sink3796 = phi ptr [ @.str.25, %6774 ], [ @.str.22, %6770 ]
  store i32 %6765, ptr %3249, align 4, !tbaa !5
  %6776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6777 = load i32, ptr @test_count, align 4, !tbaa !5
  %6778 = load i32, ptr %3195, align 4, !tbaa !5
  %6779 = call ptr @s2n_strerror(i32 noundef %6778, ptr noundef nonnull @.str.24) #13
  %6780 = load i32, ptr %3195, align 4, !tbaa !5
  %6781 = call ptr @s2n_strerror_debug(i32 noundef %6780, ptr noundef nonnull @.str.24) #13
  %6782 = load i32, ptr %3249, align 4, !tbaa !5
  %6783 = call ptr @strerror(i32 noundef %6782) #13
  %6784 = load i32, ptr %3249, align 4, !tbaa !5
  %6785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6776, ptr noundef nonnull %.str.25.sink3796, i32 noundef %6777, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.21, i32 noundef 1002, ptr noundef %6779, ptr noundef %6781, ptr noundef %6783, i32 noundef %6784) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6786:                                             ; preds = %6761
  %6787 = load i32, ptr %3249, align 4, !tbaa !5
  %6788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6789 = call i32 @s2n_print_stacktrace(ptr noundef %6788) #13
  %6790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6791 = trunc nuw i8 %6790 to i1
  br i1 %6791, label %6792, label %6796

6792:                                             ; preds = %6786
  %6793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6794 = call i32 @fileno(ptr noundef %6793) #13
  %6795 = call i32 @isatty(i32 noundef %6794) #13
  %.not1091 = icmp eq i32 %6795, 0
  br i1 %.not1091, label %6796, label %6797

6796:                                             ; preds = %6792, %6786
  br label %6797

6797:                                             ; preds = %6792, %6796
  %.str.25.sink3805 = phi ptr [ @.str.25, %6796 ], [ @.str.22, %6792 ]
  store i32 %6787, ptr %3249, align 4, !tbaa !5
  %6798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6799 = load i32, ptr @test_count, align 4, !tbaa !5
  %6800 = load i32, ptr %3195, align 4, !tbaa !5
  %6801 = call ptr @s2n_strerror(i32 noundef %6800, ptr noundef nonnull @.str.24) #13
  %6802 = load i32, ptr %3195, align 4, !tbaa !5
  %6803 = call ptr @s2n_strerror_debug(i32 noundef %6802, ptr noundef nonnull @.str.24) #13
  %6804 = load i32, ptr %3249, align 4, !tbaa !5
  %6805 = call ptr @strerror(i32 noundef %6804) #13
  %6806 = load i32, ptr %3249, align 4, !tbaa !5
  %6807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6798, ptr noundef nonnull %.str.25.sink3805, i32 noundef %6799, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.21, i32 noundef 1006, ptr noundef %6801, ptr noundef %6803, ptr noundef %6805, i32 noundef %6806) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6808:                                             ; preds = %6761
  %6809 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %6810 = icmp eq i32 %6809, -1
  br i1 %6810, label %6811, label %6833

6811:                                             ; preds = %6808
  %6812 = load i32, ptr %3249, align 4, !tbaa !5
  %6813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6814 = call i32 @s2n_print_stacktrace(ptr noundef %6813) #13
  %6815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6816 = trunc nuw i8 %6815 to i1
  br i1 %6816, label %6817, label %6821

6817:                                             ; preds = %6811
  %6818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6819 = call i32 @fileno(ptr noundef %6818) #13
  %6820 = call i32 @isatty(i32 noundef %6819) #13
  %.not1090 = icmp eq i32 %6820, 0
  br i1 %.not1090, label %6821, label %6822

6821:                                             ; preds = %6817, %6811
  br label %6822

6822:                                             ; preds = %6817, %6821
  %.str.25.sink3814 = phi ptr [ @.str.25, %6821 ], [ @.str.22, %6817 ]
  store i32 %6812, ptr %3249, align 4, !tbaa !5
  %6823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6824 = load i32, ptr @test_count, align 4, !tbaa !5
  %6825 = load i32, ptr %3195, align 4, !tbaa !5
  %6826 = call ptr @s2n_strerror(i32 noundef %6825, ptr noundef nonnull @.str.24) #13
  %6827 = load i32, ptr %3195, align 4, !tbaa !5
  %6828 = call ptr @s2n_strerror_debug(i32 noundef %6827, ptr noundef nonnull @.str.24) #13
  %6829 = load i32, ptr %3249, align 4, !tbaa !5
  %6830 = call ptr @strerror(i32 noundef %6829) #13
  %6831 = load i32, ptr %3249, align 4, !tbaa !5
  %6832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6823, ptr noundef nonnull %.str.25.sink3814, i32 noundef %6824, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.21, i32 noundef 1006, ptr noundef %6826, ptr noundef %6828, ptr noundef %6830, i32 noundef %6831) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6833:                                             ; preds = %6808
  %6834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6835 = trunc nuw i8 %6834 to i1
  br i1 %6835, label %6836, label %6847

6836:                                             ; preds = %6833
  %6837 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6838 = call i32 @fileno(ptr noundef %6837) #13
  %6839 = call i32 @isatty(i32 noundef %6838) #13
  %.not1087 = icmp eq i32 %6839, 0
  br i1 %.not1087, label %6847, label %6840

6840:                                             ; preds = %6836
  %6841 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1089 = icmp eq i32 %6841, 0
  %6842 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1089, label %6845, label %6843

6843:                                             ; preds = %6840
  %6844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6842, ptr noundef nonnull @.str.149, i32 noundef %6841) #13
  br label %.thread

6845:                                             ; preds = %6840
  %6846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6842, ptr noundef nonnull @.str.150) #13
  br label %.thread

6847:                                             ; preds = %6836, %6833
  %6848 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1088 = icmp eq i32 %6848, 0
  %6849 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1088, label %6852, label %6850

6850:                                             ; preds = %6847
  %6851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6849, ptr noundef nonnull @.str.151, i32 noundef %6848) #13
  br label %.thread

6852:                                             ; preds = %6847
  %6853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6849, ptr noundef nonnull @.str.152) #13
  br label %.thread

.thread:                                          ; preds = %4178, %6845, %6843, %6852, %6850
  %.1 = phi i32 [ 0, %6850 ], [ 0, %6852 ], [ 0, %6843 ], [ 0, %6845 ], [ -1, %4178 ]
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %3) #13
  ret i32 %.1
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #8

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #8

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #5

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #5

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #8

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #5

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #5

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #5

declare i32 @s2n_init() local_unnamed_addr #5

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_handler(ptr noundef) #4

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #5

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_advance_message(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_setup_handler_to_expect(i32 noundef, i8 noundef zeroext) local_unnamed_addr #4

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_write_header(ptr noundef, i8 noundef zeroext, i8 noundef zeroext) local_unnamed_addr #4

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #5

declare void @s2n_debug_info_reset() local_unnamed_addr #5

declare i32 @s2n_connection_set_client_auth_type(ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_array_pushback(ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #6

declare i32 @s2n_cleanup() local_unnamed_addr #5

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #12

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #12

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #2 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress 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 #7 = { 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 #8 = { 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 #9 = { 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 = { 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 #11 = { nofree nounwind willreturn memory(argmem: read) }
attributes #12 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(none) }
attributes #15 = { cold nounwind }
attributes #16 = { noreturn nounwind }
attributes #17 = { 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 = distinct !{!19, !18}
!20 = distinct !{!20, !18}
!21 = distinct !{!21, !18}
!22 = distinct !{!22, !18}
!23 = distinct !{!23, !18}
!24 = distinct !{!24, !18}
!25 = distinct !{!25, !18}
!26 = distinct !{!26, !18}
!27 = !{!28, !7, i64 220}
!28 = !{!"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, !29, i64 160, !30, i64 168, !30, 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, !31, i64 240, !10, i64 632, !10, i64 640, !32, i64 648, !38, i64 1144, !41, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !43, i64 1776, !43, i64 1816, !43, i64 1856, !43, i64 1896, !6, i64 1936, !30, i64 1944, !7, i64 1952, !43, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !44, i64 2004, !44, i64 2008, !45, i64 2016, !16, i64 2208, !6, i64 2212, !16, i64 2216, !30, i64 2224, !7, i64 2232, !30, i64 2240, !30, i64 2248, !30, i64 2256, !44, i64 2264, !44, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !37, i64 2792, !6, i64 2816, !37, i64 2824, !37, i64 2848, !37, i64 2872, !47, i64 2896, !49, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !37, i64 3784, !6, i64 3808, !51, i64 3816, !7, i64 3848, !43, i64 3992, !37, i64 4032, !37, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !16, i64 4084, !16, i64 4086, !6, i64 4088, !6, i64 4092, !37, i64 4096, !6, i64 4120, !52, i64 4128, !44, i64 4176, !7, i64 4180, !7, i64 4181}
!29 = !{!"s2n_timer", !30, i64 0}
!30 = !{!"long", !7, i64 0}
!31 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!32 = !{!"s2n_kex_parameters", !33, i64 0, !34, i64 8, !7, i64 24, !34, i64 56, !35, i64 72, !35, i64 184, !7, i64 296, !36, i64 360, !37, i64 448, !37, i64 472}
!33 = !{!"s2n_dh_params", !10, i64 0}
!34 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!35 = !{!"s2n_kem_group_params", !10, i64 0, !36, i64 8, !34, i64 96}
!36 = !{!"s2n_kem_params", !10, i64 0, !37, i64 8, !37, i64 32, !37, i64 56, !12, i64 80}
!37 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!38 = !{!"s2n_handshake_parameters", !39, i64 0, !39, i64 48, !37, i64 96, !6, i64 120, !40, 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}
!39 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!40 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!41 = !{!"s2n_psk_parameters", !6, i64 0, !42, i64 8, !16, i64 40, !16, i64 42, !10, i64 48, !6, i64 56}
!42 = !{!"s2n_array", !37, i64 0, !6, i64 24, !6, i64 28}
!43 = !{!"s2n_stuffer", !37, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!44 = !{!"", !6, i64 0}
!45 = !{!"s2n_handshake", !43, 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, !46, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!46 = !{!"s2n_offered_early_data", !10, i64 0}
!47 = !{!"s2n_client_hello", !37, i64 0, !48, i64 24, !37, i64 728, !37, i64 752, !37, 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}
!48 = !{!"", !7, i64 0, !37, i64 672, !16, i64 696}
!49 = !{!"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, !50, i64 48, !12, i64 52}
!50 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!51 = !{!"s2n_ticket_fields", !37, i64 0, !6, i64 24}
!52 = !{!"s2n_post_handshake", !43, i64 0, !7, i64 40}
!53 = distinct !{!53, !18}
!54 = distinct !{!54, !18}
!55 = distinct !{!55, !18}
!56 = distinct !{!56, !18}
!57 = !{!28, !6, i64 2204}
!58 = !{!28, !6, i64 2172}
!59 = !{!28, !6, i64 2176}
!60 = distinct !{!60, !18}
!61 = distinct !{!61, !18}
!62 = distinct !{!62, !18}
!63 = distinct !{!63, !18}
!64 = !{!28, !6, i64 1936}
!65 = distinct !{!65, !18}
!66 = distinct !{!66, !18}
!67 = distinct !{!67, !18}
!68 = distinct !{!68, !18}
!69 = !{!28, !10, i64 232}
!70 = !{!71, !10, i64 0}
!71 = !{!"s2n_crypto_parameters", !10, i64 0, !72, i64 8, !72, i64 16, !73, i64 24, !73, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!72 = !{!"s2n_session_key", !10, i64 0}
!73 = !{!"s2n_hmac_state", !6, i64 0, !16, i64 4, !6, i64 8, !16, i64 12, !7, i64 14, !74, i64 16, !74, i64 72, !74, i64 128, !74, i64 184, !7, i64 240, !7, i64 368}
!74 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !30, i64 16, !7, i64 24}
!75 = !{!76, !7, i64 1}
!76 = !{!"s2n_handshake_action", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 8}
!77 = !{!76, !7, i64 2}
!78 = distinct !{!78, !18}
!79 = distinct !{!79, !18}
!80 = distinct !{!80, !18}
!81 = !{!28, !10, i64 8}
!82 = !{!28, !6, i64 3780}
!83 = distinct !{!83, !18}
!84 = distinct !{!84, !18}
!85 = !{!28, !6, i64 2784}
!86 = !{!28, !10, i64 1736}
!87 = !{!28, !6, i64 4088}
!88 = distinct !{!88, !18}
!89 = distinct !{!89, !18}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass