; LLVM IR from aws/s2n-tls :: tests/unit (s2n_tls_prf_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_debug_info = type { ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, 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 }
%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_prf_working_space = type { %union.p_hash_state, [64 x i8], [64 x i8] }
%union.p_hash_state = type { %struct.s2n_hmac_state }
%struct.s2n_tls12_secrets = type { [48 x i8], [48 x i8] }

@s2n_use_color_in_output = external dso_local global i8, align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@s2n_errno = external thread_local global i32, align 4
@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 [75 x i8], align 1
@stderr = external global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [92 x i8], align 1
@s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.64 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [206 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.149 = 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

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

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

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

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

; Function Attrs: nounwind willreturn memory(read)
declare ptr @strrchr(ptr noundef, i32 noundef) #5

declare i32 @s2n_calculate_stacktrace() #2

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

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

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_write_io(ptr noundef) #7

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #7 {
  %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 %struct.s2n_blob, align 8
  %11 = alloca %struct.s2n_result, align 4
  %12 = alloca i32, align 4
  %13 = alloca %struct.s2n_blob, align 8
  %14 = alloca %struct.s2n_result, align 4
  %15 = alloca %struct.s2n_blob, align 8
  %16 = alloca %struct.s2n_result, align 4
  %17 = alloca %struct.s2n_blob, align 8
  %18 = alloca %struct.s2n_result, align 4
  %19 = alloca [64 x i8], align 16
  %20 = alloca %struct.s2n_blob, align 8
  %21 = alloca i32, align 4
  %22 = alloca [64 x i8], align 16
  %23 = alloca %struct.s2n_blob, align 8
  %24 = alloca i32, align 4
  %25 = alloca [64 x i8], align 16
  %26 = alloca %struct.s2n_blob, align 8
  %27 = alloca i32, align 4
  %28 = alloca [64 x i8], align 16
  %29 = alloca %struct.s2n_blob, align 8
  %30 = alloca i32, align 4
  %31 = alloca [64 x i8], align 16
  %32 = alloca %struct.s2n_blob, align 8
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i64, align 8
  %36 = alloca [64 x i8], align 16
  %37 = alloca %struct.s2n_blob, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca %struct.s2n_result, align 4
  %59 = alloca %struct.s2n_blob, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca %struct.s2n_blob, align 8
  %63 = alloca %struct.s2n_result, align 4
  %64 = alloca i64, align 8
  %65 = alloca [64 x i8], align 16
  %66 = alloca %struct.s2n_blob, align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca %struct.s2n_result, align 4
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca %struct.s2n_blob, align 8
  %74 = alloca %struct.s2n_result, align 4
  %75 = alloca i64, align 8
  %76 = alloca [64 x i8], align 16
  %77 = alloca %struct.s2n_blob, align 8
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca %struct.s2n_blob, align 8
  %85 = alloca %struct.s2n_result, align 4
  %86 = alloca i64, align 8
  %87 = alloca [64 x i8], align 16
  %88 = alloca %struct.s2n_blob, align 8
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca %struct.s2n_result, align 4
  %93 = alloca ptr, align 8
  %94 = alloca ptr, align 8
  %95 = alloca %struct.s2n_blob, align 8
  %96 = alloca %struct.s2n_result, align 4
  %97 = alloca i64, align 8
  %98 = alloca [64 x i8], align 16
  %99 = alloca %struct.s2n_blob, align 8
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca %struct.s2n_result, align 4
  %104 = alloca ptr, align 8
  %105 = alloca ptr, align 8
  %106 = alloca %struct.s2n_blob, align 8
  %107 = alloca %struct.s2n_result, align 4
  %108 = alloca i64, align 8
  %109 = alloca [64 x i8], align 16
  %110 = alloca %struct.s2n_blob, align 8
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca %struct.s2n_result, align 4
  %115 = alloca ptr, align 8
  %116 = alloca %struct.s2n_blob, align 8
  %117 = alloca i32, align 4
  %118 = alloca %struct.s2n_blob, align 8
  %119 = alloca i32, align 4
  %120 = alloca %struct.s2n_blob, align 8
  %121 = alloca i32, align 4
  %122 = alloca i64, align 8
  %123 = alloca [64 x i8], align 16
  %124 = alloca %struct.s2n_blob, align 8
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca %struct.s2n_result, align 4
  %133 = alloca ptr, align 8
  %134 = alloca [64 x i8], align 16
  %135 = alloca i32, align 4
  %136 = alloca i64, align 8
  %137 = alloca [64 x i8], align 16
  %138 = alloca %struct.s2n_blob, align 8
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca %struct.s2n_result, align 4
  %142 = alloca ptr, align 8
  %143 = alloca [64 x i8], align 16
  %144 = alloca i32, align 4
  %145 = alloca i64, align 8
  %146 = alloca [64 x i8], align 16
  %147 = alloca %struct.s2n_blob, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca %struct.s2n_result, align 4
  %151 = alloca ptr, align 8
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca %struct.s2n_blob, align 8
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca %struct.s2n_result, align 4
  %164 = alloca %struct.s2n_blob, align 8
  %165 = alloca %struct.s2n_result, align 4
  %166 = alloca %struct.s2n_blob, align 8
  %167 = alloca %struct.s2n_result, align 4
  %168 = alloca %struct.s2n_blob, align 8
  %169 = alloca %struct.s2n_result, align 4
  %170 = alloca ptr, align 8
  %171 = alloca i32, align 4
  %172 = alloca %struct.s2n_result, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca %struct.s2n_result, align 4
  %176 = alloca ptr, align 8
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %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 %struct.s2n_blob, align 8
  %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 i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca %struct.s2n_result, align 4
  %196 = alloca ptr, align 8
  %197 = alloca i32, align 4
  %198 = alloca ptr, align 8
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca ptr, align 8
  %203 = alloca i32, align 4
  %204 = alloca ptr, align 8
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca %struct.s2n_stuffer, align 8
  %209 = alloca %struct.s2n_stuffer, align 8
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca %struct.s2n_result, align 4
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca [64 x i8], align 16
  %218 = alloca %struct.s2n_blob, align 8
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca i8, align 1
  %222 = alloca ptr, align 8
  %223 = alloca %struct.s2n_blob, align 8
  %224 = alloca i32, align 4
  %225 = alloca i32, align 4
  %226 = alloca i32, align 4
  %227 = alloca %struct.s2n_result, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca %struct.s2n_hash_state, align 8
  %232 = alloca [64 x i8], align 16
  %233 = alloca i8, align 1
  %234 = alloca i32, align 4
  %235 = alloca i32, align 4
  %236 = alloca %struct.s2n_result, align 4
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca i32, align 4
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca %struct.s2n_result, align 4
  %245 = alloca i32, align 4
  %246 = alloca i32, align 4
  %247 = alloca i32, align 4
  %248 = alloca %struct.s2n_result, align 4
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca i32, align 4
  %252 = alloca %struct.s2n_result, align 4
  %253 = alloca i32, align 4
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = alloca %struct.s2n_connection, align 8
  %257 = alloca i32, align 4
  %258 = alloca %struct.s2n_result, align 4
  %259 = alloca i32, align 4
  %260 = alloca i32, align 4
  %261 = alloca i32, align 4
  %262 = alloca %struct.s2n_result, align 4
  %263 = alloca i32, align 4
  %264 = alloca %struct.s2n_connection, align 8
  %265 = alloca i32, align 4
  %266 = alloca %struct.s2n_result, align 4
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca %struct.s2n_result, align 4
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca %struct.s2n_result, align 4
  %273 = alloca i32, align 4
  %274 = alloca i32, align 4
  %275 = alloca ptr, align 8
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca %struct.s2n_result, align 4
  %281 = alloca ptr, align 8
  %282 = alloca i32, align 4
  %283 = alloca %struct.s2n_result, align 4
  %284 = alloca i32, align 4
  %285 = alloca i32, align 4
  %286 = alloca i32, align 4
  %287 = alloca i32, align 4
  %288 = alloca %struct.s2n_result, align 4
  %289 = alloca %struct.s2n_blob, align 8
  %290 = alloca i32, align 4
  %291 = alloca ptr, align 8
  %292 = alloca i32, align 4
  %293 = alloca i32, align 4
  %294 = alloca i32, align 4
  %295 = alloca i32, align 4
  %296 = alloca i32, align 4
  %297 = alloca i32, align 4
  %298 = alloca i32, align 4
  %299 = alloca i32, align 4
  %300 = alloca i32, align 4
  %301 = alloca i32, align 4
  %302 = alloca i32, align 4
  %303 = alloca i32, align 4
  %304 = alloca i32, align 4
  %305 = alloca i32, align 4
  %306 = alloca i32, align 4
  %307 = alloca i32, align 4
  %308 = alloca i32, align 4
  %309 = alloca i32, align 4
  %310 = alloca i32, align 4
  %311 = alloca i32, align 4
  %312 = alloca i32, align 4
  %313 = alloca i32, align 4
  %314 = alloca i32, align 4
  %315 = alloca i32, align 4
  %316 = alloca i32, align 4
  %317 = alloca i32, align 4
  %318 = alloca i32, align 4
  %319 = alloca i32, align 4
  %320 = alloca %struct.s2n_result, align 4
  %321 = alloca i32, align 4
  %322 = 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 %323

323:                                              ; preds = %2
  br label %324

324:                                              ; preds = %323
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %325 = load ptr, ptr @stdout, align 8, !tbaa !9
  %326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %325, ptr noundef @.str.20, ptr noundef @.str.21) #11
  %327 = load ptr, ptr @stdout, align 8, !tbaa !9
  %328 = call i32 @fflush(ptr noundef %327)
  br label %329

329:                                              ; preds = %324
  %330 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %331 = icmp eq i32 %330, -1
  br i1 %331, label %332, label %383

332:                                              ; preds = %329
  br label %333

333:                                              ; preds = %332
  br label %334

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

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

346:                                              ; preds = %341
  %347 = load i32, ptr %6, align 4, !tbaa !5
  %348 = call ptr @__errno_location() #12
  store i32 %347, ptr %348, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = load i32, ptr @test_count, align 4, !tbaa !5
  %351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call ptr @s2n_strerror(i32 noundef %352, ptr noundef @.str.24)
  %354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call ptr @s2n_strerror_debug(i32 noundef %355, ptr noundef @.str.24)
  %357 = call ptr @__errno_location() #12
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call ptr @strerror(i32 noundef %358) #11
  %360 = call ptr @__errno_location() #12
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %349, ptr noundef @.str.22, i32 noundef %350, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 48, ptr noundef %353, ptr noundef %356, ptr noundef %359, i32 noundef %361) #11
  br label %380

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

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

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

382:                                              ; No predecessors!
  br label %383

383:                                              ; preds = %382, %329
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr @test_count, align 4, !tbaa !5
  %388 = call i32 @s2n_enable_atexit()
  %389 = icmp eq i32 %388, -1
  br i1 %389, label %390, label %441

390:                                              ; preds = %385
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %393 = call ptr @__errno_location() #12
  %394 = load i32, ptr %393, align 4, !tbaa !5
  store i32 %394, ptr %7, align 4, !tbaa !5
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @s2n_print_stacktrace(ptr noundef %395)
  %397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %398 = trunc i8 %397 to i1
  br i1 %398, label %399, label %421

399:                                              ; preds = %392
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = call i32 @fileno(ptr noundef %400) #11
  %402 = call i32 @isatty(i32 noundef %401) #11
  %403 = icmp ne i32 %402, 0
  br i1 %403, label %404, label %421

404:                                              ; preds = %399
  %405 = load i32, ptr %7, align 4, !tbaa !5
  %406 = call ptr @__errno_location() #12
  store i32 %405, ptr %406, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = call ptr @s2n_strerror(i32 noundef %410, ptr noundef @.str.24)
  %412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror_debug(i32 noundef %413, ptr noundef @.str.24)
  %415 = call ptr @__errno_location() #12
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @strerror(i32 noundef %416) #11
  %418 = call ptr @__errno_location() #12
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %407, ptr noundef @.str.22, i32 noundef %408, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 48, ptr noundef %411, ptr noundef %414, ptr noundef %417, i32 noundef %419) #11
  br label %438

421:                                              ; preds = %399, %392
  %422 = load i32, ptr %7, align 4, !tbaa !5
  %423 = call ptr @__errno_location() #12
  store i32 %422, ptr %423, align 4, !tbaa !5
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = load i32, ptr @test_count, align 4, !tbaa !5
  %426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = call ptr @s2n_strerror(i32 noundef %427, ptr noundef @.str.24)
  %429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = call ptr @s2n_strerror_debug(i32 noundef %430, ptr noundef @.str.24)
  %432 = call ptr @__errno_location() #12
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @strerror(i32 noundef %433) #11
  %435 = call ptr @__errno_location() #12
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %424, ptr noundef @.str.25, i32 noundef %425, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 48, ptr noundef %428, ptr noundef %431, ptr noundef %434, i32 noundef %436) #11
  br label %438

438:                                              ; preds = %421, %404
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %439

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

440:                                              ; No predecessors!
  br label %441

441:                                              ; preds = %440, %385
  br label %442

442:                                              ; preds = %441
  br label %443

443:                                              ; preds = %442
  br label %444

444:                                              ; preds = %443
  %445 = call i32 @s2n_init()
  %446 = icmp eq i32 %445, -1
  br i1 %446, label %447, label %498

447:                                              ; preds = %444
  br label %448

448:                                              ; preds = %447
  br label %449

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

456:                                              ; preds = %449
  %457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %458 = call i32 @fileno(ptr noundef %457) #11
  %459 = call i32 @isatty(i32 noundef %458) #11
  %460 = icmp ne i32 %459, 0
  br i1 %460, label %461, label %478

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

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

495:                                              ; preds = %478, %461
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %496

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

497:                                              ; No predecessors!
  br label %498

498:                                              ; preds = %497, %444
  br label %499

499:                                              ; preds = %498
  br label %500

500:                                              ; preds = %499
  br label %501

501:                                              ; preds = %500
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr @test_count, align 4, !tbaa !5
  %504 = call i32 (...) @s2n_disable_tls13_in_test()
  %505 = icmp eq i32 %504, -1
  br i1 %505, label %506, label %557

506:                                              ; preds = %501
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %509 = call ptr @__errno_location() #12
  %510 = load i32, ptr %509, align 4, !tbaa !5
  store i32 %510, ptr %9, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @s2n_print_stacktrace(ptr noundef %511)
  %513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %514 = trunc i8 %513 to i1
  br i1 %514, label %515, label %537

515:                                              ; preds = %508
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @fileno(ptr noundef %516) #11
  %518 = call i32 @isatty(i32 noundef %517) #11
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %520, label %537

520:                                              ; preds = %515
  %521 = load i32, ptr %9, align 4, !tbaa !5
  %522 = call ptr @__errno_location() #12
  store i32 %521, ptr %522, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef @.str.24)
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror_debug(i32 noundef %529, ptr noundef @.str.24)
  %531 = call ptr @__errno_location() #12
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #11
  %534 = call ptr @__errno_location() #12
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %523, ptr noundef @.str.22, i32 noundef %524, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 49, ptr noundef %527, ptr noundef %530, ptr noundef %533, i32 noundef %535) #11
  br label %554

537:                                              ; preds = %515, %508
  %538 = load i32, ptr %9, align 4, !tbaa !5
  %539 = call ptr @__errno_location() #12
  store i32 %538, ptr %539, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = load i32, ptr @test_count, align 4, !tbaa !5
  %542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror(i32 noundef %543, ptr noundef @.str.24)
  %545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror_debug(i32 noundef %546, ptr noundef @.str.24)
  %548 = call ptr @__errno_location() #12
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @strerror(i32 noundef %549) #11
  %551 = call ptr @__errno_location() #12
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %540, ptr noundef @.str.25, i32 noundef %541, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 49, ptr noundef %544, ptr noundef %547, ptr noundef %550, i32 noundef %552) #11
  br label %554

554:                                              ; preds = %537, %520
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %555

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

556:                                              ; No predecessors!
  br label %557

557:                                              ; preds = %556, %501
  br label %558

558:                                              ; preds = %557
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #11
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 24, i1 false)
  br label %559

559:                                              ; preds = %558
  %560 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %10, ptr noundef @.str.29)
  %561 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  store i32 %560, ptr %561, align 4
  %562 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  %563 = load i32, ptr %562, align 4
  %564 = call zeroext i1 @s2n_result_is_ok(i32 %563)
  br i1 %564, label %566, label %565

565:                                              ; preds = %559
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %11922

566:                                              ; preds = %559
  br label %567

567:                                              ; preds = %566
  br label %568

568:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #11
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 24, i1 false)
  br label %569

569:                                              ; preds = %568
  %570 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %13, ptr noundef @.str.30)
  %571 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  store i32 %570, ptr %571, align 4
  %572 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  %573 = load i32, ptr %572, align 4
  %574 = call zeroext i1 @s2n_result_is_ok(i32 %573)
  br i1 %574, label %576, label %575

575:                                              ; preds = %569
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %11920

576:                                              ; preds = %569
  br label %577

577:                                              ; preds = %576
  br label %578

578:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #11
  call void @llvm.memset.p0.i64(ptr align 8 %15, i8 0, i64 24, i1 false)
  br label %579

579:                                              ; preds = %578
  %580 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %15, ptr noundef @.str.31)
  %581 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %580, ptr %581, align 4
  %582 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  %583 = load i32, ptr %582, align 4
  %584 = call zeroext i1 @s2n_result_is_ok(i32 %583)
  br i1 %584, label %586, label %585

585:                                              ; preds = %579
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %11918

586:                                              ; preds = %579
  br label %587

587:                                              ; preds = %586
  br label %588

588:                                              ; preds = %587
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #11
  call void @llvm.memset.p0.i64(ptr align 8 %17, i8 0, i64 24, i1 false)
  br label %589

589:                                              ; preds = %588
  %590 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %17, ptr noundef @.str.32)
  %591 = getelementptr inbounds %struct.s2n_result, ptr %18, i32 0, i32 0
  store i32 %590, ptr %591, align 4
  %592 = getelementptr inbounds %struct.s2n_result, ptr %18, i32 0, i32 0
  %593 = load i32, ptr %592, align 4
  %594 = call zeroext i1 @s2n_result_is_ok(i32 %593)
  br i1 %594, label %596, label %595

595:                                              ; preds = %589
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %11916

596:                                              ; preds = %589
  br label %597

597:                                              ; preds = %596
  br label %598

598:                                              ; preds = %597
  call void @llvm.lifetime.start.p0(i64 64, ptr %19) #11
  call void @llvm.memset.p0.i64(ptr align 16 %19, i8 0, i64 64, i1 false)
  %599 = getelementptr inbounds [64 x i8], ptr %19, i32 0, i32 0
  store i8 115, ptr %599, align 16
  %600 = getelementptr inbounds [64 x i8], ptr %19, i32 0, i32 1
  store i8 101, ptr %600, align 1
  %601 = getelementptr inbounds [64 x i8], ptr %19, i32 0, i32 2
  store i8 99, ptr %601, align 2
  %602 = getelementptr inbounds [64 x i8], ptr %19, i32 0, i32 3
  store i8 114, ptr %602, align 1
  %603 = getelementptr inbounds [64 x i8], ptr %19, i32 0, i32 4
  store i8 101, ptr %603, align 4
  %604 = getelementptr inbounds [64 x i8], ptr %19, i32 0, i32 5
  store i8 116, ptr %604, align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #11
  call void @llvm.memset.p0.i64(ptr align 8 %20, i8 0, i64 24, i1 false)
  br label %605

605:                                              ; preds = %598
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr @test_count, align 4, !tbaa !5
  %608 = getelementptr inbounds [64 x i8], ptr %19, i64 0, i64 0
  %609 = call i32 @s2n_blob_init(ptr noundef %20, ptr noundef %608, i32 noundef 64)
  %610 = icmp eq i32 %609, -1
  br i1 %610, label %611, label %664

611:                                              ; preds = %605
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %614 = call ptr @__errno_location() #12
  %615 = load i32, ptr %614, align 4, !tbaa !5
  store i32 %615, ptr %21, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = call i32 @s2n_print_stacktrace(ptr noundef %616)
  %618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %619 = trunc i8 %618 to i1
  br i1 %619, label %620, label %642

620:                                              ; preds = %613
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = call i32 @fileno(ptr noundef %621) #11
  %623 = call i32 @isatty(i32 noundef %622) #11
  %624 = icmp ne i32 %623, 0
  br i1 %624, label %625, label %642

625:                                              ; preds = %620
  %626 = load i32, ptr %21, align 4, !tbaa !5
  %627 = call ptr @__errno_location() #12
  store i32 %626, ptr %627, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef @.str.24)
  %633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror_debug(i32 noundef %634, ptr noundef @.str.24)
  %636 = call ptr @__errno_location() #12
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = call ptr @strerror(i32 noundef %637) #11
  %639 = call ptr @__errno_location() #12
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef @.str.22, i32 noundef %629, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 64, ptr noundef %632, ptr noundef %635, ptr noundef %638, i32 noundef %640) #11
  br label %659

642:                                              ; preds = %620, %613
  %643 = load i32, ptr %21, align 4, !tbaa !5
  %644 = call ptr @__errno_location() #12
  store i32 %643, ptr %644, align 4, !tbaa !5
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror(i32 noundef %648, ptr noundef @.str.24)
  %650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = call ptr @s2n_strerror_debug(i32 noundef %651, ptr noundef @.str.24)
  %653 = call ptr @__errno_location() #12
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call ptr @strerror(i32 noundef %654) #11
  %656 = call ptr @__errno_location() #12
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %645, ptr noundef @.str.25, i32 noundef %646, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 64, ptr noundef %649, ptr noundef %652, ptr noundef %655, i32 noundef %657) #11
  br label %659

659:                                              ; preds = %642, %625
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %660

660:                                              ; preds = %659
  br label %661

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

662:                                              ; No predecessors!
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663, %605
  br label %665

665:                                              ; preds = %664
  br label %666

666:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 64, ptr %22) #11
  call void @llvm.memset.p0.i64(ptr align 16 %22, i8 0, i64 64, i1 false)
  %667 = getelementptr inbounds [64 x i8], ptr %22, i32 0, i32 0
  store i8 108, ptr %667, align 16
  %668 = getelementptr inbounds [64 x i8], ptr %22, i32 0, i32 1
  store i8 97, ptr %668, align 1
  %669 = getelementptr inbounds [64 x i8], ptr %22, i32 0, i32 2
  store i8 98, ptr %669, align 2
  %670 = getelementptr inbounds [64 x i8], ptr %22, i32 0, i32 3
  store i8 101, ptr %670, align 1
  %671 = getelementptr inbounds [64 x i8], ptr %22, i32 0, i32 4
  store i8 108, ptr %671, align 4
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #11
  call void @llvm.memset.p0.i64(ptr align 8 %23, i8 0, i64 24, i1 false)
  br label %672

672:                                              ; preds = %666
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = add nsw i32 %673, 1
  store i32 %674, ptr @test_count, align 4, !tbaa !5
  %675 = getelementptr inbounds [64 x i8], ptr %22, i64 0, i64 0
  %676 = call i32 @s2n_blob_init(ptr noundef %23, ptr noundef %675, i32 noundef 64)
  %677 = icmp eq i32 %676, -1
  br i1 %677, label %678, label %731

678:                                              ; preds = %672
  br label %679

679:                                              ; preds = %678
  br label %680

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

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

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

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

726:                                              ; preds = %709, %692
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %727

727:                                              ; preds = %726
  br label %728

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

729:                                              ; No predecessors!
  br label %730

730:                                              ; preds = %729
  br label %731

731:                                              ; preds = %730, %672
  br label %732

732:                                              ; preds = %731
  br label %733

733:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 64, ptr %25) #11
  call void @llvm.memset.p0.i64(ptr align 16 %25, i8 0, i64 64, i1 false)
  %734 = getelementptr inbounds [64 x i8], ptr %25, i32 0, i32 0
  store i8 115, ptr %734, align 16
  %735 = getelementptr inbounds [64 x i8], ptr %25, i32 0, i32 1
  store i8 101, ptr %735, align 1
  %736 = getelementptr inbounds [64 x i8], ptr %25, i32 0, i32 2
  store i8 101, ptr %736, align 2
  %737 = getelementptr inbounds [64 x i8], ptr %25, i32 0, i32 3
  store i8 100, ptr %737, align 1
  %738 = getelementptr inbounds [64 x i8], ptr %25, i32 0, i32 4
  store i8 32, ptr %738, align 4
  %739 = getelementptr inbounds [64 x i8], ptr %25, i32 0, i32 5
  store i8 97, ptr %739, align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #11
  call void @llvm.memset.p0.i64(ptr align 8 %26, i8 0, i64 24, i1 false)
  br label %740

740:                                              ; preds = %733
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = add nsw i32 %741, 1
  store i32 %742, ptr @test_count, align 4, !tbaa !5
  %743 = getelementptr inbounds [64 x i8], ptr %25, i64 0, i64 0
  %744 = call i32 @s2n_blob_init(ptr noundef %26, ptr noundef %743, i32 noundef 64)
  %745 = icmp eq i32 %744, -1
  br i1 %745, label %746, label %799

746:                                              ; preds = %740
  br label %747

747:                                              ; preds = %746
  br label %748

748:                                              ; preds = %747
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %749 = call ptr @__errno_location() #12
  %750 = load i32, ptr %749, align 4, !tbaa !5
  store i32 %750, ptr %27, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = call i32 @s2n_print_stacktrace(ptr noundef %751)
  %753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %754 = trunc i8 %753 to i1
  br i1 %754, label %755, label %777

755:                                              ; preds = %748
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = call i32 @fileno(ptr noundef %756) #11
  %758 = call i32 @isatty(i32 noundef %757) #11
  %759 = icmp ne i32 %758, 0
  br i1 %759, label %760, label %777

760:                                              ; preds = %755
  %761 = load i32, ptr %27, align 4, !tbaa !5
  %762 = call ptr @__errno_location() #12
  store i32 %761, ptr %762, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = load i32, ptr @test_count, align 4, !tbaa !5
  %765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %766 = load i32, ptr %765, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror(i32 noundef %766, ptr noundef @.str.24)
  %768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = call ptr @s2n_strerror_debug(i32 noundef %769, ptr noundef @.str.24)
  %771 = call ptr @__errno_location() #12
  %772 = load i32, ptr %771, align 4, !tbaa !5
  %773 = call ptr @strerror(i32 noundef %772) #11
  %774 = call ptr @__errno_location() #12
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %763, ptr noundef @.str.22, i32 noundef %764, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 72, ptr noundef %767, ptr noundef %770, ptr noundef %773, i32 noundef %775) #11
  br label %794

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

794:                                              ; preds = %777, %760
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %795

795:                                              ; preds = %794
  br label %796

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

797:                                              ; No predecessors!
  br label %798

798:                                              ; preds = %797
  br label %799

799:                                              ; preds = %798, %740
  br label %800

800:                                              ; preds = %799
  br label %801

801:                                              ; preds = %800
  call void @llvm.lifetime.start.p0(i64 64, ptr %28) #11
  call void @llvm.memset.p0.i64(ptr align 16 %28, i8 0, i64 64, i1 false)
  %802 = getelementptr inbounds [64 x i8], ptr %28, i32 0, i32 0
  store i8 115, ptr %802, align 16
  %803 = getelementptr inbounds [64 x i8], ptr %28, i32 0, i32 1
  store i8 101, ptr %803, align 1
  %804 = getelementptr inbounds [64 x i8], ptr %28, i32 0, i32 2
  store i8 101, ptr %804, align 2
  %805 = getelementptr inbounds [64 x i8], ptr %28, i32 0, i32 3
  store i8 100, ptr %805, align 1
  %806 = getelementptr inbounds [64 x i8], ptr %28, i32 0, i32 4
  store i8 32, ptr %806, align 4
  %807 = getelementptr inbounds [64 x i8], ptr %28, i32 0, i32 5
  store i8 98, ptr %807, align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #11
  call void @llvm.memset.p0.i64(ptr align 8 %29, i8 0, i64 24, i1 false)
  br label %808

808:                                              ; preds = %801
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr @test_count, align 4, !tbaa !5
  %811 = getelementptr inbounds [64 x i8], ptr %28, i64 0, i64 0
  %812 = call i32 @s2n_blob_init(ptr noundef %29, ptr noundef %811, i32 noundef 64)
  %813 = icmp eq i32 %812, -1
  br i1 %813, label %814, label %867

814:                                              ; preds = %808
  br label %815

815:                                              ; preds = %814
  br label %816

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

823:                                              ; preds = %816
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = call i32 @fileno(ptr noundef %824) #11
  %826 = call i32 @isatty(i32 noundef %825) #11
  %827 = icmp ne i32 %826, 0
  br i1 %827, label %828, label %845

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

845:                                              ; preds = %823, %816
  %846 = load i32, ptr %30, align 4, !tbaa !5
  %847 = call ptr @__errno_location() #12
  store i32 %846, ptr %847, align 4, !tbaa !5
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror(i32 noundef %851, ptr noundef @.str.24)
  %853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror_debug(i32 noundef %854, ptr noundef @.str.24)
  %856 = call ptr @__errno_location() #12
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @strerror(i32 noundef %857) #11
  %859 = call ptr @__errno_location() #12
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %848, ptr noundef @.str.25, i32 noundef %849, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 76, ptr noundef %852, ptr noundef %855, ptr noundef %858, i32 noundef %860) #11
  br label %862

862:                                              ; preds = %845, %828
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %863

863:                                              ; preds = %862
  br label %864

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

865:                                              ; No predecessors!
  br label %866

866:                                              ; preds = %865
  br label %867

867:                                              ; preds = %866, %808
  br label %868

868:                                              ; preds = %867
  br label %869

869:                                              ; preds = %868
  call void @llvm.lifetime.start.p0(i64 64, ptr %31) #11
  call void @llvm.memset.p0.i64(ptr align 16 %31, i8 0, i64 64, i1 false)
  %870 = getelementptr inbounds [64 x i8], ptr %31, i32 0, i32 0
  store i8 115, ptr %870, align 16
  %871 = getelementptr inbounds [64 x i8], ptr %31, i32 0, i32 1
  store i8 101, ptr %871, align 1
  %872 = getelementptr inbounds [64 x i8], ptr %31, i32 0, i32 2
  store i8 101, ptr %872, align 2
  %873 = getelementptr inbounds [64 x i8], ptr %31, i32 0, i32 3
  store i8 100, ptr %873, align 1
  %874 = getelementptr inbounds [64 x i8], ptr %31, i32 0, i32 4
  store i8 32, ptr %874, align 4
  %875 = getelementptr inbounds [64 x i8], ptr %31, i32 0, i32 5
  store i8 99, ptr %875, align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #11
  call void @llvm.memset.p0.i64(ptr align 8 %32, i8 0, i64 24, i1 false)
  br label %876

876:                                              ; preds = %869
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr @test_count, align 4, !tbaa !5
  %879 = getelementptr inbounds [64 x i8], ptr %31, i64 0, i64 0
  %880 = call i32 @s2n_blob_init(ptr noundef %32, ptr noundef %879, i32 noundef 64)
  %881 = icmp eq i32 %880, -1
  br i1 %881, label %882, label %935

882:                                              ; preds = %876
  br label %883

883:                                              ; preds = %882
  br label %884

884:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %885 = call ptr @__errno_location() #12
  %886 = load i32, ptr %885, align 4, !tbaa !5
  store i32 %886, ptr %33, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = call i32 @s2n_print_stacktrace(ptr noundef %887)
  %889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %890 = trunc i8 %889 to i1
  br i1 %890, label %891, label %913

891:                                              ; preds = %884
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = call i32 @fileno(ptr noundef %892) #11
  %894 = call i32 @isatty(i32 noundef %893) #11
  %895 = icmp ne i32 %894, 0
  br i1 %895, label %896, label %913

896:                                              ; preds = %891
  %897 = load i32, ptr %33, align 4, !tbaa !5
  %898 = call ptr @__errno_location() #12
  store i32 %897, ptr %898, align 4, !tbaa !5
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror(i32 noundef %902, ptr noundef @.str.24)
  %904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror_debug(i32 noundef %905, ptr noundef @.str.24)
  %907 = call ptr @__errno_location() #12
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call ptr @strerror(i32 noundef %908) #11
  %910 = call ptr @__errno_location() #12
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %899, ptr noundef @.str.22, i32 noundef %900, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 80, ptr noundef %903, ptr noundef %906, ptr noundef %909, i32 noundef %911) #11
  br label %930

913:                                              ; preds = %891, %884
  %914 = load i32, ptr %33, align 4, !tbaa !5
  %915 = call ptr @__errno_location() #12
  store i32 %914, ptr %915, align 4, !tbaa !5
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror(i32 noundef %919, ptr noundef @.str.24)
  %921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @s2n_strerror_debug(i32 noundef %922, ptr noundef @.str.24)
  %924 = call ptr @__errno_location() #12
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @strerror(i32 noundef %925) #11
  %927 = call ptr @__errno_location() #12
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %916, ptr noundef @.str.25, i32 noundef %917, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 80, ptr noundef %920, ptr noundef %923, ptr noundef %926, i32 noundef %928) #11
  br label %930

930:                                              ; preds = %913, %896
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %931

931:                                              ; preds = %930
  br label %932

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

933:                                              ; No predecessors!
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934, %876
  br label %936

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  %938 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %938, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #11
  store i64 64, ptr %35, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 64, ptr %36) #11
  call void @llvm.memset.p0.i64(ptr align 16 %36, i8 0, i64 64, i1 false)
  br label %939

939:                                              ; preds = %937
  %940 = load i64, ptr %35, align 8, !tbaa !15
  %941 = icmp ule i64 %940, 64
  br i1 %941, label %975, label %942

942:                                              ; preds = %939
  br label %943

943:                                              ; preds = %942
  br label %944

944:                                              ; preds = %943
  %945 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %946 = getelementptr inbounds %struct.s2n_debug_info, ptr %945, i32 0, i32 0
  store ptr @.str.38, ptr %946, align 8, !tbaa !17
  %947 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %948 = getelementptr inbounds %struct.s2n_debug_info, ptr %947, i32 0, i32 0
  %949 = load ptr, ptr %948, align 8, !tbaa !17
  %950 = getelementptr inbounds i8, ptr %949, i64 21
  %951 = call ptr @strrchr(ptr noundef %950, i32 noundef 47) #14
  %952 = icmp ne ptr %951, null
  br i1 %952, label %953, label %960

953:                                              ; preds = %944
  %954 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %955 = getelementptr inbounds %struct.s2n_debug_info, ptr %954, i32 0, i32 0
  %956 = load ptr, ptr %955, align 8, !tbaa !17
  %957 = getelementptr inbounds i8, ptr %956, i64 21
  %958 = call ptr @strrchr(ptr noundef %957, i32 noundef 47) #14
  %959 = getelementptr inbounds i8, ptr %958, i64 1
  br label %965

960:                                              ; preds = %944
  %961 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %962 = getelementptr inbounds %struct.s2n_debug_info, ptr %961, i32 0, i32 0
  %963 = load ptr, ptr %962, align 8, !tbaa !17
  %964 = getelementptr inbounds i8, ptr %963, i64 21
  br label %965

965:                                              ; preds = %960, %953
  %966 = phi ptr [ %959, %953 ], [ %964, %960 ]
  %967 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %968 = getelementptr inbounds %struct.s2n_debug_info, ptr %967, i32 0, i32 1
  store ptr %966, ptr %968, align 8, !tbaa !19
  %969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %969, align 4, !tbaa !5
  %970 = call i32 @s2n_calculate_stacktrace()
  br label %971

971:                                              ; preds = %965
  br label %972

972:                                              ; preds = %971
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2300

973:                                              ; No predecessors!
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974, %939
  br label %976

976:                                              ; preds = %975
  br label %977

977:                                              ; preds = %976
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #11
  call void @llvm.memset.p0.i64(ptr align 8 %37, i8 0, i64 24, i1 false)
  br label %978

978:                                              ; preds = %977
  %979 = getelementptr inbounds [64 x i8], ptr %36, i64 0, i64 0
  %980 = load i64, ptr %35, align 8, !tbaa !15
  %981 = trunc i64 %980 to i32
  %982 = call i32 @s2n_blob_init(ptr noundef %37, ptr noundef %979, i32 noundef %981)
  %983 = icmp sgt i32 %982, -1
  br i1 %983, label %985, label %984

984:                                              ; preds = %978
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2299

985:                                              ; preds = %978
  br label %986

986:                                              ; preds = %985
  br label %987

987:                                              ; preds = %986
  br label %988

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %988
  br label %990

990:                                              ; preds = %989
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = add nsw i32 %991, 1
  store i32 %992, ptr @test_count, align 4, !tbaa !5
  %993 = call i32 @s2n_prf(ptr noundef null, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef %29, ptr noundef %32, ptr noundef %37)
  %994 = icmp eq i32 %993, -1
  br i1 %994, label %1048, label %995

995:                                              ; preds = %990
  br label %996

996:                                              ; preds = %995
  br label %997

997:                                              ; preds = %996
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %998 = call ptr @__errno_location() #12
  %999 = load i32, ptr %998, align 4, !tbaa !5
  store i32 %999, ptr %38, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = call i32 @s2n_print_stacktrace(ptr noundef %1000)
  %1002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1003 = trunc i8 %1002 to i1
  br i1 %1003, label %1004, label %1026

1004:                                             ; preds = %997
  %1005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1006 = call i32 @fileno(ptr noundef %1005) #11
  %1007 = call i32 @isatty(i32 noundef %1006) #11
  %1008 = icmp ne i32 %1007, 0
  br i1 %1008, label %1009, label %1026

1009:                                             ; preds = %1004
  %1010 = load i32, ptr %38, align 4, !tbaa !5
  %1011 = call ptr @__errno_location() #12
  store i32 %1010, ptr %1011, align 4, !tbaa !5
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = load i32, ptr @test_count, align 4, !tbaa !5
  %1014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1015 = load i32, ptr %1014, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror(i32 noundef %1015, ptr noundef @.str.24)
  %1017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror_debug(i32 noundef %1018, ptr noundef @.str.24)
  %1020 = call ptr @__errno_location() #12
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = call ptr @strerror(i32 noundef %1021) #11
  %1023 = call ptr @__errno_location() #12
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1012, ptr noundef @.str.22, i32 noundef %1013, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 89, ptr noundef %1016, ptr noundef %1019, ptr noundef %1022, i32 noundef %1024) #11
  br label %1043

1026:                                             ; preds = %1004, %997
  %1027 = load i32, ptr %38, align 4, !tbaa !5
  %1028 = call ptr @__errno_location() #12
  store i32 %1027, ptr %1028, align 4, !tbaa !5
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call ptr @s2n_strerror(i32 noundef %1032, ptr noundef @.str.24)
  %1034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call ptr @s2n_strerror_debug(i32 noundef %1035, ptr noundef @.str.24)
  %1037 = call ptr @__errno_location() #12
  %1038 = load i32, ptr %1037, align 4, !tbaa !5
  %1039 = call ptr @strerror(i32 noundef %1038) #11
  %1040 = call ptr @__errno_location() #12
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1029, ptr noundef @.str.25, i32 noundef %1030, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 89, ptr noundef %1033, ptr noundef %1036, ptr noundef %1039, i32 noundef %1041) #11
  br label %1043

1043:                                             ; preds = %1026, %1009
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1044

1044:                                             ; preds = %1043
  br label %1045

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

1046:                                             ; No predecessors!
  br label %1047

1047:                                             ; preds = %1046
  br label %1048

1048:                                             ; preds = %1047, %990
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050
  %1052 = load i32, ptr @test_count, align 4, !tbaa !5
  %1053 = add nsw i32 %1052, 1
  store i32 %1053, ptr @test_count, align 4, !tbaa !5
  %1054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = icmp eq i32 %1055, 402653193
  br i1 %1056, label %1110, label %1057

1057:                                             ; preds = %1051
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

1059:                                             ; preds = %1058
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1060 = call ptr @__errno_location() #12
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  store i32 %1061, ptr %39, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = call i32 @s2n_print_stacktrace(ptr noundef %1062)
  %1064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1065 = trunc i8 %1064 to i1
  br i1 %1065, label %1066, label %1088

1066:                                             ; preds = %1059
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = call i32 @fileno(ptr noundef %1067) #11
  %1069 = call i32 @isatty(i32 noundef %1068) #11
  %1070 = icmp ne i32 %1069, 0
  br i1 %1070, label %1071, label %1088

1071:                                             ; preds = %1066
  %1072 = load i32, ptr %39, align 4, !tbaa !5
  %1073 = call ptr @__errno_location() #12
  store i32 %1072, ptr %1073, align 4, !tbaa !5
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = load i32, ptr @test_count, align 4, !tbaa !5
  %1076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror(i32 noundef %1077, ptr noundef @.str.24)
  %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_debug(i32 noundef %1080, ptr noundef @.str.24)
  %1082 = call ptr @__errno_location() #12
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = call ptr @strerror(i32 noundef %1083) #11
  %1085 = call ptr @__errno_location() #12
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1074, ptr noundef @.str.22, i32 noundef %1075, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 89, ptr noundef %1078, ptr noundef %1081, ptr noundef %1084, i32 noundef %1086) #11
  br label %1105

1088:                                             ; preds = %1066, %1059
  %1089 = load i32, ptr %39, align 4, !tbaa !5
  %1090 = call ptr @__errno_location() #12
  store i32 %1089, ptr %1090, align 4, !tbaa !5
  %1091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1092 = load i32, ptr @test_count, align 4, !tbaa !5
  %1093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror(i32 noundef %1094, ptr noundef @.str.24)
  %1096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror_debug(i32 noundef %1097, ptr noundef @.str.24)
  %1099 = call ptr @__errno_location() #12
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call ptr @strerror(i32 noundef %1100) #11
  %1102 = call ptr @__errno_location() #12
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  %1104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1091, ptr noundef @.str.25, i32 noundef %1092, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 89, ptr noundef %1095, ptr noundef %1098, ptr noundef %1101, i32 noundef %1103) #11
  br label %1105

1105:                                             ; preds = %1088, %1071
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

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

1108:                                             ; No predecessors!
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

1110:                                             ; preds = %1109, %1051
  br label %1111

1111:                                             ; preds = %1110
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = add nsw i32 %1114, 1
  store i32 %1115, ptr @test_count, align 4, !tbaa !5
  %1116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror_debug(i32 noundef %1117, ptr noundef @.str.24)
  %1119 = icmp eq ptr %1118, null
  br i1 %1119, label %1120, label %1173

1120:                                             ; preds = %1113
  br label %1121

1121:                                             ; preds = %1120
  br label %1122

1122:                                             ; preds = %1121
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1123 = call ptr @__errno_location() #12
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  store i32 %1124, ptr %40, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @s2n_print_stacktrace(ptr noundef %1125)
  %1127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1128 = trunc i8 %1127 to i1
  br i1 %1128, label %1129, label %1151

1129:                                             ; preds = %1122
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @fileno(ptr noundef %1130) #11
  %1132 = call i32 @isatty(i32 noundef %1131) #11
  %1133 = icmp ne i32 %1132, 0
  br i1 %1133, label %1134, label %1151

1134:                                             ; preds = %1129
  %1135 = load i32, ptr %40, align 4, !tbaa !5
  %1136 = call ptr @__errno_location() #12
  store i32 %1135, ptr %1136, align 4, !tbaa !5
  %1137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1138 = load i32, ptr @test_count, align 4, !tbaa !5
  %1139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror(i32 noundef %1140, ptr noundef @.str.24)
  %1142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror_debug(i32 noundef %1143, ptr noundef @.str.24)
  %1145 = call ptr @__errno_location() #12
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call ptr @strerror(i32 noundef %1146) #11
  %1148 = call ptr @__errno_location() #12
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1137, ptr noundef @.str.22, i32 noundef %1138, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 89, ptr noundef %1141, ptr noundef %1144, ptr noundef %1147, i32 noundef %1149) #11
  br label %1168

1151:                                             ; preds = %1129, %1122
  %1152 = load i32, ptr %40, align 4, !tbaa !5
  %1153 = call ptr @__errno_location() #12
  store i32 %1152, ptr %1153, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror(i32 noundef %1157, ptr noundef @.str.24)
  %1159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror_debug(i32 noundef %1160, ptr noundef @.str.24)
  %1162 = call ptr @__errno_location() #12
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @strerror(i32 noundef %1163) #11
  %1165 = call ptr @__errno_location() #12
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1154, ptr noundef @.str.25, i32 noundef %1155, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 89, ptr noundef %1158, ptr noundef %1161, ptr noundef %1164, i32 noundef %1166) #11
  br label %1168

1168:                                             ; preds = %1151, %1134
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

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

1171:                                             ; No predecessors!
  br label %1172

1172:                                             ; preds = %1171
  br label %1173

1173:                                             ; preds = %1172, %1113
  br label %1174

1174:                                             ; preds = %1173
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

1178:                                             ; preds = %1177
  %1179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1179, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1180 = call ptr @__errno_location() #12
  store i32 0, ptr %1180, align 4, !tbaa !5
  br label %1181

1181:                                             ; preds = %1178
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

1183:                                             ; preds = %1182
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

1185:                                             ; preds = %1184
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

1187:                                             ; preds = %1186
  %1188 = load i32, ptr @test_count, align 4, !tbaa !5
  %1189 = add nsw i32 %1188, 1
  store i32 %1189, ptr @test_count, align 4, !tbaa !5
  %1190 = load ptr, ptr %34, align 8, !tbaa !9
  %1191 = call i32 @s2n_prf(ptr noundef %1190, ptr noundef null, ptr noundef %23, ptr noundef %26, ptr noundef %29, ptr noundef %32, ptr noundef %37)
  %1192 = icmp eq i32 %1191, -1
  br i1 %1192, label %1246, label %1193

1193:                                             ; preds = %1187
  br label %1194

1194:                                             ; preds = %1193
  br label %1195

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

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

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

1224:                                             ; preds = %1202, %1195
  %1225 = load i32, ptr %41, align 4, !tbaa !5
  %1226 = call ptr @__errno_location() #12
  store i32 %1225, ptr %1226, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = load i32, ptr @test_count, align 4, !tbaa !5
  %1229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror(i32 noundef %1230, ptr noundef @.str.24)
  %1232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1233 = load i32, ptr %1232, align 4, !tbaa !5
  %1234 = call ptr @s2n_strerror_debug(i32 noundef %1233, ptr noundef @.str.24)
  %1235 = call ptr @__errno_location() #12
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call ptr @strerror(i32 noundef %1236) #11
  %1238 = call ptr @__errno_location() #12
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1227, ptr noundef @.str.25, i32 noundef %1228, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 91, ptr noundef %1231, ptr noundef %1234, ptr noundef %1237, i32 noundef %1239) #11
  br label %1241

1241:                                             ; preds = %1224, %1207
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

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

1244:                                             ; No predecessors!
  br label %1245

1245:                                             ; preds = %1244
  br label %1246

1246:                                             ; preds = %1245, %1187
  br label %1247

1247:                                             ; preds = %1246
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = add nsw i32 %1250, 1
  store i32 %1251, ptr @test_count, align 4, !tbaa !5
  %1252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = icmp eq i32 %1253, 402653193
  br i1 %1254, label %1308, label %1255

1255:                                             ; preds = %1249
  br label %1256

1256:                                             ; preds = %1255
  br label %1257

1257:                                             ; preds = %1256
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1258 = call ptr @__errno_location() #12
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  store i32 %1259, ptr %42, align 4, !tbaa !5
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = call i32 @s2n_print_stacktrace(ptr noundef %1260)
  %1262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1263 = trunc i8 %1262 to i1
  br i1 %1263, label %1264, label %1286

1264:                                             ; preds = %1257
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = call i32 @fileno(ptr noundef %1265) #11
  %1267 = call i32 @isatty(i32 noundef %1266) #11
  %1268 = icmp ne i32 %1267, 0
  br i1 %1268, label %1269, label %1286

1269:                                             ; preds = %1264
  %1270 = load i32, ptr %42, align 4, !tbaa !5
  %1271 = call ptr @__errno_location() #12
  store i32 %1270, ptr %1271, align 4, !tbaa !5
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = load i32, ptr @test_count, align 4, !tbaa !5
  %1274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1275 = load i32, ptr %1274, align 4, !tbaa !5
  %1276 = call ptr @s2n_strerror(i32 noundef %1275, ptr noundef @.str.24)
  %1277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror_debug(i32 noundef %1278, ptr noundef @.str.24)
  %1280 = call ptr @__errno_location() #12
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = call ptr @strerror(i32 noundef %1281) #11
  %1283 = call ptr @__errno_location() #12
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1272, ptr noundef @.str.22, i32 noundef %1273, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 91, ptr noundef %1276, ptr noundef %1279, ptr noundef %1282, i32 noundef %1284) #11
  br label %1303

1286:                                             ; preds = %1264, %1257
  %1287 = load i32, ptr %42, align 4, !tbaa !5
  %1288 = call ptr @__errno_location() #12
  store i32 %1287, ptr %1288, align 4, !tbaa !5
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = call ptr @s2n_strerror(i32 noundef %1292, ptr noundef @.str.24)
  %1294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror_debug(i32 noundef %1295, ptr noundef @.str.24)
  %1297 = call ptr @__errno_location() #12
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = call ptr @strerror(i32 noundef %1298) #11
  %1300 = call ptr @__errno_location() #12
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1289, ptr noundef @.str.25, i32 noundef %1290, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 91, ptr noundef %1293, ptr noundef %1296, ptr noundef %1299, i32 noundef %1301) #11
  br label %1303

1303:                                             ; preds = %1286, %1269
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

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

1306:                                             ; No predecessors!
  br label %1307

1307:                                             ; preds = %1306
  br label %1308

1308:                                             ; preds = %1307, %1249
  br label %1309

1309:                                             ; preds = %1308
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  %1312 = load i32, ptr @test_count, align 4, !tbaa !5
  %1313 = add nsw i32 %1312, 1
  store i32 %1313, 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_debug(i32 noundef %1315, ptr noundef @.str.24)
  %1317 = icmp eq ptr %1316, null
  br i1 %1317, label %1318, label %1371

1318:                                             ; preds = %1311
  br label %1319

1319:                                             ; preds = %1318
  br label %1320

1320:                                             ; preds = %1319
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1321 = call ptr @__errno_location() #12
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  store i32 %1322, ptr %43, align 4, !tbaa !5
  %1323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1324 = call i32 @s2n_print_stacktrace(ptr noundef %1323)
  %1325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1326 = trunc i8 %1325 to i1
  br i1 %1326, label %1327, label %1349

1327:                                             ; preds = %1320
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = call i32 @fileno(ptr noundef %1328) #11
  %1330 = call i32 @isatty(i32 noundef %1329) #11
  %1331 = icmp ne i32 %1330, 0
  br i1 %1331, label %1332, label %1349

1332:                                             ; preds = %1327
  %1333 = load i32, ptr %43, align 4, !tbaa !5
  %1334 = call ptr @__errno_location() #12
  store i32 %1333, ptr %1334, align 4, !tbaa !5
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror(i32 noundef %1338, ptr noundef @.str.24)
  %1340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror_debug(i32 noundef %1341, ptr noundef @.str.24)
  %1343 = call ptr @__errno_location() #12
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = call ptr @strerror(i32 noundef %1344) #11
  %1346 = call ptr @__errno_location() #12
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1335, ptr noundef @.str.22, i32 noundef %1336, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 91, ptr noundef %1339, ptr noundef %1342, ptr noundef %1345, i32 noundef %1347) #11
  br label %1366

1349:                                             ; preds = %1327, %1320
  %1350 = load i32, ptr %43, align 4, !tbaa !5
  %1351 = call ptr @__errno_location() #12
  store i32 %1350, ptr %1351, align 4, !tbaa !5
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = load i32, ptr @test_count, align 4, !tbaa !5
  %1354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1355 = load i32, ptr %1354, align 4, !tbaa !5
  %1356 = call ptr @s2n_strerror(i32 noundef %1355, ptr noundef @.str.24)
  %1357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1358 = load i32, ptr %1357, align 4, !tbaa !5
  %1359 = call ptr @s2n_strerror_debug(i32 noundef %1358, ptr noundef @.str.24)
  %1360 = call ptr @__errno_location() #12
  %1361 = load i32, ptr %1360, align 4, !tbaa !5
  %1362 = call ptr @strerror(i32 noundef %1361) #11
  %1363 = call ptr @__errno_location() #12
  %1364 = load i32, ptr %1363, align 4, !tbaa !5
  %1365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1352, ptr noundef @.str.25, i32 noundef %1353, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 91, ptr noundef %1356, ptr noundef %1359, ptr noundef %1362, i32 noundef %1364) #11
  br label %1366

1366:                                             ; preds = %1349, %1332
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1367

1367:                                             ; preds = %1366
  br label %1368

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

1369:                                             ; No predecessors!
  br label %1370

1370:                                             ; preds = %1369
  br label %1371

1371:                                             ; preds = %1370, %1311
  br label %1372

1372:                                             ; preds = %1371
  br label %1373

1373:                                             ; preds = %1372
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375
  %1377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1377, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1378 = call ptr @__errno_location() #12
  store i32 0, ptr %1378, align 4, !tbaa !5
  br label %1379

1379:                                             ; preds = %1376
  br label %1380

1380:                                             ; preds = %1379
  br label %1381

1381:                                             ; preds = %1380
  br label %1382

1382:                                             ; preds = %1381
  br label %1383

1383:                                             ; preds = %1382
  br label %1384

1384:                                             ; preds = %1383
  br label %1385

1385:                                             ; preds = %1384
  %1386 = load i32, ptr @test_count, align 4, !tbaa !5
  %1387 = add nsw i32 %1386, 1
  store i32 %1387, ptr @test_count, align 4, !tbaa !5
  %1388 = load ptr, ptr %34, align 8, !tbaa !9
  %1389 = call i32 @s2n_prf(ptr noundef %1388, ptr noundef %20, ptr noundef null, ptr noundef %26, ptr noundef %29, ptr noundef %32, ptr noundef %37)
  %1390 = icmp eq i32 %1389, -1
  br i1 %1390, label %1444, label %1391

1391:                                             ; preds = %1385
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

1393:                                             ; preds = %1392
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1394 = call ptr @__errno_location() #12
  %1395 = load i32, ptr %1394, align 4, !tbaa !5
  store i32 %1395, ptr %44, align 4, !tbaa !5
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = call i32 @s2n_print_stacktrace(ptr noundef %1396)
  %1398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1399 = trunc i8 %1398 to i1
  br i1 %1399, label %1400, label %1422

1400:                                             ; preds = %1393
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = call i32 @fileno(ptr noundef %1401) #11
  %1403 = call i32 @isatty(i32 noundef %1402) #11
  %1404 = icmp ne i32 %1403, 0
  br i1 %1404, label %1405, label %1422

1405:                                             ; preds = %1400
  %1406 = load i32, ptr %44, align 4, !tbaa !5
  %1407 = call ptr @__errno_location() #12
  store i32 %1406, ptr %1407, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror(i32 noundef %1411, ptr noundef @.str.24)
  %1413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call ptr @s2n_strerror_debug(i32 noundef %1414, ptr noundef @.str.24)
  %1416 = call ptr @__errno_location() #12
  %1417 = load i32, ptr %1416, align 4, !tbaa !5
  %1418 = call ptr @strerror(i32 noundef %1417) #11
  %1419 = call ptr @__errno_location() #12
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1408, ptr noundef @.str.22, i32 noundef %1409, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 93, ptr noundef %1412, ptr noundef %1415, ptr noundef %1418, i32 noundef %1420) #11
  br label %1439

1422:                                             ; preds = %1400, %1393
  %1423 = load i32, ptr %44, align 4, !tbaa !5
  %1424 = call ptr @__errno_location() #12
  store i32 %1423, ptr %1424, align 4, !tbaa !5
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = load i32, ptr @test_count, align 4, !tbaa !5
  %1427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror(i32 noundef %1428, ptr noundef @.str.24)
  %1430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror_debug(i32 noundef %1431, ptr noundef @.str.24)
  %1433 = call ptr @__errno_location() #12
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = call ptr @strerror(i32 noundef %1434) #11
  %1436 = call ptr @__errno_location() #12
  %1437 = load i32, ptr %1436, align 4, !tbaa !5
  %1438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1425, ptr noundef @.str.25, i32 noundef %1426, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 93, ptr noundef %1429, ptr noundef %1432, ptr noundef %1435, i32 noundef %1437) #11
  br label %1439

1439:                                             ; preds = %1422, %1405
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1440

1440:                                             ; preds = %1439
  br label %1441

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

1442:                                             ; No predecessors!
  br label %1443

1443:                                             ; preds = %1442
  br label %1444

1444:                                             ; preds = %1443, %1385
  br label %1445

1445:                                             ; preds = %1444
  br label %1446

1446:                                             ; preds = %1445
  br label %1447

1447:                                             ; preds = %1446
  %1448 = load i32, ptr @test_count, align 4, !tbaa !5
  %1449 = add nsw i32 %1448, 1
  store i32 %1449, ptr @test_count, align 4, !tbaa !5
  %1450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = icmp eq i32 %1451, 402653193
  br i1 %1452, label %1506, label %1453

1453:                                             ; preds = %1447
  br label %1454

1454:                                             ; preds = %1453
  br label %1455

1455:                                             ; preds = %1454
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %1456 = call ptr @__errno_location() #12
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  store i32 %1457, ptr %45, align 4, !tbaa !5
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = call i32 @s2n_print_stacktrace(ptr noundef %1458)
  %1460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1461 = trunc i8 %1460 to i1
  br i1 %1461, label %1462, label %1484

1462:                                             ; preds = %1455
  %1463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1464 = call i32 @fileno(ptr noundef %1463) #11
  %1465 = call i32 @isatty(i32 noundef %1464) #11
  %1466 = icmp ne i32 %1465, 0
  br i1 %1466, label %1467, label %1484

1467:                                             ; preds = %1462
  %1468 = load i32, ptr %45, align 4, !tbaa !5
  %1469 = call ptr @__errno_location() #12
  store i32 %1468, ptr %1469, align 4, !tbaa !5
  %1470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1471 = load i32, ptr @test_count, align 4, !tbaa !5
  %1472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror(i32 noundef %1473, ptr noundef @.str.24)
  %1475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call ptr @s2n_strerror_debug(i32 noundef %1476, ptr noundef @.str.24)
  %1478 = call ptr @__errno_location() #12
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call ptr @strerror(i32 noundef %1479) #11
  %1481 = call ptr @__errno_location() #12
  %1482 = load i32, ptr %1481, align 4, !tbaa !5
  %1483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1470, ptr noundef @.str.22, i32 noundef %1471, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 93, ptr noundef %1474, ptr noundef %1477, ptr noundef %1480, i32 noundef %1482) #11
  br label %1501

1484:                                             ; preds = %1462, %1455
  %1485 = load i32, ptr %45, align 4, !tbaa !5
  %1486 = call ptr @__errno_location() #12
  store i32 %1485, ptr %1486, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef @.str.24)
  %1492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror_debug(i32 noundef %1493, ptr noundef @.str.24)
  %1495 = call ptr @__errno_location() #12
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @strerror(i32 noundef %1496) #11
  %1498 = call ptr @__errno_location() #12
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1487, ptr noundef @.str.25, i32 noundef %1488, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 93, ptr noundef %1491, ptr noundef %1494, ptr noundef %1497, i32 noundef %1499) #11
  br label %1501

1501:                                             ; preds = %1484, %1467
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1502

1502:                                             ; preds = %1501
  br label %1503

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

1504:                                             ; No predecessors!
  br label %1505

1505:                                             ; preds = %1504
  br label %1506

1506:                                             ; preds = %1505, %1447
  br label %1507

1507:                                             ; preds = %1506
  br label %1508

1508:                                             ; preds = %1507
  br label %1509

1509:                                             ; preds = %1508
  %1510 = load i32, ptr @test_count, align 4, !tbaa !5
  %1511 = add nsw i32 %1510, 1
  store i32 %1511, ptr @test_count, align 4, !tbaa !5
  %1512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror_debug(i32 noundef %1513, ptr noundef @.str.24)
  %1515 = icmp eq ptr %1514, null
  br i1 %1515, label %1516, label %1569

1516:                                             ; preds = %1509
  br label %1517

1517:                                             ; preds = %1516
  br label %1518

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

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

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

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

1564:                                             ; preds = %1547, %1530
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1565

1565:                                             ; preds = %1564
  br label %1566

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

1567:                                             ; No predecessors!
  br label %1568

1568:                                             ; preds = %1567
  br label %1569

1569:                                             ; preds = %1568, %1509
  br label %1570

1570:                                             ; preds = %1569
  br label %1571

1571:                                             ; preds = %1570
  br label %1572

1572:                                             ; preds = %1571
  br label %1573

1573:                                             ; preds = %1572
  br label %1574

1574:                                             ; preds = %1573
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1575, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1576 = call ptr @__errno_location() #12
  store i32 0, ptr %1576, align 4, !tbaa !5
  br label %1577

1577:                                             ; preds = %1574
  br label %1578

1578:                                             ; preds = %1577
  br label %1579

1579:                                             ; preds = %1578
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

1583:                                             ; preds = %1582
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = add nsw i32 %1584, 1
  store i32 %1585, ptr @test_count, align 4, !tbaa !5
  %1586 = load ptr, ptr %34, align 8, !tbaa !9
  %1587 = call i32 @s2n_prf(ptr noundef %1586, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef %29, ptr noundef %32, ptr noundef null)
  %1588 = icmp eq i32 %1587, -1
  br i1 %1588, label %1642, label %1589

1589:                                             ; preds = %1583
  br label %1590

1590:                                             ; preds = %1589
  br label %1591

1591:                                             ; preds = %1590
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %1592 = call ptr @__errno_location() #12
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  store i32 %1593, ptr %47, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = call i32 @s2n_print_stacktrace(ptr noundef %1594)
  %1596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1597 = trunc i8 %1596 to i1
  br i1 %1597, label %1598, label %1620

1598:                                             ; preds = %1591
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = call i32 @fileno(ptr noundef %1599) #11
  %1601 = call i32 @isatty(i32 noundef %1600) #11
  %1602 = icmp ne i32 %1601, 0
  br i1 %1602, label %1603, label %1620

1603:                                             ; preds = %1598
  %1604 = load i32, ptr %47, align 4, !tbaa !5
  %1605 = call ptr @__errno_location() #12
  store i32 %1604, ptr %1605, align 4, !tbaa !5
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = load i32, ptr @test_count, align 4, !tbaa !5
  %1608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call ptr @s2n_strerror(i32 noundef %1609, ptr noundef @.str.24)
  %1611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror_debug(i32 noundef %1612, ptr noundef @.str.24)
  %1614 = call ptr @__errno_location() #12
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  %1616 = call ptr @strerror(i32 noundef %1615) #11
  %1617 = call ptr @__errno_location() #12
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  %1619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1606, ptr noundef @.str.22, i32 noundef %1607, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 95, ptr noundef %1610, ptr noundef %1613, ptr noundef %1616, i32 noundef %1618) #11
  br label %1637

1620:                                             ; preds = %1598, %1591
  %1621 = load i32, ptr %47, align 4, !tbaa !5
  %1622 = call ptr @__errno_location() #12
  store i32 %1621, ptr %1622, align 4, !tbaa !5
  %1623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1624 = load i32, ptr @test_count, align 4, !tbaa !5
  %1625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call ptr @s2n_strerror(i32 noundef %1626, ptr noundef @.str.24)
  %1628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror_debug(i32 noundef %1629, ptr noundef @.str.24)
  %1631 = call ptr @__errno_location() #12
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call ptr @strerror(i32 noundef %1632) #11
  %1634 = call ptr @__errno_location() #12
  %1635 = load i32, ptr %1634, align 4, !tbaa !5
  %1636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1623, ptr noundef @.str.25, i32 noundef %1624, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 95, ptr noundef %1627, ptr noundef %1630, ptr noundef %1633, i32 noundef %1635) #11
  br label %1637

1637:                                             ; preds = %1620, %1603
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1638

1638:                                             ; preds = %1637
  br label %1639

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

1640:                                             ; No predecessors!
  br label %1641

1641:                                             ; preds = %1640
  br label %1642

1642:                                             ; preds = %1641, %1583
  br label %1643

1643:                                             ; preds = %1642
  br label %1644

1644:                                             ; preds = %1643
  br label %1645

1645:                                             ; preds = %1644
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = add nsw i32 %1646, 1
  store i32 %1647, ptr @test_count, align 4, !tbaa !5
  %1648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = icmp eq i32 %1649, 402653193
  br i1 %1650, label %1704, label %1651

1651:                                             ; preds = %1645
  br label %1652

1652:                                             ; preds = %1651
  br label %1653

1653:                                             ; preds = %1652
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1654 = call ptr @__errno_location() #12
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  store i32 %1655, ptr %48, align 4, !tbaa !5
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = call i32 @s2n_print_stacktrace(ptr noundef %1656)
  %1658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1659 = trunc i8 %1658 to i1
  br i1 %1659, label %1660, label %1682

1660:                                             ; preds = %1653
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = call i32 @fileno(ptr noundef %1661) #11
  %1663 = call i32 @isatty(i32 noundef %1662) #11
  %1664 = icmp ne i32 %1663, 0
  br i1 %1664, label %1665, label %1682

1665:                                             ; preds = %1660
  %1666 = load i32, ptr %48, align 4, !tbaa !5
  %1667 = call ptr @__errno_location() #12
  store i32 %1666, ptr %1667, align 4, !tbaa !5
  %1668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1669 = load i32, ptr @test_count, align 4, !tbaa !5
  %1670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @s2n_strerror(i32 noundef %1671, ptr noundef @.str.24)
  %1673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call ptr @s2n_strerror_debug(i32 noundef %1674, ptr noundef @.str.24)
  %1676 = call ptr @__errno_location() #12
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = call ptr @strerror(i32 noundef %1677) #11
  %1679 = call ptr @__errno_location() #12
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  %1681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1668, ptr noundef @.str.22, i32 noundef %1669, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 95, ptr noundef %1672, ptr noundef %1675, ptr noundef %1678, i32 noundef %1680) #11
  br label %1699

1682:                                             ; preds = %1660, %1653
  %1683 = load i32, ptr %48, align 4, !tbaa !5
  %1684 = call ptr @__errno_location() #12
  store i32 %1683, ptr %1684, align 4, !tbaa !5
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = load i32, ptr @test_count, align 4, !tbaa !5
  %1687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1688 = load i32, ptr %1687, align 4, !tbaa !5
  %1689 = call ptr @s2n_strerror(i32 noundef %1688, ptr noundef @.str.24)
  %1690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call ptr @s2n_strerror_debug(i32 noundef %1691, ptr noundef @.str.24)
  %1693 = call ptr @__errno_location() #12
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  %1695 = call ptr @strerror(i32 noundef %1694) #11
  %1696 = call ptr @__errno_location() #12
  %1697 = load i32, ptr %1696, align 4, !tbaa !5
  %1698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1685, ptr noundef @.str.25, i32 noundef %1686, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 95, ptr noundef %1689, ptr noundef %1692, ptr noundef %1695, i32 noundef %1697) #11
  br label %1699

1699:                                             ; preds = %1682, %1665
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1700

1700:                                             ; preds = %1699
  br label %1701

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

1702:                                             ; No predecessors!
  br label %1703

1703:                                             ; preds = %1702
  br label %1704

1704:                                             ; preds = %1703, %1645
  br label %1705

1705:                                             ; preds = %1704
  br label %1706

1706:                                             ; preds = %1705
  br label %1707

1707:                                             ; preds = %1706
  %1708 = load i32, ptr @test_count, align 4, !tbaa !5
  %1709 = add nsw i32 %1708, 1
  store i32 %1709, ptr @test_count, align 4, !tbaa !5
  %1710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror_debug(i32 noundef %1711, ptr noundef @.str.24)
  %1713 = icmp eq ptr %1712, null
  br i1 %1713, label %1714, label %1767

1714:                                             ; preds = %1707
  br label %1715

1715:                                             ; preds = %1714
  br label %1716

1716:                                             ; preds = %1715
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1717 = call ptr @__errno_location() #12
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  store i32 %1718, ptr %49, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @s2n_print_stacktrace(ptr noundef %1719)
  %1721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1722 = trunc i8 %1721 to i1
  br i1 %1722, label %1723, label %1745

1723:                                             ; preds = %1716
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @fileno(ptr noundef %1724) #11
  %1726 = call i32 @isatty(i32 noundef %1725) #11
  %1727 = icmp ne i32 %1726, 0
  br i1 %1727, label %1728, label %1745

1728:                                             ; preds = %1723
  %1729 = load i32, ptr %49, align 4, !tbaa !5
  %1730 = call ptr @__errno_location() #12
  store i32 %1729, ptr %1730, align 4, !tbaa !5
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = load i32, ptr @test_count, align 4, !tbaa !5
  %1733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1734 = load i32, ptr %1733, align 4, !tbaa !5
  %1735 = call ptr @s2n_strerror(i32 noundef %1734, ptr noundef @.str.24)
  %1736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror_debug(i32 noundef %1737, ptr noundef @.str.24)
  %1739 = call ptr @__errno_location() #12
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @strerror(i32 noundef %1740) #11
  %1742 = call ptr @__errno_location() #12
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1731, ptr noundef @.str.22, i32 noundef %1732, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 95, ptr noundef %1735, ptr noundef %1738, ptr noundef %1741, i32 noundef %1743) #11
  br label %1762

1745:                                             ; preds = %1723, %1716
  %1746 = load i32, ptr %49, align 4, !tbaa !5
  %1747 = call ptr @__errno_location() #12
  store i32 %1746, ptr %1747, align 4, !tbaa !5
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = load i32, ptr @test_count, align 4, !tbaa !5
  %1750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1751 = load i32, ptr %1750, align 4, !tbaa !5
  %1752 = call ptr @s2n_strerror(i32 noundef %1751, ptr noundef @.str.24)
  %1753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1754 = load i32, ptr %1753, align 4, !tbaa !5
  %1755 = call ptr @s2n_strerror_debug(i32 noundef %1754, ptr noundef @.str.24)
  %1756 = call ptr @__errno_location() #12
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = call ptr @strerror(i32 noundef %1757) #11
  %1759 = call ptr @__errno_location() #12
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1748, ptr noundef @.str.25, i32 noundef %1749, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 95, ptr noundef %1752, ptr noundef %1755, ptr noundef %1758, i32 noundef %1760) #11
  br label %1762

1762:                                             ; preds = %1745, %1728
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1763

1763:                                             ; preds = %1762
  br label %1764

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

1765:                                             ; No predecessors!
  br label %1766

1766:                                             ; preds = %1765
  br label %1767

1767:                                             ; preds = %1766, %1707
  br label %1768

1768:                                             ; preds = %1767
  br label %1769

1769:                                             ; preds = %1768
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

1771:                                             ; preds = %1770
  br label %1772

1772:                                             ; preds = %1771
  %1773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1773, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1774 = call ptr @__errno_location() #12
  store i32 0, ptr %1774, align 4, !tbaa !5
  br label %1775

1775:                                             ; preds = %1772
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777
  br label %1779

1779:                                             ; preds = %1778
  br label %1780

1780:                                             ; preds = %1779
  br label %1781

1781:                                             ; preds = %1780
  %1782 = load i32, ptr @test_count, align 4, !tbaa !5
  %1783 = add nsw i32 %1782, 1
  store i32 %1783, ptr @test_count, align 4, !tbaa !5
  %1784 = load ptr, ptr %34, align 8, !tbaa !9
  %1785 = call i32 @s2n_prf(ptr noundef %1784, ptr noundef %20, ptr noundef %23, ptr noundef null, ptr noundef %29, ptr noundef %32, ptr noundef %37)
  %1786 = icmp eq i32 %1785, -1
  br i1 %1786, label %1840, label %1787

1787:                                             ; preds = %1781
  br label %1788

1788:                                             ; preds = %1787
  br label %1789

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

1796:                                             ; preds = %1789
  %1797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1798 = call i32 @fileno(ptr noundef %1797) #11
  %1799 = call i32 @isatty(i32 noundef %1798) #11
  %1800 = icmp ne i32 %1799, 0
  br i1 %1800, label %1801, label %1818

1801:                                             ; preds = %1796
  %1802 = load i32, ptr %50, align 4, !tbaa !5
  %1803 = call ptr @__errno_location() #12
  store i32 %1802, ptr %1803, align 4, !tbaa !5
  %1804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1805 = load i32, ptr @test_count, align 4, !tbaa !5
  %1806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @s2n_strerror(i32 noundef %1807, ptr noundef @.str.24)
  %1809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @s2n_strerror_debug(i32 noundef %1810, ptr noundef @.str.24)
  %1812 = call ptr @__errno_location() #12
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call ptr @strerror(i32 noundef %1813) #11
  %1815 = call ptr @__errno_location() #12
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1804, ptr noundef @.str.22, i32 noundef %1805, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 99, ptr noundef %1808, ptr noundef %1811, ptr noundef %1814, i32 noundef %1816) #11
  br label %1835

1818:                                             ; preds = %1796, %1789
  %1819 = load i32, ptr %50, align 4, !tbaa !5
  %1820 = call ptr @__errno_location() #12
  store i32 %1819, ptr %1820, align 4, !tbaa !5
  %1821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1822 = load i32, ptr @test_count, align 4, !tbaa !5
  %1823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror(i32 noundef %1824, ptr noundef @.str.24)
  %1826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call ptr @s2n_strerror_debug(i32 noundef %1827, ptr noundef @.str.24)
  %1829 = call ptr @__errno_location() #12
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call ptr @strerror(i32 noundef %1830) #11
  %1832 = call ptr @__errno_location() #12
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1821, ptr noundef @.str.25, i32 noundef %1822, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 99, ptr noundef %1825, ptr noundef %1828, ptr noundef %1831, i32 noundef %1833) #11
  br label %1835

1835:                                             ; preds = %1818, %1801
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %1836

1836:                                             ; preds = %1835
  br label %1837

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

1838:                                             ; No predecessors!
  br label %1839

1839:                                             ; preds = %1838
  br label %1840

1840:                                             ; preds = %1839, %1781
  br label %1841

1841:                                             ; preds = %1840
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = add nsw i32 %1844, 1
  store i32 %1845, ptr @test_count, align 4, !tbaa !5
  %1846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = icmp eq i32 %1847, 402653207
  br i1 %1848, label %1902, label %1849

1849:                                             ; preds = %1843
  br label %1850

1850:                                             ; preds = %1849
  br label %1851

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

1858:                                             ; preds = %1851
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = call i32 @fileno(ptr noundef %1859) #11
  %1861 = call i32 @isatty(i32 noundef %1860) #11
  %1862 = icmp ne i32 %1861, 0
  br i1 %1862, label %1863, label %1880

1863:                                             ; preds = %1858
  %1864 = load i32, ptr %51, align 4, !tbaa !5
  %1865 = call ptr @__errno_location() #12
  store i32 %1864, ptr %1865, align 4, !tbaa !5
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1869, ptr noundef @.str.24)
  %1871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @s2n_strerror_debug(i32 noundef %1872, ptr noundef @.str.24)
  %1874 = call ptr @__errno_location() #12
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #11
  %1877 = call ptr @__errno_location() #12
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1866, ptr noundef @.str.22, i32 noundef %1867, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 99, ptr noundef %1870, ptr noundef %1873, ptr noundef %1876, i32 noundef %1878) #11
  br label %1897

1880:                                             ; preds = %1858, %1851
  %1881 = load i32, ptr %51, align 4, !tbaa !5
  %1882 = call ptr @__errno_location() #12
  store i32 %1881, ptr %1882, align 4, !tbaa !5
  %1883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1884 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1886, ptr noundef @.str.24)
  %1888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @s2n_strerror_debug(i32 noundef %1889, ptr noundef @.str.24)
  %1891 = call ptr @__errno_location() #12
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @strerror(i32 noundef %1892) #11
  %1894 = call ptr @__errno_location() #12
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1883, ptr noundef @.str.25, i32 noundef %1884, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 99, ptr noundef %1887, ptr noundef %1890, ptr noundef %1893, i32 noundef %1895) #11
  br label %1897

1897:                                             ; preds = %1880, %1863
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

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

1900:                                             ; No predecessors!
  br label %1901

1901:                                             ; preds = %1900
  br label %1902

1902:                                             ; preds = %1901, %1843
  br label %1903

1903:                                             ; preds = %1902
  br label %1904

1904:                                             ; preds = %1903
  br label %1905

1905:                                             ; preds = %1904
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = add nsw i32 %1906, 1
  store i32 %1907, ptr @test_count, align 4, !tbaa !5
  %1908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  %1910 = call ptr @s2n_strerror_debug(i32 noundef %1909, ptr noundef @.str.24)
  %1911 = icmp eq ptr %1910, null
  br i1 %1911, label %1912, label %1965

1912:                                             ; preds = %1905
  br label %1913

1913:                                             ; preds = %1912
  br label %1914

1914:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %1915 = call ptr @__errno_location() #12
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  store i32 %1916, ptr %52, align 4, !tbaa !5
  %1917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1918 = call i32 @s2n_print_stacktrace(ptr noundef %1917)
  %1919 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1920 = trunc i8 %1919 to i1
  br i1 %1920, label %1921, label %1943

1921:                                             ; preds = %1914
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = call i32 @fileno(ptr noundef %1922) #11
  %1924 = call i32 @isatty(i32 noundef %1923) #11
  %1925 = icmp ne i32 %1924, 0
  br i1 %1925, label %1926, label %1943

1926:                                             ; preds = %1921
  %1927 = load i32, ptr %52, align 4, !tbaa !5
  %1928 = call ptr @__errno_location() #12
  store i32 %1927, ptr %1928, align 4, !tbaa !5
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = load i32, ptr @test_count, align 4, !tbaa !5
  %1931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1932 = load i32, ptr %1931, align 4, !tbaa !5
  %1933 = call ptr @s2n_strerror(i32 noundef %1932, ptr noundef @.str.24)
  %1934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1935 = load i32, ptr %1934, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror_debug(i32 noundef %1935, ptr noundef @.str.24)
  %1937 = call ptr @__errno_location() #12
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @strerror(i32 noundef %1938) #11
  %1940 = call ptr @__errno_location() #12
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1929, ptr noundef @.str.22, i32 noundef %1930, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 99, ptr noundef %1933, ptr noundef %1936, ptr noundef %1939, i32 noundef %1941) #11
  br label %1960

1943:                                             ; preds = %1921, %1914
  %1944 = load i32, ptr %52, align 4, !tbaa !5
  %1945 = call ptr @__errno_location() #12
  store i32 %1944, ptr %1945, align 4, !tbaa !5
  %1946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1947 = load i32, ptr @test_count, align 4, !tbaa !5
  %1948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = call ptr @s2n_strerror(i32 noundef %1949, ptr noundef @.str.24)
  %1951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror_debug(i32 noundef %1952, ptr noundef @.str.24)
  %1954 = call ptr @__errno_location() #12
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call ptr @strerror(i32 noundef %1955) #11
  %1957 = call ptr @__errno_location() #12
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1946, ptr noundef @.str.25, i32 noundef %1947, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 99, ptr noundef %1950, ptr noundef %1953, ptr noundef %1956, i32 noundef %1958) #11
  br label %1960

1960:                                             ; preds = %1943, %1926
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %1961

1961:                                             ; preds = %1960
  br label %1962

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

1963:                                             ; No predecessors!
  br label %1964

1964:                                             ; preds = %1963
  br label %1965

1965:                                             ; preds = %1964, %1905
  br label %1966

1966:                                             ; preds = %1965
  br label %1967

1967:                                             ; preds = %1966
  br label %1968

1968:                                             ; preds = %1967
  br label %1969

1969:                                             ; preds = %1968
  br label %1970

1970:                                             ; preds = %1969
  %1971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1971, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1972 = call ptr @__errno_location() #12
  store i32 0, ptr %1972, align 4, !tbaa !5
  br label %1973

1973:                                             ; preds = %1970
  br label %1974

1974:                                             ; preds = %1973
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

1976:                                             ; preds = %1975
  br label %1977

1977:                                             ; preds = %1976
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = add nsw i32 %1978, 1
  store i32 %1979, ptr @test_count, align 4, !tbaa !5
  %1980 = load ptr, ptr %34, align 8, !tbaa !9
  %1981 = call i32 @s2n_prf(ptr noundef %1980, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef null, ptr noundef null, ptr noundef %37)
  %1982 = icmp eq i32 %1981, -1
  br i1 %1982, label %1983, label %2036

1983:                                             ; preds = %1977
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

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

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

1997:                                             ; preds = %1992
  %1998 = load i32, ptr %53, align 4, !tbaa !5
  %1999 = call ptr @__errno_location() #12
  store i32 %1998, ptr %1999, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror(i32 noundef %2003, ptr noundef @.str.24)
  %2005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror_debug(i32 noundef %2006, ptr noundef @.str.24)
  %2008 = call ptr @__errno_location() #12
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call ptr @strerror(i32 noundef %2009) #11
  %2011 = call ptr @__errno_location() #12
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2000, ptr noundef @.str.22, i32 noundef %2001, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 102, ptr noundef %2004, ptr noundef %2007, ptr noundef %2010, i32 noundef %2012) #11
  br label %2031

2014:                                             ; preds = %1992, %1985
  %2015 = load i32, ptr %53, align 4, !tbaa !5
  %2016 = call ptr @__errno_location() #12
  store i32 %2015, ptr %2016, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror(i32 noundef %2020, ptr noundef @.str.24)
  %2022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef @.str.24)
  %2025 = call ptr @__errno_location() #12
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @strerror(i32 noundef %2026) #11
  %2028 = call ptr @__errno_location() #12
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef @.str.25, i32 noundef %2018, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 102, ptr noundef %2021, ptr noundef %2024, ptr noundef %2027, i32 noundef %2029) #11
  br label %2031

2031:                                             ; preds = %2014, %1997
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2032

2032:                                             ; preds = %2031
  br label %2033

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

2034:                                             ; No predecessors!
  br label %2035

2035:                                             ; preds = %2034
  br label %2036

2036:                                             ; preds = %2035, %1977
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

2039:                                             ; preds = %2038
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = add nsw i32 %2042, 1
  store i32 %2043, ptr @test_count, align 4, !tbaa !5
  %2044 = load ptr, ptr %34, align 8, !tbaa !9
  %2045 = call i32 @s2n_prf(ptr noundef %2044, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef null, ptr noundef %32, ptr noundef %37)
  %2046 = icmp eq i32 %2045, -1
  br i1 %2046, label %2100, label %2047

2047:                                             ; preds = %2041
  br label %2048

2048:                                             ; preds = %2047
  br label %2049

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

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

2061:                                             ; preds = %2056
  %2062 = load i32, ptr %54, align 4, !tbaa !5
  %2063 = call ptr @__errno_location() #12
  store i32 %2062, ptr %2063, align 4, !tbaa !5
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = load i32, ptr @test_count, align 4, !tbaa !5
  %2066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2067 = load i32, ptr %2066, align 4, !tbaa !5
  %2068 = call ptr @s2n_strerror(i32 noundef %2067, ptr noundef @.str.24)
  %2069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror_debug(i32 noundef %2070, ptr noundef @.str.24)
  %2072 = call ptr @__errno_location() #12
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @strerror(i32 noundef %2073) #11
  %2075 = call ptr @__errno_location() #12
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2064, ptr noundef @.str.22, i32 noundef %2065, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 106, ptr noundef %2068, ptr noundef %2071, ptr noundef %2074, i32 noundef %2076) #11
  br label %2095

2078:                                             ; preds = %2056, %2049
  %2079 = load i32, ptr %54, align 4, !tbaa !5
  %2080 = call ptr @__errno_location() #12
  store i32 %2079, ptr %2080, align 4, !tbaa !5
  %2081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2082 = load i32, ptr @test_count, align 4, !tbaa !5
  %2083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror(i32 noundef %2084, ptr noundef @.str.24)
  %2086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror_debug(i32 noundef %2087, ptr noundef @.str.24)
  %2089 = call ptr @__errno_location() #12
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @strerror(i32 noundef %2090) #11
  %2092 = call ptr @__errno_location() #12
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2081, ptr noundef @.str.25, i32 noundef %2082, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 106, ptr noundef %2085, ptr noundef %2088, ptr noundef %2091, i32 noundef %2093) #11
  br label %2095

2095:                                             ; preds = %2078, %2061
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2096

2096:                                             ; preds = %2095
  br label %2097

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

2098:                                             ; No predecessors!
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

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

2101:                                             ; preds = %2100
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

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

2109:                                             ; preds = %2103
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

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

2118:                                             ; preds = %2111
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @fileno(ptr noundef %2119) #11
  %2121 = call i32 @isatty(i32 noundef %2120) #11
  %2122 = icmp ne i32 %2121, 0
  br i1 %2122, label %2123, label %2140

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

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

2157:                                             ; preds = %2140, %2123
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2158

2158:                                             ; preds = %2157
  br label %2159

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

2160:                                             ; No predecessors!
  br label %2161

2161:                                             ; preds = %2160
  br label %2162

2162:                                             ; preds = %2161, %2103
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163
  br label %2165

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

2172:                                             ; preds = %2165
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

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

2181:                                             ; preds = %2174
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = call i32 @fileno(ptr noundef %2182) #11
  %2184 = call i32 @isatty(i32 noundef %2183) #11
  %2185 = icmp ne i32 %2184, 0
  br i1 %2185, label %2186, label %2203

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

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

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

2221:                                             ; preds = %2220
  br label %2222

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

2223:                                             ; No predecessors!
  br label %2224

2224:                                             ; preds = %2223
  br label %2225

2225:                                             ; preds = %2224, %2165
  br label %2226

2226:                                             ; preds = %2225
  br label %2227

2227:                                             ; preds = %2226
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  br label %2230

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

2233:                                             ; preds = %2230
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236
  %2238 = load i32, ptr @test_count, align 4, !tbaa !5
  %2239 = add nsw i32 %2238, 1
  store i32 %2239, ptr @test_count, align 4, !tbaa !5
  %2240 = load ptr, ptr %34, align 8, !tbaa !9
  %2241 = call i32 @s2n_prf(ptr noundef %2240, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef %29, ptr noundef null, ptr noundef %37)
  %2242 = icmp eq i32 %2241, -1
  br i1 %2242, label %2243, label %2296

2243:                                             ; preds = %2237
  br label %2244

2244:                                             ; preds = %2243
  br label %2245

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

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

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

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

2291:                                             ; preds = %2274, %2257
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

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

2294:                                             ; No predecessors!
  br label %2295

2295:                                             ; preds = %2294
  br label %2296

2296:                                             ; preds = %2295, %2237
  br label %2297

2297:                                             ; preds = %2296
  br label %2298

2298:                                             ; preds = %2297
  store i32 0, ptr %12, align 4
  br label %2299

2299:                                             ; preds = %2298, %984
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #11
  br label %2300

2300:                                             ; preds = %2299, %972
  call void @llvm.lifetime.end.p0(i64 64, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  %2301 = call i32 @s2n_connection_ptr_free(ptr noundef %34)
  %2302 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  store i32 %2301, ptr %2302, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  %2303 = load i32, ptr %12, align 4
  switch i32 %2303, label %4889 [
    i32 0, label %2304
  ]

2304:                                             ; preds = %2300
  call void @llvm.lifetime.start.p0(i64 24, ptr %59) #11
  call void @llvm.memset.p0.i64(ptr align 8 %59, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %2305 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2305, ptr %60, align 8, !tbaa !9
  %2306 = load ptr, ptr %60, align 8, !tbaa !9
  %2307 = getelementptr inbounds %struct.s2n_connection, ptr %2306, i32 0, i32 23
  store i8 32, ptr %2307, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  store ptr @.str.50, ptr %61, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %62) #11
  call void @llvm.memset.p0.i64(ptr align 8 %62, i8 0, i64 24, i1 false)
  br label %2308

2308:                                             ; preds = %2304
  %2309 = load ptr, ptr %61, align 8, !tbaa !9
  %2310 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %62, ptr noundef %2309)
  %2311 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  store i32 %2310, ptr %2311, align 4
  %2312 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  %2313 = load i32, ptr %2312, align 4
  %2314 = call zeroext i1 @s2n_result_is_ok(i32 %2313)
  br i1 %2314, label %2316, label %2315

2315:                                             ; preds = %2308
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2572

2316:                                             ; preds = %2308
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

2318:                                             ; preds = %2317
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #11
  store i64 64, ptr %64, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 64, ptr %65) #11
  call void @llvm.memset.p0.i64(ptr align 16 %65, i8 0, i64 64, i1 false)
  br label %2319

2319:                                             ; preds = %2318
  %2320 = load i64, ptr %64, align 8, !tbaa !15
  %2321 = icmp ule i64 %2320, 64
  br i1 %2321, label %2355, label %2322

2322:                                             ; preds = %2319
  br label %2323

2323:                                             ; preds = %2322
  br label %2324

2324:                                             ; preds = %2323
  %2325 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2326 = getelementptr inbounds %struct.s2n_debug_info, ptr %2325, i32 0, i32 0
  store ptr @.str.51, ptr %2326, align 8, !tbaa !17
  %2327 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2328 = getelementptr inbounds %struct.s2n_debug_info, ptr %2327, i32 0, i32 0
  %2329 = load ptr, ptr %2328, align 8, !tbaa !17
  %2330 = getelementptr inbounds i8, ptr %2329, i64 21
  %2331 = call ptr @strrchr(ptr noundef %2330, i32 noundef 47) #14
  %2332 = icmp ne ptr %2331, null
  br i1 %2332, label %2333, label %2340

2333:                                             ; preds = %2324
  %2334 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2335 = getelementptr inbounds %struct.s2n_debug_info, ptr %2334, i32 0, i32 0
  %2336 = load ptr, ptr %2335, align 8, !tbaa !17
  %2337 = getelementptr inbounds i8, ptr %2336, i64 21
  %2338 = call ptr @strrchr(ptr noundef %2337, i32 noundef 47) #14
  %2339 = getelementptr inbounds i8, ptr %2338, i64 1
  br label %2345

2340:                                             ; preds = %2324
  %2341 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2342 = getelementptr inbounds %struct.s2n_debug_info, ptr %2341, i32 0, i32 0
  %2343 = load ptr, ptr %2342, align 8, !tbaa !17
  %2344 = getelementptr inbounds i8, ptr %2343, i64 21
  br label %2345

2345:                                             ; preds = %2340, %2333
  %2346 = phi ptr [ %2339, %2333 ], [ %2344, %2340 ]
  %2347 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2348 = getelementptr inbounds %struct.s2n_debug_info, ptr %2347, i32 0, i32 1
  store ptr %2346, ptr %2348, align 8, !tbaa !19
  %2349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %2349, align 4, !tbaa !5
  %2350 = call i32 @s2n_calculate_stacktrace()
  br label %2351

2351:                                             ; preds = %2345
  br label %2352

2352:                                             ; preds = %2351
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2571

2353:                                             ; No predecessors!
  br label %2354

2354:                                             ; preds = %2353
  br label %2355

2355:                                             ; preds = %2354, %2319
  br label %2356

2356:                                             ; preds = %2355
  br label %2357

2357:                                             ; preds = %2356
  call void @llvm.lifetime.start.p0(i64 24, ptr %66) #11
  call void @llvm.memset.p0.i64(ptr align 8 %66, i8 0, i64 24, i1 false)
  br label %2358

2358:                                             ; preds = %2357
  %2359 = getelementptr inbounds [64 x i8], ptr %65, i64 0, i64 0
  %2360 = load i64, ptr %64, align 8, !tbaa !15
  %2361 = trunc i64 %2360 to i32
  %2362 = call i32 @s2n_blob_init(ptr noundef %66, ptr noundef %2359, i32 noundef %2361)
  %2363 = icmp sgt i32 %2362, -1
  br i1 %2363, label %2365, label %2364

2364:                                             ; preds = %2358
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2570

2365:                                             ; preds = %2358
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

2367:                                             ; preds = %2366
  br label %2368

2368:                                             ; preds = %2367
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = add nsw i32 %2369, 1
  store i32 %2370, ptr @test_count, align 4, !tbaa !5
  %2371 = load ptr, ptr %60, align 8, !tbaa !9
  %2372 = call i32 @s2n_prf(ptr noundef %2371, ptr noundef %20, ptr noundef %23, ptr noundef %59, ptr noundef null, ptr noundef null, ptr noundef %66)
  %2373 = icmp eq i32 %2372, -1
  br i1 %2373, label %2374, label %2427

2374:                                             ; preds = %2368
  br label %2375

2375:                                             ; preds = %2374
  br label %2376

2376:                                             ; preds = %2375
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %2377 = call ptr @__errno_location() #12
  %2378 = load i32, ptr %2377, align 4, !tbaa !5
  store i32 %2378, ptr %67, align 4, !tbaa !5
  %2379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2380 = call i32 @s2n_print_stacktrace(ptr noundef %2379)
  %2381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2382 = trunc i8 %2381 to i1
  br i1 %2382, label %2383, label %2405

2383:                                             ; preds = %2376
  %2384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2385 = call i32 @fileno(ptr noundef %2384) #11
  %2386 = call i32 @isatty(i32 noundef %2385) #11
  %2387 = icmp ne i32 %2386, 0
  br i1 %2387, label %2388, label %2405

2388:                                             ; preds = %2383
  %2389 = load i32, ptr %67, align 4, !tbaa !5
  %2390 = call ptr @__errno_location() #12
  store i32 %2389, ptr %2390, align 4, !tbaa !5
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = load i32, ptr @test_count, align 4, !tbaa !5
  %2393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = call ptr @s2n_strerror(i32 noundef %2394, ptr noundef @.str.24)
  %2396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  %2398 = call ptr @s2n_strerror_debug(i32 noundef %2397, ptr noundef @.str.24)
  %2399 = call ptr @__errno_location() #12
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @strerror(i32 noundef %2400) #11
  %2402 = call ptr @__errno_location() #12
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2391, ptr noundef @.str.22, i32 noundef %2392, ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 127, ptr noundef %2395, ptr noundef %2398, ptr noundef %2401, i32 noundef %2403) #11
  br label %2422

2405:                                             ; preds = %2383, %2376
  %2406 = load i32, ptr %67, align 4, !tbaa !5
  %2407 = call ptr @__errno_location() #12
  store i32 %2406, ptr %2407, align 4, !tbaa !5
  %2408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2409 = load i32, ptr @test_count, align 4, !tbaa !5
  %2410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2411 = load i32, ptr %2410, align 4, !tbaa !5
  %2412 = call ptr @s2n_strerror(i32 noundef %2411, ptr noundef @.str.24)
  %2413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = call ptr @s2n_strerror_debug(i32 noundef %2414, ptr noundef @.str.24)
  %2416 = call ptr @__errno_location() #12
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call ptr @strerror(i32 noundef %2417) #11
  %2419 = call ptr @__errno_location() #12
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2408, ptr noundef @.str.25, i32 noundef %2409, ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 127, ptr noundef %2412, ptr noundef %2415, ptr noundef %2418, i32 noundef %2420) #11
  br label %2422

2422:                                             ; preds = %2405, %2388
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %2423

2423:                                             ; preds = %2422
  br label %2424

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

2425:                                             ; No predecessors!
  br label %2426

2426:                                             ; preds = %2425
  br label %2427

2427:                                             ; preds = %2426, %2368
  br label %2428

2428:                                             ; preds = %2427
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

2430:                                             ; preds = %2429
  %2431 = load i32, ptr @test_count, align 4, !tbaa !5
  %2432 = add nsw i32 %2431, 1
  store i32 %2432, ptr @test_count, align 4, !tbaa !5
  %2433 = getelementptr inbounds %struct.s2n_blob, ptr %66, i32 0, i32 1
  %2434 = load i32, ptr %2433, align 8, !tbaa !46
  %2435 = getelementptr inbounds %struct.s2n_blob, ptr %62, i32 0, i32 1
  %2436 = load i32, ptr %2435, align 8, !tbaa !46
  %2437 = icmp eq i32 %2434, %2436
  br i1 %2437, label %2491, label %2438

2438:                                             ; preds = %2430
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

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

2447:                                             ; preds = %2440
  %2448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2449 = call i32 @fileno(ptr noundef %2448) #11
  %2450 = call i32 @isatty(i32 noundef %2449) #11
  %2451 = icmp ne i32 %2450, 0
  br i1 %2451, label %2452, label %2469

2452:                                             ; preds = %2447
  %2453 = load i32, ptr %68, align 4, !tbaa !5
  %2454 = call ptr @__errno_location() #12
  store i32 %2453, ptr %2454, align 4, !tbaa !5
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = load i32, ptr @test_count, align 4, !tbaa !5
  %2457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2458 = load i32, ptr %2457, align 4, !tbaa !5
  %2459 = call ptr @s2n_strerror(i32 noundef %2458, ptr noundef @.str.24)
  %2460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2461 = load i32, ptr %2460, align 4, !tbaa !5
  %2462 = call ptr @s2n_strerror_debug(i32 noundef %2461, ptr noundef @.str.24)
  %2463 = call ptr @__errno_location() #12
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call ptr @strerror(i32 noundef %2464) #11
  %2466 = call ptr @__errno_location() #12
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2455, ptr noundef @.str.22, i32 noundef %2456, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 128, ptr noundef %2459, ptr noundef %2462, ptr noundef %2465, i32 noundef %2467) #11
  br label %2486

2469:                                             ; preds = %2447, %2440
  %2470 = load i32, ptr %68, align 4, !tbaa !5
  %2471 = call ptr @__errno_location() #12
  store i32 %2470, ptr %2471, align 4, !tbaa !5
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = load i32, ptr @test_count, align 4, !tbaa !5
  %2474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = call ptr @s2n_strerror(i32 noundef %2475, ptr noundef @.str.24)
  %2477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2478 = load i32, ptr %2477, align 4, !tbaa !5
  %2479 = call ptr @s2n_strerror_debug(i32 noundef %2478, ptr noundef @.str.24)
  %2480 = call ptr @__errno_location() #12
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = call ptr @strerror(i32 noundef %2481) #11
  %2483 = call ptr @__errno_location() #12
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2472, ptr noundef @.str.25, i32 noundef %2473, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 128, ptr noundef %2476, ptr noundef %2479, ptr noundef %2482, i32 noundef %2484) #11
  br label %2486

2486:                                             ; preds = %2469, %2452
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2487

2487:                                             ; preds = %2486
  br label %2488

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

2489:                                             ; No predecessors!
  br label %2490

2490:                                             ; preds = %2489
  br label %2491

2491:                                             ; preds = %2490, %2430
  br label %2492

2492:                                             ; preds = %2491
  br label %2493

2493:                                             ; preds = %2492
  br label %2494

2494:                                             ; preds = %2493
  %2495 = getelementptr inbounds %struct.s2n_blob, ptr %62, i32 0, i32 1
  %2496 = load i32, ptr %2495, align 8, !tbaa !46
  %2497 = icmp ne i32 %2496, 0
  br i1 %2497, label %2498, label %2567

2498:                                             ; preds = %2494
  br label %2499

2499:                                             ; preds = %2498
  %2500 = load i32, ptr @test_count, align 4, !tbaa !5
  %2501 = add nsw i32 %2500, 1
  store i32 %2501, ptr @test_count, align 4, !tbaa !5
  %2502 = getelementptr inbounds %struct.s2n_blob, ptr %66, i32 0, i32 0
  %2503 = load ptr, ptr %2502, align 8, !tbaa !47
  %2504 = getelementptr inbounds %struct.s2n_blob, ptr %62, i32 0, i32 0
  %2505 = load ptr, ptr %2504, align 8, !tbaa !47
  %2506 = getelementptr inbounds %struct.s2n_blob, ptr %62, i32 0, i32 1
  %2507 = load i32, ptr %2506, align 8, !tbaa !46
  %2508 = zext i32 %2507 to i64
  %2509 = call i32 @memcmp(ptr noundef %2503, ptr noundef %2505, i64 noundef %2508) #14
  %2510 = icmp eq i32 %2509, 0
  br i1 %2510, label %2564, label %2511

2511:                                             ; preds = %2499
  br label %2512

2512:                                             ; preds = %2511
  br label %2513

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

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

2525:                                             ; preds = %2520
  %2526 = load i32, ptr %69, align 4, !tbaa !5
  %2527 = call ptr @__errno_location() #12
  store i32 %2526, ptr %2527, align 4, !tbaa !5
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = load i32, ptr @test_count, align 4, !tbaa !5
  %2530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2531 = load i32, ptr %2530, align 4, !tbaa !5
  %2532 = call ptr @s2n_strerror(i32 noundef %2531, ptr noundef @.str.24)
  %2533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2534 = load i32, ptr %2533, align 4, !tbaa !5
  %2535 = call ptr @s2n_strerror_debug(i32 noundef %2534, ptr noundef @.str.24)
  %2536 = call ptr @__errno_location() #12
  %2537 = load i32, ptr %2536, align 4, !tbaa !5
  %2538 = call ptr @strerror(i32 noundef %2537) #11
  %2539 = call ptr @__errno_location() #12
  %2540 = load i32, ptr %2539, align 4, !tbaa !5
  %2541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2528, ptr noundef @.str.22, i32 noundef %2529, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 129, ptr noundef %2532, ptr noundef %2535, ptr noundef %2538, i32 noundef %2540) #11
  br label %2559

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

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

2560:                                             ; preds = %2559
  br label %2561

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

2562:                                             ; No predecessors!
  br label %2563

2563:                                             ; preds = %2562
  br label %2564

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

2565:                                             ; preds = %2564
  br label %2566

2566:                                             ; preds = %2565
  br label %2567

2567:                                             ; preds = %2566, %2494
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568
  store i32 0, ptr %12, align 4
  br label %2570

2570:                                             ; preds = %2569, %2364
  call void @llvm.lifetime.end.p0(i64 24, ptr %66) #11
  br label %2571

2571:                                             ; preds = %2570, %2352
  call void @llvm.lifetime.end.p0(i64 64, ptr %65) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #11
  br label %2572

2572:                                             ; preds = %2571, %2315
  %2573 = call i32 @s2n_free(ptr noundef %62)
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  %2574 = call i32 @s2n_connection_ptr_free(ptr noundef %60)
  %2575 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  store i32 %2574, ptr %2575, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #11
  %2576 = load i32, ptr %12, align 4
  switch i32 %2576, label %4889 [
    i32 0, label %2577
  ]

2577:                                             ; preds = %2572
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #11
  %2578 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2578, ptr %71, align 8, !tbaa !9
  %2579 = load ptr, ptr %71, align 8, !tbaa !9
  %2580 = getelementptr inbounds %struct.s2n_connection, ptr %2579, i32 0, i32 23
  store i8 32, ptr %2580, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #11
  store ptr @.str.55, ptr %72, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %73) #11
  call void @llvm.memset.p0.i64(ptr align 8 %73, i8 0, i64 24, i1 false)
  br label %2581

2581:                                             ; preds = %2577
  %2582 = load ptr, ptr %72, align 8, !tbaa !9
  %2583 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %73, ptr noundef %2582)
  %2584 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %2583, ptr %2584, align 4
  %2585 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  %2586 = load i32, ptr %2585, align 4
  %2587 = call zeroext i1 @s2n_result_is_ok(i32 %2586)
  br i1 %2587, label %2589, label %2588

2588:                                             ; preds = %2581
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2845

2589:                                             ; preds = %2581
  br label %2590

2590:                                             ; preds = %2589
  br label %2591

2591:                                             ; preds = %2590
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #11
  store i64 64, ptr %75, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 64, ptr %76) #11
  call void @llvm.memset.p0.i64(ptr align 16 %76, i8 0, i64 64, i1 false)
  br label %2592

2592:                                             ; preds = %2591
  %2593 = load i64, ptr %75, align 8, !tbaa !15
  %2594 = icmp ule i64 %2593, 64
  br i1 %2594, label %2628, label %2595

2595:                                             ; preds = %2592
  br label %2596

2596:                                             ; preds = %2595
  br label %2597

2597:                                             ; preds = %2596
  %2598 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2599 = getelementptr inbounds %struct.s2n_debug_info, ptr %2598, i32 0, i32 0
  store ptr @.str.56, ptr %2599, align 8, !tbaa !17
  %2600 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2601 = getelementptr inbounds %struct.s2n_debug_info, ptr %2600, i32 0, i32 0
  %2602 = load ptr, ptr %2601, align 8, !tbaa !17
  %2603 = getelementptr inbounds i8, ptr %2602, i64 21
  %2604 = call ptr @strrchr(ptr noundef %2603, i32 noundef 47) #14
  %2605 = icmp ne ptr %2604, null
  br i1 %2605, label %2606, label %2613

2606:                                             ; preds = %2597
  %2607 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2608 = getelementptr inbounds %struct.s2n_debug_info, ptr %2607, i32 0, i32 0
  %2609 = load ptr, ptr %2608, align 8, !tbaa !17
  %2610 = getelementptr inbounds i8, ptr %2609, i64 21
  %2611 = call ptr @strrchr(ptr noundef %2610, i32 noundef 47) #14
  %2612 = getelementptr inbounds i8, ptr %2611, i64 1
  br label %2618

2613:                                             ; preds = %2597
  %2614 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2615 = getelementptr inbounds %struct.s2n_debug_info, ptr %2614, i32 0, i32 0
  %2616 = load ptr, ptr %2615, align 8, !tbaa !17
  %2617 = getelementptr inbounds i8, ptr %2616, i64 21
  br label %2618

2618:                                             ; preds = %2613, %2606
  %2619 = phi ptr [ %2612, %2606 ], [ %2617, %2613 ]
  %2620 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2621 = getelementptr inbounds %struct.s2n_debug_info, ptr %2620, i32 0, i32 1
  store ptr %2619, ptr %2621, align 8, !tbaa !19
  %2622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %2622, align 4, !tbaa !5
  %2623 = call i32 @s2n_calculate_stacktrace()
  br label %2624

2624:                                             ; preds = %2618
  br label %2625

2625:                                             ; preds = %2624
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2844

2626:                                             ; No predecessors!
  br label %2627

2627:                                             ; preds = %2626
  br label %2628

2628:                                             ; preds = %2627, %2592
  br label %2629

2629:                                             ; preds = %2628
  br label %2630

2630:                                             ; preds = %2629
  call void @llvm.lifetime.start.p0(i64 24, ptr %77) #11
  call void @llvm.memset.p0.i64(ptr align 8 %77, i8 0, i64 24, i1 false)
  br label %2631

2631:                                             ; preds = %2630
  %2632 = getelementptr inbounds [64 x i8], ptr %76, i64 0, i64 0
  %2633 = load i64, ptr %75, align 8, !tbaa !15
  %2634 = trunc i64 %2633 to i32
  %2635 = call i32 @s2n_blob_init(ptr noundef %77, ptr noundef %2632, i32 noundef %2634)
  %2636 = icmp sgt i32 %2635, -1
  br i1 %2636, label %2638, label %2637

2637:                                             ; preds = %2631
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %2843

2638:                                             ; preds = %2631
  br label %2639

2639:                                             ; preds = %2638
  br label %2640

2640:                                             ; preds = %2639
  br label %2641

2641:                                             ; preds = %2640
  %2642 = load i32, ptr @test_count, align 4, !tbaa !5
  %2643 = add nsw i32 %2642, 1
  store i32 %2643, ptr @test_count, align 4, !tbaa !5
  %2644 = load ptr, ptr %71, align 8, !tbaa !9
  %2645 = call i32 @s2n_prf(ptr noundef %2644, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef null, ptr noundef null, ptr noundef %77)
  %2646 = icmp eq i32 %2645, -1
  br i1 %2646, label %2647, label %2700

2647:                                             ; preds = %2641
  br label %2648

2648:                                             ; preds = %2647
  br label %2649

2649:                                             ; preds = %2648
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %2650 = call ptr @__errno_location() #12
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  store i32 %2651, ptr %78, align 4, !tbaa !5
  %2652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2653 = call i32 @s2n_print_stacktrace(ptr noundef %2652)
  %2654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2655 = trunc i8 %2654 to i1
  br i1 %2655, label %2656, label %2678

2656:                                             ; preds = %2649
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = call i32 @fileno(ptr noundef %2657) #11
  %2659 = call i32 @isatty(i32 noundef %2658) #11
  %2660 = icmp ne i32 %2659, 0
  br i1 %2660, label %2661, label %2678

2661:                                             ; preds = %2656
  %2662 = load i32, ptr %78, align 4, !tbaa !5
  %2663 = call ptr @__errno_location() #12
  store i32 %2662, ptr %2663, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @s2n_strerror(i32 noundef %2667, ptr noundef @.str.24)
  %2669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror_debug(i32 noundef %2670, ptr noundef @.str.24)
  %2672 = call ptr @__errno_location() #12
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @strerror(i32 noundef %2673) #11
  %2675 = call ptr @__errno_location() #12
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2664, ptr noundef @.str.22, i32 noundef %2665, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 146, ptr noundef %2668, ptr noundef %2671, ptr noundef %2674, i32 noundef %2676) #11
  br label %2695

2678:                                             ; preds = %2656, %2649
  %2679 = load i32, ptr %78, align 4, !tbaa !5
  %2680 = call ptr @__errno_location() #12
  store i32 %2679, ptr %2680, 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 @.str.24)
  %2686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call ptr @s2n_strerror_debug(i32 noundef %2687, ptr noundef @.str.24)
  %2689 = call ptr @__errno_location() #12
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call ptr @strerror(i32 noundef %2690) #11
  %2692 = call ptr @__errno_location() #12
  %2693 = load i32, ptr %2692, align 4, !tbaa !5
  %2694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2681, ptr noundef @.str.25, i32 noundef %2682, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 146, ptr noundef %2685, ptr noundef %2688, ptr noundef %2691, i32 noundef %2693) #11
  br label %2695

2695:                                             ; preds = %2678, %2661
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

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

2698:                                             ; No predecessors!
  br label %2699

2699:                                             ; preds = %2698
  br label %2700

2700:                                             ; preds = %2699, %2641
  br label %2701

2701:                                             ; preds = %2700
  br label %2702

2702:                                             ; preds = %2701
  br label %2703

2703:                                             ; preds = %2702
  %2704 = load i32, ptr @test_count, align 4, !tbaa !5
  %2705 = add nsw i32 %2704, 1
  store i32 %2705, ptr @test_count, align 4, !tbaa !5
  %2706 = getelementptr inbounds %struct.s2n_blob, ptr %77, i32 0, i32 1
  %2707 = load i32, ptr %2706, align 8, !tbaa !46
  %2708 = getelementptr inbounds %struct.s2n_blob, ptr %73, i32 0, i32 1
  %2709 = load i32, ptr %2708, align 8, !tbaa !46
  %2710 = icmp eq i32 %2707, %2709
  br i1 %2710, label %2764, label %2711

2711:                                             ; preds = %2703
  br label %2712

2712:                                             ; preds = %2711
  br label %2713

2713:                                             ; preds = %2712
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %2714 = call ptr @__errno_location() #12
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  store i32 %2715, ptr %79, align 4, !tbaa !5
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = call i32 @s2n_print_stacktrace(ptr noundef %2716)
  %2718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2719 = trunc i8 %2718 to i1
  br i1 %2719, label %2720, label %2742

2720:                                             ; preds = %2713
  %2721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2722 = call i32 @fileno(ptr noundef %2721) #11
  %2723 = call i32 @isatty(i32 noundef %2722) #11
  %2724 = icmp ne i32 %2723, 0
  br i1 %2724, label %2725, label %2742

2725:                                             ; preds = %2720
  %2726 = load i32, ptr %79, align 4, !tbaa !5
  %2727 = call ptr @__errno_location() #12
  store i32 %2726, ptr %2727, align 4, !tbaa !5
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror(i32 noundef %2731, ptr noundef @.str.24)
  %2733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror_debug(i32 noundef %2734, ptr noundef @.str.24)
  %2736 = call ptr @__errno_location() #12
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call ptr @strerror(i32 noundef %2737) #11
  %2739 = call ptr @__errno_location() #12
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2728, ptr noundef @.str.22, i32 noundef %2729, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 147, ptr noundef %2732, ptr noundef %2735, ptr noundef %2738, i32 noundef %2740) #11
  br label %2759

2742:                                             ; preds = %2720, %2713
  %2743 = load i32, ptr %79, align 4, !tbaa !5
  %2744 = call ptr @__errno_location() #12
  store i32 %2743, ptr %2744, align 4, !tbaa !5
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = load i32, ptr @test_count, align 4, !tbaa !5
  %2747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror(i32 noundef %2748, ptr noundef @.str.24)
  %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_debug(i32 noundef %2751, ptr noundef @.str.24)
  %2753 = call ptr @__errno_location() #12
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call ptr @strerror(i32 noundef %2754) #11
  %2756 = call ptr @__errno_location() #12
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2745, ptr noundef @.str.25, i32 noundef %2746, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 147, ptr noundef %2749, ptr noundef %2752, ptr noundef %2755, i32 noundef %2757) #11
  br label %2759

2759:                                             ; preds = %2742, %2725
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %2760

2760:                                             ; preds = %2759
  br label %2761

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

2762:                                             ; No predecessors!
  br label %2763

2763:                                             ; preds = %2762
  br label %2764

2764:                                             ; preds = %2763, %2703
  br label %2765

2765:                                             ; preds = %2764
  br label %2766

2766:                                             ; preds = %2765
  br label %2767

2767:                                             ; preds = %2766
  %2768 = getelementptr inbounds %struct.s2n_blob, ptr %73, i32 0, i32 1
  %2769 = load i32, ptr %2768, align 8, !tbaa !46
  %2770 = icmp ne i32 %2769, 0
  br i1 %2770, label %2771, label %2840

2771:                                             ; preds = %2767
  br label %2772

2772:                                             ; preds = %2771
  %2773 = load i32, ptr @test_count, align 4, !tbaa !5
  %2774 = add nsw i32 %2773, 1
  store i32 %2774, ptr @test_count, align 4, !tbaa !5
  %2775 = getelementptr inbounds %struct.s2n_blob, ptr %77, i32 0, i32 0
  %2776 = load ptr, ptr %2775, align 8, !tbaa !47
  %2777 = getelementptr inbounds %struct.s2n_blob, ptr %73, i32 0, i32 0
  %2778 = load ptr, ptr %2777, align 8, !tbaa !47
  %2779 = getelementptr inbounds %struct.s2n_blob, ptr %73, i32 0, i32 1
  %2780 = load i32, ptr %2779, align 8, !tbaa !46
  %2781 = zext i32 %2780 to i64
  %2782 = call i32 @memcmp(ptr noundef %2776, ptr noundef %2778, i64 noundef %2781) #14
  %2783 = icmp eq i32 %2782, 0
  br i1 %2783, label %2837, label %2784

2784:                                             ; preds = %2772
  br label %2785

2785:                                             ; preds = %2784
  br label %2786

2786:                                             ; preds = %2785
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %2787 = call ptr @__errno_location() #12
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  store i32 %2788, ptr %80, align 4, !tbaa !5
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = call i32 @s2n_print_stacktrace(ptr noundef %2789)
  %2791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2792 = trunc i8 %2791 to i1
  br i1 %2792, label %2793, label %2815

2793:                                             ; preds = %2786
  %2794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2795 = call i32 @fileno(ptr noundef %2794) #11
  %2796 = call i32 @isatty(i32 noundef %2795) #11
  %2797 = icmp ne i32 %2796, 0
  br i1 %2797, label %2798, label %2815

2798:                                             ; preds = %2793
  %2799 = load i32, ptr %80, align 4, !tbaa !5
  %2800 = call ptr @__errno_location() #12
  store i32 %2799, ptr %2800, align 4, !tbaa !5
  %2801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2802 = load i32, ptr @test_count, align 4, !tbaa !5
  %2803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  %2805 = call ptr @s2n_strerror(i32 noundef %2804, ptr noundef @.str.24)
  %2806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @s2n_strerror_debug(i32 noundef %2807, ptr noundef @.str.24)
  %2809 = call ptr @__errno_location() #12
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @strerror(i32 noundef %2810) #11
  %2812 = call ptr @__errno_location() #12
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2801, ptr noundef @.str.22, i32 noundef %2802, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 148, ptr noundef %2805, ptr noundef %2808, ptr noundef %2811, i32 noundef %2813) #11
  br label %2832

2815:                                             ; preds = %2793, %2786
  %2816 = load i32, ptr %80, align 4, !tbaa !5
  %2817 = call ptr @__errno_location() #12
  store i32 %2816, ptr %2817, align 4, !tbaa !5
  %2818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2819 = load i32, ptr @test_count, align 4, !tbaa !5
  %2820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror(i32 noundef %2821, ptr noundef @.str.24)
  %2823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2824 = load i32, ptr %2823, align 4, !tbaa !5
  %2825 = call ptr @s2n_strerror_debug(i32 noundef %2824, ptr noundef @.str.24)
  %2826 = call ptr @__errno_location() #12
  %2827 = load i32, ptr %2826, align 4, !tbaa !5
  %2828 = call ptr @strerror(i32 noundef %2827) #11
  %2829 = call ptr @__errno_location() #12
  %2830 = load i32, ptr %2829, align 4, !tbaa !5
  %2831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2818, ptr noundef @.str.25, i32 noundef %2819, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 148, ptr noundef %2822, ptr noundef %2825, ptr noundef %2828, i32 noundef %2830) #11
  br label %2832

2832:                                             ; preds = %2815, %2798
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %2833

2833:                                             ; preds = %2832
  br label %2834

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

2835:                                             ; No predecessors!
  br label %2836

2836:                                             ; preds = %2835
  br label %2837

2837:                                             ; preds = %2836, %2772
  br label %2838

2838:                                             ; preds = %2837
  br label %2839

2839:                                             ; preds = %2838
  br label %2840

2840:                                             ; preds = %2839, %2767
  br label %2841

2841:                                             ; preds = %2840
  br label %2842

2842:                                             ; preds = %2841
  store i32 0, ptr %12, align 4
  br label %2843

2843:                                             ; preds = %2842, %2637
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #11
  br label %2844

2844:                                             ; preds = %2843, %2625
  call void @llvm.lifetime.end.p0(i64 64, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  br label %2845

2845:                                             ; preds = %2844, %2588
  %2846 = call i32 @s2n_free(ptr noundef %73)
  call void @llvm.lifetime.end.p0(i64 24, ptr %73) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  %2847 = call i32 @s2n_connection_ptr_free(ptr noundef %71)
  %2848 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %2847, ptr %2848, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  %2849 = load i32, ptr %12, align 4
  switch i32 %2849, label %4889 [
    i32 0, label %2850
  ]

2850:                                             ; preds = %2845
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #11
  %2851 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2851, ptr %82, align 8, !tbaa !9
  %2852 = load ptr, ptr %82, align 8, !tbaa !9
  %2853 = getelementptr inbounds %struct.s2n_connection, ptr %2852, i32 0, i32 23
  store i8 32, ptr %2853, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #11
  store ptr @.str.58, ptr %83, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %84) #11
  call void @llvm.memset.p0.i64(ptr align 8 %84, i8 0, i64 24, i1 false)
  br label %2854

2854:                                             ; preds = %2850
  %2855 = load ptr, ptr %83, align 8, !tbaa !9
  %2856 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %84, ptr noundef %2855)
  %2857 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  store i32 %2856, ptr %2857, align 4
  %2858 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  %2859 = load i32, ptr %2858, align 4
  %2860 = call zeroext i1 @s2n_result_is_ok(i32 %2859)
  br i1 %2860, label %2862, label %2861

2861:                                             ; preds = %2854
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %3118

2862:                                             ; preds = %2854
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

2864:                                             ; preds = %2863
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #11
  store i64 64, ptr %86, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 64, ptr %87) #11
  call void @llvm.memset.p0.i64(ptr align 16 %87, i8 0, i64 64, i1 false)
  br label %2865

2865:                                             ; preds = %2864
  %2866 = load i64, ptr %86, align 8, !tbaa !15
  %2867 = icmp ule i64 %2866, 64
  br i1 %2867, label %2901, label %2868

2868:                                             ; preds = %2865
  br label %2869

2869:                                             ; preds = %2868
  br label %2870

2870:                                             ; preds = %2869
  %2871 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2872 = getelementptr inbounds %struct.s2n_debug_info, ptr %2871, i32 0, i32 0
  store ptr @.str.59, ptr %2872, align 8, !tbaa !17
  %2873 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2874 = getelementptr inbounds %struct.s2n_debug_info, ptr %2873, i32 0, i32 0
  %2875 = load ptr, ptr %2874, align 8, !tbaa !17
  %2876 = getelementptr inbounds i8, ptr %2875, i64 21
  %2877 = call ptr @strrchr(ptr noundef %2876, i32 noundef 47) #14
  %2878 = icmp ne ptr %2877, null
  br i1 %2878, label %2879, label %2886

2879:                                             ; preds = %2870
  %2880 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2881 = getelementptr inbounds %struct.s2n_debug_info, ptr %2880, i32 0, i32 0
  %2882 = load ptr, ptr %2881, align 8, !tbaa !17
  %2883 = getelementptr inbounds i8, ptr %2882, i64 21
  %2884 = call ptr @strrchr(ptr noundef %2883, i32 noundef 47) #14
  %2885 = getelementptr inbounds i8, ptr %2884, i64 1
  br label %2891

2886:                                             ; preds = %2870
  %2887 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2888 = getelementptr inbounds %struct.s2n_debug_info, ptr %2887, i32 0, i32 0
  %2889 = load ptr, ptr %2888, align 8, !tbaa !17
  %2890 = getelementptr inbounds i8, ptr %2889, i64 21
  br label %2891

2891:                                             ; preds = %2886, %2879
  %2892 = phi ptr [ %2885, %2879 ], [ %2890, %2886 ]
  %2893 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2894 = getelementptr inbounds %struct.s2n_debug_info, ptr %2893, i32 0, i32 1
  store ptr %2892, ptr %2894, align 8, !tbaa !19
  %2895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %2895, align 4, !tbaa !5
  %2896 = call i32 @s2n_calculate_stacktrace()
  br label %2897

2897:                                             ; preds = %2891
  br label %2898

2898:                                             ; preds = %2897
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %3117

2899:                                             ; No predecessors!
  br label %2900

2900:                                             ; preds = %2899
  br label %2901

2901:                                             ; preds = %2900, %2865
  br label %2902

2902:                                             ; preds = %2901
  br label %2903

2903:                                             ; preds = %2902
  call void @llvm.lifetime.start.p0(i64 24, ptr %88) #11
  call void @llvm.memset.p0.i64(ptr align 8 %88, i8 0, i64 24, i1 false)
  br label %2904

2904:                                             ; preds = %2903
  %2905 = getelementptr inbounds [64 x i8], ptr %87, i64 0, i64 0
  %2906 = load i64, ptr %86, align 8, !tbaa !15
  %2907 = trunc i64 %2906 to i32
  %2908 = call i32 @s2n_blob_init(ptr noundef %88, ptr noundef %2905, i32 noundef %2907)
  %2909 = icmp sgt i32 %2908, -1
  br i1 %2909, label %2911, label %2910

2910:                                             ; preds = %2904
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %3116

2911:                                             ; preds = %2904
  br label %2912

2912:                                             ; preds = %2911
  br label %2913

2913:                                             ; preds = %2912
  br label %2914

2914:                                             ; preds = %2913
  %2915 = load i32, ptr @test_count, align 4, !tbaa !5
  %2916 = add nsw i32 %2915, 1
  store i32 %2916, ptr @test_count, align 4, !tbaa !5
  %2917 = load ptr, ptr %82, align 8, !tbaa !9
  %2918 = call i32 @s2n_prf(ptr noundef %2917, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef %29, ptr noundef null, ptr noundef %88)
  %2919 = icmp eq i32 %2918, -1
  br i1 %2919, label %2920, label %2973

2920:                                             ; preds = %2914
  br label %2921

2921:                                             ; preds = %2920
  br label %2922

2922:                                             ; preds = %2921
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %2923 = call ptr @__errno_location() #12
  %2924 = load i32, ptr %2923, align 4, !tbaa !5
  store i32 %2924, ptr %89, align 4, !tbaa !5
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = call i32 @s2n_print_stacktrace(ptr noundef %2925)
  %2927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2928 = trunc i8 %2927 to i1
  br i1 %2928, label %2929, label %2951

2929:                                             ; preds = %2922
  %2930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2931 = call i32 @fileno(ptr noundef %2930) #11
  %2932 = call i32 @isatty(i32 noundef %2931) #11
  %2933 = icmp ne i32 %2932, 0
  br i1 %2933, label %2934, label %2951

2934:                                             ; preds = %2929
  %2935 = load i32, ptr %89, align 4, !tbaa !5
  %2936 = call ptr @__errno_location() #12
  store i32 %2935, ptr %2936, align 4, !tbaa !5
  %2937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2938 = load i32, ptr @test_count, align 4, !tbaa !5
  %2939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2940 = load i32, ptr %2939, align 4, !tbaa !5
  %2941 = call ptr @s2n_strerror(i32 noundef %2940, ptr noundef @.str.24)
  %2942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call ptr @s2n_strerror_debug(i32 noundef %2943, ptr noundef @.str.24)
  %2945 = call ptr @__errno_location() #12
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @strerror(i32 noundef %2946) #11
  %2948 = call ptr @__errno_location() #12
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2937, ptr noundef @.str.22, i32 noundef %2938, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 165, ptr noundef %2941, ptr noundef %2944, ptr noundef %2947, i32 noundef %2949) #11
  br label %2968

2951:                                             ; preds = %2929, %2922
  %2952 = load i32, ptr %89, align 4, !tbaa !5
  %2953 = call ptr @__errno_location() #12
  store i32 %2952, ptr %2953, align 4, !tbaa !5
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = load i32, ptr @test_count, align 4, !tbaa !5
  %2956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  %2958 = call ptr @s2n_strerror(i32 noundef %2957, ptr noundef @.str.24)
  %2959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call ptr @s2n_strerror_debug(i32 noundef %2960, ptr noundef @.str.24)
  %2962 = call ptr @__errno_location() #12
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @strerror(i32 noundef %2963) #11
  %2965 = call ptr @__errno_location() #12
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2954, ptr noundef @.str.25, i32 noundef %2955, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 165, ptr noundef %2958, ptr noundef %2961, ptr noundef %2964, i32 noundef %2966) #11
  br label %2968

2968:                                             ; preds = %2951, %2934
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %2969

2969:                                             ; preds = %2968
  br label %2970

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

2971:                                             ; No predecessors!
  br label %2972

2972:                                             ; preds = %2971
  br label %2973

2973:                                             ; preds = %2972, %2914
  br label %2974

2974:                                             ; preds = %2973
  br label %2975

2975:                                             ; preds = %2974
  br label %2976

2976:                                             ; preds = %2975
  %2977 = load i32, ptr @test_count, align 4, !tbaa !5
  %2978 = add nsw i32 %2977, 1
  store i32 %2978, ptr @test_count, align 4, !tbaa !5
  %2979 = getelementptr inbounds %struct.s2n_blob, ptr %88, i32 0, i32 1
  %2980 = load i32, ptr %2979, align 8, !tbaa !46
  %2981 = getelementptr inbounds %struct.s2n_blob, ptr %84, i32 0, i32 1
  %2982 = load i32, ptr %2981, align 8, !tbaa !46
  %2983 = icmp eq i32 %2980, %2982
  br i1 %2983, label %3037, label %2984

2984:                                             ; preds = %2976
  br label %2985

2985:                                             ; preds = %2984
  br label %2986

2986:                                             ; preds = %2985
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %2987 = call ptr @__errno_location() #12
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  store i32 %2988, ptr %90, align 4, !tbaa !5
  %2989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2990 = call i32 @s2n_print_stacktrace(ptr noundef %2989)
  %2991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2992 = trunc i8 %2991 to i1
  br i1 %2992, label %2993, label %3015

2993:                                             ; preds = %2986
  %2994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2995 = call i32 @fileno(ptr noundef %2994) #11
  %2996 = call i32 @isatty(i32 noundef %2995) #11
  %2997 = icmp ne i32 %2996, 0
  br i1 %2997, label %2998, label %3015

2998:                                             ; preds = %2993
  %2999 = load i32, ptr %90, align 4, !tbaa !5
  %3000 = call ptr @__errno_location() #12
  store i32 %2999, ptr %3000, align 4, !tbaa !5
  %3001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3002 = load i32, ptr @test_count, align 4, !tbaa !5
  %3003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call ptr @s2n_strerror(i32 noundef %3004, ptr noundef @.str.24)
  %3006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call ptr @s2n_strerror_debug(i32 noundef %3007, ptr noundef @.str.24)
  %3009 = call ptr @__errno_location() #12
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  %3011 = call ptr @strerror(i32 noundef %3010) #11
  %3012 = call ptr @__errno_location() #12
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3001, ptr noundef @.str.22, i32 noundef %3002, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 166, ptr noundef %3005, ptr noundef %3008, ptr noundef %3011, i32 noundef %3013) #11
  br label %3032

3015:                                             ; preds = %2993, %2986
  %3016 = load i32, ptr %90, align 4, !tbaa !5
  %3017 = call ptr @__errno_location() #12
  store i32 %3016, ptr %3017, align 4, !tbaa !5
  %3018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3019 = load i32, ptr @test_count, align 4, !tbaa !5
  %3020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3021 = load i32, ptr %3020, align 4, !tbaa !5
  %3022 = call ptr @s2n_strerror(i32 noundef %3021, ptr noundef @.str.24)
  %3023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3024 = load i32, ptr %3023, align 4, !tbaa !5
  %3025 = call ptr @s2n_strerror_debug(i32 noundef %3024, ptr noundef @.str.24)
  %3026 = call ptr @__errno_location() #12
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  %3028 = call ptr @strerror(i32 noundef %3027) #11
  %3029 = call ptr @__errno_location() #12
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3018, ptr noundef @.str.25, i32 noundef %3019, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 166, ptr noundef %3022, ptr noundef %3025, ptr noundef %3028, i32 noundef %3030) #11
  br label %3032

3032:                                             ; preds = %3015, %2998
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3033

3033:                                             ; preds = %3032
  br label %3034

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

3035:                                             ; No predecessors!
  br label %3036

3036:                                             ; preds = %3035
  br label %3037

3037:                                             ; preds = %3036, %2976
  br label %3038

3038:                                             ; preds = %3037
  br label %3039

3039:                                             ; preds = %3038
  br label %3040

3040:                                             ; preds = %3039
  %3041 = getelementptr inbounds %struct.s2n_blob, ptr %84, i32 0, i32 1
  %3042 = load i32, ptr %3041, align 8, !tbaa !46
  %3043 = icmp ne i32 %3042, 0
  br i1 %3043, label %3044, label %3113

3044:                                             ; preds = %3040
  br label %3045

3045:                                             ; preds = %3044
  %3046 = load i32, ptr @test_count, align 4, !tbaa !5
  %3047 = add nsw i32 %3046, 1
  store i32 %3047, ptr @test_count, align 4, !tbaa !5
  %3048 = getelementptr inbounds %struct.s2n_blob, ptr %88, i32 0, i32 0
  %3049 = load ptr, ptr %3048, align 8, !tbaa !47
  %3050 = getelementptr inbounds %struct.s2n_blob, ptr %84, i32 0, i32 0
  %3051 = load ptr, ptr %3050, align 8, !tbaa !47
  %3052 = getelementptr inbounds %struct.s2n_blob, ptr %84, i32 0, i32 1
  %3053 = load i32, ptr %3052, align 8, !tbaa !46
  %3054 = zext i32 %3053 to i64
  %3055 = call i32 @memcmp(ptr noundef %3049, ptr noundef %3051, i64 noundef %3054) #14
  %3056 = icmp eq i32 %3055, 0
  br i1 %3056, label %3110, label %3057

3057:                                             ; preds = %3045
  br label %3058

3058:                                             ; preds = %3057
  br label %3059

3059:                                             ; preds = %3058
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3060 = call ptr @__errno_location() #12
  %3061 = load i32, ptr %3060, align 4, !tbaa !5
  store i32 %3061, ptr %91, align 4, !tbaa !5
  %3062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3063 = call i32 @s2n_print_stacktrace(ptr noundef %3062)
  %3064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3065 = trunc i8 %3064 to i1
  br i1 %3065, label %3066, label %3088

3066:                                             ; preds = %3059
  %3067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3068 = call i32 @fileno(ptr noundef %3067) #11
  %3069 = call i32 @isatty(i32 noundef %3068) #11
  %3070 = icmp ne i32 %3069, 0
  br i1 %3070, label %3071, label %3088

3071:                                             ; preds = %3066
  %3072 = load i32, ptr %91, align 4, !tbaa !5
  %3073 = call ptr @__errno_location() #12
  store i32 %3072, ptr %3073, align 4, !tbaa !5
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = load i32, ptr @test_count, align 4, !tbaa !5
  %3076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call ptr @s2n_strerror(i32 noundef %3077, ptr noundef @.str.24)
  %3079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3080 = load i32, ptr %3079, align 4, !tbaa !5
  %3081 = call ptr @s2n_strerror_debug(i32 noundef %3080, ptr noundef @.str.24)
  %3082 = call ptr @__errno_location() #12
  %3083 = load i32, ptr %3082, align 4, !tbaa !5
  %3084 = call ptr @strerror(i32 noundef %3083) #11
  %3085 = call ptr @__errno_location() #12
  %3086 = load i32, ptr %3085, align 4, !tbaa !5
  %3087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3074, ptr noundef @.str.22, i32 noundef %3075, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 167, ptr noundef %3078, ptr noundef %3081, ptr noundef %3084, i32 noundef %3086) #11
  br label %3105

3088:                                             ; preds = %3066, %3059
  %3089 = load i32, ptr %91, align 4, !tbaa !5
  %3090 = call ptr @__errno_location() #12
  store i32 %3089, ptr %3090, align 4, !tbaa !5
  %3091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3092 = load i32, ptr @test_count, align 4, !tbaa !5
  %3093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3094 = load i32, ptr %3093, align 4, !tbaa !5
  %3095 = call ptr @s2n_strerror(i32 noundef %3094, ptr noundef @.str.24)
  %3096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  %3098 = call ptr @s2n_strerror_debug(i32 noundef %3097, ptr noundef @.str.24)
  %3099 = call ptr @__errno_location() #12
  %3100 = load i32, ptr %3099, align 4, !tbaa !5
  %3101 = call ptr @strerror(i32 noundef %3100) #11
  %3102 = call ptr @__errno_location() #12
  %3103 = load i32, ptr %3102, align 4, !tbaa !5
  %3104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3091, ptr noundef @.str.25, i32 noundef %3092, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 167, ptr noundef %3095, ptr noundef %3098, ptr noundef %3101, i32 noundef %3103) #11
  br label %3105

3105:                                             ; preds = %3088, %3071
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %3106

3106:                                             ; preds = %3105
  br label %3107

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

3108:                                             ; No predecessors!
  br label %3109

3109:                                             ; preds = %3108
  br label %3110

3110:                                             ; preds = %3109, %3045
  br label %3111

3111:                                             ; preds = %3110
  br label %3112

3112:                                             ; preds = %3111
  br label %3113

3113:                                             ; preds = %3112, %3040
  br label %3114

3114:                                             ; preds = %3113
  br label %3115

3115:                                             ; preds = %3114
  store i32 0, ptr %12, align 4
  br label %3116

3116:                                             ; preds = %3115, %2910
  call void @llvm.lifetime.end.p0(i64 24, ptr %88) #11
  br label %3117

3117:                                             ; preds = %3116, %2898
  call void @llvm.lifetime.end.p0(i64 64, ptr %87) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #11
  br label %3118

3118:                                             ; preds = %3117, %2861
  %3119 = call i32 @s2n_free(ptr noundef %84)
  call void @llvm.lifetime.end.p0(i64 24, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  %3120 = call i32 @s2n_connection_ptr_free(ptr noundef %82)
  %3121 = getelementptr inbounds %struct.s2n_result, ptr %92, i32 0, i32 0
  store i32 %3120, ptr %3121, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  %3122 = load i32, ptr %12, align 4
  switch i32 %3122, label %4889 [
    i32 0, label %3123
  ]

3123:                                             ; preds = %3118
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #11
  %3124 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3124, ptr %93, align 8, !tbaa !9
  %3125 = load ptr, ptr %93, align 8, !tbaa !9
  %3126 = getelementptr inbounds %struct.s2n_connection, ptr %3125, i32 0, i32 23
  store i8 32, ptr %3126, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #11
  store ptr @.str.61, ptr %94, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %95) #11
  call void @llvm.memset.p0.i64(ptr align 8 %95, i8 0, i64 24, i1 false)
  br label %3127

3127:                                             ; preds = %3123
  %3128 = load ptr, ptr %94, align 8, !tbaa !9
  %3129 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %95, ptr noundef %3128)
  %3130 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %3129, ptr %3130, align 4
  %3131 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  %3132 = load i32, ptr %3131, align 4
  %3133 = call zeroext i1 @s2n_result_is_ok(i32 %3132)
  br i1 %3133, label %3135, label %3134

3134:                                             ; preds = %3127
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %3391

3135:                                             ; preds = %3127
  br label %3136

3136:                                             ; preds = %3135
  br label %3137

3137:                                             ; preds = %3136
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  store i64 64, ptr %97, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 64, ptr %98) #11
  call void @llvm.memset.p0.i64(ptr align 16 %98, i8 0, i64 64, i1 false)
  br label %3138

3138:                                             ; preds = %3137
  %3139 = load i64, ptr %97, align 8, !tbaa !15
  %3140 = icmp ule i64 %3139, 64
  br i1 %3140, label %3174, label %3141

3141:                                             ; preds = %3138
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

3143:                                             ; preds = %3142
  %3144 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3145 = getelementptr inbounds %struct.s2n_debug_info, ptr %3144, i32 0, i32 0
  store ptr @.str.62, ptr %3145, align 8, !tbaa !17
  %3146 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3147 = getelementptr inbounds %struct.s2n_debug_info, ptr %3146, i32 0, i32 0
  %3148 = load ptr, ptr %3147, align 8, !tbaa !17
  %3149 = getelementptr inbounds i8, ptr %3148, i64 21
  %3150 = call ptr @strrchr(ptr noundef %3149, i32 noundef 47) #14
  %3151 = icmp ne ptr %3150, null
  br i1 %3151, label %3152, label %3159

3152:                                             ; preds = %3143
  %3153 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3154 = getelementptr inbounds %struct.s2n_debug_info, ptr %3153, i32 0, i32 0
  %3155 = load ptr, ptr %3154, align 8, !tbaa !17
  %3156 = getelementptr inbounds i8, ptr %3155, i64 21
  %3157 = call ptr @strrchr(ptr noundef %3156, i32 noundef 47) #14
  %3158 = getelementptr inbounds i8, ptr %3157, i64 1
  br label %3164

3159:                                             ; preds = %3143
  %3160 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3161 = getelementptr inbounds %struct.s2n_debug_info, ptr %3160, i32 0, i32 0
  %3162 = load ptr, ptr %3161, align 8, !tbaa !17
  %3163 = getelementptr inbounds i8, ptr %3162, i64 21
  br label %3164

3164:                                             ; preds = %3159, %3152
  %3165 = phi ptr [ %3158, %3152 ], [ %3163, %3159 ]
  %3166 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3167 = getelementptr inbounds %struct.s2n_debug_info, ptr %3166, i32 0, i32 1
  store ptr %3165, ptr %3167, align 8, !tbaa !19
  %3168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %3168, align 4, !tbaa !5
  %3169 = call i32 @s2n_calculate_stacktrace()
  br label %3170

3170:                                             ; preds = %3164
  br label %3171

3171:                                             ; preds = %3170
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %3390

3172:                                             ; No predecessors!
  br label %3173

3173:                                             ; preds = %3172
  br label %3174

3174:                                             ; preds = %3173, %3138
  br label %3175

3175:                                             ; preds = %3174
  br label %3176

3176:                                             ; preds = %3175
  call void @llvm.lifetime.start.p0(i64 24, ptr %99) #11
  call void @llvm.memset.p0.i64(ptr align 8 %99, i8 0, i64 24, i1 false)
  br label %3177

3177:                                             ; preds = %3176
  %3178 = getelementptr inbounds [64 x i8], ptr %98, i64 0, i64 0
  %3179 = load i64, ptr %97, align 8, !tbaa !15
  %3180 = trunc i64 %3179 to i32
  %3181 = call i32 @s2n_blob_init(ptr noundef %99, ptr noundef %3178, i32 noundef %3180)
  %3182 = icmp sgt i32 %3181, -1
  br i1 %3182, label %3184, label %3183

3183:                                             ; preds = %3177
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %3389

3184:                                             ; preds = %3177
  br label %3185

3185:                                             ; preds = %3184
  br label %3186

3186:                                             ; preds = %3185
  br label %3187

3187:                                             ; preds = %3186
  %3188 = load i32, ptr @test_count, align 4, !tbaa !5
  %3189 = add nsw i32 %3188, 1
  store i32 %3189, ptr @test_count, align 4, !tbaa !5
  %3190 = load ptr, ptr %93, align 8, !tbaa !9
  %3191 = call i32 @s2n_prf(ptr noundef %3190, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef %29, ptr noundef %32, ptr noundef %99)
  %3192 = icmp eq i32 %3191, -1
  br i1 %3192, label %3193, label %3246

3193:                                             ; preds = %3187
  br label %3194

3194:                                             ; preds = %3193
  br label %3195

3195:                                             ; preds = %3194
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %3196 = call ptr @__errno_location() #12
  %3197 = load i32, ptr %3196, align 4, !tbaa !5
  store i32 %3197, ptr %100, 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 %100, 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.63, ptr noundef @.str.21, i32 noundef 184, ptr noundef %3214, ptr noundef %3217, ptr noundef %3220, i32 noundef %3222) #11
  br label %3241

3224:                                             ; preds = %3202, %3195
  %3225 = load i32, ptr %100, 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.63, ptr noundef @.str.21, i32 noundef 184, 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 %100) #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, %3187
  br label %3247

3247:                                             ; preds = %3246
  br label %3248

3248:                                             ; preds = %3247
  br label %3249

3249:                                             ; preds = %3248
  %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 = getelementptr inbounds %struct.s2n_blob, ptr %99, i32 0, i32 1
  %3253 = load i32, ptr %3252, align 8, !tbaa !46
  %3254 = getelementptr inbounds %struct.s2n_blob, ptr %95, i32 0, i32 1
  %3255 = load i32, ptr %3254, align 8, !tbaa !46
  %3256 = icmp eq i32 %3253, %3255
  br i1 %3256, label %3310, label %3257

3257:                                             ; preds = %3249
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

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

3266:                                             ; preds = %3259
  %3267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3268 = call i32 @fileno(ptr noundef %3267) #11
  %3269 = call i32 @isatty(i32 noundef %3268) #11
  %3270 = icmp ne i32 %3269, 0
  br i1 %3270, label %3271, label %3288

3271:                                             ; preds = %3266
  %3272 = load i32, ptr %101, align 4, !tbaa !5
  %3273 = call ptr @__errno_location() #12
  store i32 %3272, ptr %3273, align 4, !tbaa !5
  %3274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3275 = load i32, ptr @test_count, align 4, !tbaa !5
  %3276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3277 = load i32, ptr %3276, align 4, !tbaa !5
  %3278 = call ptr @s2n_strerror(i32 noundef %3277, ptr noundef @.str.24)
  %3279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  %3281 = call ptr @s2n_strerror_debug(i32 noundef %3280, ptr noundef @.str.24)
  %3282 = call ptr @__errno_location() #12
  %3283 = load i32, ptr %3282, align 4, !tbaa !5
  %3284 = call ptr @strerror(i32 noundef %3283) #11
  %3285 = call ptr @__errno_location() #12
  %3286 = load i32, ptr %3285, align 4, !tbaa !5
  %3287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3274, ptr noundef @.str.22, i32 noundef %3275, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 185, ptr noundef %3278, ptr noundef %3281, ptr noundef %3284, i32 noundef %3286) #11
  br label %3305

3288:                                             ; preds = %3266, %3259
  %3289 = load i32, ptr %101, align 4, !tbaa !5
  %3290 = call ptr @__errno_location() #12
  store i32 %3289, ptr %3290, align 4, !tbaa !5
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = load i32, ptr @test_count, align 4, !tbaa !5
  %3293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @s2n_strerror(i32 noundef %3294, ptr noundef @.str.24)
  %3296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror_debug(i32 noundef %3297, ptr noundef @.str.24)
  %3299 = call ptr @__errno_location() #12
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  %3301 = call ptr @strerror(i32 noundef %3300) #11
  %3302 = call ptr @__errno_location() #12
  %3303 = load i32, ptr %3302, align 4, !tbaa !5
  %3304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3291, ptr noundef @.str.25, i32 noundef %3292, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 185, ptr noundef %3295, ptr noundef %3298, ptr noundef %3301, i32 noundef %3303) #11
  br label %3305

3305:                                             ; preds = %3288, %3271
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %3306

3306:                                             ; preds = %3305
  br label %3307

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

3308:                                             ; No predecessors!
  br label %3309

3309:                                             ; preds = %3308
  br label %3310

3310:                                             ; preds = %3309, %3249
  br label %3311

3311:                                             ; preds = %3310
  br label %3312

3312:                                             ; preds = %3311
  br label %3313

3313:                                             ; preds = %3312
  %3314 = getelementptr inbounds %struct.s2n_blob, ptr %95, i32 0, i32 1
  %3315 = load i32, ptr %3314, align 8, !tbaa !46
  %3316 = icmp ne i32 %3315, 0
  br i1 %3316, label %3317, label %3386

3317:                                             ; preds = %3313
  br label %3318

3318:                                             ; preds = %3317
  %3319 = load i32, ptr @test_count, align 4, !tbaa !5
  %3320 = add nsw i32 %3319, 1
  store i32 %3320, ptr @test_count, align 4, !tbaa !5
  %3321 = getelementptr inbounds %struct.s2n_blob, ptr %99, i32 0, i32 0
  %3322 = load ptr, ptr %3321, align 8, !tbaa !47
  %3323 = getelementptr inbounds %struct.s2n_blob, ptr %95, i32 0, i32 0
  %3324 = load ptr, ptr %3323, align 8, !tbaa !47
  %3325 = getelementptr inbounds %struct.s2n_blob, ptr %95, i32 0, i32 1
  %3326 = load i32, ptr %3325, align 8, !tbaa !46
  %3327 = zext i32 %3326 to i64
  %3328 = call i32 @memcmp(ptr noundef %3322, ptr noundef %3324, i64 noundef %3327) #14
  %3329 = icmp eq i32 %3328, 0
  br i1 %3329, label %3383, label %3330

3330:                                             ; preds = %3318
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

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

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

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

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

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

3379:                                             ; preds = %3378
  br label %3380

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

3381:                                             ; No predecessors!
  br label %3382

3382:                                             ; preds = %3381
  br label %3383

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

3384:                                             ; preds = %3383
  br label %3385

3385:                                             ; preds = %3384
  br label %3386

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

3387:                                             ; preds = %3386
  br label %3388

3388:                                             ; preds = %3387
  store i32 0, ptr %12, align 4
  br label %3389

3389:                                             ; preds = %3388, %3183
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #11
  br label %3390

3390:                                             ; preds = %3389, %3171
  call void @llvm.lifetime.end.p0(i64 64, ptr %98) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  br label %3391

3391:                                             ; preds = %3390, %3134
  %3392 = call i32 @s2n_free(ptr noundef %95)
  call void @llvm.lifetime.end.p0(i64 24, ptr %95) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #11
  %3393 = call i32 @s2n_connection_ptr_free(ptr noundef %93)
  %3394 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  store i32 %3393, ptr %3394, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #11
  %3395 = load i32, ptr %12, align 4
  switch i32 %3395, label %4889 [
    i32 0, label %3396
  ]

3396:                                             ; preds = %3391
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #11
  %3397 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3397, ptr %104, align 8, !tbaa !9
  %3398 = load ptr, ptr %104, align 8, !tbaa !9
  %3399 = getelementptr inbounds %struct.s2n_connection, ptr %3398, i32 0, i32 23
  store i8 33, ptr %3399, align 4, !tbaa !20
  %3400 = load ptr, ptr %104, align 8, !tbaa !9
  %3401 = getelementptr inbounds %struct.s2n_connection, ptr %3400, i32 0, i32 27
  %3402 = load ptr, ptr %3401, align 8, !tbaa !48
  %3403 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3402, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384, ptr %3403, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #11
  store ptr @.str.64, ptr %105, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %106) #11
  call void @llvm.memset.p0.i64(ptr align 8 %106, i8 0, i64 24, i1 false)
  br label %3404

3404:                                             ; preds = %3396
  %3405 = load ptr, ptr %105, align 8, !tbaa !9
  %3406 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %106, ptr noundef %3405)
  %3407 = getelementptr inbounds %struct.s2n_result, ptr %107, i32 0, i32 0
  store i32 %3406, ptr %3407, align 4
  %3408 = getelementptr inbounds %struct.s2n_result, ptr %107, i32 0, i32 0
  %3409 = load i32, ptr %3408, align 4
  %3410 = call zeroext i1 @s2n_result_is_ok(i32 %3409)
  br i1 %3410, label %3412, label %3411

3411:                                             ; preds = %3404
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %3668

3412:                                             ; preds = %3404
  br label %3413

3413:                                             ; preds = %3412
  br label %3414

3414:                                             ; preds = %3413
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #11
  store i64 64, ptr %108, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 64, ptr %109) #11
  call void @llvm.memset.p0.i64(ptr align 16 %109, i8 0, i64 64, i1 false)
  br label %3415

3415:                                             ; preds = %3414
  %3416 = load i64, ptr %108, align 8, !tbaa !15
  %3417 = icmp ule i64 %3416, 64
  br i1 %3417, label %3451, label %3418

3418:                                             ; preds = %3415
  br label %3419

3419:                                             ; preds = %3418
  br label %3420

3420:                                             ; preds = %3419
  %3421 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3422 = getelementptr inbounds %struct.s2n_debug_info, ptr %3421, i32 0, i32 0
  store ptr @.str.65, ptr %3422, align 8, !tbaa !17
  %3423 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3424 = getelementptr inbounds %struct.s2n_debug_info, ptr %3423, i32 0, i32 0
  %3425 = load ptr, ptr %3424, align 8, !tbaa !17
  %3426 = getelementptr inbounds i8, ptr %3425, i64 21
  %3427 = call ptr @strrchr(ptr noundef %3426, i32 noundef 47) #14
  %3428 = icmp ne ptr %3427, null
  br i1 %3428, label %3429, label %3436

3429:                                             ; preds = %3420
  %3430 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3431 = getelementptr inbounds %struct.s2n_debug_info, ptr %3430, i32 0, i32 0
  %3432 = load ptr, ptr %3431, align 8, !tbaa !17
  %3433 = getelementptr inbounds i8, ptr %3432, i64 21
  %3434 = call ptr @strrchr(ptr noundef %3433, i32 noundef 47) #14
  %3435 = getelementptr inbounds i8, ptr %3434, i64 1
  br label %3441

3436:                                             ; preds = %3420
  %3437 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3438 = getelementptr inbounds %struct.s2n_debug_info, ptr %3437, i32 0, i32 0
  %3439 = load ptr, ptr %3438, align 8, !tbaa !17
  %3440 = getelementptr inbounds i8, ptr %3439, i64 21
  br label %3441

3441:                                             ; preds = %3436, %3429
  %3442 = phi ptr [ %3435, %3429 ], [ %3440, %3436 ]
  %3443 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3444 = getelementptr inbounds %struct.s2n_debug_info, ptr %3443, i32 0, i32 1
  store ptr %3442, ptr %3444, align 8, !tbaa !19
  %3445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %3445, align 4, !tbaa !5
  %3446 = call i32 @s2n_calculate_stacktrace()
  br label %3447

3447:                                             ; preds = %3441
  br label %3448

3448:                                             ; preds = %3447
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %3667

3449:                                             ; No predecessors!
  br label %3450

3450:                                             ; preds = %3449
  br label %3451

3451:                                             ; preds = %3450, %3415
  br label %3452

3452:                                             ; preds = %3451
  br label %3453

3453:                                             ; preds = %3452
  call void @llvm.lifetime.start.p0(i64 24, ptr %110) #11
  call void @llvm.memset.p0.i64(ptr align 8 %110, i8 0, i64 24, i1 false)
  br label %3454

3454:                                             ; preds = %3453
  %3455 = getelementptr inbounds [64 x i8], ptr %109, i64 0, i64 0
  %3456 = load i64, ptr %108, align 8, !tbaa !15
  %3457 = trunc i64 %3456 to i32
  %3458 = call i32 @s2n_blob_init(ptr noundef %110, ptr noundef %3455, i32 noundef %3457)
  %3459 = icmp sgt i32 %3458, -1
  br i1 %3459, label %3461, label %3460

3460:                                             ; preds = %3454
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %3666

3461:                                             ; preds = %3454
  br label %3462

3462:                                             ; preds = %3461
  br label %3463

3463:                                             ; preds = %3462
  br label %3464

3464:                                             ; preds = %3463
  %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 = load ptr, ptr %104, align 8, !tbaa !9
  %3468 = call i32 @s2n_prf(ptr noundef %3467, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef %29, ptr noundef %32, ptr noundef %110)
  %3469 = icmp eq i32 %3468, -1
  br i1 %3469, label %3470, label %3523

3470:                                             ; preds = %3464
  br label %3471

3471:                                             ; preds = %3470
  br label %3472

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

3479:                                             ; preds = %3472
  %3480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3481 = call i32 @fileno(ptr noundef %3480) #11
  %3482 = call i32 @isatty(i32 noundef %3481) #11
  %3483 = icmp ne i32 %3482, 0
  br i1 %3483, label %3484, label %3501

3484:                                             ; preds = %3479
  %3485 = load i32, ptr %111, align 4, !tbaa !5
  %3486 = call ptr @__errno_location() #12
  store i32 %3485, ptr %3486, align 4, !tbaa !5
  %3487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3488 = load i32, ptr @test_count, align 4, !tbaa !5
  %3489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3490 = load i32, ptr %3489, align 4, !tbaa !5
  %3491 = call ptr @s2n_strerror(i32 noundef %3490, ptr noundef @.str.24)
  %3492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3493 = load i32, ptr %3492, align 4, !tbaa !5
  %3494 = call ptr @s2n_strerror_debug(i32 noundef %3493, ptr noundef @.str.24)
  %3495 = call ptr @__errno_location() #12
  %3496 = load i32, ptr %3495, align 4, !tbaa !5
  %3497 = call ptr @strerror(i32 noundef %3496) #11
  %3498 = call ptr @__errno_location() #12
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3487, ptr noundef @.str.22, i32 noundef %3488, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 204, ptr noundef %3491, ptr noundef %3494, ptr noundef %3497, i32 noundef %3499) #11
  br label %3518

3501:                                             ; preds = %3479, %3472
  %3502 = load i32, ptr %111, align 4, !tbaa !5
  %3503 = call ptr @__errno_location() #12
  store i32 %3502, ptr %3503, align 4, !tbaa !5
  %3504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3505 = load i32, ptr @test_count, align 4, !tbaa !5
  %3506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3507 = load i32, ptr %3506, align 4, !tbaa !5
  %3508 = call ptr @s2n_strerror(i32 noundef %3507, ptr noundef @.str.24)
  %3509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3510 = load i32, ptr %3509, align 4, !tbaa !5
  %3511 = call ptr @s2n_strerror_debug(i32 noundef %3510, ptr noundef @.str.24)
  %3512 = call ptr @__errno_location() #12
  %3513 = load i32, ptr %3512, align 4, !tbaa !5
  %3514 = call ptr @strerror(i32 noundef %3513) #11
  %3515 = call ptr @__errno_location() #12
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3504, ptr noundef @.str.25, i32 noundef %3505, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 204, ptr noundef %3508, ptr noundef %3511, ptr noundef %3514, i32 noundef %3516) #11
  br label %3518

3518:                                             ; preds = %3501, %3484
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %3519

3519:                                             ; preds = %3518
  br label %3520

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

3521:                                             ; No predecessors!
  br label %3522

3522:                                             ; preds = %3521
  br label %3523

3523:                                             ; preds = %3522, %3464
  br label %3524

3524:                                             ; preds = %3523
  br label %3525

3525:                                             ; preds = %3524
  br label %3526

3526:                                             ; preds = %3525
  %3527 = load i32, ptr @test_count, align 4, !tbaa !5
  %3528 = add nsw i32 %3527, 1
  store i32 %3528, ptr @test_count, align 4, !tbaa !5
  %3529 = getelementptr inbounds %struct.s2n_blob, ptr %110, i32 0, i32 1
  %3530 = load i32, ptr %3529, align 8, !tbaa !46
  %3531 = getelementptr inbounds %struct.s2n_blob, ptr %106, i32 0, i32 1
  %3532 = load i32, ptr %3531, align 8, !tbaa !46
  %3533 = icmp eq i32 %3530, %3532
  br i1 %3533, label %3587, label %3534

3534:                                             ; preds = %3526
  br label %3535

3535:                                             ; preds = %3534
  br label %3536

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

3543:                                             ; preds = %3536
  %3544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3545 = call i32 @fileno(ptr noundef %3544) #11
  %3546 = call i32 @isatty(i32 noundef %3545) #11
  %3547 = icmp ne i32 %3546, 0
  br i1 %3547, label %3548, label %3565

3548:                                             ; preds = %3543
  %3549 = load i32, ptr %112, align 4, !tbaa !5
  %3550 = call ptr @__errno_location() #12
  store i32 %3549, ptr %3550, align 4, !tbaa !5
  %3551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3552 = load i32, ptr @test_count, align 4, !tbaa !5
  %3553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3554 = load i32, ptr %3553, align 4, !tbaa !5
  %3555 = call ptr @s2n_strerror(i32 noundef %3554, ptr noundef @.str.24)
  %3556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3557 = load i32, ptr %3556, align 4, !tbaa !5
  %3558 = call ptr @s2n_strerror_debug(i32 noundef %3557, ptr noundef @.str.24)
  %3559 = call ptr @__errno_location() #12
  %3560 = load i32, ptr %3559, align 4, !tbaa !5
  %3561 = call ptr @strerror(i32 noundef %3560) #11
  %3562 = call ptr @__errno_location() #12
  %3563 = load i32, ptr %3562, align 4, !tbaa !5
  %3564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3551, ptr noundef @.str.22, i32 noundef %3552, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 205, ptr noundef %3555, ptr noundef %3558, ptr noundef %3561, i32 noundef %3563) #11
  br label %3582

3565:                                             ; preds = %3543, %3536
  %3566 = load i32, ptr %112, align 4, !tbaa !5
  %3567 = call ptr @__errno_location() #12
  store i32 %3566, ptr %3567, align 4, !tbaa !5
  %3568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3569 = load i32, ptr @test_count, align 4, !tbaa !5
  %3570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3571 = load i32, ptr %3570, align 4, !tbaa !5
  %3572 = call ptr @s2n_strerror(i32 noundef %3571, ptr noundef @.str.24)
  %3573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3574 = load i32, ptr %3573, align 4, !tbaa !5
  %3575 = call ptr @s2n_strerror_debug(i32 noundef %3574, ptr noundef @.str.24)
  %3576 = call ptr @__errno_location() #12
  %3577 = load i32, ptr %3576, align 4, !tbaa !5
  %3578 = call ptr @strerror(i32 noundef %3577) #11
  %3579 = call ptr @__errno_location() #12
  %3580 = load i32, ptr %3579, align 4, !tbaa !5
  %3581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3568, ptr noundef @.str.25, i32 noundef %3569, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 205, ptr noundef %3572, ptr noundef %3575, ptr noundef %3578, i32 noundef %3580) #11
  br label %3582

3582:                                             ; preds = %3565, %3548
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %3583

3583:                                             ; preds = %3582
  br label %3584

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

3585:                                             ; No predecessors!
  br label %3586

3586:                                             ; preds = %3585
  br label %3587

3587:                                             ; preds = %3586, %3526
  br label %3588

3588:                                             ; preds = %3587
  br label %3589

3589:                                             ; preds = %3588
  br label %3590

3590:                                             ; preds = %3589
  %3591 = getelementptr inbounds %struct.s2n_blob, ptr %106, i32 0, i32 1
  %3592 = load i32, ptr %3591, align 8, !tbaa !46
  %3593 = icmp ne i32 %3592, 0
  br i1 %3593, label %3594, label %3663

3594:                                             ; preds = %3590
  br label %3595

3595:                                             ; preds = %3594
  %3596 = load i32, ptr @test_count, align 4, !tbaa !5
  %3597 = add nsw i32 %3596, 1
  store i32 %3597, ptr @test_count, align 4, !tbaa !5
  %3598 = getelementptr inbounds %struct.s2n_blob, ptr %110, i32 0, i32 0
  %3599 = load ptr, ptr %3598, align 8, !tbaa !47
  %3600 = getelementptr inbounds %struct.s2n_blob, ptr %106, i32 0, i32 0
  %3601 = load ptr, ptr %3600, align 8, !tbaa !47
  %3602 = getelementptr inbounds %struct.s2n_blob, ptr %106, i32 0, i32 1
  %3603 = load i32, ptr %3602, align 8, !tbaa !46
  %3604 = zext i32 %3603 to i64
  %3605 = call i32 @memcmp(ptr noundef %3599, ptr noundef %3601, i64 noundef %3604) #14
  %3606 = icmp eq i32 %3605, 0
  br i1 %3606, label %3660, label %3607

3607:                                             ; preds = %3595
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

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

3616:                                             ; preds = %3609
  %3617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3618 = call i32 @fileno(ptr noundef %3617) #11
  %3619 = call i32 @isatty(i32 noundef %3618) #11
  %3620 = icmp ne i32 %3619, 0
  br i1 %3620, label %3621, label %3638

3621:                                             ; preds = %3616
  %3622 = load i32, ptr %113, align 4, !tbaa !5
  %3623 = call ptr @__errno_location() #12
  store i32 %3622, ptr %3623, align 4, !tbaa !5
  %3624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3625 = load i32, ptr @test_count, align 4, !tbaa !5
  %3626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3627 = load i32, ptr %3626, align 4, !tbaa !5
  %3628 = call ptr @s2n_strerror(i32 noundef %3627, ptr noundef @.str.24)
  %3629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3630 = load i32, ptr %3629, align 4, !tbaa !5
  %3631 = call ptr @s2n_strerror_debug(i32 noundef %3630, ptr noundef @.str.24)
  %3632 = call ptr @__errno_location() #12
  %3633 = load i32, ptr %3632, align 4, !tbaa !5
  %3634 = call ptr @strerror(i32 noundef %3633) #11
  %3635 = call ptr @__errno_location() #12
  %3636 = load i32, ptr %3635, align 4, !tbaa !5
  %3637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3624, ptr noundef @.str.22, i32 noundef %3625, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 206, ptr noundef %3628, ptr noundef %3631, ptr noundef %3634, i32 noundef %3636) #11
  br label %3655

3638:                                             ; preds = %3616, %3609
  %3639 = load i32, ptr %113, align 4, !tbaa !5
  %3640 = call ptr @__errno_location() #12
  store i32 %3639, ptr %3640, align 4, !tbaa !5
  %3641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3642 = load i32, ptr @test_count, align 4, !tbaa !5
  %3643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3644 = load i32, ptr %3643, align 4, !tbaa !5
  %3645 = call ptr @s2n_strerror(i32 noundef %3644, ptr noundef @.str.24)
  %3646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3647 = load i32, ptr %3646, align 4, !tbaa !5
  %3648 = call ptr @s2n_strerror_debug(i32 noundef %3647, ptr noundef @.str.24)
  %3649 = call ptr @__errno_location() #12
  %3650 = load i32, ptr %3649, align 4, !tbaa !5
  %3651 = call ptr @strerror(i32 noundef %3650) #11
  %3652 = call ptr @__errno_location() #12
  %3653 = load i32, ptr %3652, align 4, !tbaa !5
  %3654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3641, ptr noundef @.str.25, i32 noundef %3642, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 206, ptr noundef %3645, ptr noundef %3648, ptr noundef %3651, i32 noundef %3653) #11
  br label %3655

3655:                                             ; preds = %3638, %3621
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %3656

3656:                                             ; preds = %3655
  br label %3657

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

3658:                                             ; No predecessors!
  br label %3659

3659:                                             ; preds = %3658
  br label %3660

3660:                                             ; preds = %3659, %3595
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

3662:                                             ; preds = %3661
  br label %3663

3663:                                             ; preds = %3662, %3590
  br label %3664

3664:                                             ; preds = %3663
  br label %3665

3665:                                             ; preds = %3664
  store i32 0, ptr %12, align 4
  br label %3666

3666:                                             ; preds = %3665, %3460
  call void @llvm.lifetime.end.p0(i64 24, ptr %110) #11
  br label %3667

3667:                                             ; preds = %3666, %3448
  call void @llvm.lifetime.end.p0(i64 64, ptr %109) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  br label %3668

3668:                                             ; preds = %3667, %3411
  %3669 = call i32 @s2n_free(ptr noundef %106)
  call void @llvm.lifetime.end.p0(i64 24, ptr %106) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #11
  %3670 = call i32 @s2n_connection_ptr_free(ptr noundef %104)
  %3671 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  store i32 %3670, ptr %3671, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #11
  %3672 = load i32, ptr %12, align 4
  switch i32 %3672, label %4889 [
    i32 0, label %3673
  ]

3673:                                             ; preds = %3668
  %3674 = call zeroext i1 @s2n_libcrypto_is_openssl_fips()
  br i1 %3674, label %3675, label %4378

3675:                                             ; preds = %3673
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #11
  %3676 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3676, ptr %115, align 8, !tbaa !9
  %3677 = load ptr, ptr %115, align 8, !tbaa !9
  %3678 = getelementptr inbounds %struct.s2n_connection, ptr %3677, i32 0, i32 23
  store i8 32, ptr %3678, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 24, ptr %116) #11
  call void @llvm.memset.p0.i64(ptr align 8 %116, i8 0, i64 24, i1 false)
  br label %3679

3679:                                             ; preds = %3675
  %3680 = load i32, ptr @test_count, align 4, !tbaa !5
  %3681 = add nsw i32 %3680, 1
  store i32 %3681, ptr @test_count, align 4, !tbaa !5
  %3682 = call i32 @s2n_alloc(ptr noundef %116, i32 noundef 30)
  %3683 = icmp eq i32 %3682, -1
  br i1 %3683, label %3684, label %3737

3684:                                             ; preds = %3679
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

3686:                                             ; preds = %3685
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %3687 = call ptr @__errno_location() #12
  %3688 = load i32, ptr %3687, align 4, !tbaa !5
  store i32 %3688, ptr %117, align 4, !tbaa !5
  %3689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3690 = call i32 @s2n_print_stacktrace(ptr noundef %3689)
  %3691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3692 = trunc i8 %3691 to i1
  br i1 %3692, label %3693, label %3715

3693:                                             ; preds = %3686
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = call i32 @fileno(ptr noundef %3694) #11
  %3696 = call i32 @isatty(i32 noundef %3695) #11
  %3697 = icmp ne i32 %3696, 0
  br i1 %3697, label %3698, label %3715

3698:                                             ; preds = %3693
  %3699 = load i32, ptr %117, align 4, !tbaa !5
  %3700 = call ptr @__errno_location() #12
  store i32 %3699, ptr %3700, align 4, !tbaa !5
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = load i32, ptr @test_count, align 4, !tbaa !5
  %3703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror(i32 noundef %3704, ptr noundef @.str.24)
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror_debug(i32 noundef %3707, ptr noundef @.str.24)
  %3709 = call ptr @__errno_location() #12
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @strerror(i32 noundef %3710) #11
  %3712 = call ptr @__errno_location() #12
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3701, ptr noundef @.str.22, i32 noundef %3702, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 216, ptr noundef %3705, ptr noundef %3708, ptr noundef %3711, i32 noundef %3713) #11
  br label %3732

3715:                                             ; preds = %3693, %3686
  %3716 = load i32, ptr %117, align 4, !tbaa !5
  %3717 = call ptr @__errno_location() #12
  store i32 %3716, ptr %3717, align 4, !tbaa !5
  %3718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3719 = load i32, ptr @test_count, align 4, !tbaa !5
  %3720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror(i32 noundef %3721, ptr noundef @.str.24)
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef @.str.24)
  %3726 = call ptr @__errno_location() #12
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @strerror(i32 noundef %3727) #11
  %3729 = call ptr @__errno_location() #12
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3718, ptr noundef @.str.25, i32 noundef %3719, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 216, ptr noundef %3722, ptr noundef %3725, ptr noundef %3728, i32 noundef %3730) #11
  br label %3732

3732:                                             ; preds = %3715, %3698
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %3733

3733:                                             ; preds = %3732
  br label %3734

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

3735:                                             ; No predecessors!
  br label %3736

3736:                                             ; preds = %3735
  br label %3737

3737:                                             ; preds = %3736, %3679
  br label %3738

3738:                                             ; preds = %3737
  br label %3739

3739:                                             ; preds = %3738
  call void @llvm.lifetime.start.p0(i64 24, ptr %118) #11
  call void @llvm.memset.p0.i64(ptr align 8 %118, i8 0, i64 24, i1 false)
  br label %3740

3740:                                             ; preds = %3739
  %3741 = load i32, ptr @test_count, align 4, !tbaa !5
  %3742 = add nsw i32 %3741, 1
  store i32 %3742, ptr @test_count, align 4, !tbaa !5
  %3743 = call i32 @s2n_alloc(ptr noundef %118, i32 noundef 300)
  %3744 = icmp eq i32 %3743, -1
  br i1 %3744, label %3745, label %3798

3745:                                             ; preds = %3740
  br label %3746

3746:                                             ; preds = %3745
  br label %3747

3747:                                             ; preds = %3746
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %3748 = call ptr @__errno_location() #12
  %3749 = load i32, ptr %3748, align 4, !tbaa !5
  store i32 %3749, ptr %119, align 4, !tbaa !5
  %3750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3751 = call i32 @s2n_print_stacktrace(ptr noundef %3750)
  %3752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3753 = trunc i8 %3752 to i1
  br i1 %3753, label %3754, label %3776

3754:                                             ; preds = %3747
  %3755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3756 = call i32 @fileno(ptr noundef %3755) #11
  %3757 = call i32 @isatty(i32 noundef %3756) #11
  %3758 = icmp ne i32 %3757, 0
  br i1 %3758, label %3759, label %3776

3759:                                             ; preds = %3754
  %3760 = load i32, ptr %119, align 4, !tbaa !5
  %3761 = call ptr @__errno_location() #12
  store i32 %3760, ptr %3761, align 4, !tbaa !5
  %3762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3763 = load i32, ptr @test_count, align 4, !tbaa !5
  %3764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3765 = load i32, ptr %3764, align 4, !tbaa !5
  %3766 = call ptr @s2n_strerror(i32 noundef %3765, ptr noundef @.str.24)
  %3767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3768 = load i32, ptr %3767, align 4, !tbaa !5
  %3769 = call ptr @s2n_strerror_debug(i32 noundef %3768, ptr noundef @.str.24)
  %3770 = call ptr @__errno_location() #12
  %3771 = load i32, ptr %3770, align 4, !tbaa !5
  %3772 = call ptr @strerror(i32 noundef %3771) #11
  %3773 = call ptr @__errno_location() #12
  %3774 = load i32, ptr %3773, align 4, !tbaa !5
  %3775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3762, ptr noundef @.str.22, i32 noundef %3763, ptr noundef @.str.67, ptr noundef @.str.21, i32 noundef 219, ptr noundef %3766, ptr noundef %3769, ptr noundef %3772, i32 noundef %3774) #11
  br label %3793

3776:                                             ; preds = %3754, %3747
  %3777 = load i32, ptr %119, align 4, !tbaa !5
  %3778 = call ptr @__errno_location() #12
  store i32 %3777, ptr %3778, align 4, !tbaa !5
  %3779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3780 = load i32, ptr @test_count, align 4, !tbaa !5
  %3781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3782 = load i32, ptr %3781, align 4, !tbaa !5
  %3783 = call ptr @s2n_strerror(i32 noundef %3782, ptr noundef @.str.24)
  %3784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3785 = load i32, ptr %3784, align 4, !tbaa !5
  %3786 = call ptr @s2n_strerror_debug(i32 noundef %3785, ptr noundef @.str.24)
  %3787 = call ptr @__errno_location() #12
  %3788 = load i32, ptr %3787, align 4, !tbaa !5
  %3789 = call ptr @strerror(i32 noundef %3788) #11
  %3790 = call ptr @__errno_location() #12
  %3791 = load i32, ptr %3790, align 4, !tbaa !5
  %3792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3779, ptr noundef @.str.25, i32 noundef %3780, ptr noundef @.str.67, ptr noundef @.str.21, i32 noundef 219, ptr noundef %3783, ptr noundef %3786, ptr noundef %3789, i32 noundef %3791) #11
  br label %3793

3793:                                             ; preds = %3776, %3759
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %3794

3794:                                             ; preds = %3793
  br label %3795

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

3796:                                             ; No predecessors!
  br label %3797

3797:                                             ; preds = %3796
  br label %3798

3798:                                             ; preds = %3797, %3740
  br label %3799

3799:                                             ; preds = %3798
  br label %3800

3800:                                             ; preds = %3799
  call void @llvm.lifetime.start.p0(i64 24, ptr %120) #11
  call void @llvm.memset.p0.i64(ptr align 8 %120, i8 0, i64 24, i1 false)
  br label %3801

3801:                                             ; preds = %3800
  %3802 = load i32, ptr @test_count, align 4, !tbaa !5
  %3803 = add nsw i32 %3802, 1
  store i32 %3803, ptr @test_count, align 4, !tbaa !5
  %3804 = call i32 @s2n_alloc(ptr noundef %120, i32 noundef 3000)
  %3805 = icmp eq i32 %3804, -1
  br i1 %3805, label %3806, label %3859

3806:                                             ; preds = %3801
  br label %3807

3807:                                             ; preds = %3806
  br label %3808

3808:                                             ; preds = %3807
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #11
  %3809 = call ptr @__errno_location() #12
  %3810 = load i32, ptr %3809, align 4, !tbaa !5
  store i32 %3810, ptr %121, align 4, !tbaa !5
  %3811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3812 = call i32 @s2n_print_stacktrace(ptr noundef %3811)
  %3813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3814 = trunc i8 %3813 to i1
  br i1 %3814, label %3815, label %3837

3815:                                             ; preds = %3808
  %3816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3817 = call i32 @fileno(ptr noundef %3816) #11
  %3818 = call i32 @isatty(i32 noundef %3817) #11
  %3819 = icmp ne i32 %3818, 0
  br i1 %3819, label %3820, label %3837

3820:                                             ; preds = %3815
  %3821 = load i32, ptr %121, align 4, !tbaa !5
  %3822 = call ptr @__errno_location() #12
  store i32 %3821, ptr %3822, align 4, !tbaa !5
  %3823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3824 = load i32, ptr @test_count, align 4, !tbaa !5
  %3825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror(i32 noundef %3826, ptr noundef @.str.24)
  %3828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror_debug(i32 noundef %3829, ptr noundef @.str.24)
  %3831 = call ptr @__errno_location() #12
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @strerror(i32 noundef %3832) #11
  %3834 = call ptr @__errno_location() #12
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3823, ptr noundef @.str.22, i32 noundef %3824, ptr noundef @.str.68, ptr noundef @.str.21, i32 noundef 222, ptr noundef %3827, ptr noundef %3830, ptr noundef %3833, i32 noundef %3835) #11
  br label %3854

3837:                                             ; preds = %3815, %3808
  %3838 = load i32, ptr %121, align 4, !tbaa !5
  %3839 = call ptr @__errno_location() #12
  store i32 %3838, ptr %3839, align 4, !tbaa !5
  %3840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3841 = load i32, ptr @test_count, align 4, !tbaa !5
  %3842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call ptr @s2n_strerror(i32 noundef %3843, ptr noundef @.str.24)
  %3845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call ptr @s2n_strerror_debug(i32 noundef %3846, ptr noundef @.str.24)
  %3848 = call ptr @__errno_location() #12
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @strerror(i32 noundef %3849) #11
  %3851 = call ptr @__errno_location() #12
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3840, ptr noundef @.str.25, i32 noundef %3841, ptr noundef @.str.68, ptr noundef @.str.21, i32 noundef 222, ptr noundef %3844, ptr noundef %3847, ptr noundef %3850, i32 noundef %3852) #11
  br label %3854

3854:                                             ; preds = %3837, %3820
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %3855

3855:                                             ; preds = %3854
  br label %3856

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

3857:                                             ; No predecessors!
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

3859:                                             ; preds = %3858, %3801
  br label %3860

3860:                                             ; preds = %3859
  br label %3861

3861:                                             ; preds = %3860
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #11
  store i64 64, ptr %122, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 64, ptr %123) #11
  call void @llvm.memset.p0.i64(ptr align 16 %123, i8 0, i64 64, i1 false)
  br label %3862

3862:                                             ; preds = %3861
  %3863 = load i64, ptr %122, align 8, !tbaa !15
  %3864 = icmp ule i64 %3863, 64
  br i1 %3864, label %3898, label %3865

3865:                                             ; preds = %3862
  br label %3866

3866:                                             ; preds = %3865
  br label %3867

3867:                                             ; preds = %3866
  %3868 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3869 = getelementptr inbounds %struct.s2n_debug_info, ptr %3868, i32 0, i32 0
  store ptr @.str.69, ptr %3869, align 8, !tbaa !17
  %3870 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3871 = getelementptr inbounds %struct.s2n_debug_info, ptr %3870, i32 0, i32 0
  %3872 = load ptr, ptr %3871, align 8, !tbaa !17
  %3873 = getelementptr inbounds i8, ptr %3872, i64 21
  %3874 = call ptr @strrchr(ptr noundef %3873, i32 noundef 47) #14
  %3875 = icmp ne ptr %3874, null
  br i1 %3875, label %3876, label %3883

3876:                                             ; preds = %3867
  %3877 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3878 = getelementptr inbounds %struct.s2n_debug_info, ptr %3877, i32 0, i32 0
  %3879 = load ptr, ptr %3878, align 8, !tbaa !17
  %3880 = getelementptr inbounds i8, ptr %3879, i64 21
  %3881 = call ptr @strrchr(ptr noundef %3880, i32 noundef 47) #14
  %3882 = getelementptr inbounds i8, ptr %3881, i64 1
  br label %3888

3883:                                             ; preds = %3867
  %3884 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3885 = getelementptr inbounds %struct.s2n_debug_info, ptr %3884, i32 0, i32 0
  %3886 = load ptr, ptr %3885, align 8, !tbaa !17
  %3887 = getelementptr inbounds i8, ptr %3886, i64 21
  br label %3888

3888:                                             ; preds = %3883, %3876
  %3889 = phi ptr [ %3882, %3876 ], [ %3887, %3883 ]
  %3890 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3891 = getelementptr inbounds %struct.s2n_debug_info, ptr %3890, i32 0, i32 1
  store ptr %3889, ptr %3891, align 8, !tbaa !19
  %3892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %3892, align 4, !tbaa !5
  %3893 = call i32 @s2n_calculate_stacktrace()
  br label %3894

3894:                                             ; preds = %3888
  br label %3895

3895:                                             ; preds = %3894
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4370

3896:                                             ; No predecessors!
  br label %3897

3897:                                             ; preds = %3896
  br label %3898

3898:                                             ; preds = %3897, %3862
  br label %3899

3899:                                             ; preds = %3898
  br label %3900

3900:                                             ; preds = %3899
  call void @llvm.lifetime.start.p0(i64 24, ptr %124) #11
  call void @llvm.memset.p0.i64(ptr align 8 %124, i8 0, i64 24, i1 false)
  br label %3901

3901:                                             ; preds = %3900
  %3902 = getelementptr inbounds [64 x i8], ptr %123, i64 0, i64 0
  %3903 = load i64, ptr %122, align 8, !tbaa !15
  %3904 = trunc i64 %3903 to i32
  %3905 = call i32 @s2n_blob_init(ptr noundef %124, ptr noundef %3902, i32 noundef %3904)
  %3906 = icmp sgt i32 %3905, -1
  br i1 %3906, label %3908, label %3907

3907:                                             ; preds = %3901
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4369

3908:                                             ; preds = %3901
  br label %3909

3909:                                             ; preds = %3908
  br label %3910

3910:                                             ; preds = %3909
  br label %3911

3911:                                             ; preds = %3910
  br label %3912

3912:                                             ; preds = %3911
  br label %3913

3913:                                             ; preds = %3912
  %3914 = load i32, ptr @test_count, align 4, !tbaa !5
  %3915 = add nsw i32 %3914, 1
  store i32 %3915, ptr @test_count, align 4, !tbaa !5
  %3916 = load ptr, ptr %115, align 8, !tbaa !9
  %3917 = call i32 @s2n_prf(ptr noundef %3916, ptr noundef %20, ptr noundef %116, ptr noundef %116, ptr noundef %116, ptr noundef %120, ptr noundef %124)
  %3918 = icmp eq i32 %3917, -1
  br i1 %3918, label %3972, label %3919

3919:                                             ; preds = %3913
  br label %3920

3920:                                             ; preds = %3919
  br label %3921

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

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

3933:                                             ; preds = %3928
  %3934 = load i32, ptr %125, align 4, !tbaa !5
  %3935 = call ptr @__errno_location() #12
  store i32 %3934, ptr %3935, align 4, !tbaa !5
  %3936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3937 = load i32, ptr @test_count, align 4, !tbaa !5
  %3938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  %3940 = call ptr @s2n_strerror(i32 noundef %3939, ptr noundef @.str.24)
  %3941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3942 = load i32, ptr %3941, align 4, !tbaa !5
  %3943 = call ptr @s2n_strerror_debug(i32 noundef %3942, ptr noundef @.str.24)
  %3944 = call ptr @__errno_location() #12
  %3945 = load i32, ptr %3944, align 4, !tbaa !5
  %3946 = call ptr @strerror(i32 noundef %3945) #11
  %3947 = call ptr @__errno_location() #12
  %3948 = load i32, ptr %3947, align 4, !tbaa !5
  %3949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3936, ptr noundef @.str.22, i32 noundef %3937, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 227, ptr noundef %3940, ptr noundef %3943, ptr noundef %3946, i32 noundef %3948) #11
  br label %3967

3950:                                             ; preds = %3928, %3921
  %3951 = load i32, ptr %125, align 4, !tbaa !5
  %3952 = call ptr @__errno_location() #12
  store i32 %3951, ptr %3952, align 4, !tbaa !5
  %3953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3954 = load i32, ptr @test_count, align 4, !tbaa !5
  %3955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3956 = load i32, ptr %3955, align 4, !tbaa !5
  %3957 = call ptr @s2n_strerror(i32 noundef %3956, ptr noundef @.str.24)
  %3958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3959 = load i32, ptr %3958, align 4, !tbaa !5
  %3960 = call ptr @s2n_strerror_debug(i32 noundef %3959, ptr noundef @.str.24)
  %3961 = call ptr @__errno_location() #12
  %3962 = load i32, ptr %3961, align 4, !tbaa !5
  %3963 = call ptr @strerror(i32 noundef %3962) #11
  %3964 = call ptr @__errno_location() #12
  %3965 = load i32, ptr %3964, align 4, !tbaa !5
  %3966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3953, ptr noundef @.str.25, i32 noundef %3954, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 227, ptr noundef %3957, ptr noundef %3960, ptr noundef %3963, i32 noundef %3965) #11
  br label %3967

3967:                                             ; preds = %3950, %3933
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %3968

3968:                                             ; preds = %3967
  br label %3969

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

3970:                                             ; No predecessors!
  br label %3971

3971:                                             ; preds = %3970
  br label %3972

3972:                                             ; preds = %3971, %3913
  br label %3973

3973:                                             ; preds = %3972
  br label %3974

3974:                                             ; preds = %3973
  br label %3975

3975:                                             ; preds = %3974
  %3976 = load i32, ptr @test_count, align 4, !tbaa !5
  %3977 = add nsw i32 %3976, 1
  store i32 %3977, ptr @test_count, align 4, !tbaa !5
  %3978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3979 = load i32, ptr %3978, align 4, !tbaa !5
  %3980 = icmp eq i32 %3979, 402653207
  br i1 %3980, label %4034, label %3981

3981:                                             ; preds = %3975
  br label %3982

3982:                                             ; preds = %3981
  br label %3983

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

3990:                                             ; preds = %3983
  %3991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3992 = call i32 @fileno(ptr noundef %3991) #11
  %3993 = call i32 @isatty(i32 noundef %3992) #11
  %3994 = icmp ne i32 %3993, 0
  br i1 %3994, label %3995, label %4012

3995:                                             ; preds = %3990
  %3996 = load i32, ptr %126, align 4, !tbaa !5
  %3997 = call ptr @__errno_location() #12
  store i32 %3996, ptr %3997, align 4, !tbaa !5
  %3998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3999 = load i32, ptr @test_count, align 4, !tbaa !5
  %4000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  %4002 = call ptr @s2n_strerror(i32 noundef %4001, ptr noundef @.str.24)
  %4003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4004 = load i32, ptr %4003, align 4, !tbaa !5
  %4005 = call ptr @s2n_strerror_debug(i32 noundef %4004, ptr noundef @.str.24)
  %4006 = call ptr @__errno_location() #12
  %4007 = load i32, ptr %4006, align 4, !tbaa !5
  %4008 = call ptr @strerror(i32 noundef %4007) #11
  %4009 = call ptr @__errno_location() #12
  %4010 = load i32, ptr %4009, align 4, !tbaa !5
  %4011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3998, ptr noundef @.str.22, i32 noundef %3999, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 227, ptr noundef %4002, ptr noundef %4005, ptr noundef %4008, i32 noundef %4010) #11
  br label %4029

4012:                                             ; preds = %3990, %3983
  %4013 = load i32, ptr %126, align 4, !tbaa !5
  %4014 = call ptr @__errno_location() #12
  store i32 %4013, ptr %4014, align 4, !tbaa !5
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = load i32, ptr @test_count, align 4, !tbaa !5
  %4017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4018 = load i32, ptr %4017, align 4, !tbaa !5
  %4019 = call ptr @s2n_strerror(i32 noundef %4018, ptr noundef @.str.24)
  %4020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4021 = load i32, ptr %4020, align 4, !tbaa !5
  %4022 = call ptr @s2n_strerror_debug(i32 noundef %4021, ptr noundef @.str.24)
  %4023 = call ptr @__errno_location() #12
  %4024 = load i32, ptr %4023, align 4, !tbaa !5
  %4025 = call ptr @strerror(i32 noundef %4024) #11
  %4026 = call ptr @__errno_location() #12
  %4027 = load i32, ptr %4026, align 4, !tbaa !5
  %4028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4015, ptr noundef @.str.25, i32 noundef %4016, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 227, ptr noundef %4019, ptr noundef %4022, ptr noundef %4025, i32 noundef %4027) #11
  br label %4029

4029:                                             ; preds = %4012, %3995
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %4030

4030:                                             ; preds = %4029
  br label %4031

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

4032:                                             ; No predecessors!
  br label %4033

4033:                                             ; preds = %4032
  br label %4034

4034:                                             ; preds = %4033, %3975
  br label %4035

4035:                                             ; preds = %4034
  br label %4036

4036:                                             ; preds = %4035
  br label %4037

4037:                                             ; preds = %4036
  %4038 = load i32, ptr @test_count, align 4, !tbaa !5
  %4039 = add nsw i32 %4038, 1
  store i32 %4039, ptr @test_count, align 4, !tbaa !5
  %4040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call ptr @s2n_strerror_debug(i32 noundef %4041, ptr noundef @.str.24)
  %4043 = icmp eq ptr %4042, null
  br i1 %4043, label %4044, label %4097

4044:                                             ; preds = %4037
  br label %4045

4045:                                             ; preds = %4044
  br label %4046

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

4053:                                             ; preds = %4046
  %4054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4055 = call i32 @fileno(ptr noundef %4054) #11
  %4056 = call i32 @isatty(i32 noundef %4055) #11
  %4057 = icmp ne i32 %4056, 0
  br i1 %4057, label %4058, label %4075

4058:                                             ; preds = %4053
  %4059 = load i32, ptr %127, align 4, !tbaa !5
  %4060 = call ptr @__errno_location() #12
  store i32 %4059, ptr %4060, align 4, !tbaa !5
  %4061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4062 = load i32, ptr @test_count, align 4, !tbaa !5
  %4063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call ptr @s2n_strerror(i32 noundef %4064, ptr noundef @.str.24)
  %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_debug(i32 noundef %4067, ptr noundef @.str.24)
  %4069 = call ptr @__errno_location() #12
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call ptr @strerror(i32 noundef %4070) #11
  %4072 = call ptr @__errno_location() #12
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4061, ptr noundef @.str.22, i32 noundef %4062, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 227, ptr noundef %4065, ptr noundef %4068, ptr noundef %4071, i32 noundef %4073) #11
  br label %4092

4075:                                             ; preds = %4053, %4046
  %4076 = load i32, ptr %127, align 4, !tbaa !5
  %4077 = call ptr @__errno_location() #12
  store i32 %4076, ptr %4077, align 4, !tbaa !5
  %4078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4079 = load i32, ptr @test_count, align 4, !tbaa !5
  %4080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4081 = load i32, ptr %4080, align 4, !tbaa !5
  %4082 = call ptr @s2n_strerror(i32 noundef %4081, ptr noundef @.str.24)
  %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_debug(i32 noundef %4084, ptr noundef @.str.24)
  %4086 = call ptr @__errno_location() #12
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @strerror(i32 noundef %4087) #11
  %4089 = call ptr @__errno_location() #12
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4078, ptr noundef @.str.25, i32 noundef %4079, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 227, ptr noundef %4082, ptr noundef %4085, ptr noundef %4088, i32 noundef %4090) #11
  br label %4092

4092:                                             ; preds = %4075, %4058
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %4093

4093:                                             ; preds = %4092
  br label %4094

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

4095:                                             ; No predecessors!
  br label %4096

4096:                                             ; preds = %4095
  br label %4097

4097:                                             ; preds = %4096, %4037
  br label %4098

4098:                                             ; preds = %4097
  br label %4099

4099:                                             ; preds = %4098
  br label %4100

4100:                                             ; preds = %4099
  br label %4101

4101:                                             ; preds = %4100
  br label %4102

4102:                                             ; preds = %4101
  %4103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4103, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4104 = call ptr @__errno_location() #12
  store i32 0, ptr %4104, align 4, !tbaa !5
  br label %4105

4105:                                             ; preds = %4102
  br label %4106

4106:                                             ; preds = %4105
  br label %4107

4107:                                             ; preds = %4106
  br label %4108

4108:                                             ; preds = %4107
  br label %4109

4109:                                             ; preds = %4108
  br label %4110

4110:                                             ; preds = %4109
  br label %4111

4111:                                             ; preds = %4110
  %4112 = load i32, ptr @test_count, align 4, !tbaa !5
  %4113 = add nsw i32 %4112, 1
  store i32 %4113, ptr @test_count, align 4, !tbaa !5
  %4114 = load ptr, ptr %115, align 8, !tbaa !9
  %4115 = call i32 @s2n_prf(ptr noundef %4114, ptr noundef %20, ptr noundef %118, ptr noundef %118, ptr noundef %118, ptr noundef %118, ptr noundef %124)
  %4116 = icmp eq i32 %4115, -1
  br i1 %4116, label %4170, label %4117

4117:                                             ; preds = %4111
  br label %4118

4118:                                             ; preds = %4117
  br label %4119

4119:                                             ; preds = %4118
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  %4120 = call ptr @__errno_location() #12
  %4121 = load i32, ptr %4120, align 4, !tbaa !5
  store i32 %4121, ptr %128, align 4, !tbaa !5
  %4122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4123 = call i32 @s2n_print_stacktrace(ptr noundef %4122)
  %4124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4125 = trunc i8 %4124 to i1
  br i1 %4125, label %4126, label %4148

4126:                                             ; preds = %4119
  %4127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4128 = call i32 @fileno(ptr noundef %4127) #11
  %4129 = call i32 @isatty(i32 noundef %4128) #11
  %4130 = icmp ne i32 %4129, 0
  br i1 %4130, label %4131, label %4148

4131:                                             ; preds = %4126
  %4132 = load i32, ptr %128, align 4, !tbaa !5
  %4133 = call ptr @__errno_location() #12
  store i32 %4132, ptr %4133, align 4, !tbaa !5
  %4134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4135 = load i32, ptr @test_count, align 4, !tbaa !5
  %4136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4137 = load i32, ptr %4136, align 4, !tbaa !5
  %4138 = call ptr @s2n_strerror(i32 noundef %4137, ptr noundef @.str.24)
  %4139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4140 = load i32, ptr %4139, align 4, !tbaa !5
  %4141 = call ptr @s2n_strerror_debug(i32 noundef %4140, ptr noundef @.str.24)
  %4142 = call ptr @__errno_location() #12
  %4143 = load i32, ptr %4142, align 4, !tbaa !5
  %4144 = call ptr @strerror(i32 noundef %4143) #11
  %4145 = call ptr @__errno_location() #12
  %4146 = load i32, ptr %4145, align 4, !tbaa !5
  %4147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4134, ptr noundef @.str.22, i32 noundef %4135, ptr noundef @.str.71, ptr noundef @.str.21, i32 noundef 230, ptr noundef %4138, ptr noundef %4141, ptr noundef %4144, i32 noundef %4146) #11
  br label %4165

4148:                                             ; preds = %4126, %4119
  %4149 = load i32, ptr %128, align 4, !tbaa !5
  %4150 = call ptr @__errno_location() #12
  store i32 %4149, ptr %4150, align 4, !tbaa !5
  %4151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4152 = load i32, ptr @test_count, align 4, !tbaa !5
  %4153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4154 = load i32, ptr %4153, align 4, !tbaa !5
  %4155 = call ptr @s2n_strerror(i32 noundef %4154, ptr noundef @.str.24)
  %4156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4157 = load i32, ptr %4156, align 4, !tbaa !5
  %4158 = call ptr @s2n_strerror_debug(i32 noundef %4157, ptr noundef @.str.24)
  %4159 = call ptr @__errno_location() #12
  %4160 = load i32, ptr %4159, align 4, !tbaa !5
  %4161 = call ptr @strerror(i32 noundef %4160) #11
  %4162 = call ptr @__errno_location() #12
  %4163 = load i32, ptr %4162, align 4, !tbaa !5
  %4164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4151, ptr noundef @.str.25, i32 noundef %4152, ptr noundef @.str.71, ptr noundef @.str.21, i32 noundef 230, ptr noundef %4155, ptr noundef %4158, ptr noundef %4161, i32 noundef %4163) #11
  br label %4165

4165:                                             ; preds = %4148, %4131
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %4166

4166:                                             ; preds = %4165
  br label %4167

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

4168:                                             ; No predecessors!
  br label %4169

4169:                                             ; preds = %4168
  br label %4170

4170:                                             ; preds = %4169, %4111
  br label %4171

4171:                                             ; preds = %4170
  br label %4172

4172:                                             ; preds = %4171
  br label %4173

4173:                                             ; preds = %4172
  %4174 = load i32, ptr @test_count, align 4, !tbaa !5
  %4175 = add nsw i32 %4174, 1
  store i32 %4175, ptr @test_count, align 4, !tbaa !5
  %4176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4177 = load i32, ptr %4176, align 4, !tbaa !5
  %4178 = icmp eq i32 %4177, 402653207
  br i1 %4178, label %4232, label %4179

4179:                                             ; preds = %4173
  br label %4180

4180:                                             ; preds = %4179
  br label %4181

4181:                                             ; preds = %4180
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %4182 = call ptr @__errno_location() #12
  %4183 = load i32, ptr %4182, align 4, !tbaa !5
  store i32 %4183, ptr %129, align 4, !tbaa !5
  %4184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4185 = call i32 @s2n_print_stacktrace(ptr noundef %4184)
  %4186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4187 = trunc i8 %4186 to i1
  br i1 %4187, label %4188, label %4210

4188:                                             ; preds = %4181
  %4189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4190 = call i32 @fileno(ptr noundef %4189) #11
  %4191 = call i32 @isatty(i32 noundef %4190) #11
  %4192 = icmp ne i32 %4191, 0
  br i1 %4192, label %4193, label %4210

4193:                                             ; preds = %4188
  %4194 = load i32, ptr %129, align 4, !tbaa !5
  %4195 = call ptr @__errno_location() #12
  store i32 %4194, ptr %4195, align 4, !tbaa !5
  %4196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4197 = load i32, ptr @test_count, align 4, !tbaa !5
  %4198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4199 = load i32, ptr %4198, align 4, !tbaa !5
  %4200 = call ptr @s2n_strerror(i32 noundef %4199, ptr noundef @.str.24)
  %4201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4202 = load i32, ptr %4201, align 4, !tbaa !5
  %4203 = call ptr @s2n_strerror_debug(i32 noundef %4202, ptr noundef @.str.24)
  %4204 = call ptr @__errno_location() #12
  %4205 = load i32, ptr %4204, align 4, !tbaa !5
  %4206 = call ptr @strerror(i32 noundef %4205) #11
  %4207 = call ptr @__errno_location() #12
  %4208 = load i32, ptr %4207, align 4, !tbaa !5
  %4209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4196, ptr noundef @.str.22, i32 noundef %4197, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 230, ptr noundef %4200, ptr noundef %4203, ptr noundef %4206, i32 noundef %4208) #11
  br label %4227

4210:                                             ; preds = %4188, %4181
  %4211 = load i32, ptr %129, align 4, !tbaa !5
  %4212 = call ptr @__errno_location() #12
  store i32 %4211, ptr %4212, align 4, !tbaa !5
  %4213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4214 = load i32, ptr @test_count, align 4, !tbaa !5
  %4215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4216 = load i32, ptr %4215, align 4, !tbaa !5
  %4217 = call ptr @s2n_strerror(i32 noundef %4216, ptr noundef @.str.24)
  %4218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4219 = load i32, ptr %4218, align 4, !tbaa !5
  %4220 = call ptr @s2n_strerror_debug(i32 noundef %4219, ptr noundef @.str.24)
  %4221 = call ptr @__errno_location() #12
  %4222 = load i32, ptr %4221, align 4, !tbaa !5
  %4223 = call ptr @strerror(i32 noundef %4222) #11
  %4224 = call ptr @__errno_location() #12
  %4225 = load i32, ptr %4224, align 4, !tbaa !5
  %4226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4213, ptr noundef @.str.25, i32 noundef %4214, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 230, ptr noundef %4217, ptr noundef %4220, ptr noundef %4223, i32 noundef %4225) #11
  br label %4227

4227:                                             ; preds = %4210, %4193
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %4228

4228:                                             ; preds = %4227
  br label %4229

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

4230:                                             ; No predecessors!
  br label %4231

4231:                                             ; preds = %4230
  br label %4232

4232:                                             ; preds = %4231, %4173
  br label %4233

4233:                                             ; preds = %4232
  br label %4234

4234:                                             ; preds = %4233
  br label %4235

4235:                                             ; preds = %4234
  %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 align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4239 = load i32, ptr %4238, align 4, !tbaa !5
  %4240 = call ptr @s2n_strerror_debug(i32 noundef %4239, ptr noundef @.str.24)
  %4241 = icmp eq ptr %4240, null
  br i1 %4241, label %4242, label %4295

4242:                                             ; preds = %4235
  br label %4243

4243:                                             ; preds = %4242
  br label %4244

4244:                                             ; preds = %4243
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %4245 = call ptr @__errno_location() #12
  %4246 = load i32, ptr %4245, align 4, !tbaa !5
  store i32 %4246, ptr %130, align 4, !tbaa !5
  %4247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4248 = call i32 @s2n_print_stacktrace(ptr noundef %4247)
  %4249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4250 = trunc i8 %4249 to i1
  br i1 %4250, label %4251, label %4273

4251:                                             ; preds = %4244
  %4252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4253 = call i32 @fileno(ptr noundef %4252) #11
  %4254 = call i32 @isatty(i32 noundef %4253) #11
  %4255 = icmp ne i32 %4254, 0
  br i1 %4255, label %4256, label %4273

4256:                                             ; preds = %4251
  %4257 = load i32, ptr %130, align 4, !tbaa !5
  %4258 = call ptr @__errno_location() #12
  store i32 %4257, ptr %4258, align 4, !tbaa !5
  %4259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4260 = load i32, ptr @test_count, align 4, !tbaa !5
  %4261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4262 = load i32, ptr %4261, align 4, !tbaa !5
  %4263 = call ptr @s2n_strerror(i32 noundef %4262, ptr noundef @.str.24)
  %4264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  %4266 = call ptr @s2n_strerror_debug(i32 noundef %4265, ptr noundef @.str.24)
  %4267 = call ptr @__errno_location() #12
  %4268 = load i32, ptr %4267, align 4, !tbaa !5
  %4269 = call ptr @strerror(i32 noundef %4268) #11
  %4270 = call ptr @__errno_location() #12
  %4271 = load i32, ptr %4270, align 4, !tbaa !5
  %4272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4259, ptr noundef @.str.22, i32 noundef %4260, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 230, ptr noundef %4263, ptr noundef %4266, ptr noundef %4269, i32 noundef %4271) #11
  br label %4290

4273:                                             ; preds = %4251, %4244
  %4274 = load i32, ptr %130, align 4, !tbaa !5
  %4275 = call ptr @__errno_location() #12
  store i32 %4274, ptr %4275, align 4, !tbaa !5
  %4276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4277 = load i32, ptr @test_count, align 4, !tbaa !5
  %4278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @s2n_strerror(i32 noundef %4279, ptr noundef @.str.24)
  %4281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call ptr @s2n_strerror_debug(i32 noundef %4282, ptr noundef @.str.24)
  %4284 = call ptr @__errno_location() #12
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  %4286 = call ptr @strerror(i32 noundef %4285) #11
  %4287 = call ptr @__errno_location() #12
  %4288 = load i32, ptr %4287, align 4, !tbaa !5
  %4289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4276, ptr noundef @.str.25, i32 noundef %4277, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 230, ptr noundef %4280, ptr noundef %4283, ptr noundef %4286, i32 noundef %4288) #11
  br label %4290

4290:                                             ; preds = %4273, %4256
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %4291

4291:                                             ; preds = %4290
  br label %4292

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

4293:                                             ; No predecessors!
  br label %4294

4294:                                             ; preds = %4293
  br label %4295

4295:                                             ; preds = %4294, %4235
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

4297:                                             ; preds = %4296
  br label %4298

4298:                                             ; preds = %4297
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

4300:                                             ; preds = %4299
  %4301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4301, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4302 = call ptr @__errno_location() #12
  store i32 0, ptr %4302, align 4, !tbaa !5
  br label %4303

4303:                                             ; preds = %4300
  br label %4304

4304:                                             ; preds = %4303
  br label %4305

4305:                                             ; preds = %4304
  br label %4306

4306:                                             ; preds = %4305
  br label %4307

4307:                                             ; preds = %4306
  %4308 = load i32, ptr @test_count, align 4, !tbaa !5
  %4309 = add nsw i32 %4308, 1
  store i32 %4309, ptr @test_count, align 4, !tbaa !5
  %4310 = load ptr, ptr %115, align 8, !tbaa !9
  %4311 = call i32 @s2n_prf(ptr noundef %4310, ptr noundef %20, ptr noundef %116, ptr noundef %116, ptr noundef %116, ptr noundef %116, ptr noundef %124)
  %4312 = icmp eq i32 %4311, -1
  br i1 %4312, label %4313, label %4366

4313:                                             ; preds = %4307
  br label %4314

4314:                                             ; preds = %4313
  br label %4315

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

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

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

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

4361:                                             ; preds = %4344, %4327
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %4362

4362:                                             ; preds = %4361
  br label %4363

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

4364:                                             ; No predecessors!
  br label %4365

4365:                                             ; preds = %4364
  br label %4366

4366:                                             ; preds = %4365, %4307
  br label %4367

4367:                                             ; preds = %4366
  br label %4368

4368:                                             ; preds = %4367
  store i32 0, ptr %12, align 4
  br label %4369

4369:                                             ; preds = %4368, %3907
  call void @llvm.lifetime.end.p0(i64 24, ptr %124) #11
  br label %4370

4370:                                             ; preds = %4369, %3895
  call void @llvm.lifetime.end.p0(i64 64, ptr %123) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #11
  %4371 = call i32 @s2n_free(ptr noundef %120)
  call void @llvm.lifetime.end.p0(i64 24, ptr %120) #11
  %4372 = call i32 @s2n_free(ptr noundef %118)
  call void @llvm.lifetime.end.p0(i64 24, ptr %118) #11
  %4373 = call i32 @s2n_free(ptr noundef %116)
  call void @llvm.lifetime.end.p0(i64 24, ptr %116) #11
  %4374 = call i32 @s2n_connection_ptr_free(ptr noundef %115)
  %4375 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  store i32 %4374, ptr %4375, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #11
  %4376 = load i32, ptr %12, align 4
  switch i32 %4376, label %4889 [
    i32 0, label %4377
  ]

4377:                                             ; preds = %4370
  br label %4378

4378:                                             ; preds = %4377, %3673
  %4379 = call zeroext i1 @s2n_is_in_fips_mode()
  br i1 %4379, label %4633, label %4380

4380:                                             ; preds = %4378
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #11
  %4381 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4381, ptr %133, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 64, ptr %134) #11
  call void @llvm.memset.p0.i64(ptr align 16 %134, i8 0, i64 64, i1 false)
  br label %4382

4382:                                             ; preds = %4380
  %4383 = load i32, ptr @test_count, align 4, !tbaa !5
  %4384 = add nsw i32 %4383, 1
  store i32 %4384, ptr @test_count, align 4, !tbaa !5
  %4385 = load ptr, ptr %133, align 8, !tbaa !9
  %4386 = getelementptr inbounds %struct.s2n_connection, ptr %4385, i32 0, i32 34
  %4387 = load ptr, ptr %4386, align 8, !tbaa !54
  %4388 = getelementptr inbounds %struct.s2n_prf_working_space, ptr %4387, i32 0, i32 1
  %4389 = getelementptr inbounds [64 x i8], ptr %4388, i64 0, i64 0
  %4390 = getelementptr inbounds [64 x i8], ptr %134, i64 0, i64 0
  %4391 = call i32 @memcmp(ptr noundef %4389, ptr noundef %4390, i64 noundef 64) #14
  %4392 = icmp eq i32 %4391, 0
  br i1 %4392, label %4446, label %4393

4393:                                             ; preds = %4382
  br label %4394

4394:                                             ; preds = %4393
  br label %4395

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

4402:                                             ; preds = %4395
  %4403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4404 = call i32 @fileno(ptr noundef %4403) #11
  %4405 = call i32 @isatty(i32 noundef %4404) #11
  %4406 = icmp ne i32 %4405, 0
  br i1 %4406, label %4407, label %4424

4407:                                             ; preds = %4402
  %4408 = load i32, ptr %135, align 4, !tbaa !5
  %4409 = call ptr @__errno_location() #12
  store i32 %4408, ptr %4409, align 4, !tbaa !5
  %4410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4411 = load i32, ptr @test_count, align 4, !tbaa !5
  %4412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call ptr @s2n_strerror(i32 noundef %4413, ptr noundef @.str.24)
  %4415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call ptr @s2n_strerror_debug(i32 noundef %4416, ptr noundef @.str.24)
  %4418 = call ptr @__errno_location() #12
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  %4420 = call ptr @strerror(i32 noundef %4419) #11
  %4421 = call ptr @__errno_location() #12
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  %4423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4410, ptr noundef @.str.22, i32 noundef %4411, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 240, ptr noundef %4414, ptr noundef %4417, ptr noundef %4420, i32 noundef %4422) #11
  br label %4441

4424:                                             ; preds = %4402, %4395
  %4425 = load i32, ptr %135, align 4, !tbaa !5
  %4426 = call ptr @__errno_location() #12
  store i32 %4425, ptr %4426, align 4, !tbaa !5
  %4427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4428 = load i32, ptr @test_count, align 4, !tbaa !5
  %4429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4430 = load i32, ptr %4429, align 4, !tbaa !5
  %4431 = call ptr @s2n_strerror(i32 noundef %4430, ptr noundef @.str.24)
  %4432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4433 = load i32, ptr %4432, align 4, !tbaa !5
  %4434 = call ptr @s2n_strerror_debug(i32 noundef %4433, ptr noundef @.str.24)
  %4435 = call ptr @__errno_location() #12
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  %4437 = call ptr @strerror(i32 noundef %4436) #11
  %4438 = call ptr @__errno_location() #12
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4427, ptr noundef @.str.25, i32 noundef %4428, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 240, ptr noundef %4431, ptr noundef %4434, ptr noundef %4437, i32 noundef %4439) #11
  br label %4441

4441:                                             ; preds = %4424, %4407
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %4442

4442:                                             ; preds = %4441
  br label %4443

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

4444:                                             ; No predecessors!
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

4446:                                             ; preds = %4445, %4382
  br label %4447

4447:                                             ; preds = %4446
  br label %4448

4448:                                             ; preds = %4447
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #11
  store i64 64, ptr %136, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 64, ptr %137) #11
  call void @llvm.memset.p0.i64(ptr align 16 %137, i8 0, i64 64, i1 false)
  br label %4449

4449:                                             ; preds = %4448
  %4450 = load i64, ptr %136, align 8, !tbaa !15
  %4451 = icmp ule i64 %4450, 64
  br i1 %4451, label %4485, label %4452

4452:                                             ; preds = %4449
  br label %4453

4453:                                             ; preds = %4452
  br label %4454

4454:                                             ; preds = %4453
  %4455 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4456 = getelementptr inbounds %struct.s2n_debug_info, ptr %4455, i32 0, i32 0
  store ptr @.str.74, ptr %4456, align 8, !tbaa !17
  %4457 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4458 = getelementptr inbounds %struct.s2n_debug_info, ptr %4457, i32 0, i32 0
  %4459 = load ptr, ptr %4458, align 8, !tbaa !17
  %4460 = getelementptr inbounds i8, ptr %4459, i64 21
  %4461 = call ptr @strrchr(ptr noundef %4460, i32 noundef 47) #14
  %4462 = icmp ne ptr %4461, null
  br i1 %4462, label %4463, label %4470

4463:                                             ; preds = %4454
  %4464 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4465 = getelementptr inbounds %struct.s2n_debug_info, ptr %4464, i32 0, i32 0
  %4466 = load ptr, ptr %4465, align 8, !tbaa !17
  %4467 = getelementptr inbounds i8, ptr %4466, i64 21
  %4468 = call ptr @strrchr(ptr noundef %4467, i32 noundef 47) #14
  %4469 = getelementptr inbounds i8, ptr %4468, i64 1
  br label %4475

4470:                                             ; preds = %4454
  %4471 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4472 = getelementptr inbounds %struct.s2n_debug_info, ptr %4471, i32 0, i32 0
  %4473 = load ptr, ptr %4472, align 8, !tbaa !17
  %4474 = getelementptr inbounds i8, ptr %4473, i64 21
  br label %4475

4475:                                             ; preds = %4470, %4463
  %4476 = phi ptr [ %4469, %4463 ], [ %4474, %4470 ]
  %4477 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4478 = getelementptr inbounds %struct.s2n_debug_info, ptr %4477, i32 0, i32 1
  store ptr %4476, ptr %4478, align 8, !tbaa !19
  %4479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %4479, align 4, !tbaa !5
  %4480 = call i32 @s2n_calculate_stacktrace()
  br label %4481

4481:                                             ; preds = %4475
  br label %4482

4482:                                             ; preds = %4481
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4628

4483:                                             ; No predecessors!
  br label %4484

4484:                                             ; preds = %4483
  br label %4485

4485:                                             ; preds = %4484, %4449
  br label %4486

4486:                                             ; preds = %4485
  br label %4487

4487:                                             ; preds = %4486
  call void @llvm.lifetime.start.p0(i64 24, ptr %138) #11
  call void @llvm.memset.p0.i64(ptr align 8 %138, i8 0, i64 24, i1 false)
  br label %4488

4488:                                             ; preds = %4487
  %4489 = getelementptr inbounds [64 x i8], ptr %137, i64 0, i64 0
  %4490 = load i64, ptr %136, align 8, !tbaa !15
  %4491 = trunc i64 %4490 to i32
  %4492 = call i32 @s2n_blob_init(ptr noundef %138, ptr noundef %4489, i32 noundef %4491)
  %4493 = icmp sgt i32 %4492, -1
  br i1 %4493, label %4495, label %4494

4494:                                             ; preds = %4488
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4627

4495:                                             ; preds = %4488
  br label %4496

4496:                                             ; preds = %4495
  br label %4497

4497:                                             ; preds = %4496
  br label %4498

4498:                                             ; preds = %4497
  %4499 = load i32, ptr @test_count, align 4, !tbaa !5
  %4500 = add nsw i32 %4499, 1
  store i32 %4500, ptr @test_count, align 4, !tbaa !5
  %4501 = load ptr, ptr %133, align 8, !tbaa !9
  %4502 = call i32 @s2n_prf(ptr noundef %4501, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef %29, ptr noundef %32, ptr noundef %138)
  %4503 = icmp eq i32 %4502, -1
  br i1 %4503, label %4504, label %4557

4504:                                             ; preds = %4498
  br label %4505

4505:                                             ; preds = %4504
  br label %4506

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

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

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

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

4552:                                             ; preds = %4535, %4518
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %4553

4553:                                             ; preds = %4552
  br label %4554

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

4555:                                             ; No predecessors!
  br label %4556

4556:                                             ; preds = %4555
  br label %4557

4557:                                             ; preds = %4556, %4498
  br label %4558

4558:                                             ; preds = %4557
  br label %4559

4559:                                             ; preds = %4558
  br label %4560

4560:                                             ; preds = %4559
  %4561 = load i32, ptr @test_count, align 4, !tbaa !5
  %4562 = add nsw i32 %4561, 1
  store i32 %4562, ptr @test_count, align 4, !tbaa !5
  %4563 = load ptr, ptr %133, align 8, !tbaa !9
  %4564 = getelementptr inbounds %struct.s2n_connection, ptr %4563, i32 0, i32 34
  %4565 = load ptr, ptr %4564, align 8, !tbaa !54
  %4566 = getelementptr inbounds %struct.s2n_prf_working_space, ptr %4565, i32 0, i32 1
  %4567 = getelementptr inbounds [64 x i8], ptr %4566, i64 0, i64 0
  %4568 = getelementptr inbounds [64 x i8], ptr %134, i64 0, i64 0
  %4569 = call i32 @memcmp(ptr noundef %4567, ptr noundef %4568, i64 noundef 64) #14
  %4570 = icmp eq i32 %4569, 0
  br i1 %4570, label %4571, label %4624

4571:                                             ; preds = %4560
  br label %4572

4572:                                             ; preds = %4571
  br label %4573

4573:                                             ; preds = %4572
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %4574 = call ptr @__errno_location() #12
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  store i32 %4575, ptr %140, 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 %140, 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.76, ptr noundef @.str.21, i32 noundef 246, ptr noundef %4592, ptr noundef %4595, ptr noundef %4598, i32 noundef %4600) #11
  br label %4619

4602:                                             ; preds = %4580, %4573
  %4603 = load i32, ptr %140, 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.76, ptr noundef @.str.21, i32 noundef 246, 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 %140) #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, %4560
  br label %4625

4625:                                             ; preds = %4624
  br label %4626

4626:                                             ; preds = %4625
  store i32 0, ptr %12, align 4
  br label %4627

4627:                                             ; preds = %4626, %4494
  call void @llvm.lifetime.end.p0(i64 24, ptr %138) #11
  br label %4628

4628:                                             ; preds = %4627, %4482
  call void @llvm.lifetime.end.p0(i64 64, ptr %137) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %134) #11
  %4629 = call i32 @s2n_connection_ptr_free(ptr noundef %133)
  %4630 = getelementptr inbounds %struct.s2n_result, ptr %141, i32 0, i32 0
  store i32 %4629, ptr %4630, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  %4631 = load i32, ptr %12, align 4
  switch i32 %4631, label %4889 [
    i32 0, label %4632
  ]

4632:                                             ; preds = %4628
  br label %4633

4633:                                             ; preds = %4632, %4378
  %4634 = call zeroext i1 @s2n_is_in_fips_mode()
  br i1 %4634, label %4635, label %4888

4635:                                             ; preds = %4633
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #11
  %4636 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4636, ptr %142, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 64, ptr %143) #11
  call void @llvm.memset.p0.i64(ptr align 16 %143, i8 0, i64 64, i1 false)
  br label %4637

4637:                                             ; preds = %4635
  %4638 = load i32, ptr @test_count, align 4, !tbaa !5
  %4639 = add nsw i32 %4638, 1
  store i32 %4639, ptr @test_count, align 4, !tbaa !5
  %4640 = load ptr, ptr %142, align 8, !tbaa !9
  %4641 = getelementptr inbounds %struct.s2n_connection, ptr %4640, i32 0, i32 34
  %4642 = load ptr, ptr %4641, align 8, !tbaa !54
  %4643 = getelementptr inbounds %struct.s2n_prf_working_space, ptr %4642, i32 0, i32 1
  %4644 = getelementptr inbounds [64 x i8], ptr %4643, i64 0, i64 0
  %4645 = getelementptr inbounds [64 x i8], ptr %143, i64 0, i64 0
  %4646 = call i32 @memcmp(ptr noundef %4644, ptr noundef %4645, i64 noundef 64) #14
  %4647 = icmp eq i32 %4646, 0
  br i1 %4647, label %4701, label %4648

4648:                                             ; preds = %4637
  br label %4649

4649:                                             ; preds = %4648
  br label %4650

4650:                                             ; preds = %4649
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %4651 = call ptr @__errno_location() #12
  %4652 = load i32, ptr %4651, align 4, !tbaa !5
  store i32 %4652, ptr %144, align 4, !tbaa !5
  %4653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4654 = call i32 @s2n_print_stacktrace(ptr noundef %4653)
  %4655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4656 = trunc i8 %4655 to i1
  br i1 %4656, label %4657, label %4679

4657:                                             ; preds = %4650
  %4658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4659 = call i32 @fileno(ptr noundef %4658) #11
  %4660 = call i32 @isatty(i32 noundef %4659) #11
  %4661 = icmp ne i32 %4660, 0
  br i1 %4661, label %4662, label %4679

4662:                                             ; preds = %4657
  %4663 = load i32, ptr %144, align 4, !tbaa !5
  %4664 = call ptr @__errno_location() #12
  store i32 %4663, ptr %4664, align 4, !tbaa !5
  %4665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4666 = load i32, ptr @test_count, align 4, !tbaa !5
  %4667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4668 = load i32, ptr %4667, align 4, !tbaa !5
  %4669 = call ptr @s2n_strerror(i32 noundef %4668, ptr noundef @.str.24)
  %4670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4671 = load i32, ptr %4670, align 4, !tbaa !5
  %4672 = call ptr @s2n_strerror_debug(i32 noundef %4671, ptr noundef @.str.24)
  %4673 = call ptr @__errno_location() #12
  %4674 = load i32, ptr %4673, align 4, !tbaa !5
  %4675 = call ptr @strerror(i32 noundef %4674) #11
  %4676 = call ptr @__errno_location() #12
  %4677 = load i32, ptr %4676, align 4, !tbaa !5
  %4678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4665, ptr noundef @.str.22, i32 noundef %4666, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 254, ptr noundef %4669, ptr noundef %4672, ptr noundef %4675, i32 noundef %4677) #11
  br label %4696

4679:                                             ; preds = %4657, %4650
  %4680 = load i32, ptr %144, align 4, !tbaa !5
  %4681 = call ptr @__errno_location() #12
  store i32 %4680, ptr %4681, align 4, !tbaa !5
  %4682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4683 = load i32, ptr @test_count, align 4, !tbaa !5
  %4684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4685 = load i32, ptr %4684, align 4, !tbaa !5
  %4686 = call ptr @s2n_strerror(i32 noundef %4685, ptr noundef @.str.24)
  %4687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4688 = load i32, ptr %4687, align 4, !tbaa !5
  %4689 = call ptr @s2n_strerror_debug(i32 noundef %4688, ptr noundef @.str.24)
  %4690 = call ptr @__errno_location() #12
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  %4692 = call ptr @strerror(i32 noundef %4691) #11
  %4693 = call ptr @__errno_location() #12
  %4694 = load i32, ptr %4693, align 4, !tbaa !5
  %4695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4682, ptr noundef @.str.25, i32 noundef %4683, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 254, ptr noundef %4686, ptr noundef %4689, ptr noundef %4692, i32 noundef %4694) #11
  br label %4696

4696:                                             ; preds = %4679, %4662
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %4697

4697:                                             ; preds = %4696
  br label %4698

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

4699:                                             ; No predecessors!
  br label %4700

4700:                                             ; preds = %4699
  br label %4701

4701:                                             ; preds = %4700, %4637
  br label %4702

4702:                                             ; preds = %4701
  br label %4703

4703:                                             ; preds = %4702
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #11
  store i64 64, ptr %145, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 64, ptr %146) #11
  call void @llvm.memset.p0.i64(ptr align 16 %146, i8 0, i64 64, i1 false)
  br label %4704

4704:                                             ; preds = %4703
  %4705 = load i64, ptr %145, align 8, !tbaa !15
  %4706 = icmp ule i64 %4705, 64
  br i1 %4706, label %4740, label %4707

4707:                                             ; preds = %4704
  br label %4708

4708:                                             ; preds = %4707
  br label %4709

4709:                                             ; preds = %4708
  %4710 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4711 = getelementptr inbounds %struct.s2n_debug_info, ptr %4710, i32 0, i32 0
  store ptr @.str.77, ptr %4711, align 8, !tbaa !17
  %4712 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4713 = getelementptr inbounds %struct.s2n_debug_info, ptr %4712, i32 0, i32 0
  %4714 = load ptr, ptr %4713, align 8, !tbaa !17
  %4715 = getelementptr inbounds i8, ptr %4714, i64 21
  %4716 = call ptr @strrchr(ptr noundef %4715, i32 noundef 47) #14
  %4717 = icmp ne ptr %4716, null
  br i1 %4717, label %4718, label %4725

4718:                                             ; preds = %4709
  %4719 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4720 = getelementptr inbounds %struct.s2n_debug_info, ptr %4719, i32 0, i32 0
  %4721 = load ptr, ptr %4720, align 8, !tbaa !17
  %4722 = getelementptr inbounds i8, ptr %4721, i64 21
  %4723 = call ptr @strrchr(ptr noundef %4722, i32 noundef 47) #14
  %4724 = getelementptr inbounds i8, ptr %4723, i64 1
  br label %4730

4725:                                             ; preds = %4709
  %4726 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4727 = getelementptr inbounds %struct.s2n_debug_info, ptr %4726, i32 0, i32 0
  %4728 = load ptr, ptr %4727, align 8, !tbaa !17
  %4729 = getelementptr inbounds i8, ptr %4728, i64 21
  br label %4730

4730:                                             ; preds = %4725, %4718
  %4731 = phi ptr [ %4724, %4718 ], [ %4729, %4725 ]
  %4732 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4733 = getelementptr inbounds %struct.s2n_debug_info, ptr %4732, i32 0, i32 1
  store ptr %4731, ptr %4733, align 8, !tbaa !19
  %4734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653194, ptr %4734, align 4, !tbaa !5
  %4735 = call i32 @s2n_calculate_stacktrace()
  br label %4736

4736:                                             ; preds = %4730
  br label %4737

4737:                                             ; preds = %4736
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4883

4738:                                             ; No predecessors!
  br label %4739

4739:                                             ; preds = %4738
  br label %4740

4740:                                             ; preds = %4739, %4704
  br label %4741

4741:                                             ; preds = %4740
  br label %4742

4742:                                             ; preds = %4741
  call void @llvm.lifetime.start.p0(i64 24, ptr %147) #11
  call void @llvm.memset.p0.i64(ptr align 8 %147, i8 0, i64 24, i1 false)
  br label %4743

4743:                                             ; preds = %4742
  %4744 = getelementptr inbounds [64 x i8], ptr %146, i64 0, i64 0
  %4745 = load i64, ptr %145, align 8, !tbaa !15
  %4746 = trunc i64 %4745 to i32
  %4747 = call i32 @s2n_blob_init(ptr noundef %147, ptr noundef %4744, i32 noundef %4746)
  %4748 = icmp sgt i32 %4747, -1
  br i1 %4748, label %4750, label %4749

4749:                                             ; preds = %4743
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %4882

4750:                                             ; preds = %4743
  br label %4751

4751:                                             ; preds = %4750
  br label %4752

4752:                                             ; preds = %4751
  br label %4753

4753:                                             ; preds = %4752
  %4754 = load i32, ptr @test_count, align 4, !tbaa !5
  %4755 = add nsw i32 %4754, 1
  store i32 %4755, ptr @test_count, align 4, !tbaa !5
  %4756 = load ptr, ptr %142, align 8, !tbaa !9
  %4757 = call i32 @s2n_prf(ptr noundef %4756, ptr noundef %20, ptr noundef %23, ptr noundef %26, ptr noundef %29, ptr noundef %32, ptr noundef %147)
  %4758 = icmp eq i32 %4757, -1
  br i1 %4758, label %4759, label %4812

4759:                                             ; preds = %4753
  br label %4760

4760:                                             ; preds = %4759
  br label %4761

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

4768:                                             ; preds = %4761
  %4769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4770 = call i32 @fileno(ptr noundef %4769) #11
  %4771 = call i32 @isatty(i32 noundef %4770) #11
  %4772 = icmp ne i32 %4771, 0
  br i1 %4772, label %4773, label %4790

4773:                                             ; preds = %4768
  %4774 = load i32, ptr %148, align 4, !tbaa !5
  %4775 = call ptr @__errno_location() #12
  store i32 %4774, ptr %4775, align 4, !tbaa !5
  %4776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4777 = load i32, ptr @test_count, align 4, !tbaa !5
  %4778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4779 = load i32, ptr %4778, align 4, !tbaa !5
  %4780 = call ptr @s2n_strerror(i32 noundef %4779, ptr noundef @.str.24)
  %4781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4782 = load i32, ptr %4781, align 4, !tbaa !5
  %4783 = call ptr @s2n_strerror_debug(i32 noundef %4782, ptr noundef @.str.24)
  %4784 = call ptr @__errno_location() #12
  %4785 = load i32, ptr %4784, align 4, !tbaa !5
  %4786 = call ptr @strerror(i32 noundef %4785) #11
  %4787 = call ptr @__errno_location() #12
  %4788 = load i32, ptr %4787, align 4, !tbaa !5
  %4789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4776, ptr noundef @.str.22, i32 noundef %4777, ptr noundef @.str.75, ptr noundef @.str.21, i32 noundef 257, ptr noundef %4780, ptr noundef %4783, ptr noundef %4786, i32 noundef %4788) #11
  br label %4807

4790:                                             ; preds = %4768, %4761
  %4791 = load i32, ptr %148, align 4, !tbaa !5
  %4792 = call ptr @__errno_location() #12
  store i32 %4791, ptr %4792, align 4, !tbaa !5
  %4793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4794 = load i32, ptr @test_count, align 4, !tbaa !5
  %4795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4796 = load i32, ptr %4795, align 4, !tbaa !5
  %4797 = call ptr @s2n_strerror(i32 noundef %4796, ptr noundef @.str.24)
  %4798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4799 = load i32, ptr %4798, align 4, !tbaa !5
  %4800 = call ptr @s2n_strerror_debug(i32 noundef %4799, ptr noundef @.str.24)
  %4801 = call ptr @__errno_location() #12
  %4802 = load i32, ptr %4801, align 4, !tbaa !5
  %4803 = call ptr @strerror(i32 noundef %4802) #11
  %4804 = call ptr @__errno_location() #12
  %4805 = load i32, ptr %4804, align 4, !tbaa !5
  %4806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4793, ptr noundef @.str.25, i32 noundef %4794, ptr noundef @.str.75, ptr noundef @.str.21, i32 noundef 257, ptr noundef %4797, ptr noundef %4800, ptr noundef %4803, i32 noundef %4805) #11
  br label %4807

4807:                                             ; preds = %4790, %4773
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %4808

4808:                                             ; preds = %4807
  br label %4809

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

4810:                                             ; No predecessors!
  br label %4811

4811:                                             ; preds = %4810
  br label %4812

4812:                                             ; preds = %4811, %4753
  br label %4813

4813:                                             ; preds = %4812
  br label %4814

4814:                                             ; preds = %4813
  br label %4815

4815:                                             ; preds = %4814
  %4816 = load i32, ptr @test_count, align 4, !tbaa !5
  %4817 = add nsw i32 %4816, 1
  store i32 %4817, ptr @test_count, align 4, !tbaa !5
  %4818 = load ptr, ptr %142, align 8, !tbaa !9
  %4819 = getelementptr inbounds %struct.s2n_connection, ptr %4818, i32 0, i32 34
  %4820 = load ptr, ptr %4819, align 8, !tbaa !54
  %4821 = getelementptr inbounds %struct.s2n_prf_working_space, ptr %4820, i32 0, i32 1
  %4822 = getelementptr inbounds [64 x i8], ptr %4821, i64 0, i64 0
  %4823 = getelementptr inbounds [64 x i8], ptr %143, i64 0, i64 0
  %4824 = call i32 @memcmp(ptr noundef %4822, ptr noundef %4823, i64 noundef 64) #14
  %4825 = icmp eq i32 %4824, 0
  br i1 %4825, label %4879, label %4826

4826:                                             ; preds = %4815
  br label %4827

4827:                                             ; preds = %4826
  br label %4828

4828:                                             ; preds = %4827
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  %4829 = call ptr @__errno_location() #12
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  store i32 %4830, ptr %149, align 4, !tbaa !5
  %4831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4832 = call i32 @s2n_print_stacktrace(ptr noundef %4831)
  %4833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4834 = trunc i8 %4833 to i1
  br i1 %4834, label %4835, label %4857

4835:                                             ; preds = %4828
  %4836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4837 = call i32 @fileno(ptr noundef %4836) #11
  %4838 = call i32 @isatty(i32 noundef %4837) #11
  %4839 = icmp ne i32 %4838, 0
  br i1 %4839, label %4840, label %4857

4840:                                             ; preds = %4835
  %4841 = load i32, ptr %149, align 4, !tbaa !5
  %4842 = call ptr @__errno_location() #12
  store i32 %4841, ptr %4842, align 4, !tbaa !5
  %4843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4844 = load i32, ptr @test_count, align 4, !tbaa !5
  %4845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4846 = load i32, ptr %4845, align 4, !tbaa !5
  %4847 = call ptr @s2n_strerror(i32 noundef %4846, ptr noundef @.str.24)
  %4848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call ptr @s2n_strerror_debug(i32 noundef %4849, ptr noundef @.str.24)
  %4851 = call ptr @__errno_location() #12
  %4852 = load i32, ptr %4851, align 4, !tbaa !5
  %4853 = call ptr @strerror(i32 noundef %4852) #11
  %4854 = call ptr @__errno_location() #12
  %4855 = load i32, ptr %4854, align 4, !tbaa !5
  %4856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4843, ptr noundef @.str.22, i32 noundef %4844, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 260, ptr noundef %4847, ptr noundef %4850, ptr noundef %4853, i32 noundef %4855) #11
  br label %4874

4857:                                             ; preds = %4835, %4828
  %4858 = load i32, ptr %149, align 4, !tbaa !5
  %4859 = call ptr @__errno_location() #12
  store i32 %4858, ptr %4859, align 4, !tbaa !5
  %4860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4861 = load i32, ptr @test_count, align 4, !tbaa !5
  %4862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4863 = load i32, ptr %4862, align 4, !tbaa !5
  %4864 = call ptr @s2n_strerror(i32 noundef %4863, ptr noundef @.str.24)
  %4865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4866 = load i32, ptr %4865, align 4, !tbaa !5
  %4867 = call ptr @s2n_strerror_debug(i32 noundef %4866, ptr noundef @.str.24)
  %4868 = call ptr @__errno_location() #12
  %4869 = load i32, ptr %4868, align 4, !tbaa !5
  %4870 = call ptr @strerror(i32 noundef %4869) #11
  %4871 = call ptr @__errno_location() #12
  %4872 = load i32, ptr %4871, align 4, !tbaa !5
  %4873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4860, ptr noundef @.str.25, i32 noundef %4861, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 260, ptr noundef %4864, ptr noundef %4867, ptr noundef %4870, i32 noundef %4872) #11
  br label %4874

4874:                                             ; preds = %4857, %4840
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %4875

4875:                                             ; preds = %4874
  br label %4876

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

4877:                                             ; No predecessors!
  br label %4878

4878:                                             ; preds = %4877
  br label %4879

4879:                                             ; preds = %4878, %4815
  br label %4880

4880:                                             ; preds = %4879
  br label %4881

4881:                                             ; preds = %4880
  store i32 0, ptr %12, align 4
  br label %4882

4882:                                             ; preds = %4881, %4749
  call void @llvm.lifetime.end.p0(i64 24, ptr %147) #11
  br label %4883

4883:                                             ; preds = %4882, %4737
  call void @llvm.lifetime.end.p0(i64 64, ptr %146) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %143) #11
  %4884 = call i32 @s2n_connection_ptr_free(ptr noundef %142)
  %4885 = getelementptr inbounds %struct.s2n_result, ptr %150, i32 0, i32 0
  store i32 %4884, ptr %4885, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #11
  %4886 = load i32, ptr %12, align 4
  switch i32 %4886, label %4889 [
    i32 0, label %4887
  ]

4887:                                             ; preds = %4883
  br label %4888

4888:                                             ; preds = %4887, %4633
  store i32 0, ptr %12, align 4
  br label %4889

4889:                                             ; preds = %4888, %4883, %4628, %4370, %3668, %3391, %3118, %2845, %2572, %2300
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %19) #11
  %4890 = load i32, ptr %12, align 4
  switch i32 %4890, label %11916 [
    i32 0, label %4891
  ]

4891:                                             ; preds = %4889
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  %4892 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4892, ptr %151, align 8, !tbaa !9
  br label %4893

4893:                                             ; preds = %4891
  %4894 = load i32, ptr @test_count, align 4, !tbaa !5
  %4895 = add nsw i32 %4894, 1
  store i32 %4895, ptr @test_count, align 4, !tbaa !5
  %4896 = load ptr, ptr %151, align 8, !tbaa !9
  %4897 = icmp eq ptr %4896, null
  br i1 %4897, label %4898, label %4951

4898:                                             ; preds = %4893
  br label %4899

4899:                                             ; preds = %4898
  br label %4900

4900:                                             ; preds = %4899
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %4901 = call ptr @__errno_location() #12
  %4902 = load i32, ptr %4901, align 4, !tbaa !5
  store i32 %4902, ptr %152, align 4, !tbaa !5
  %4903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4904 = call i32 @s2n_print_stacktrace(ptr noundef %4903)
  %4905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4906 = trunc i8 %4905 to i1
  br i1 %4906, label %4907, label %4929

4907:                                             ; preds = %4900
  %4908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4909 = call i32 @fileno(ptr noundef %4908) #11
  %4910 = call i32 @isatty(i32 noundef %4909) #11
  %4911 = icmp ne i32 %4910, 0
  br i1 %4911, label %4912, label %4929

4912:                                             ; preds = %4907
  %4913 = load i32, ptr %152, align 4, !tbaa !5
  %4914 = call ptr @__errno_location() #12
  store i32 %4913, ptr %4914, align 4, !tbaa !5
  %4915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4916 = load i32, ptr @test_count, align 4, !tbaa !5
  %4917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4918 = load i32, ptr %4917, align 4, !tbaa !5
  %4919 = call ptr @s2n_strerror(i32 noundef %4918, ptr noundef @.str.24)
  %4920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4921 = load i32, ptr %4920, align 4, !tbaa !5
  %4922 = call ptr @s2n_strerror_debug(i32 noundef %4921, ptr noundef @.str.24)
  %4923 = call ptr @__errno_location() #12
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  %4925 = call ptr @strerror(i32 noundef %4924) #11
  %4926 = call ptr @__errno_location() #12
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4915, ptr noundef @.str.22, i32 noundef %4916, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 268, ptr noundef %4919, ptr noundef %4922, ptr noundef %4925, i32 noundef %4927) #11
  br label %4946

4929:                                             ; preds = %4907, %4900
  %4930 = load i32, ptr %152, align 4, !tbaa !5
  %4931 = call ptr @__errno_location() #12
  store i32 %4930, ptr %4931, align 4, !tbaa !5
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = load i32, ptr @test_count, align 4, !tbaa !5
  %4934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4935 = load i32, ptr %4934, align 4, !tbaa !5
  %4936 = call ptr @s2n_strerror(i32 noundef %4935, ptr noundef @.str.24)
  %4937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4938 = load i32, ptr %4937, align 4, !tbaa !5
  %4939 = call ptr @s2n_strerror_debug(i32 noundef %4938, ptr noundef @.str.24)
  %4940 = call ptr @__errno_location() #12
  %4941 = load i32, ptr %4940, align 4, !tbaa !5
  %4942 = call ptr @strerror(i32 noundef %4941) #11
  %4943 = call ptr @__errno_location() #12
  %4944 = load i32, ptr %4943, align 4, !tbaa !5
  %4945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4932, ptr noundef @.str.25, i32 noundef %4933, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 268, ptr noundef %4936, ptr noundef %4939, ptr noundef %4942, i32 noundef %4944) #11
  br label %4946

4946:                                             ; preds = %4929, %4912
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %4947

4947:                                             ; preds = %4946
  br label %4948

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

4949:                                             ; No predecessors!
  br label %4950

4950:                                             ; preds = %4949
  br label %4951

4951:                                             ; preds = %4950, %4893
  br label %4952

4952:                                             ; preds = %4951
  br label %4953

4953:                                             ; preds = %4952
  %4954 = load ptr, ptr %151, align 8, !tbaa !9
  %4955 = getelementptr inbounds %struct.s2n_connection, ptr %4954, i32 0, i32 23
  store i8 32, ptr %4955, align 4, !tbaa !20
  br label %4956

4956:                                             ; preds = %4953
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #11
  %4957 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %4958 = load i32, ptr %4957, align 8, !tbaa !46
  store i32 %4958, ptr %153, align 4, !tbaa !5
  %4959 = load i32, ptr %153, align 4, !tbaa !5
  %4960 = icmp ne i32 %4959, 0
  br i1 %4960, label %4961, label %5026

4961:                                             ; preds = %4956
  %4962 = load ptr, ptr %151, align 8, !tbaa !9
  %4963 = getelementptr inbounds %struct.s2n_connection, ptr %4962, i32 0, i32 28
  %4964 = getelementptr inbounds %struct.s2n_secrets, ptr %4963, i32 0, i32 0
  %4965 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %4964, i32 0, i32 0
  %4966 = getelementptr inbounds [48 x i8], ptr %4965, i64 0, i64 0
  %4967 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %4968 = load ptr, ptr %4967, align 8, !tbaa !47
  %4969 = load i32, ptr %153, align 4, !tbaa !5
  %4970 = zext i32 %4969 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %4966, ptr align 1 %4968, i64 %4970, i1 false)
  %4971 = icmp eq ptr %4966, null
  br i1 %4971, label %4972, label %5025

4972:                                             ; preds = %4961
  br label %4973

4973:                                             ; preds = %4972
  br label %4974

4974:                                             ; preds = %4973
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %4975 = call ptr @__errno_location() #12
  %4976 = load i32, ptr %4975, align 4, !tbaa !5
  store i32 %4976, ptr %154, align 4, !tbaa !5
  %4977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4978 = call i32 @s2n_print_stacktrace(ptr noundef %4977)
  %4979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4980 = trunc i8 %4979 to i1
  br i1 %4980, label %4981, label %5003

4981:                                             ; preds = %4974
  %4982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4983 = call i32 @fileno(ptr noundef %4982) #11
  %4984 = call i32 @isatty(i32 noundef %4983) #11
  %4985 = icmp ne i32 %4984, 0
  br i1 %4985, label %4986, label %5003

4986:                                             ; preds = %4981
  %4987 = load i32, ptr %154, align 4, !tbaa !5
  %4988 = call ptr @__errno_location() #12
  store i32 %4987, ptr %4988, align 4, !tbaa !5
  %4989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4990 = load i32, ptr @test_count, align 4, !tbaa !5
  %4991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  %4993 = call ptr @s2n_strerror(i32 noundef %4992, ptr noundef @.str.24)
  %4994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4995 = load i32, ptr %4994, align 4, !tbaa !5
  %4996 = call ptr @s2n_strerror_debug(i32 noundef %4995, ptr noundef @.str.24)
  %4997 = call ptr @__errno_location() #12
  %4998 = load i32, ptr %4997, align 4, !tbaa !5
  %4999 = call ptr @strerror(i32 noundef %4998) #11
  %5000 = call ptr @__errno_location() #12
  %5001 = load i32, ptr %5000, align 4, !tbaa !5
  %5002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4989, ptr noundef @.str.22, i32 noundef %4990, ptr noundef @.str.79, ptr noundef @.str.21, i32 noundef 273, ptr noundef %4993, ptr noundef %4996, ptr noundef %4999, i32 noundef %5001) #11
  br label %5020

5003:                                             ; preds = %4981, %4974
  %5004 = load i32, ptr %154, align 4, !tbaa !5
  %5005 = call ptr @__errno_location() #12
  store i32 %5004, ptr %5005, align 4, !tbaa !5
  %5006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5007 = load i32, ptr @test_count, align 4, !tbaa !5
  %5008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call ptr @s2n_strerror(i32 noundef %5009, ptr noundef @.str.24)
  %5011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  %5013 = call ptr @s2n_strerror_debug(i32 noundef %5012, ptr noundef @.str.24)
  %5014 = call ptr @__errno_location() #12
  %5015 = load i32, ptr %5014, align 4, !tbaa !5
  %5016 = call ptr @strerror(i32 noundef %5015) #11
  %5017 = call ptr @__errno_location() #12
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  %5019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5006, ptr noundef @.str.25, i32 noundef %5007, ptr noundef @.str.79, ptr noundef @.str.21, i32 noundef 273, ptr noundef %5010, ptr noundef %5013, ptr noundef %5016, i32 noundef %5018) #11
  br label %5020

5020:                                             ; preds = %5003, %4986
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %5021

5021:                                             ; preds = %5020
  br label %5022

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

5023:                                             ; No predecessors!
  br label %5024

5024:                                             ; preds = %5023
  br label %5025

5025:                                             ; preds = %5024, %4961
  br label %5026

5026:                                             ; preds = %5025, %4956
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #11
  br label %5027

5027:                                             ; preds = %5026
  br label %5028

5028:                                             ; preds = %5027
  br label %5029

5029:                                             ; preds = %5028
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %5030 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %5031 = load i32, ptr %5030, align 8, !tbaa !46
  store i32 %5031, ptr %155, align 4, !tbaa !5
  %5032 = load i32, ptr %155, align 4, !tbaa !5
  %5033 = icmp ne i32 %5032, 0
  br i1 %5033, label %5034, label %5098

5034:                                             ; preds = %5029
  %5035 = load ptr, ptr %151, align 8, !tbaa !9
  %5036 = getelementptr inbounds %struct.s2n_connection, ptr %5035, i32 0, i32 32
  %5037 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5036, i32 0, i32 12
  %5038 = getelementptr inbounds [32 x i8], ptr %5037, i64 0, i64 0
  %5039 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %5040 = load ptr, ptr %5039, align 8, !tbaa !47
  %5041 = load i32, ptr %155, align 4, !tbaa !5
  %5042 = zext i32 %5041 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %5038, ptr align 1 %5040, i64 %5042, i1 false)
  %5043 = icmp eq ptr %5038, null
  br i1 %5043, label %5044, label %5097

5044:                                             ; preds = %5034
  br label %5045

5045:                                             ; preds = %5044
  br label %5046

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

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

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

5075:                                             ; preds = %5053, %5046
  %5076 = load i32, ptr %156, align 4, !tbaa !5
  %5077 = call ptr @__errno_location() #12
  store i32 %5076, ptr %5077, align 4, !tbaa !5
  %5078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5079 = load i32, ptr @test_count, align 4, !tbaa !5
  %5080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5081 = load i32, ptr %5080, align 4, !tbaa !5
  %5082 = call ptr @s2n_strerror(i32 noundef %5081, ptr noundef @.str.24)
  %5083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5084 = load i32, ptr %5083, align 4, !tbaa !5
  %5085 = call ptr @s2n_strerror_debug(i32 noundef %5084, ptr noundef @.str.24)
  %5086 = call ptr @__errno_location() #12
  %5087 = load i32, ptr %5086, align 4, !tbaa !5
  %5088 = call ptr @strerror(i32 noundef %5087) #11
  %5089 = call ptr @__errno_location() #12
  %5090 = load i32, ptr %5089, align 4, !tbaa !5
  %5091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5078, ptr noundef @.str.25, i32 noundef %5079, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 274, ptr noundef %5082, ptr noundef %5085, ptr noundef %5088, i32 noundef %5090) #11
  br label %5092

5092:                                             ; preds = %5075, %5058
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %5093

5093:                                             ; preds = %5092
  br label %5094

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

5095:                                             ; No predecessors!
  br label %5096

5096:                                             ; preds = %5095
  br label %5097

5097:                                             ; preds = %5096, %5034
  br label %5098

5098:                                             ; preds = %5097, %5029
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %5099

5099:                                             ; preds = %5098
  br label %5100

5100:                                             ; preds = %5099
  br label %5101

5101:                                             ; preds = %5100
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  %5102 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 1
  %5103 = load i32, ptr %5102, align 8, !tbaa !46
  store i32 %5103, ptr %157, align 4, !tbaa !5
  %5104 = load i32, ptr %157, align 4, !tbaa !5
  %5105 = icmp ne i32 %5104, 0
  br i1 %5105, label %5106, label %5170

5106:                                             ; preds = %5101
  %5107 = load ptr, ptr %151, align 8, !tbaa !9
  %5108 = getelementptr inbounds %struct.s2n_connection, ptr %5107, i32 0, i32 32
  %5109 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5108, i32 0, i32 13
  %5110 = getelementptr inbounds [32 x i8], ptr %5109, i64 0, i64 0
  %5111 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 0
  %5112 = load ptr, ptr %5111, align 8, !tbaa !47
  %5113 = load i32, ptr %157, align 4, !tbaa !5
  %5114 = zext i32 %5113 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %5110, ptr align 1 %5112, i64 %5114, i1 false)
  %5115 = icmp eq ptr %5110, null
  br i1 %5115, label %5116, label %5169

5116:                                             ; preds = %5106
  br label %5117

5117:                                             ; preds = %5116
  br label %5118

5118:                                             ; preds = %5117
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %5119 = call ptr @__errno_location() #12
  %5120 = load i32, ptr %5119, align 4, !tbaa !5
  store i32 %5120, ptr %158, align 4, !tbaa !5
  %5121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5122 = call i32 @s2n_print_stacktrace(ptr noundef %5121)
  %5123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5124 = trunc i8 %5123 to i1
  br i1 %5124, label %5125, label %5147

5125:                                             ; preds = %5118
  %5126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5127 = call i32 @fileno(ptr noundef %5126) #11
  %5128 = call i32 @isatty(i32 noundef %5127) #11
  %5129 = icmp ne i32 %5128, 0
  br i1 %5129, label %5130, label %5147

5130:                                             ; preds = %5125
  %5131 = load i32, ptr %158, align 4, !tbaa !5
  %5132 = call ptr @__errno_location() #12
  store i32 %5131, ptr %5132, align 4, !tbaa !5
  %5133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5134 = load i32, ptr @test_count, align 4, !tbaa !5
  %5135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  %5137 = call ptr @s2n_strerror(i32 noundef %5136, ptr noundef @.str.24)
  %5138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5139 = load i32, ptr %5138, align 4, !tbaa !5
  %5140 = call ptr @s2n_strerror_debug(i32 noundef %5139, ptr noundef @.str.24)
  %5141 = call ptr @__errno_location() #12
  %5142 = load i32, ptr %5141, align 4, !tbaa !5
  %5143 = call ptr @strerror(i32 noundef %5142) #11
  %5144 = call ptr @__errno_location() #12
  %5145 = load i32, ptr %5144, align 4, !tbaa !5
  %5146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5133, ptr noundef @.str.22, i32 noundef %5134, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 275, ptr noundef %5137, ptr noundef %5140, ptr noundef %5143, i32 noundef %5145) #11
  br label %5164

5147:                                             ; preds = %5125, %5118
  %5148 = load i32, ptr %158, align 4, !tbaa !5
  %5149 = call ptr @__errno_location() #12
  store i32 %5148, ptr %5149, align 4, !tbaa !5
  %5150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5151 = load i32, ptr @test_count, align 4, !tbaa !5
  %5152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5153 = load i32, ptr %5152, align 4, !tbaa !5
  %5154 = call ptr @s2n_strerror(i32 noundef %5153, ptr noundef @.str.24)
  %5155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5156 = load i32, ptr %5155, align 4, !tbaa !5
  %5157 = call ptr @s2n_strerror_debug(i32 noundef %5156, ptr noundef @.str.24)
  %5158 = call ptr @__errno_location() #12
  %5159 = load i32, ptr %5158, align 4, !tbaa !5
  %5160 = call ptr @strerror(i32 noundef %5159) #11
  %5161 = call ptr @__errno_location() #12
  %5162 = load i32, ptr %5161, align 4, !tbaa !5
  %5163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5150, ptr noundef @.str.25, i32 noundef %5151, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 275, ptr noundef %5154, ptr noundef %5157, ptr noundef %5160, i32 noundef %5162) #11
  br label %5164

5164:                                             ; preds = %5147, %5130
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %5165

5165:                                             ; preds = %5164
  br label %5166

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

5167:                                             ; No predecessors!
  br label %5168

5168:                                             ; preds = %5167
  br label %5169

5169:                                             ; preds = %5168, %5106
  br label %5170

5170:                                             ; preds = %5169, %5101
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %5171

5171:                                             ; preds = %5170
  br label %5172

5172:                                             ; preds = %5171
  call void @llvm.lifetime.start.p0(i64 24, ptr %159) #11
  call void @llvm.memset.p0.i64(ptr align 8 %159, i8 0, i64 24, i1 false)
  br label %5173

5173:                                             ; preds = %5172
  %5174 = load i32, ptr @test_count, align 4, !tbaa !5
  %5175 = add nsw i32 %5174, 1
  store i32 %5175, ptr @test_count, align 4, !tbaa !5
  %5176 = load ptr, ptr %151, align 8, !tbaa !9
  %5177 = getelementptr inbounds %struct.s2n_connection, ptr %5176, i32 0, i32 28
  %5178 = getelementptr inbounds %struct.s2n_secrets, ptr %5177, i32 0, i32 0
  %5179 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %5178, i32 0, i32 0
  %5180 = getelementptr inbounds [48 x i8], ptr %5179, i64 0, i64 0
  %5181 = call i32 @s2n_blob_init(ptr noundef %159, ptr noundef %5180, i32 noundef 48)
  %5182 = icmp eq i32 %5181, -1
  br i1 %5182, label %5183, label %5236

5183:                                             ; preds = %5173
  br label %5184

5184:                                             ; preds = %5183
  br label %5185

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

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

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

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

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

5232:                                             ; preds = %5231
  br label %5233

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

5234:                                             ; No predecessors!
  br label %5235

5235:                                             ; preds = %5234
  br label %5236

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

5237:                                             ; preds = %5236
  br label %5238

5238:                                             ; preds = %5237
  br label %5239

5239:                                             ; preds = %5238
  %5240 = load i32, ptr @test_count, align 4, !tbaa !5
  %5241 = add nsw i32 %5240, 1
  store i32 %5241, ptr @test_count, align 4, !tbaa !5
  %5242 = load ptr, ptr %151, align 8, !tbaa !9
  %5243 = call i32 @s2n_prf_tls_master_secret(ptr noundef %5242, ptr noundef %159)
  %5244 = icmp eq i32 %5243, -1
  br i1 %5244, label %5245, label %5298

5245:                                             ; preds = %5239
  br label %5246

5246:                                             ; preds = %5245
  br label %5247

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

5254:                                             ; preds = %5247
  %5255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5256 = call i32 @fileno(ptr noundef %5255) #11
  %5257 = call i32 @isatty(i32 noundef %5256) #11
  %5258 = icmp ne i32 %5257, 0
  br i1 %5258, label %5259, label %5276

5259:                                             ; preds = %5254
  %5260 = load i32, ptr %161, align 4, !tbaa !5
  %5261 = call ptr @__errno_location() #12
  store i32 %5260, ptr %5261, align 4, !tbaa !5
  %5262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5263 = load i32, ptr @test_count, align 4, !tbaa !5
  %5264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5265 = load i32, ptr %5264, align 4, !tbaa !5
  %5266 = call ptr @s2n_strerror(i32 noundef %5265, ptr noundef @.str.24)
  %5267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5268 = load i32, ptr %5267, align 4, !tbaa !5
  %5269 = call ptr @s2n_strerror_debug(i32 noundef %5268, ptr noundef @.str.24)
  %5270 = call ptr @__errno_location() #12
  %5271 = load i32, ptr %5270, align 4, !tbaa !5
  %5272 = call ptr @strerror(i32 noundef %5271) #11
  %5273 = call ptr @__errno_location() #12
  %5274 = load i32, ptr %5273, align 4, !tbaa !5
  %5275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5262, ptr noundef @.str.22, i32 noundef %5263, ptr noundef @.str.83, ptr noundef @.str.21, i32 noundef 279, ptr noundef %5266, ptr noundef %5269, ptr noundef %5272, i32 noundef %5274) #11
  br label %5293

5276:                                             ; preds = %5254, %5247
  %5277 = load i32, ptr %161, align 4, !tbaa !5
  %5278 = call ptr @__errno_location() #12
  store i32 %5277, ptr %5278, align 4, !tbaa !5
  %5279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5280 = load i32, ptr @test_count, align 4, !tbaa !5
  %5281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5282 = load i32, ptr %5281, align 4, !tbaa !5
  %5283 = call ptr @s2n_strerror(i32 noundef %5282, ptr noundef @.str.24)
  %5284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5285 = load i32, ptr %5284, align 4, !tbaa !5
  %5286 = call ptr @s2n_strerror_debug(i32 noundef %5285, ptr noundef @.str.24)
  %5287 = call ptr @__errno_location() #12
  %5288 = load i32, ptr %5287, align 4, !tbaa !5
  %5289 = call ptr @strerror(i32 noundef %5288) #11
  %5290 = call ptr @__errno_location() #12
  %5291 = load i32, ptr %5290, align 4, !tbaa !5
  %5292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5279, ptr noundef @.str.25, i32 noundef %5280, ptr noundef @.str.83, ptr noundef @.str.21, i32 noundef 279, ptr noundef %5283, ptr noundef %5286, ptr noundef %5289, i32 noundef %5291) #11
  br label %5293

5293:                                             ; preds = %5276, %5259
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %5294

5294:                                             ; preds = %5293
  br label %5295

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

5296:                                             ; No predecessors!
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

5298:                                             ; preds = %5297, %5239
  br label %5299

5299:                                             ; preds = %5298
  br label %5300

5300:                                             ; preds = %5299
  br label %5301

5301:                                             ; preds = %5300
  %5302 = load i32, ptr @test_count, align 4, !tbaa !5
  %5303 = add nsw i32 %5302, 1
  store i32 %5303, ptr @test_count, align 4, !tbaa !5
  %5304 = load ptr, ptr %151, align 8, !tbaa !9
  %5305 = getelementptr inbounds %struct.s2n_connection, ptr %5304, i32 0, i32 28
  %5306 = getelementptr inbounds %struct.s2n_secrets, ptr %5305, i32 0, i32 0
  %5307 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %5306, i32 0, i32 1
  %5308 = getelementptr inbounds [48 x i8], ptr %5307, i64 0, i64 0
  %5309 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 0
  %5310 = load ptr, ptr %5309, align 8, !tbaa !47
  %5311 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 1
  %5312 = load i32, ptr %5311, align 8, !tbaa !46
  %5313 = zext i32 %5312 to i64
  %5314 = call i32 @memcmp(ptr noundef %5308, ptr noundef %5310, i64 noundef %5313) #14
  %5315 = icmp eq i32 %5314, 0
  br i1 %5315, label %5369, label %5316

5316:                                             ; preds = %5301
  br label %5317

5317:                                             ; preds = %5316
  br label %5318

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

5325:                                             ; preds = %5318
  %5326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5327 = call i32 @fileno(ptr noundef %5326) #11
  %5328 = call i32 @isatty(i32 noundef %5327) #11
  %5329 = icmp ne i32 %5328, 0
  br i1 %5329, label %5330, label %5347

5330:                                             ; preds = %5325
  %5331 = load i32, ptr %162, align 4, !tbaa !5
  %5332 = call ptr @__errno_location() #12
  store i32 %5331, ptr %5332, align 4, !tbaa !5
  %5333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5334 = load i32, ptr @test_count, align 4, !tbaa !5
  %5335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5336 = load i32, ptr %5335, align 4, !tbaa !5
  %5337 = call ptr @s2n_strerror(i32 noundef %5336, ptr noundef @.str.24)
  %5338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5339 = load i32, ptr %5338, align 4, !tbaa !5
  %5340 = call ptr @s2n_strerror_debug(i32 noundef %5339, ptr noundef @.str.24)
  %5341 = call ptr @__errno_location() #12
  %5342 = load i32, ptr %5341, align 4, !tbaa !5
  %5343 = call ptr @strerror(i32 noundef %5342) #11
  %5344 = call ptr @__errno_location() #12
  %5345 = load i32, ptr %5344, align 4, !tbaa !5
  %5346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5333, ptr noundef @.str.22, i32 noundef %5334, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 280, ptr noundef %5337, ptr noundef %5340, ptr noundef %5343, i32 noundef %5345) #11
  br label %5364

5347:                                             ; preds = %5325, %5318
  %5348 = load i32, ptr %162, align 4, !tbaa !5
  %5349 = call ptr @__errno_location() #12
  store i32 %5348, ptr %5349, align 4, !tbaa !5
  %5350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5351 = load i32, ptr @test_count, align 4, !tbaa !5
  %5352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5353 = load i32, ptr %5352, align 4, !tbaa !5
  %5354 = call ptr @s2n_strerror(i32 noundef %5353, ptr noundef @.str.24)
  %5355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5356 = load i32, ptr %5355, align 4, !tbaa !5
  %5357 = call ptr @s2n_strerror_debug(i32 noundef %5356, ptr noundef @.str.24)
  %5358 = call ptr @__errno_location() #12
  %5359 = load i32, ptr %5358, align 4, !tbaa !5
  %5360 = call ptr @strerror(i32 noundef %5359) #11
  %5361 = call ptr @__errno_location() #12
  %5362 = load i32, ptr %5361, align 4, !tbaa !5
  %5363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5350, ptr noundef @.str.25, i32 noundef %5351, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 280, ptr noundef %5354, ptr noundef %5357, ptr noundef %5360, i32 noundef %5362) #11
  br label %5364

5364:                                             ; preds = %5347, %5330
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %5365

5365:                                             ; preds = %5364
  br label %5366

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

5367:                                             ; No predecessors!
  br label %5368

5368:                                             ; preds = %5367
  br label %5369

5369:                                             ; preds = %5368, %5301
  br label %5370

5370:                                             ; preds = %5369
  br label %5371

5371:                                             ; preds = %5370
  call void @llvm.lifetime.end.p0(i64 24, ptr %159) #11
  %5372 = call i32 @s2n_connection_ptr_free(ptr noundef %151)
  %5373 = getelementptr inbounds %struct.s2n_result, ptr %163, i32 0, i32 0
  store i32 %5372, ptr %5373, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %164) #11
  call void @llvm.memset.p0.i64(ptr align 8 %164, i8 0, i64 24, i1 false)
  br label %5374

5374:                                             ; preds = %5371
  %5375 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %164, ptr noundef @.str.85)
  %5376 = getelementptr inbounds %struct.s2n_result, ptr %165, i32 0, i32 0
  store i32 %5375, ptr %5376, align 4
  %5377 = getelementptr inbounds %struct.s2n_result, ptr %165, i32 0, i32 0
  %5378 = load i32, ptr %5377, align 4
  %5379 = call zeroext i1 @s2n_result_is_ok(i32 %5378)
  br i1 %5379, label %5381, label %5380

5380:                                             ; preds = %5374
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %5614

5381:                                             ; preds = %5374
  br label %5382

5382:                                             ; preds = %5381
  br label %5383

5383:                                             ; preds = %5382
  call void @llvm.lifetime.start.p0(i64 24, ptr %166) #11
  call void @llvm.memset.p0.i64(ptr align 8 %166, i8 0, i64 24, i1 false)
  br label %5384

5384:                                             ; preds = %5383
  %5385 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %166, ptr noundef @.str.86)
  %5386 = getelementptr inbounds %struct.s2n_result, ptr %167, i32 0, i32 0
  store i32 %5385, ptr %5386, align 4
  %5387 = getelementptr inbounds %struct.s2n_result, ptr %167, i32 0, i32 0
  %5388 = load i32, ptr %5387, align 4
  %5389 = call zeroext i1 @s2n_result_is_ok(i32 %5388)
  br i1 %5389, label %5391, label %5390

5390:                                             ; preds = %5384
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %5612

5391:                                             ; preds = %5384
  br label %5392

5392:                                             ; preds = %5391
  br label %5393

5393:                                             ; preds = %5392
  call void @llvm.lifetime.start.p0(i64 24, ptr %168) #11
  call void @llvm.memset.p0.i64(ptr align 8 %168, i8 0, i64 24, i1 false)
  br label %5394

5394:                                             ; preds = %5393
  %5395 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %168, ptr noundef @.str.87)
  %5396 = getelementptr inbounds %struct.s2n_result, ptr %169, i32 0, i32 0
  store i32 %5395, ptr %5396, align 4
  %5397 = getelementptr inbounds %struct.s2n_result, ptr %169, i32 0, i32 0
  %5398 = load i32, ptr %5397, align 4
  %5399 = call zeroext i1 @s2n_result_is_ok(i32 %5398)
  br i1 %5399, label %5401, label %5400

5400:                                             ; preds = %5394
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %5610

5401:                                             ; preds = %5394
  br label %5402

5402:                                             ; preds = %5401
  br label %5403

5403:                                             ; preds = %5402
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #11
  %5404 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5404, ptr %170, align 8, !tbaa !9
  br label %5405

5405:                                             ; preds = %5403
  %5406 = load i32, ptr @test_count, align 4, !tbaa !5
  %5407 = add nsw i32 %5406, 1
  store i32 %5407, ptr @test_count, align 4, !tbaa !5
  %5408 = load ptr, ptr %170, align 8, !tbaa !9
  %5409 = icmp eq ptr %5408, null
  br i1 %5409, label %5410, label %5463

5410:                                             ; preds = %5405
  br label %5411

5411:                                             ; preds = %5410
  br label %5412

5412:                                             ; preds = %5411
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %5413 = call ptr @__errno_location() #12
  %5414 = load i32, ptr %5413, align 4, !tbaa !5
  store i32 %5414, ptr %171, align 4, !tbaa !5
  %5415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5416 = call i32 @s2n_print_stacktrace(ptr noundef %5415)
  %5417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5418 = trunc i8 %5417 to i1
  br i1 %5418, label %5419, label %5441

5419:                                             ; preds = %5412
  %5420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5421 = call i32 @fileno(ptr noundef %5420) #11
  %5422 = call i32 @isatty(i32 noundef %5421) #11
  %5423 = icmp ne i32 %5422, 0
  br i1 %5423, label %5424, label %5441

5424:                                             ; preds = %5419
  %5425 = load i32, ptr %171, align 4, !tbaa !5
  %5426 = call ptr @__errno_location() #12
  store i32 %5425, ptr %5426, align 4, !tbaa !5
  %5427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5428 = load i32, ptr @test_count, align 4, !tbaa !5
  %5429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5430 = load i32, ptr %5429, align 4, !tbaa !5
  %5431 = call ptr @s2n_strerror(i32 noundef %5430, ptr noundef @.str.24)
  %5432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5433 = load i32, ptr %5432, align 4, !tbaa !5
  %5434 = call ptr @s2n_strerror_debug(i32 noundef %5433, ptr noundef @.str.24)
  %5435 = call ptr @__errno_location() #12
  %5436 = load i32, ptr %5435, align 4, !tbaa !5
  %5437 = call ptr @strerror(i32 noundef %5436) #11
  %5438 = call ptr @__errno_location() #12
  %5439 = load i32, ptr %5438, align 4, !tbaa !5
  %5440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5427, ptr noundef @.str.22, i32 noundef %5428, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 302, ptr noundef %5431, ptr noundef %5434, ptr noundef %5437, i32 noundef %5439) #11
  br label %5458

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

5458:                                             ; preds = %5441, %5424
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %5459

5459:                                             ; preds = %5458
  br label %5460

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

5461:                                             ; No predecessors!
  br label %5462

5462:                                             ; preds = %5461
  br label %5463

5463:                                             ; preds = %5462, %5405
  br label %5464

5464:                                             ; preds = %5463
  br label %5465

5465:                                             ; preds = %5464
  %5466 = load ptr, ptr %170, align 8, !tbaa !9
  %5467 = getelementptr inbounds %struct.s2n_connection, ptr %5466, i32 0, i32 23
  store i8 33, ptr %5467, align 4, !tbaa !20
  %5468 = load ptr, ptr %170, align 8, !tbaa !9
  %5469 = getelementptr inbounds %struct.s2n_connection, ptr %5468, i32 0, i32 27
  %5470 = load ptr, ptr %5469, align 8, !tbaa !48
  %5471 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5470, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384, ptr %5471, align 8, !tbaa !49
  br label %5472

5472:                                             ; preds = %5465
  %5473 = load i32, ptr @test_count, align 4, !tbaa !5
  %5474 = add nsw i32 %5473, 1
  store i32 %5474, ptr @test_count, align 4, !tbaa !5
  %5475 = load ptr, ptr %170, align 8, !tbaa !9
  %5476 = call i32 @s2n_prf_tls_extended_master_secret(ptr noundef %5475, ptr noundef %164, ptr noundef %166, ptr noundef null)
  %5477 = getelementptr inbounds %struct.s2n_result, ptr %172, i32 0, i32 0
  store i32 %5476, ptr %5477, align 4
  %5478 = getelementptr inbounds %struct.s2n_result, ptr %172, i32 0, i32 0
  %5479 = load i32, ptr %5478, align 4
  %5480 = call zeroext i1 @s2n_result_is_ok(i32 %5479)
  br i1 %5480, label %5534, label %5481

5481:                                             ; preds = %5472
  br label %5482

5482:                                             ; preds = %5481
  br label %5483

5483:                                             ; preds = %5482
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %5484 = call ptr @__errno_location() #12
  %5485 = load i32, ptr %5484, align 4, !tbaa !5
  store i32 %5485, ptr %173, align 4, !tbaa !5
  %5486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5487 = call i32 @s2n_print_stacktrace(ptr noundef %5486)
  %5488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5489 = trunc i8 %5488 to i1
  br i1 %5489, label %5490, label %5512

5490:                                             ; preds = %5483
  %5491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5492 = call i32 @fileno(ptr noundef %5491) #11
  %5493 = call i32 @isatty(i32 noundef %5492) #11
  %5494 = icmp ne i32 %5493, 0
  br i1 %5494, label %5495, label %5512

5495:                                             ; preds = %5490
  %5496 = load i32, ptr %173, align 4, !tbaa !5
  %5497 = call ptr @__errno_location() #12
  store i32 %5496, ptr %5497, align 4, !tbaa !5
  %5498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5499 = load i32, ptr @test_count, align 4, !tbaa !5
  %5500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5501 = load i32, ptr %5500, align 4, !tbaa !5
  %5502 = call ptr @s2n_strerror(i32 noundef %5501, ptr noundef @.str.24)
  %5503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5504 = load i32, ptr %5503, align 4, !tbaa !5
  %5505 = call ptr @s2n_strerror_debug(i32 noundef %5504, ptr noundef @.str.24)
  %5506 = call ptr @__errno_location() #12
  %5507 = load i32, ptr %5506, align 4, !tbaa !5
  %5508 = call ptr @strerror(i32 noundef %5507) #11
  %5509 = call ptr @__errno_location() #12
  %5510 = load i32, ptr %5509, align 4, !tbaa !5
  %5511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5498, ptr noundef @.str.22, i32 noundef %5499, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 316, ptr noundef %5502, ptr noundef %5505, ptr noundef %5508, i32 noundef %5510) #11
  br label %5529

5512:                                             ; preds = %5490, %5483
  %5513 = load i32, ptr %173, align 4, !tbaa !5
  %5514 = call ptr @__errno_location() #12
  store i32 %5513, ptr %5514, align 4, !tbaa !5
  %5515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5516 = load i32, ptr @test_count, align 4, !tbaa !5
  %5517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5518 = load i32, ptr %5517, align 4, !tbaa !5
  %5519 = call ptr @s2n_strerror(i32 noundef %5518, ptr noundef @.str.24)
  %5520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5521 = load i32, ptr %5520, align 4, !tbaa !5
  %5522 = call ptr @s2n_strerror_debug(i32 noundef %5521, ptr noundef @.str.24)
  %5523 = call ptr @__errno_location() #12
  %5524 = load i32, ptr %5523, align 4, !tbaa !5
  %5525 = call ptr @strerror(i32 noundef %5524) #11
  %5526 = call ptr @__errno_location() #12
  %5527 = load i32, ptr %5526, align 4, !tbaa !5
  %5528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5515, ptr noundef @.str.25, i32 noundef %5516, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 316, ptr noundef %5519, ptr noundef %5522, ptr noundef %5525, i32 noundef %5527) #11
  br label %5529

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

5530:                                             ; preds = %5529
  br label %5531

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

5532:                                             ; No predecessors!
  br label %5533

5533:                                             ; preds = %5532
  br label %5534

5534:                                             ; preds = %5533, %5472
  br label %5535

5535:                                             ; preds = %5534
  br label %5536

5536:                                             ; preds = %5535
  br label %5537

5537:                                             ; preds = %5536
  br label %5538

5538:                                             ; preds = %5537
  %5539 = load i32, ptr @test_count, align 4, !tbaa !5
  %5540 = add nsw i32 %5539, 1
  store i32 %5540, ptr @test_count, align 4, !tbaa !5
  %5541 = getelementptr inbounds %struct.s2n_blob, ptr %168, i32 0, i32 0
  %5542 = load ptr, ptr %5541, align 8, !tbaa !47
  %5543 = load ptr, ptr %170, align 8, !tbaa !9
  %5544 = getelementptr inbounds %struct.s2n_connection, ptr %5543, i32 0, i32 28
  %5545 = getelementptr inbounds %struct.s2n_secrets, ptr %5544, i32 0, i32 0
  %5546 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %5545, i32 0, i32 1
  %5547 = getelementptr inbounds [48 x i8], ptr %5546, i64 0, i64 0
  %5548 = call i32 @memcmp(ptr noundef %5542, ptr noundef %5547, i64 noundef 48) #14
  %5549 = icmp eq i32 %5548, 0
  br i1 %5549, label %5603, label %5550

5550:                                             ; preds = %5538
  br label %5551

5551:                                             ; preds = %5550
  br label %5552

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

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

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

5581:                                             ; preds = %5559, %5552
  %5582 = load i32, ptr %174, align 4, !tbaa !5
  %5583 = call ptr @__errno_location() #12
  store i32 %5582, ptr %5583, align 4, !tbaa !5
  %5584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5585 = load i32, ptr @test_count, align 4, !tbaa !5
  %5586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  %5588 = call ptr @s2n_strerror(i32 noundef %5587, ptr noundef @.str.24)
  %5589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5590 = load i32, ptr %5589, align 4, !tbaa !5
  %5591 = call ptr @s2n_strerror_debug(i32 noundef %5590, ptr noundef @.str.24)
  %5592 = call ptr @__errno_location() #12
  %5593 = load i32, ptr %5592, align 4, !tbaa !5
  %5594 = call ptr @strerror(i32 noundef %5593) #11
  %5595 = call ptr @__errno_location() #12
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  %5597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5584, ptr noundef @.str.25, i32 noundef %5585, ptr noundef @.str.89, ptr noundef @.str.21, i32 noundef 317, ptr noundef %5588, ptr noundef %5591, ptr noundef %5594, i32 noundef %5596) #11
  br label %5598

5598:                                             ; preds = %5581, %5564
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %5599

5599:                                             ; preds = %5598
  br label %5600

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

5601:                                             ; No predecessors!
  br label %5602

5602:                                             ; preds = %5601
  br label %5603

5603:                                             ; preds = %5602, %5538
  br label %5604

5604:                                             ; preds = %5603
  br label %5605

5605:                                             ; preds = %5604
  br label %5606

5606:                                             ; preds = %5605
  br label %5607

5607:                                             ; preds = %5606
  %5608 = call i32 @s2n_connection_ptr_free(ptr noundef %170)
  %5609 = getelementptr inbounds %struct.s2n_result, ptr %175, i32 0, i32 0
  store i32 %5608, ptr %5609, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #11
  store i32 0, ptr %12, align 4
  br label %5610

5610:                                             ; preds = %5607, %5400
  %5611 = call i32 @s2n_free(ptr noundef %168)
  call void @llvm.lifetime.end.p0(i64 24, ptr %168) #11
  br label %5612

5612:                                             ; preds = %5610, %5390
  %5613 = call i32 @s2n_free(ptr noundef %166)
  call void @llvm.lifetime.end.p0(i64 24, ptr %166) #11
  br label %5614

5614:                                             ; preds = %5612, %5380
  %5615 = call i32 @s2n_free(ptr noundef %164)
  call void @llvm.lifetime.end.p0(i64 24, ptr %164) #11
  %5616 = load i32, ptr %12, align 4
  switch i32 %5616, label %11916 [
    i32 0, label %5617
  ]

5617:                                             ; preds = %5614
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #11
  %5618 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5618, ptr %176, align 8, !tbaa !9
  br label %5619

5619:                                             ; preds = %5617
  %5620 = load i32, ptr @test_count, align 4, !tbaa !5
  %5621 = add nsw i32 %5620, 1
  store i32 %5621, ptr @test_count, align 4, !tbaa !5
  %5622 = load ptr, ptr %176, align 8, !tbaa !9
  %5623 = icmp eq ptr %5622, null
  br i1 %5623, label %5624, label %5677

5624:                                             ; preds = %5619
  br label %5625

5625:                                             ; preds = %5624
  br label %5626

5626:                                             ; preds = %5625
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %5627 = call ptr @__errno_location() #12
  %5628 = load i32, ptr %5627, align 4, !tbaa !5
  store i32 %5628, ptr %177, align 4, !tbaa !5
  %5629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5630 = call i32 @s2n_print_stacktrace(ptr noundef %5629)
  %5631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5632 = trunc i8 %5631 to i1
  br i1 %5632, label %5633, label %5655

5633:                                             ; preds = %5626
  %5634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5635 = call i32 @fileno(ptr noundef %5634) #11
  %5636 = call i32 @isatty(i32 noundef %5635) #11
  %5637 = icmp ne i32 %5636, 0
  br i1 %5637, label %5638, label %5655

5638:                                             ; preds = %5633
  %5639 = load i32, ptr %177, align 4, !tbaa !5
  %5640 = call ptr @__errno_location() #12
  store i32 %5639, ptr %5640, align 4, !tbaa !5
  %5641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5642 = load i32, ptr @test_count, align 4, !tbaa !5
  %5643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call ptr @s2n_strerror(i32 noundef %5644, ptr noundef @.str.24)
  %5646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5647 = load i32, ptr %5646, align 4, !tbaa !5
  %5648 = call ptr @s2n_strerror_debug(i32 noundef %5647, ptr noundef @.str.24)
  %5649 = call ptr @__errno_location() #12
  %5650 = load i32, ptr %5649, align 4, !tbaa !5
  %5651 = call ptr @strerror(i32 noundef %5650) #11
  %5652 = call ptr @__errno_location() #12
  %5653 = load i32, ptr %5652, align 4, !tbaa !5
  %5654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5641, ptr noundef @.str.22, i32 noundef %5642, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 324, ptr noundef %5645, ptr noundef %5648, ptr noundef %5651, i32 noundef %5653) #11
  br label %5672

5655:                                             ; preds = %5633, %5626
  %5656 = load i32, ptr %177, 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.25, i32 noundef %5659, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 324, ptr noundef %5662, ptr noundef %5665, ptr noundef %5668, i32 noundef %5670) #11
  br label %5672

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

5673:                                             ; preds = %5672
  br label %5674

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

5675:                                             ; No predecessors!
  br label %5676

5676:                                             ; preds = %5675
  br label %5677

5677:                                             ; preds = %5676, %5619
  br label %5678

5678:                                             ; preds = %5677
  br label %5679

5679:                                             ; preds = %5678
  %5680 = load ptr, ptr %176, align 8, !tbaa !9
  %5681 = getelementptr inbounds %struct.s2n_connection, ptr %5680, i32 0, i32 27
  %5682 = load ptr, ptr %5681, align 8, !tbaa !48
  %5683 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5682, i32 0, i32 0
  store ptr @s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384, ptr %5683, align 8, !tbaa !49
  br label %5684

5684:                                             ; preds = %5679
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %5685 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %5686 = load i32, ptr %5685, align 8, !tbaa !46
  store i32 %5686, ptr %178, align 4, !tbaa !5
  %5687 = load i32, ptr %178, align 4, !tbaa !5
  %5688 = icmp ne i32 %5687, 0
  br i1 %5688, label %5689, label %5754

5689:                                             ; preds = %5684
  %5690 = load ptr, ptr %176, align 8, !tbaa !9
  %5691 = getelementptr inbounds %struct.s2n_connection, ptr %5690, i32 0, i32 28
  %5692 = getelementptr inbounds %struct.s2n_secrets, ptr %5691, i32 0, i32 0
  %5693 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %5692, i32 0, i32 0
  %5694 = getelementptr inbounds [48 x i8], ptr %5693, i64 0, i64 0
  %5695 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %5696 = load ptr, ptr %5695, align 8, !tbaa !47
  %5697 = load i32, ptr %178, align 4, !tbaa !5
  %5698 = zext i32 %5697 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %5694, ptr align 1 %5696, i64 %5698, i1 false)
  %5699 = icmp eq ptr %5694, null
  br i1 %5699, label %5700, label %5753

5700:                                             ; preds = %5689
  br label %5701

5701:                                             ; preds = %5700
  br label %5702

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

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

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

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

5748:                                             ; preds = %5731, %5714
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %5749

5749:                                             ; preds = %5748
  br label %5750

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

5751:                                             ; No predecessors!
  br label %5752

5752:                                             ; preds = %5751
  br label %5753

5753:                                             ; preds = %5752, %5689
  br label %5754

5754:                                             ; preds = %5753, %5684
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %5755

5755:                                             ; preds = %5754
  br label %5756

5756:                                             ; preds = %5755
  br label %5757

5757:                                             ; preds = %5756
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %5758 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %5759 = load i32, ptr %5758, align 8, !tbaa !46
  store i32 %5759, ptr %180, align 4, !tbaa !5
  %5760 = load i32, ptr %180, align 4, !tbaa !5
  %5761 = icmp ne i32 %5760, 0
  br i1 %5761, label %5762, label %5826

5762:                                             ; preds = %5757
  %5763 = load ptr, ptr %176, align 8, !tbaa !9
  %5764 = getelementptr inbounds %struct.s2n_connection, ptr %5763, i32 0, i32 32
  %5765 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5764, i32 0, i32 12
  %5766 = getelementptr inbounds [32 x i8], ptr %5765, i64 0, i64 0
  %5767 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %5768 = load ptr, ptr %5767, align 8, !tbaa !47
  %5769 = load i32, ptr %180, align 4, !tbaa !5
  %5770 = zext i32 %5769 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %5766, ptr align 1 %5768, i64 %5770, i1 false)
  %5771 = icmp eq ptr %5766, null
  br i1 %5771, label %5772, label %5825

5772:                                             ; preds = %5762
  br label %5773

5773:                                             ; preds = %5772
  br label %5774

5774:                                             ; preds = %5773
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %5775 = call ptr @__errno_location() #12
  %5776 = load i32, ptr %5775, align 4, !tbaa !5
  store i32 %5776, ptr %181, align 4, !tbaa !5
  %5777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5778 = call i32 @s2n_print_stacktrace(ptr noundef %5777)
  %5779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5780 = trunc i8 %5779 to i1
  br i1 %5780, label %5781, label %5803

5781:                                             ; preds = %5774
  %5782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5783 = call i32 @fileno(ptr noundef %5782) #11
  %5784 = call i32 @isatty(i32 noundef %5783) #11
  %5785 = icmp ne i32 %5784, 0
  br i1 %5785, label %5786, label %5803

5786:                                             ; preds = %5781
  %5787 = load i32, ptr %181, align 4, !tbaa !5
  %5788 = call ptr @__errno_location() #12
  store i32 %5787, ptr %5788, align 4, !tbaa !5
  %5789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5790 = load i32, ptr @test_count, align 4, !tbaa !5
  %5791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5792 = load i32, ptr %5791, align 4, !tbaa !5
  %5793 = call ptr @s2n_strerror(i32 noundef %5792, ptr noundef @.str.24)
  %5794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5795 = load i32, ptr %5794, align 4, !tbaa !5
  %5796 = call ptr @s2n_strerror_debug(i32 noundef %5795, ptr noundef @.str.24)
  %5797 = call ptr @__errno_location() #12
  %5798 = load i32, ptr %5797, align 4, !tbaa !5
  %5799 = call ptr @strerror(i32 noundef %5798) #11
  %5800 = call ptr @__errno_location() #12
  %5801 = load i32, ptr %5800, align 4, !tbaa !5
  %5802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5789, ptr noundef @.str.22, i32 noundef %5790, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 329, ptr noundef %5793, ptr noundef %5796, ptr noundef %5799, i32 noundef %5801) #11
  br label %5820

5803:                                             ; preds = %5781, %5774
  %5804 = load i32, ptr %181, align 4, !tbaa !5
  %5805 = call ptr @__errno_location() #12
  store i32 %5804, ptr %5805, align 4, !tbaa !5
  %5806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5807 = load i32, ptr @test_count, align 4, !tbaa !5
  %5808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5809 = load i32, ptr %5808, align 4, !tbaa !5
  %5810 = call ptr @s2n_strerror(i32 noundef %5809, ptr noundef @.str.24)
  %5811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5812 = load i32, ptr %5811, align 4, !tbaa !5
  %5813 = call ptr @s2n_strerror_debug(i32 noundef %5812, ptr noundef @.str.24)
  %5814 = call ptr @__errno_location() #12
  %5815 = load i32, ptr %5814, align 4, !tbaa !5
  %5816 = call ptr @strerror(i32 noundef %5815) #11
  %5817 = call ptr @__errno_location() #12
  %5818 = load i32, ptr %5817, align 4, !tbaa !5
  %5819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5806, ptr noundef @.str.25, i32 noundef %5807, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 329, ptr noundef %5810, ptr noundef %5813, ptr noundef %5816, i32 noundef %5818) #11
  br label %5820

5820:                                             ; preds = %5803, %5786
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %5821

5821:                                             ; preds = %5820
  br label %5822

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

5823:                                             ; No predecessors!
  br label %5824

5824:                                             ; preds = %5823
  br label %5825

5825:                                             ; preds = %5824, %5762
  br label %5826

5826:                                             ; preds = %5825, %5757
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %5827

5827:                                             ; preds = %5826
  br label %5828

5828:                                             ; preds = %5827
  br label %5829

5829:                                             ; preds = %5828
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %5830 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 1
  %5831 = load i32, ptr %5830, align 8, !tbaa !46
  store i32 %5831, ptr %182, align 4, !tbaa !5
  %5832 = load i32, ptr %182, align 4, !tbaa !5
  %5833 = icmp ne i32 %5832, 0
  br i1 %5833, label %5834, label %5898

5834:                                             ; preds = %5829
  %5835 = load ptr, ptr %176, align 8, !tbaa !9
  %5836 = getelementptr inbounds %struct.s2n_connection, ptr %5835, i32 0, i32 32
  %5837 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5836, i32 0, i32 13
  %5838 = getelementptr inbounds [32 x i8], ptr %5837, i64 0, i64 0
  %5839 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 0
  %5840 = load ptr, ptr %5839, align 8, !tbaa !47
  %5841 = load i32, ptr %182, align 4, !tbaa !5
  %5842 = zext i32 %5841 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %5838, ptr align 1 %5840, i64 %5842, i1 false)
  %5843 = icmp eq ptr %5838, null
  br i1 %5843, label %5844, label %5897

5844:                                             ; preds = %5834
  br label %5845

5845:                                             ; preds = %5844
  br label %5846

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

5853:                                             ; preds = %5846
  %5854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5855 = call i32 @fileno(ptr noundef %5854) #11
  %5856 = call i32 @isatty(i32 noundef %5855) #11
  %5857 = icmp ne i32 %5856, 0
  br i1 %5857, label %5858, label %5875

5858:                                             ; preds = %5853
  %5859 = load i32, ptr %183, align 4, !tbaa !5
  %5860 = call ptr @__errno_location() #12
  store i32 %5859, ptr %5860, align 4, !tbaa !5
  %5861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5862 = load i32, ptr @test_count, align 4, !tbaa !5
  %5863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5864 = load i32, ptr %5863, align 4, !tbaa !5
  %5865 = call ptr @s2n_strerror(i32 noundef %5864, ptr noundef @.str.24)
  %5866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5867 = load i32, ptr %5866, align 4, !tbaa !5
  %5868 = call ptr @s2n_strerror_debug(i32 noundef %5867, ptr noundef @.str.24)
  %5869 = call ptr @__errno_location() #12
  %5870 = load i32, ptr %5869, align 4, !tbaa !5
  %5871 = call ptr @strerror(i32 noundef %5870) #11
  %5872 = call ptr @__errno_location() #12
  %5873 = load i32, ptr %5872, align 4, !tbaa !5
  %5874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5861, ptr noundef @.str.22, i32 noundef %5862, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 330, ptr noundef %5865, ptr noundef %5868, ptr noundef %5871, i32 noundef %5873) #11
  br label %5892

5875:                                             ; preds = %5853, %5846
  %5876 = load i32, ptr %183, align 4, !tbaa !5
  %5877 = call ptr @__errno_location() #12
  store i32 %5876, ptr %5877, align 4, !tbaa !5
  %5878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5879 = load i32, ptr @test_count, align 4, !tbaa !5
  %5880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5881 = load i32, ptr %5880, align 4, !tbaa !5
  %5882 = call ptr @s2n_strerror(i32 noundef %5881, ptr noundef @.str.24)
  %5883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5884 = load i32, ptr %5883, align 4, !tbaa !5
  %5885 = call ptr @s2n_strerror_debug(i32 noundef %5884, ptr noundef @.str.24)
  %5886 = call ptr @__errno_location() #12
  %5887 = load i32, ptr %5886, align 4, !tbaa !5
  %5888 = call ptr @strerror(i32 noundef %5887) #11
  %5889 = call ptr @__errno_location() #12
  %5890 = load i32, ptr %5889, align 4, !tbaa !5
  %5891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5878, ptr noundef @.str.25, i32 noundef %5879, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 330, ptr noundef %5882, ptr noundef %5885, ptr noundef %5888, i32 noundef %5890) #11
  br label %5892

5892:                                             ; preds = %5875, %5858
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %5893

5893:                                             ; preds = %5892
  br label %5894

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

5895:                                             ; No predecessors!
  br label %5896

5896:                                             ; preds = %5895
  br label %5897

5897:                                             ; preds = %5896, %5834
  br label %5898

5898:                                             ; preds = %5897, %5829
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %5899

5899:                                             ; preds = %5898
  br label %5900

5900:                                             ; preds = %5899
  call void @llvm.lifetime.start.p0(i64 24, ptr %184) #11
  call void @llvm.memset.p0.i64(ptr align 8 %184, i8 0, i64 24, i1 false)
  br label %5901

5901:                                             ; preds = %5900
  %5902 = load i32, ptr @test_count, align 4, !tbaa !5
  %5903 = add nsw i32 %5902, 1
  store i32 %5903, ptr @test_count, align 4, !tbaa !5
  %5904 = load ptr, ptr %176, align 8, !tbaa !9
  %5905 = getelementptr inbounds %struct.s2n_connection, ptr %5904, i32 0, i32 28
  %5906 = getelementptr inbounds %struct.s2n_secrets, ptr %5905, i32 0, i32 0
  %5907 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %5906, i32 0, i32 0
  %5908 = getelementptr inbounds [48 x i8], ptr %5907, i64 0, i64 0
  %5909 = call i32 @s2n_blob_init(ptr noundef %184, ptr noundef %5908, i32 noundef 48)
  %5910 = icmp eq i32 %5909, -1
  br i1 %5910, label %5911, label %5964

5911:                                             ; preds = %5901
  br label %5912

5912:                                             ; preds = %5911
  br label %5913

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

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

5925:                                             ; preds = %5920
  %5926 = load i32, ptr %185, align 4, !tbaa !5
  %5927 = call ptr @__errno_location() #12
  store i32 %5926, ptr %5927, align 4, !tbaa !5
  %5928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5929 = load i32, ptr @test_count, align 4, !tbaa !5
  %5930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5931 = load i32, ptr %5930, align 4, !tbaa !5
  %5932 = call ptr @s2n_strerror(i32 noundef %5931, ptr noundef @.str.24)
  %5933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5934 = load i32, ptr %5933, align 4, !tbaa !5
  %5935 = call ptr @s2n_strerror_debug(i32 noundef %5934, ptr noundef @.str.24)
  %5936 = call ptr @__errno_location() #12
  %5937 = load i32, ptr %5936, align 4, !tbaa !5
  %5938 = call ptr @strerror(i32 noundef %5937) #11
  %5939 = call ptr @__errno_location() #12
  %5940 = load i32, ptr %5939, align 4, !tbaa !5
  %5941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5928, ptr noundef @.str.22, i32 noundef %5929, ptr noundef @.str.82, ptr noundef @.str.21, i32 noundef 333, ptr noundef %5932, ptr noundef %5935, ptr noundef %5938, i32 noundef %5940) #11
  br label %5959

5942:                                             ; preds = %5920, %5913
  %5943 = load i32, ptr %185, align 4, !tbaa !5
  %5944 = call ptr @__errno_location() #12
  store i32 %5943, ptr %5944, align 4, !tbaa !5
  %5945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5946 = load i32, ptr @test_count, align 4, !tbaa !5
  %5947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5948 = load i32, ptr %5947, align 4, !tbaa !5
  %5949 = call ptr @s2n_strerror(i32 noundef %5948, ptr noundef @.str.24)
  %5950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5951 = load i32, ptr %5950, align 4, !tbaa !5
  %5952 = call ptr @s2n_strerror_debug(i32 noundef %5951, ptr noundef @.str.24)
  %5953 = call ptr @__errno_location() #12
  %5954 = load i32, ptr %5953, align 4, !tbaa !5
  %5955 = call ptr @strerror(i32 noundef %5954) #11
  %5956 = call ptr @__errno_location() #12
  %5957 = load i32, ptr %5956, align 4, !tbaa !5
  %5958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5945, ptr noundef @.str.25, i32 noundef %5946, ptr noundef @.str.82, ptr noundef @.str.21, i32 noundef 333, ptr noundef %5949, ptr noundef %5952, ptr noundef %5955, i32 noundef %5957) #11
  br label %5959

5959:                                             ; preds = %5942, %5925
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %5960

5960:                                             ; preds = %5959
  br label %5961

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

5962:                                             ; No predecessors!
  br label %5963

5963:                                             ; preds = %5962
  br label %5964

5964:                                             ; preds = %5963, %5901
  br label %5965

5965:                                             ; preds = %5964
  br label %5966

5966:                                             ; preds = %5965
  br label %5967

5967:                                             ; preds = %5966
  br label %5968

5968:                                             ; preds = %5967
  br label %5969

5969:                                             ; preds = %5968
  %5970 = load i32, ptr @test_count, align 4, !tbaa !5
  %5971 = add nsw i32 %5970, 1
  store i32 %5971, ptr @test_count, align 4, !tbaa !5
  %5972 = load ptr, ptr %176, align 8, !tbaa !9
  %5973 = call i32 @s2n_prf_calculate_master_secret(ptr noundef %5972, ptr noundef %184)
  %5974 = icmp eq i32 %5973, -1
  br i1 %5974, label %6028, label %5975

5975:                                             ; preds = %5969
  br label %5976

5976:                                             ; preds = %5975
  br label %5977

5977:                                             ; preds = %5976
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %5978 = call ptr @__errno_location() #12
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  store i32 %5979, ptr %186, align 4, !tbaa !5
  %5980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5981 = call i32 @s2n_print_stacktrace(ptr noundef %5980)
  %5982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5983 = trunc i8 %5982 to i1
  br i1 %5983, label %5984, label %6006

5984:                                             ; preds = %5977
  %5985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5986 = call i32 @fileno(ptr noundef %5985) #11
  %5987 = call i32 @isatty(i32 noundef %5986) #11
  %5988 = icmp ne i32 %5987, 0
  br i1 %5988, label %5989, label %6006

5989:                                             ; preds = %5984
  %5990 = load i32, ptr %186, align 4, !tbaa !5
  %5991 = call ptr @__errno_location() #12
  store i32 %5990, ptr %5991, align 4, !tbaa !5
  %5992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5993 = load i32, ptr @test_count, align 4, !tbaa !5
  %5994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5995 = load i32, ptr %5994, align 4, !tbaa !5
  %5996 = call ptr @s2n_strerror(i32 noundef %5995, ptr noundef @.str.24)
  %5997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5998 = load i32, ptr %5997, align 4, !tbaa !5
  %5999 = call ptr @s2n_strerror_debug(i32 noundef %5998, ptr noundef @.str.24)
  %6000 = call ptr @__errno_location() #12
  %6001 = load i32, ptr %6000, align 4, !tbaa !5
  %6002 = call ptr @strerror(i32 noundef %6001) #11
  %6003 = call ptr @__errno_location() #12
  %6004 = load i32, ptr %6003, align 4, !tbaa !5
  %6005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5992, ptr noundef @.str.22, i32 noundef %5993, ptr noundef @.str.90, ptr noundef @.str.21, i32 noundef 336, ptr noundef %5996, ptr noundef %5999, ptr noundef %6002, i32 noundef %6004) #11
  br label %6023

6006:                                             ; preds = %5984, %5977
  %6007 = load i32, ptr %186, align 4, !tbaa !5
  %6008 = call ptr @__errno_location() #12
  store i32 %6007, ptr %6008, align 4, !tbaa !5
  %6009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6010 = load i32, ptr @test_count, align 4, !tbaa !5
  %6011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6012 = load i32, ptr %6011, align 4, !tbaa !5
  %6013 = call ptr @s2n_strerror(i32 noundef %6012, ptr noundef @.str.24)
  %6014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6015 = load i32, ptr %6014, align 4, !tbaa !5
  %6016 = call ptr @s2n_strerror_debug(i32 noundef %6015, ptr noundef @.str.24)
  %6017 = call ptr @__errno_location() #12
  %6018 = load i32, ptr %6017, align 4, !tbaa !5
  %6019 = call ptr @strerror(i32 noundef %6018) #11
  %6020 = call ptr @__errno_location() #12
  %6021 = load i32, ptr %6020, align 4, !tbaa !5
  %6022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6009, ptr noundef @.str.25, i32 noundef %6010, ptr noundef @.str.90, ptr noundef @.str.21, i32 noundef 336, ptr noundef %6013, ptr noundef %6016, ptr noundef %6019, i32 noundef %6021) #11
  br label %6023

6023:                                             ; preds = %6006, %5989
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %6024

6024:                                             ; preds = %6023
  br label %6025

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

6026:                                             ; No predecessors!
  br label %6027

6027:                                             ; preds = %6026
  br label %6028

6028:                                             ; preds = %6027, %5969
  br label %6029

6029:                                             ; preds = %6028
  br label %6030

6030:                                             ; preds = %6029
  br label %6031

6031:                                             ; preds = %6030
  %6032 = load i32, ptr @test_count, align 4, !tbaa !5
  %6033 = add nsw i32 %6032, 1
  store i32 %6033, ptr @test_count, align 4, !tbaa !5
  %6034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6035 = load i32, ptr %6034, align 4, !tbaa !5
  %6036 = icmp eq i32 %6035, 402653194
  br i1 %6036, label %6090, label %6037

6037:                                             ; preds = %6031
  br label %6038

6038:                                             ; preds = %6037
  br label %6039

6039:                                             ; preds = %6038
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %6040 = call ptr @__errno_location() #12
  %6041 = load i32, ptr %6040, align 4, !tbaa !5
  store i32 %6041, ptr %187, align 4, !tbaa !5
  %6042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6043 = call i32 @s2n_print_stacktrace(ptr noundef %6042)
  %6044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6045 = trunc i8 %6044 to i1
  br i1 %6045, label %6046, label %6068

6046:                                             ; preds = %6039
  %6047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6048 = call i32 @fileno(ptr noundef %6047) #11
  %6049 = call i32 @isatty(i32 noundef %6048) #11
  %6050 = icmp ne i32 %6049, 0
  br i1 %6050, label %6051, label %6068

6051:                                             ; preds = %6046
  %6052 = load i32, ptr %187, align 4, !tbaa !5
  %6053 = call ptr @__errno_location() #12
  store i32 %6052, ptr %6053, align 4, !tbaa !5
  %6054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6055 = load i32, ptr @test_count, align 4, !tbaa !5
  %6056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6057 = load i32, ptr %6056, align 4, !tbaa !5
  %6058 = call ptr @s2n_strerror(i32 noundef %6057, ptr noundef @.str.24)
  %6059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6060 = load i32, ptr %6059, align 4, !tbaa !5
  %6061 = call ptr @s2n_strerror_debug(i32 noundef %6060, ptr noundef @.str.24)
  %6062 = call ptr @__errno_location() #12
  %6063 = load i32, ptr %6062, align 4, !tbaa !5
  %6064 = call ptr @strerror(i32 noundef %6063) #11
  %6065 = call ptr @__errno_location() #12
  %6066 = load i32, ptr %6065, align 4, !tbaa !5
  %6067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6054, ptr noundef @.str.22, i32 noundef %6055, ptr noundef @.str.91, ptr noundef @.str.21, i32 noundef 336, ptr noundef %6058, ptr noundef %6061, ptr noundef %6064, i32 noundef %6066) #11
  br label %6085

6068:                                             ; preds = %6046, %6039
  %6069 = load i32, ptr %187, align 4, !tbaa !5
  %6070 = call ptr @__errno_location() #12
  store i32 %6069, ptr %6070, align 4, !tbaa !5
  %6071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6072 = load i32, ptr @test_count, align 4, !tbaa !5
  %6073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6074 = load i32, ptr %6073, align 4, !tbaa !5
  %6075 = call ptr @s2n_strerror(i32 noundef %6074, ptr noundef @.str.24)
  %6076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6077 = load i32, ptr %6076, align 4, !tbaa !5
  %6078 = call ptr @s2n_strerror_debug(i32 noundef %6077, ptr noundef @.str.24)
  %6079 = call ptr @__errno_location() #12
  %6080 = load i32, ptr %6079, align 4, !tbaa !5
  %6081 = call ptr @strerror(i32 noundef %6080) #11
  %6082 = call ptr @__errno_location() #12
  %6083 = load i32, ptr %6082, align 4, !tbaa !5
  %6084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6071, ptr noundef @.str.25, i32 noundef %6072, ptr noundef @.str.91, ptr noundef @.str.21, i32 noundef 336, ptr noundef %6075, ptr noundef %6078, ptr noundef %6081, i32 noundef %6083) #11
  br label %6085

6085:                                             ; preds = %6068, %6051
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %6086

6086:                                             ; preds = %6085
  br label %6087

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

6088:                                             ; No predecessors!
  br label %6089

6089:                                             ; preds = %6088
  br label %6090

6090:                                             ; preds = %6089, %6031
  br label %6091

6091:                                             ; preds = %6090
  br label %6092

6092:                                             ; preds = %6091
  br label %6093

6093:                                             ; preds = %6092
  %6094 = load i32, ptr @test_count, align 4, !tbaa !5
  %6095 = add nsw i32 %6094, 1
  store i32 %6095, ptr @test_count, align 4, !tbaa !5
  %6096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6097 = load i32, ptr %6096, align 4, !tbaa !5
  %6098 = call ptr @s2n_strerror_debug(i32 noundef %6097, ptr noundef @.str.24)
  %6099 = icmp eq ptr %6098, null
  br i1 %6099, label %6100, label %6153

6100:                                             ; preds = %6093
  br label %6101

6101:                                             ; preds = %6100
  br label %6102

6102:                                             ; preds = %6101
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %6103 = call ptr @__errno_location() #12
  %6104 = load i32, ptr %6103, align 4, !tbaa !5
  store i32 %6104, ptr %188, align 4, !tbaa !5
  %6105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6106 = call i32 @s2n_print_stacktrace(ptr noundef %6105)
  %6107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6108 = trunc i8 %6107 to i1
  br i1 %6108, label %6109, label %6131

6109:                                             ; preds = %6102
  %6110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6111 = call i32 @fileno(ptr noundef %6110) #11
  %6112 = call i32 @isatty(i32 noundef %6111) #11
  %6113 = icmp ne i32 %6112, 0
  br i1 %6113, label %6114, label %6131

6114:                                             ; preds = %6109
  %6115 = load i32, ptr %188, align 4, !tbaa !5
  %6116 = call ptr @__errno_location() #12
  store i32 %6115, ptr %6116, align 4, !tbaa !5
  %6117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6118 = load i32, ptr @test_count, align 4, !tbaa !5
  %6119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6120 = load i32, ptr %6119, align 4, !tbaa !5
  %6121 = call ptr @s2n_strerror(i32 noundef %6120, ptr noundef @.str.24)
  %6122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  %6124 = call ptr @s2n_strerror_debug(i32 noundef %6123, ptr noundef @.str.24)
  %6125 = call ptr @__errno_location() #12
  %6126 = load i32, ptr %6125, align 4, !tbaa !5
  %6127 = call ptr @strerror(i32 noundef %6126) #11
  %6128 = call ptr @__errno_location() #12
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6117, ptr noundef @.str.22, i32 noundef %6118, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 336, ptr noundef %6121, ptr noundef %6124, ptr noundef %6127, i32 noundef %6129) #11
  br label %6148

6131:                                             ; preds = %6109, %6102
  %6132 = load i32, ptr %188, align 4, !tbaa !5
  %6133 = call ptr @__errno_location() #12
  store i32 %6132, ptr %6133, align 4, !tbaa !5
  %6134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6135 = load i32, ptr @test_count, align 4, !tbaa !5
  %6136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6137 = load i32, ptr %6136, align 4, !tbaa !5
  %6138 = call ptr @s2n_strerror(i32 noundef %6137, ptr noundef @.str.24)
  %6139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6140 = load i32, ptr %6139, align 4, !tbaa !5
  %6141 = call ptr @s2n_strerror_debug(i32 noundef %6140, ptr noundef @.str.24)
  %6142 = call ptr @__errno_location() #12
  %6143 = load i32, ptr %6142, align 4, !tbaa !5
  %6144 = call ptr @strerror(i32 noundef %6143) #11
  %6145 = call ptr @__errno_location() #12
  %6146 = load i32, ptr %6145, align 4, !tbaa !5
  %6147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6134, ptr noundef @.str.25, i32 noundef %6135, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 336, ptr noundef %6138, ptr noundef %6141, ptr noundef %6144, i32 noundef %6146) #11
  br label %6148

6148:                                             ; preds = %6131, %6114
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %6149

6149:                                             ; preds = %6148
  br label %6150

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

6151:                                             ; No predecessors!
  br label %6152

6152:                                             ; preds = %6151
  br label %6153

6153:                                             ; preds = %6152, %6093
  br label %6154

6154:                                             ; preds = %6153
  br label %6155

6155:                                             ; preds = %6154
  br label %6156

6156:                                             ; preds = %6155
  br label %6157

6157:                                             ; preds = %6156
  br label %6158

6158:                                             ; preds = %6157
  %6159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6159, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6160 = call ptr @__errno_location() #12
  store i32 0, ptr %6160, align 4, !tbaa !5
  br label %6161

6161:                                             ; preds = %6158
  br label %6162

6162:                                             ; preds = %6161
  br label %6163

6163:                                             ; preds = %6162
  br label %6164

6164:                                             ; preds = %6163
  %6165 = load ptr, ptr %176, align 8, !tbaa !9
  %6166 = getelementptr inbounds %struct.s2n_connection, ptr %6165, i32 0, i32 52
  %6167 = getelementptr inbounds %struct.s2n_handshake, ptr %6166, i32 0, i32 6
  store i32 3, ptr %6167, align 4, !tbaa !55
  br label %6168

6168:                                             ; preds = %6190, %6164
  %6169 = load ptr, ptr %176, align 8, !tbaa !9
  %6170 = getelementptr inbounds %struct.s2n_connection, ptr %6169, i32 0, i32 52
  %6171 = getelementptr inbounds %struct.s2n_handshake, ptr %6170, i32 0, i32 12
  %6172 = load i32, ptr %6171, align 4, !tbaa !56
  %6173 = icmp eq i32 %6172, 2
  %6174 = zext i1 %6173 to i64
  %6175 = select i1 %6173, ptr @tls13_handshakes, ptr @handshakes
  %6176 = load ptr, ptr %176, align 8, !tbaa !9
  %6177 = getelementptr inbounds %struct.s2n_connection, ptr %6176, i32 0, i32 52
  %6178 = getelementptr inbounds %struct.s2n_handshake, ptr %6177, i32 0, i32 6
  %6179 = load i32, ptr %6178, align 4, !tbaa !55
  %6180 = zext i32 %6179 to i64
  %6181 = getelementptr inbounds [32 x i32], ptr %6175, i64 %6180
  %6182 = load ptr, ptr %176, align 8, !tbaa !9
  %6183 = getelementptr inbounds %struct.s2n_connection, ptr %6182, i32 0, i32 52
  %6184 = getelementptr inbounds %struct.s2n_handshake, ptr %6183, i32 0, i32 7
  %6185 = load i32, ptr %6184, align 8, !tbaa !57
  %6186 = sext i32 %6185 to i64
  %6187 = getelementptr inbounds [32 x i32], ptr %6181, i64 0, i64 %6186
  %6188 = load i32, ptr %6187, align 4, !tbaa !5
  %6189 = icmp ne i32 %6188, 9
  br i1 %6189, label %6190, label %6196

6190:                                             ; preds = %6168
  %6191 = load ptr, ptr %176, align 8, !tbaa !9
  %6192 = getelementptr inbounds %struct.s2n_connection, ptr %6191, i32 0, i32 52
  %6193 = getelementptr inbounds %struct.s2n_handshake, ptr %6192, i32 0, i32 7
  %6194 = load i32, ptr %6193, align 8, !tbaa !57
  %6195 = add nsw i32 %6194, 1
  store i32 %6195, ptr %6193, align 8, !tbaa !57
  br label %6168, !llvm.loop !58

6196:                                             ; preds = %6168
  br label %6197

6197:                                             ; preds = %6196
  %6198 = load i32, ptr @test_count, align 4, !tbaa !5
  %6199 = add nsw i32 %6198, 1
  store i32 %6199, ptr @test_count, align 4, !tbaa !5
  %6200 = load ptr, ptr %176, align 8, !tbaa !9
  %6201 = call i32 @s2n_prf_calculate_master_secret(ptr noundef %6200, ptr noundef %184)
  %6202 = icmp eq i32 %6201, -1
  br i1 %6202, label %6203, label %6256

6203:                                             ; preds = %6197
  br label %6204

6204:                                             ; preds = %6203
  br label %6205

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

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

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

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

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

6252:                                             ; preds = %6251
  br label %6253

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

6254:                                             ; No predecessors!
  br label %6255

6255:                                             ; preds = %6254
  br label %6256

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

6257:                                             ; preds = %6256
  br label %6258

6258:                                             ; preds = %6257
  br label %6259

6259:                                             ; preds = %6258
  %6260 = load i32, ptr @test_count, align 4, !tbaa !5
  %6261 = add nsw i32 %6260, 1
  store i32 %6261, ptr @test_count, align 4, !tbaa !5
  %6262 = load ptr, ptr %176, align 8, !tbaa !9
  %6263 = getelementptr inbounds %struct.s2n_connection, ptr %6262, i32 0, i32 28
  %6264 = getelementptr inbounds %struct.s2n_secrets, ptr %6263, i32 0, i32 0
  %6265 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %6264, i32 0, i32 1
  %6266 = getelementptr inbounds [48 x i8], ptr %6265, i64 0, i64 0
  %6267 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 0
  %6268 = load ptr, ptr %6267, align 8, !tbaa !47
  %6269 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 1
  %6270 = load i32, ptr %6269, align 8, !tbaa !46
  %6271 = zext i32 %6270 to i64
  %6272 = call i32 @memcmp(ptr noundef %6266, ptr noundef %6268, i64 noundef %6271) #14
  %6273 = icmp eq i32 %6272, 0
  br i1 %6273, label %6327, label %6274

6274:                                             ; preds = %6259
  br label %6275

6275:                                             ; preds = %6274
  br label %6276

6276:                                             ; preds = %6275
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %6277 = call ptr @__errno_location() #12
  %6278 = load i32, ptr %6277, align 4, !tbaa !5
  store i32 %6278, ptr %190, align 4, !tbaa !5
  %6279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6280 = call i32 @s2n_print_stacktrace(ptr noundef %6279)
  %6281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6282 = trunc i8 %6281 to i1
  br i1 %6282, label %6283, label %6305

6283:                                             ; preds = %6276
  %6284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6285 = call i32 @fileno(ptr noundef %6284) #11
  %6286 = call i32 @isatty(i32 noundef %6285) #11
  %6287 = icmp ne i32 %6286, 0
  br i1 %6287, label %6288, label %6305

6288:                                             ; preds = %6283
  %6289 = load i32, ptr %190, align 4, !tbaa !5
  %6290 = call ptr @__errno_location() #12
  store i32 %6289, ptr %6290, align 4, !tbaa !5
  %6291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6292 = load i32, ptr @test_count, align 4, !tbaa !5
  %6293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6294 = load i32, ptr %6293, align 4, !tbaa !5
  %6295 = call ptr @s2n_strerror(i32 noundef %6294, ptr noundef @.str.24)
  %6296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6297 = load i32, ptr %6296, align 4, !tbaa !5
  %6298 = call ptr @s2n_strerror_debug(i32 noundef %6297, ptr noundef @.str.24)
  %6299 = call ptr @__errno_location() #12
  %6300 = load i32, ptr %6299, align 4, !tbaa !5
  %6301 = call ptr @strerror(i32 noundef %6300) #11
  %6302 = call ptr @__errno_location() #12
  %6303 = load i32, ptr %6302, align 4, !tbaa !5
  %6304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6291, ptr noundef @.str.22, i32 noundef %6292, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 346, ptr noundef %6295, ptr noundef %6298, ptr noundef %6301, i32 noundef %6303) #11
  br label %6322

6305:                                             ; preds = %6283, %6276
  %6306 = load i32, ptr %190, align 4, !tbaa !5
  %6307 = call ptr @__errno_location() #12
  store i32 %6306, ptr %6307, align 4, !tbaa !5
  %6308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6309 = load i32, ptr @test_count, align 4, !tbaa !5
  %6310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6311 = load i32, ptr %6310, align 4, !tbaa !5
  %6312 = call ptr @s2n_strerror(i32 noundef %6311, ptr noundef @.str.24)
  %6313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6314 = load i32, ptr %6313, align 4, !tbaa !5
  %6315 = call ptr @s2n_strerror_debug(i32 noundef %6314, ptr noundef @.str.24)
  %6316 = call ptr @__errno_location() #12
  %6317 = load i32, ptr %6316, align 4, !tbaa !5
  %6318 = call ptr @strerror(i32 noundef %6317) #11
  %6319 = call ptr @__errno_location() #12
  %6320 = load i32, ptr %6319, align 4, !tbaa !5
  %6321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6308, ptr noundef @.str.25, i32 noundef %6309, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 346, ptr noundef %6312, ptr noundef %6315, ptr noundef %6318, i32 noundef %6320) #11
  br label %6322

6322:                                             ; preds = %6305, %6288
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %6323

6323:                                             ; preds = %6322
  br label %6324

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

6325:                                             ; No predecessors!
  br label %6326

6326:                                             ; preds = %6325
  br label %6327

6327:                                             ; preds = %6326, %6259
  br label %6328

6328:                                             ; preds = %6327
  br label %6329

6329:                                             ; preds = %6328
  br label %6330

6330:                                             ; preds = %6329
  %6331 = load i32, ptr @test_count, align 4, !tbaa !5
  %6332 = add nsw i32 %6331, 1
  store i32 %6332, ptr @test_count, align 4, !tbaa !5
  %6333 = load ptr, ptr %176, align 8, !tbaa !9
  %6334 = call i32 @s2n_prf_calculate_master_secret(ptr noundef %6333, ptr noundef %184)
  %6335 = icmp eq i32 %6334, -1
  br i1 %6335, label %6336, label %6389

6336:                                             ; preds = %6330
  br label %6337

6337:                                             ; preds = %6336
  br label %6338

6338:                                             ; preds = %6337
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %6339 = call ptr @__errno_location() #12
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  store i32 %6340, ptr %191, align 4, !tbaa !5
  %6341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6342 = call i32 @s2n_print_stacktrace(ptr noundef %6341)
  %6343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6344 = trunc i8 %6343 to i1
  br i1 %6344, label %6345, label %6367

6345:                                             ; preds = %6338
  %6346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6347 = call i32 @fileno(ptr noundef %6346) #11
  %6348 = call i32 @isatty(i32 noundef %6347) #11
  %6349 = icmp ne i32 %6348, 0
  br i1 %6349, label %6350, label %6367

6350:                                             ; preds = %6345
  %6351 = load i32, ptr %191, align 4, !tbaa !5
  %6352 = call ptr @__errno_location() #12
  store i32 %6351, ptr %6352, align 4, !tbaa !5
  %6353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6354 = load i32, ptr @test_count, align 4, !tbaa !5
  %6355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6356 = load i32, ptr %6355, align 4, !tbaa !5
  %6357 = call ptr @s2n_strerror(i32 noundef %6356, ptr noundef @.str.24)
  %6358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6359 = load i32, ptr %6358, align 4, !tbaa !5
  %6360 = call ptr @s2n_strerror_debug(i32 noundef %6359, ptr noundef @.str.24)
  %6361 = call ptr @__errno_location() #12
  %6362 = load i32, ptr %6361, align 4, !tbaa !5
  %6363 = call ptr @strerror(i32 noundef %6362) #11
  %6364 = call ptr @__errno_location() #12
  %6365 = load i32, ptr %6364, align 4, !tbaa !5
  %6366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6353, ptr noundef @.str.22, i32 noundef %6354, ptr noundef @.str.92, ptr noundef @.str.21, i32 noundef 349, ptr noundef %6357, ptr noundef %6360, ptr noundef %6363, i32 noundef %6365) #11
  br label %6384

6367:                                             ; preds = %6345, %6338
  %6368 = load i32, ptr %191, align 4, !tbaa !5
  %6369 = call ptr @__errno_location() #12
  store i32 %6368, ptr %6369, align 4, !tbaa !5
  %6370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6371 = load i32, ptr @test_count, align 4, !tbaa !5
  %6372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6373 = load i32, ptr %6372, align 4, !tbaa !5
  %6374 = call ptr @s2n_strerror(i32 noundef %6373, ptr noundef @.str.24)
  %6375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6376 = load i32, ptr %6375, align 4, !tbaa !5
  %6377 = call ptr @s2n_strerror_debug(i32 noundef %6376, ptr noundef @.str.24)
  %6378 = call ptr @__errno_location() #12
  %6379 = load i32, ptr %6378, align 4, !tbaa !5
  %6380 = call ptr @strerror(i32 noundef %6379) #11
  %6381 = call ptr @__errno_location() #12
  %6382 = load i32, ptr %6381, align 4, !tbaa !5
  %6383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6370, ptr noundef @.str.25, i32 noundef %6371, ptr noundef @.str.92, ptr noundef @.str.21, i32 noundef 349, ptr noundef %6374, ptr noundef %6377, ptr noundef %6380, i32 noundef %6382) #11
  br label %6384

6384:                                             ; preds = %6367, %6350
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %6385

6385:                                             ; preds = %6384
  br label %6386

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

6387:                                             ; No predecessors!
  br label %6388

6388:                                             ; preds = %6387
  br label %6389

6389:                                             ; preds = %6388, %6330
  br label %6390

6390:                                             ; preds = %6389
  br label %6391

6391:                                             ; preds = %6390
  br label %6392

6392:                                             ; preds = %6391
  %6393 = load i32, ptr @test_count, align 4, !tbaa !5
  %6394 = add nsw i32 %6393, 1
  store i32 %6394, ptr @test_count, align 4, !tbaa !5
  %6395 = load ptr, ptr %176, align 8, !tbaa !9
  %6396 = getelementptr inbounds %struct.s2n_connection, ptr %6395, i32 0, i32 28
  %6397 = getelementptr inbounds %struct.s2n_secrets, ptr %6396, i32 0, i32 0
  %6398 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %6397, i32 0, i32 1
  %6399 = getelementptr inbounds [48 x i8], ptr %6398, i64 0, i64 0
  %6400 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 0
  %6401 = load ptr, ptr %6400, align 8, !tbaa !47
  %6402 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 1
  %6403 = load i32, ptr %6402, align 8, !tbaa !46
  %6404 = zext i32 %6403 to i64
  %6405 = call i32 @memcmp(ptr noundef %6399, ptr noundef %6401, i64 noundef %6404) #14
  %6406 = icmp eq i32 %6405, 0
  br i1 %6406, label %6460, label %6407

6407:                                             ; preds = %6392
  br label %6408

6408:                                             ; preds = %6407
  br label %6409

6409:                                             ; preds = %6408
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #11
  %6410 = call ptr @__errno_location() #12
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  store i32 %6411, ptr %192, align 4, !tbaa !5
  %6412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6413 = call i32 @s2n_print_stacktrace(ptr noundef %6412)
  %6414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6415 = trunc i8 %6414 to i1
  br i1 %6415, label %6416, label %6438

6416:                                             ; preds = %6409
  %6417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6418 = call i32 @fileno(ptr noundef %6417) #11
  %6419 = call i32 @isatty(i32 noundef %6418) #11
  %6420 = icmp ne i32 %6419, 0
  br i1 %6420, label %6421, label %6438

6421:                                             ; preds = %6416
  %6422 = load i32, ptr %192, align 4, !tbaa !5
  %6423 = call ptr @__errno_location() #12
  store i32 %6422, ptr %6423, align 4, !tbaa !5
  %6424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6425 = load i32, ptr @test_count, align 4, !tbaa !5
  %6426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6427 = load i32, ptr %6426, align 4, !tbaa !5
  %6428 = call ptr @s2n_strerror(i32 noundef %6427, ptr noundef @.str.24)
  %6429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6430 = load i32, ptr %6429, align 4, !tbaa !5
  %6431 = call ptr @s2n_strerror_debug(i32 noundef %6430, ptr noundef @.str.24)
  %6432 = call ptr @__errno_location() #12
  %6433 = load i32, ptr %6432, align 4, !tbaa !5
  %6434 = call ptr @strerror(i32 noundef %6433) #11
  %6435 = call ptr @__errno_location() #12
  %6436 = load i32, ptr %6435, align 4, !tbaa !5
  %6437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6424, ptr noundef @.str.22, i32 noundef %6425, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 350, ptr noundef %6428, ptr noundef %6431, ptr noundef %6434, i32 noundef %6436) #11
  br label %6455

6438:                                             ; preds = %6416, %6409
  %6439 = load i32, ptr %192, align 4, !tbaa !5
  %6440 = call ptr @__errno_location() #12
  store i32 %6439, ptr %6440, align 4, !tbaa !5
  %6441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6442 = load i32, ptr @test_count, align 4, !tbaa !5
  %6443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6444 = load i32, ptr %6443, align 4, !tbaa !5
  %6445 = call ptr @s2n_strerror(i32 noundef %6444, ptr noundef @.str.24)
  %6446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6447 = load i32, ptr %6446, align 4, !tbaa !5
  %6448 = call ptr @s2n_strerror_debug(i32 noundef %6447, ptr noundef @.str.24)
  %6449 = call ptr @__errno_location() #12
  %6450 = load i32, ptr %6449, align 4, !tbaa !5
  %6451 = call ptr @strerror(i32 noundef %6450) #11
  %6452 = call ptr @__errno_location() #12
  %6453 = load i32, ptr %6452, align 4, !tbaa !5
  %6454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6441, ptr noundef @.str.25, i32 noundef %6442, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 350, ptr noundef %6445, ptr noundef %6448, ptr noundef %6451, i32 noundef %6453) #11
  br label %6455

6455:                                             ; preds = %6438, %6421
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %6456

6456:                                             ; preds = %6455
  br label %6457

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

6458:                                             ; No predecessors!
  br label %6459

6459:                                             ; preds = %6458
  br label %6460

6460:                                             ; preds = %6459, %6392
  br label %6461

6461:                                             ; preds = %6460
  br label %6462

6462:                                             ; preds = %6461
  %6463 = load ptr, ptr %176, align 8, !tbaa !9
  %6464 = load i32, ptr %6463, align 8
  %6465 = and i32 %6464, -8193
  %6466 = or i32 %6465, 8192
  store i32 %6466, ptr %6463, align 8
  br label %6467

6467:                                             ; preds = %6462
  %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 = load ptr, ptr %176, align 8, !tbaa !9
  %6471 = call i32 @s2n_prf_calculate_master_secret(ptr noundef %6470, ptr noundef %184)
  %6472 = icmp eq i32 %6471, -1
  br i1 %6472, label %6473, label %6526

6473:                                             ; preds = %6467
  br label %6474

6474:                                             ; preds = %6473
  br label %6475

6475:                                             ; preds = %6474
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %6476 = call ptr @__errno_location() #12
  %6477 = load i32, ptr %6476, align 4, !tbaa !5
  store i32 %6477, ptr %193, align 4, !tbaa !5
  %6478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6479 = call i32 @s2n_print_stacktrace(ptr noundef %6478)
  %6480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6481 = trunc i8 %6480 to i1
  br i1 %6481, label %6482, label %6504

6482:                                             ; preds = %6475
  %6483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6484 = call i32 @fileno(ptr noundef %6483) #11
  %6485 = call i32 @isatty(i32 noundef %6484) #11
  %6486 = icmp ne i32 %6485, 0
  br i1 %6486, label %6487, label %6504

6487:                                             ; preds = %6482
  %6488 = load i32, ptr %193, align 4, !tbaa !5
  %6489 = call ptr @__errno_location() #12
  store i32 %6488, ptr %6489, align 4, !tbaa !5
  %6490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6491 = load i32, ptr @test_count, align 4, !tbaa !5
  %6492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6493 = load i32, ptr %6492, align 4, !tbaa !5
  %6494 = call ptr @s2n_strerror(i32 noundef %6493, ptr noundef @.str.24)
  %6495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call ptr @s2n_strerror_debug(i32 noundef %6496, ptr noundef @.str.24)
  %6498 = call ptr @__errno_location() #12
  %6499 = load i32, ptr %6498, align 4, !tbaa !5
  %6500 = call ptr @strerror(i32 noundef %6499) #11
  %6501 = call ptr @__errno_location() #12
  %6502 = load i32, ptr %6501, align 4, !tbaa !5
  %6503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6490, ptr noundef @.str.22, i32 noundef %6491, ptr noundef @.str.92, ptr noundef @.str.21, i32 noundef 353, ptr noundef %6494, ptr noundef %6497, ptr noundef %6500, i32 noundef %6502) #11
  br label %6521

6504:                                             ; preds = %6482, %6475
  %6505 = load i32, ptr %193, align 4, !tbaa !5
  %6506 = call ptr @__errno_location() #12
  store i32 %6505, ptr %6506, align 4, !tbaa !5
  %6507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6508 = load i32, ptr @test_count, align 4, !tbaa !5
  %6509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6510 = load i32, ptr %6509, align 4, !tbaa !5
  %6511 = call ptr @s2n_strerror(i32 noundef %6510, ptr noundef @.str.24)
  %6512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call ptr @s2n_strerror_debug(i32 noundef %6513, ptr noundef @.str.24)
  %6515 = call ptr @__errno_location() #12
  %6516 = load i32, ptr %6515, align 4, !tbaa !5
  %6517 = call ptr @strerror(i32 noundef %6516) #11
  %6518 = call ptr @__errno_location() #12
  %6519 = load i32, ptr %6518, align 4, !tbaa !5
  %6520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6507, ptr noundef @.str.25, i32 noundef %6508, ptr noundef @.str.92, ptr noundef @.str.21, i32 noundef 353, ptr noundef %6511, ptr noundef %6514, ptr noundef %6517, i32 noundef %6519) #11
  br label %6521

6521:                                             ; preds = %6504, %6487
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %6522

6522:                                             ; preds = %6521
  br label %6523

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

6524:                                             ; No predecessors!
  br label %6525

6525:                                             ; preds = %6524
  br label %6526

6526:                                             ; preds = %6525, %6467
  br label %6527

6527:                                             ; preds = %6526
  br label %6528

6528:                                             ; preds = %6527
  br label %6529

6529:                                             ; preds = %6528
  %6530 = load i32, ptr @test_count, align 4, !tbaa !5
  %6531 = add nsw i32 %6530, 1
  store i32 %6531, ptr @test_count, align 4, !tbaa !5
  %6532 = load ptr, ptr %176, align 8, !tbaa !9
  %6533 = getelementptr inbounds %struct.s2n_connection, ptr %6532, i32 0, i32 28
  %6534 = getelementptr inbounds %struct.s2n_secrets, ptr %6533, i32 0, i32 0
  %6535 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %6534, i32 0, i32 1
  %6536 = getelementptr inbounds [48 x i8], ptr %6535, i64 0, i64 0
  %6537 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 0
  %6538 = load ptr, ptr %6537, align 8, !tbaa !47
  %6539 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 1
  %6540 = load i32, ptr %6539, align 8, !tbaa !46
  %6541 = zext i32 %6540 to i64
  %6542 = call i32 @memcmp(ptr noundef %6536, ptr noundef %6538, i64 noundef %6541) #14
  %6543 = icmp eq i32 %6542, 0
  br i1 %6543, label %6544, label %6597

6544:                                             ; preds = %6529
  br label %6545

6545:                                             ; preds = %6544
  br label %6546

6546:                                             ; preds = %6545
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %6547 = call ptr @__errno_location() #12
  %6548 = load i32, ptr %6547, align 4, !tbaa !5
  store i32 %6548, ptr %194, align 4, !tbaa !5
  %6549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6550 = call i32 @s2n_print_stacktrace(ptr noundef %6549)
  %6551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6552 = trunc i8 %6551 to i1
  br i1 %6552, label %6553, label %6575

6553:                                             ; preds = %6546
  %6554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6555 = call i32 @fileno(ptr noundef %6554) #11
  %6556 = call i32 @isatty(i32 noundef %6555) #11
  %6557 = icmp ne i32 %6556, 0
  br i1 %6557, label %6558, label %6575

6558:                                             ; preds = %6553
  %6559 = load i32, ptr %194, align 4, !tbaa !5
  %6560 = call ptr @__errno_location() #12
  store i32 %6559, ptr %6560, align 4, !tbaa !5
  %6561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6562 = load i32, ptr @test_count, align 4, !tbaa !5
  %6563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6564 = load i32, ptr %6563, align 4, !tbaa !5
  %6565 = call ptr @s2n_strerror(i32 noundef %6564, ptr noundef @.str.24)
  %6566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6567 = load i32, ptr %6566, align 4, !tbaa !5
  %6568 = call ptr @s2n_strerror_debug(i32 noundef %6567, ptr noundef @.str.24)
  %6569 = call ptr @__errno_location() #12
  %6570 = load i32, ptr %6569, align 4, !tbaa !5
  %6571 = call ptr @strerror(i32 noundef %6570) #11
  %6572 = call ptr @__errno_location() #12
  %6573 = load i32, ptr %6572, align 4, !tbaa !5
  %6574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6561, ptr noundef @.str.22, i32 noundef %6562, ptr noundef @.str.93, ptr noundef @.str.21, i32 noundef 356, ptr noundef %6565, ptr noundef %6568, ptr noundef %6571, i32 noundef %6573) #11
  br label %6592

6575:                                             ; preds = %6553, %6546
  %6576 = load i32, ptr %194, align 4, !tbaa !5
  %6577 = call ptr @__errno_location() #12
  store i32 %6576, ptr %6577, align 4, !tbaa !5
  %6578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6579 = load i32, ptr @test_count, align 4, !tbaa !5
  %6580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6581 = load i32, ptr %6580, align 4, !tbaa !5
  %6582 = call ptr @s2n_strerror(i32 noundef %6581, ptr noundef @.str.24)
  %6583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6584 = load i32, ptr %6583, align 4, !tbaa !5
  %6585 = call ptr @s2n_strerror_debug(i32 noundef %6584, ptr noundef @.str.24)
  %6586 = call ptr @__errno_location() #12
  %6587 = load i32, ptr %6586, align 4, !tbaa !5
  %6588 = call ptr @strerror(i32 noundef %6587) #11
  %6589 = call ptr @__errno_location() #12
  %6590 = load i32, ptr %6589, align 4, !tbaa !5
  %6591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6578, ptr noundef @.str.25, i32 noundef %6579, ptr noundef @.str.93, ptr noundef @.str.21, i32 noundef 356, ptr noundef %6582, ptr noundef %6585, ptr noundef %6588, i32 noundef %6590) #11
  br label %6592

6592:                                             ; preds = %6575, %6558
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %6593

6593:                                             ; preds = %6592
  br label %6594

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

6595:                                             ; No predecessors!
  br label %6596

6596:                                             ; preds = %6595
  br label %6597

6597:                                             ; preds = %6596, %6529
  br label %6598

6598:                                             ; preds = %6597
  br label %6599

6599:                                             ; preds = %6598
  call void @llvm.lifetime.end.p0(i64 24, ptr %184) #11
  %6600 = call i32 @s2n_connection_ptr_free(ptr noundef %176)
  %6601 = getelementptr inbounds %struct.s2n_result, ptr %195, i32 0, i32 0
  store i32 %6600, ptr %6601, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #11
  store ptr null, ptr %196, align 8, !tbaa !9
  br label %6602

6602:                                             ; preds = %6599
  %6603 = load i32, ptr @test_count, align 4, !tbaa !5
  %6604 = add nsw i32 %6603, 1
  store i32 %6604, ptr @test_count, align 4, !tbaa !5
  %6605 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %196, ptr noundef @.str.94, ptr noundef @.str.95)
  %6606 = icmp eq i32 %6605, -1
  br i1 %6606, label %6607, label %6660

6607:                                             ; preds = %6602
  br label %6608

6608:                                             ; preds = %6607
  br label %6609

6609:                                             ; preds = %6608
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %6610 = call ptr @__errno_location() #12
  %6611 = load i32, ptr %6610, align 4, !tbaa !5
  store i32 %6611, ptr %197, align 4, !tbaa !5
  %6612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6613 = call i32 @s2n_print_stacktrace(ptr noundef %6612)
  %6614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6615 = trunc i8 %6614 to i1
  br i1 %6615, label %6616, label %6638

6616:                                             ; preds = %6609
  %6617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6618 = call i32 @fileno(ptr noundef %6617) #11
  %6619 = call i32 @isatty(i32 noundef %6618) #11
  %6620 = icmp ne i32 %6619, 0
  br i1 %6620, label %6621, label %6638

6621:                                             ; preds = %6616
  %6622 = load i32, ptr %197, align 4, !tbaa !5
  %6623 = call ptr @__errno_location() #12
  store i32 %6622, ptr %6623, align 4, !tbaa !5
  %6624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6625 = load i32, ptr @test_count, align 4, !tbaa !5
  %6626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6627 = load i32, ptr %6626, align 4, !tbaa !5
  %6628 = call ptr @s2n_strerror(i32 noundef %6627, ptr noundef @.str.24)
  %6629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6630 = load i32, ptr %6629, align 4, !tbaa !5
  %6631 = call ptr @s2n_strerror_debug(i32 noundef %6630, ptr noundef @.str.24)
  %6632 = call ptr @__errno_location() #12
  %6633 = load i32, ptr %6632, align 4, !tbaa !5
  %6634 = call ptr @strerror(i32 noundef %6633) #11
  %6635 = call ptr @__errno_location() #12
  %6636 = load i32, ptr %6635, align 4, !tbaa !5
  %6637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6624, ptr noundef @.str.22, i32 noundef %6625, ptr noundef @.str.96, ptr noundef @.str.21, i32 noundef 377, ptr noundef %6628, ptr noundef %6631, ptr noundef %6634, i32 noundef %6636) #11
  br label %6655

6638:                                             ; preds = %6616, %6609
  %6639 = load i32, ptr %197, align 4, !tbaa !5
  %6640 = call ptr @__errno_location() #12
  store i32 %6639, ptr %6640, align 4, !tbaa !5
  %6641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6642 = load i32, ptr @test_count, align 4, !tbaa !5
  %6643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6644 = load i32, ptr %6643, align 4, !tbaa !5
  %6645 = call ptr @s2n_strerror(i32 noundef %6644, ptr noundef @.str.24)
  %6646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6647 = load i32, ptr %6646, align 4, !tbaa !5
  %6648 = call ptr @s2n_strerror_debug(i32 noundef %6647, ptr noundef @.str.24)
  %6649 = call ptr @__errno_location() #12
  %6650 = load i32, ptr %6649, align 4, !tbaa !5
  %6651 = call ptr @strerror(i32 noundef %6650) #11
  %6652 = call ptr @__errno_location() #12
  %6653 = load i32, ptr %6652, align 4, !tbaa !5
  %6654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6641, ptr noundef @.str.25, i32 noundef %6642, ptr noundef @.str.96, ptr noundef @.str.21, i32 noundef 377, ptr noundef %6645, ptr noundef %6648, ptr noundef %6651, i32 noundef %6653) #11
  br label %6655

6655:                                             ; preds = %6638, %6621
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %6656

6656:                                             ; preds = %6655
  br label %6657

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

6658:                                             ; No predecessors!
  br label %6659

6659:                                             ; preds = %6658
  br label %6660

6660:                                             ; preds = %6659, %6602
  br label %6661

6661:                                             ; preds = %6660
  br label %6662

6662:                                             ; preds = %6661
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #11
  %6663 = call ptr @s2n_config_new()
  store ptr %6663, ptr %198, align 8, !tbaa !9
  br label %6664

6664:                                             ; preds = %6662
  %6665 = load i32, ptr @test_count, align 4, !tbaa !5
  %6666 = add nsw i32 %6665, 1
  store i32 %6666, ptr @test_count, align 4, !tbaa !5
  %6667 = load ptr, ptr %198, align 8, !tbaa !9
  %6668 = load ptr, ptr %196, align 8, !tbaa !9
  %6669 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6667, ptr noundef %6668)
  %6670 = icmp eq i32 %6669, -1
  br i1 %6670, label %6671, label %6724

6671:                                             ; preds = %6664
  br label %6672

6672:                                             ; preds = %6671
  br label %6673

6673:                                             ; preds = %6672
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %6674 = call ptr @__errno_location() #12
  %6675 = load i32, ptr %6674, align 4, !tbaa !5
  store i32 %6675, ptr %199, align 4, !tbaa !5
  %6676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6677 = call i32 @s2n_print_stacktrace(ptr noundef %6676)
  %6678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6679 = trunc i8 %6678 to i1
  br i1 %6679, label %6680, label %6702

6680:                                             ; preds = %6673
  %6681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6682 = call i32 @fileno(ptr noundef %6681) #11
  %6683 = call i32 @isatty(i32 noundef %6682) #11
  %6684 = icmp ne i32 %6683, 0
  br i1 %6684, label %6685, label %6702

6685:                                             ; preds = %6680
  %6686 = load i32, ptr %199, align 4, !tbaa !5
  %6687 = call ptr @__errno_location() #12
  store i32 %6686, ptr %6687, align 4, !tbaa !5
  %6688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6689 = load i32, ptr @test_count, align 4, !tbaa !5
  %6690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6691 = load i32, ptr %6690, align 4, !tbaa !5
  %6692 = call ptr @s2n_strerror(i32 noundef %6691, ptr noundef @.str.24)
  %6693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6694 = load i32, ptr %6693, align 4, !tbaa !5
  %6695 = call ptr @s2n_strerror_debug(i32 noundef %6694, ptr noundef @.str.24)
  %6696 = call ptr @__errno_location() #12
  %6697 = load i32, ptr %6696, align 4, !tbaa !5
  %6698 = call ptr @strerror(i32 noundef %6697) #11
  %6699 = call ptr @__errno_location() #12
  %6700 = load i32, ptr %6699, align 4, !tbaa !5
  %6701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6688, ptr noundef @.str.22, i32 noundef %6689, ptr noundef @.str.97, ptr noundef @.str.21, i32 noundef 380, ptr noundef %6692, ptr noundef %6695, ptr noundef %6698, i32 noundef %6700) #11
  br label %6719

6702:                                             ; preds = %6680, %6673
  %6703 = load i32, ptr %199, align 4, !tbaa !5
  %6704 = call ptr @__errno_location() #12
  store i32 %6703, ptr %6704, align 4, !tbaa !5
  %6705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6706 = load i32, ptr @test_count, align 4, !tbaa !5
  %6707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6708 = load i32, ptr %6707, align 4, !tbaa !5
  %6709 = call ptr @s2n_strerror(i32 noundef %6708, ptr noundef @.str.24)
  %6710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6711 = load i32, ptr %6710, align 4, !tbaa !5
  %6712 = call ptr @s2n_strerror_debug(i32 noundef %6711, ptr noundef @.str.24)
  %6713 = call ptr @__errno_location() #12
  %6714 = load i32, ptr %6713, align 4, !tbaa !5
  %6715 = call ptr @strerror(i32 noundef %6714) #11
  %6716 = call ptr @__errno_location() #12
  %6717 = load i32, ptr %6716, align 4, !tbaa !5
  %6718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6705, ptr noundef @.str.25, i32 noundef %6706, ptr noundef @.str.97, ptr noundef @.str.21, i32 noundef 380, ptr noundef %6709, ptr noundef %6712, ptr noundef %6715, i32 noundef %6717) #11
  br label %6719

6719:                                             ; preds = %6702, %6685
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %6720

6720:                                             ; preds = %6719
  br label %6721

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

6722:                                             ; No predecessors!
  br label %6723

6723:                                             ; preds = %6722
  br label %6724

6724:                                             ; preds = %6723, %6664
  br label %6725

6725:                                             ; preds = %6724
  br label %6726

6726:                                             ; preds = %6725
  br label %6727

6727:                                             ; preds = %6726
  %6728 = load i32, ptr @test_count, align 4, !tbaa !5
  %6729 = add nsw i32 %6728, 1
  store i32 %6729, ptr @test_count, align 4, !tbaa !5
  %6730 = load ptr, ptr %198, align 8, !tbaa !9
  %6731 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %6730)
  %6732 = icmp eq i32 %6731, -1
  br i1 %6732, label %6733, label %6786

6733:                                             ; preds = %6727
  br label %6734

6734:                                             ; preds = %6733
  br label %6735

6735:                                             ; preds = %6734
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %6736 = call ptr @__errno_location() #12
  %6737 = load i32, ptr %6736, align 4, !tbaa !5
  store i32 %6737, ptr %200, align 4, !tbaa !5
  %6738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6739 = call i32 @s2n_print_stacktrace(ptr noundef %6738)
  %6740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6741 = trunc i8 %6740 to i1
  br i1 %6741, label %6742, label %6764

6742:                                             ; preds = %6735
  %6743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6744 = call i32 @fileno(ptr noundef %6743) #11
  %6745 = call i32 @isatty(i32 noundef %6744) #11
  %6746 = icmp ne i32 %6745, 0
  br i1 %6746, label %6747, label %6764

6747:                                             ; preds = %6742
  %6748 = load i32, ptr %200, align 4, !tbaa !5
  %6749 = call ptr @__errno_location() #12
  store i32 %6748, ptr %6749, align 4, !tbaa !5
  %6750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6751 = load i32, ptr @test_count, align 4, !tbaa !5
  %6752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6753 = load i32, ptr %6752, align 4, !tbaa !5
  %6754 = call ptr @s2n_strerror(i32 noundef %6753, ptr noundef @.str.24)
  %6755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6756 = load i32, ptr %6755, align 4, !tbaa !5
  %6757 = call ptr @s2n_strerror_debug(i32 noundef %6756, ptr noundef @.str.24)
  %6758 = call ptr @__errno_location() #12
  %6759 = load i32, ptr %6758, align 4, !tbaa !5
  %6760 = call ptr @strerror(i32 noundef %6759) #11
  %6761 = call ptr @__errno_location() #12
  %6762 = load i32, ptr %6761, align 4, !tbaa !5
  %6763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6750, ptr noundef @.str.22, i32 noundef %6751, ptr noundef @.str.98, ptr noundef @.str.21, i32 noundef 381, ptr noundef %6754, ptr noundef %6757, ptr noundef %6760, i32 noundef %6762) #11
  br label %6781

6764:                                             ; preds = %6742, %6735
  %6765 = load i32, ptr %200, align 4, !tbaa !5
  %6766 = call ptr @__errno_location() #12
  store i32 %6765, ptr %6766, align 4, !tbaa !5
  %6767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6768 = load i32, ptr @test_count, align 4, !tbaa !5
  %6769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6770 = load i32, ptr %6769, align 4, !tbaa !5
  %6771 = call ptr @s2n_strerror(i32 noundef %6770, ptr noundef @.str.24)
  %6772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6773 = load i32, ptr %6772, align 4, !tbaa !5
  %6774 = call ptr @s2n_strerror_debug(i32 noundef %6773, ptr noundef @.str.24)
  %6775 = call ptr @__errno_location() #12
  %6776 = load i32, ptr %6775, align 4, !tbaa !5
  %6777 = call ptr @strerror(i32 noundef %6776) #11
  %6778 = call ptr @__errno_location() #12
  %6779 = load i32, ptr %6778, align 4, !tbaa !5
  %6780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6767, ptr noundef @.str.25, i32 noundef %6768, ptr noundef @.str.98, ptr noundef @.str.21, i32 noundef 381, ptr noundef %6771, ptr noundef %6774, ptr noundef %6777, i32 noundef %6779) #11
  br label %6781

6781:                                             ; preds = %6764, %6747
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %6782

6782:                                             ; preds = %6781
  br label %6783

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

6784:                                             ; No predecessors!
  br label %6785

6785:                                             ; preds = %6784
  br label %6786

6786:                                             ; preds = %6785, %6727
  br label %6787

6787:                                             ; preds = %6786
  br label %6788

6788:                                             ; preds = %6787
  br label %6789

6789:                                             ; preds = %6788
  %6790 = load i32, ptr @test_count, align 4, !tbaa !5
  %6791 = add nsw i32 %6790, 1
  store i32 %6791, ptr @test_count, align 4, !tbaa !5
  %6792 = load ptr, ptr %198, align 8, !tbaa !9
  %6793 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6792, ptr noundef @.str.99)
  %6794 = icmp eq i32 %6793, -1
  br i1 %6794, label %6795, label %6848

6795:                                             ; preds = %6789
  br label %6796

6796:                                             ; preds = %6795
  br label %6797

6797:                                             ; preds = %6796
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %6798 = call ptr @__errno_location() #12
  %6799 = load i32, ptr %6798, align 4, !tbaa !5
  store i32 %6799, ptr %201, 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 %201, 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.100, ptr noundef @.str.21, i32 noundef 382, ptr noundef %6816, ptr noundef %6819, ptr noundef %6822, i32 noundef %6824) #11
  br label %6843

6826:                                             ; preds = %6804, %6797
  %6827 = load i32, ptr %201, 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.100, ptr noundef @.str.21, i32 noundef 382, 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 %201) #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, %6789
  br label %6849

6849:                                             ; preds = %6848
  br label %6850

6850:                                             ; preds = %6849
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #11
  %6851 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6851, ptr %202, align 8, !tbaa !9
  br label %6852

6852:                                             ; preds = %6850
  %6853 = load i32, ptr @test_count, align 4, !tbaa !5
  %6854 = add nsw i32 %6853, 1
  store i32 %6854, ptr @test_count, align 4, !tbaa !5
  %6855 = load ptr, ptr %202, align 8, !tbaa !9
  %6856 = icmp eq ptr %6855, null
  br i1 %6856, label %6857, label %6910

6857:                                             ; preds = %6852
  br label %6858

6858:                                             ; preds = %6857
  br label %6859

6859:                                             ; preds = %6858
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %6860 = call ptr @__errno_location() #12
  %6861 = load i32, ptr %6860, align 4, !tbaa !5
  store i32 %6861, ptr %203, align 4, !tbaa !5
  %6862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6863 = call i32 @s2n_print_stacktrace(ptr noundef %6862)
  %6864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6865 = trunc i8 %6864 to i1
  br i1 %6865, label %6866, label %6888

6866:                                             ; preds = %6859
  %6867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6868 = call i32 @fileno(ptr noundef %6867) #11
  %6869 = call i32 @isatty(i32 noundef %6868) #11
  %6870 = icmp ne i32 %6869, 0
  br i1 %6870, label %6871, label %6888

6871:                                             ; preds = %6866
  %6872 = load i32, ptr %203, align 4, !tbaa !5
  %6873 = call ptr @__errno_location() #12
  store i32 %6872, ptr %6873, align 4, !tbaa !5
  %6874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6875 = load i32, ptr @test_count, align 4, !tbaa !5
  %6876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6877 = load i32, ptr %6876, align 4, !tbaa !5
  %6878 = call ptr @s2n_strerror(i32 noundef %6877, ptr noundef @.str.24)
  %6879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6880 = load i32, ptr %6879, align 4, !tbaa !5
  %6881 = call ptr @s2n_strerror_debug(i32 noundef %6880, ptr noundef @.str.24)
  %6882 = call ptr @__errno_location() #12
  %6883 = load i32, ptr %6882, align 4, !tbaa !5
  %6884 = call ptr @strerror(i32 noundef %6883) #11
  %6885 = call ptr @__errno_location() #12
  %6886 = load i32, ptr %6885, align 4, !tbaa !5
  %6887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6874, ptr noundef @.str.22, i32 noundef %6875, ptr noundef @.str.101, ptr noundef @.str.21, i32 noundef 385, ptr noundef %6878, ptr noundef %6881, ptr noundef %6884, i32 noundef %6886) #11
  br label %6905

6888:                                             ; preds = %6866, %6859
  %6889 = load i32, ptr %203, align 4, !tbaa !5
  %6890 = call ptr @__errno_location() #12
  store i32 %6889, ptr %6890, align 4, !tbaa !5
  %6891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6892 = load i32, ptr @test_count, align 4, !tbaa !5
  %6893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6894 = load i32, ptr %6893, align 4, !tbaa !5
  %6895 = call ptr @s2n_strerror(i32 noundef %6894, ptr noundef @.str.24)
  %6896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6897 = load i32, ptr %6896, align 4, !tbaa !5
  %6898 = call ptr @s2n_strerror_debug(i32 noundef %6897, ptr noundef @.str.24)
  %6899 = call ptr @__errno_location() #12
  %6900 = load i32, ptr %6899, align 4, !tbaa !5
  %6901 = call ptr @strerror(i32 noundef %6900) #11
  %6902 = call ptr @__errno_location() #12
  %6903 = load i32, ptr %6902, align 4, !tbaa !5
  %6904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6891, ptr noundef @.str.25, i32 noundef %6892, ptr noundef @.str.101, ptr noundef @.str.21, i32 noundef 385, ptr noundef %6895, ptr noundef %6898, ptr noundef %6901, i32 noundef %6903) #11
  br label %6905

6905:                                             ; preds = %6888, %6871
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %6906

6906:                                             ; preds = %6905
  br label %6907

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

6908:                                             ; No predecessors!
  br label %6909

6909:                                             ; preds = %6908
  br label %6910

6910:                                             ; preds = %6909, %6852
  br label %6911

6911:                                             ; preds = %6910
  br label %6912

6912:                                             ; preds = %6911
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #11
  %6913 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6913, ptr %204, align 8, !tbaa !9
  br label %6914

6914:                                             ; preds = %6912
  %6915 = load i32, ptr @test_count, align 4, !tbaa !5
  %6916 = add nsw i32 %6915, 1
  store i32 %6916, ptr @test_count, align 4, !tbaa !5
  %6917 = load ptr, ptr %204, align 8, !tbaa !9
  %6918 = icmp eq ptr %6917, null
  br i1 %6918, label %6919, label %6972

6919:                                             ; preds = %6914
  br label %6920

6920:                                             ; preds = %6919
  br label %6921

6921:                                             ; preds = %6920
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %6922 = call ptr @__errno_location() #12
  %6923 = load i32, ptr %6922, align 4, !tbaa !5
  store i32 %6923, ptr %205, align 4, !tbaa !5
  %6924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6925 = call i32 @s2n_print_stacktrace(ptr noundef %6924)
  %6926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6927 = trunc i8 %6926 to i1
  br i1 %6927, label %6928, label %6950

6928:                                             ; preds = %6921
  %6929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6930 = call i32 @fileno(ptr noundef %6929) #11
  %6931 = call i32 @isatty(i32 noundef %6930) #11
  %6932 = icmp ne i32 %6931, 0
  br i1 %6932, label %6933, label %6950

6933:                                             ; preds = %6928
  %6934 = load i32, ptr %205, align 4, !tbaa !5
  %6935 = call ptr @__errno_location() #12
  store i32 %6934, ptr %6935, align 4, !tbaa !5
  %6936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6937 = load i32, ptr @test_count, align 4, !tbaa !5
  %6938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6939 = load i32, ptr %6938, align 4, !tbaa !5
  %6940 = call ptr @s2n_strerror(i32 noundef %6939, ptr noundef @.str.24)
  %6941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6942 = load i32, ptr %6941, align 4, !tbaa !5
  %6943 = call ptr @s2n_strerror_debug(i32 noundef %6942, ptr noundef @.str.24)
  %6944 = call ptr @__errno_location() #12
  %6945 = load i32, ptr %6944, align 4, !tbaa !5
  %6946 = call ptr @strerror(i32 noundef %6945) #11
  %6947 = call ptr @__errno_location() #12
  %6948 = load i32, ptr %6947, align 4, !tbaa !5
  %6949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6936, ptr noundef @.str.22, i32 noundef %6937, ptr noundef @.str.102, ptr noundef @.str.21, i32 noundef 388, ptr noundef %6940, ptr noundef %6943, ptr noundef %6946, i32 noundef %6948) #11
  br label %6967

6950:                                             ; preds = %6928, %6921
  %6951 = load i32, ptr %205, align 4, !tbaa !5
  %6952 = call ptr @__errno_location() #12
  store i32 %6951, ptr %6952, align 4, !tbaa !5
  %6953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6954 = load i32, ptr @test_count, align 4, !tbaa !5
  %6955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6956 = load i32, ptr %6955, align 4, !tbaa !5
  %6957 = call ptr @s2n_strerror(i32 noundef %6956, ptr noundef @.str.24)
  %6958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6959 = load i32, ptr %6958, align 4, !tbaa !5
  %6960 = call ptr @s2n_strerror_debug(i32 noundef %6959, ptr noundef @.str.24)
  %6961 = call ptr @__errno_location() #12
  %6962 = load i32, ptr %6961, align 4, !tbaa !5
  %6963 = call ptr @strerror(i32 noundef %6962) #11
  %6964 = call ptr @__errno_location() #12
  %6965 = load i32, ptr %6964, align 4, !tbaa !5
  %6966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6953, ptr noundef @.str.25, i32 noundef %6954, ptr noundef @.str.102, ptr noundef @.str.21, i32 noundef 388, ptr noundef %6957, ptr noundef %6960, ptr noundef %6963, i32 noundef %6965) #11
  br label %6967

6967:                                             ; preds = %6950, %6933
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %6968

6968:                                             ; preds = %6967
  br label %6969

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

6970:                                             ; No predecessors!
  br label %6971

6971:                                             ; preds = %6970
  br label %6972

6972:                                             ; preds = %6971, %6914
  br label %6973

6973:                                             ; preds = %6972
  br label %6974

6974:                                             ; preds = %6973
  br label %6975

6975:                                             ; preds = %6974
  %6976 = load i32, ptr @test_count, align 4, !tbaa !5
  %6977 = add nsw i32 %6976, 1
  store i32 %6977, ptr @test_count, align 4, !tbaa !5
  %6978 = load ptr, ptr %202, align 8, !tbaa !9
  %6979 = load ptr, ptr %198, align 8, !tbaa !9
  %6980 = call i32 @s2n_connection_set_config(ptr noundef %6978, ptr noundef %6979)
  %6981 = icmp eq i32 %6980, -1
  br i1 %6981, label %6982, label %7035

6982:                                             ; preds = %6975
  br label %6983

6983:                                             ; preds = %6982
  br label %6984

6984:                                             ; preds = %6983
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %6985 = call ptr @__errno_location() #12
  %6986 = load i32, ptr %6985, align 4, !tbaa !5
  store i32 %6986, ptr %206, align 4, !tbaa !5
  %6987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6988 = call i32 @s2n_print_stacktrace(ptr noundef %6987)
  %6989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6990 = trunc i8 %6989 to i1
  br i1 %6990, label %6991, label %7013

6991:                                             ; preds = %6984
  %6992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6993 = call i32 @fileno(ptr noundef %6992) #11
  %6994 = call i32 @isatty(i32 noundef %6993) #11
  %6995 = icmp ne i32 %6994, 0
  br i1 %6995, label %6996, label %7013

6996:                                             ; preds = %6991
  %6997 = load i32, ptr %206, align 4, !tbaa !5
  %6998 = call ptr @__errno_location() #12
  store i32 %6997, ptr %6998, align 4, !tbaa !5
  %6999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7000 = load i32, ptr @test_count, align 4, !tbaa !5
  %7001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7002 = load i32, ptr %7001, align 4, !tbaa !5
  %7003 = call ptr @s2n_strerror(i32 noundef %7002, ptr noundef @.str.24)
  %7004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7005 = load i32, ptr %7004, align 4, !tbaa !5
  %7006 = call ptr @s2n_strerror_debug(i32 noundef %7005, ptr noundef @.str.24)
  %7007 = call ptr @__errno_location() #12
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  %7009 = call ptr @strerror(i32 noundef %7008) #11
  %7010 = call ptr @__errno_location() #12
  %7011 = load i32, ptr %7010, align 4, !tbaa !5
  %7012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6999, ptr noundef @.str.22, i32 noundef %7000, ptr noundef @.str.103, ptr noundef @.str.21, i32 noundef 390, ptr noundef %7003, ptr noundef %7006, ptr noundef %7009, i32 noundef %7011) #11
  br label %7030

7013:                                             ; preds = %6991, %6984
  %7014 = load i32, ptr %206, align 4, !tbaa !5
  %7015 = call ptr @__errno_location() #12
  store i32 %7014, ptr %7015, align 4, !tbaa !5
  %7016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7017 = load i32, ptr @test_count, align 4, !tbaa !5
  %7018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7019 = load i32, ptr %7018, align 4, !tbaa !5
  %7020 = call ptr @s2n_strerror(i32 noundef %7019, ptr noundef @.str.24)
  %7021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7022 = load i32, ptr %7021, align 4, !tbaa !5
  %7023 = call ptr @s2n_strerror_debug(i32 noundef %7022, ptr noundef @.str.24)
  %7024 = call ptr @__errno_location() #12
  %7025 = load i32, ptr %7024, align 4, !tbaa !5
  %7026 = call ptr @strerror(i32 noundef %7025) #11
  %7027 = call ptr @__errno_location() #12
  %7028 = load i32, ptr %7027, align 4, !tbaa !5
  %7029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7016, ptr noundef @.str.25, i32 noundef %7017, ptr noundef @.str.103, ptr noundef @.str.21, i32 noundef 390, ptr noundef %7020, ptr noundef %7023, ptr noundef %7026, i32 noundef %7028) #11
  br label %7030

7030:                                             ; preds = %7013, %6996
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %7031

7031:                                             ; preds = %7030
  br label %7032

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

7033:                                             ; No predecessors!
  br label %7034

7034:                                             ; preds = %7033
  br label %7035

7035:                                             ; preds = %7034, %6975
  br label %7036

7036:                                             ; preds = %7035
  br label %7037

7037:                                             ; preds = %7036
  br label %7038

7038:                                             ; preds = %7037
  %7039 = load i32, ptr @test_count, align 4, !tbaa !5
  %7040 = add nsw i32 %7039, 1
  store i32 %7040, ptr @test_count, align 4, !tbaa !5
  %7041 = load ptr, ptr %204, align 8, !tbaa !9
  %7042 = load ptr, ptr %198, align 8, !tbaa !9
  %7043 = call i32 @s2n_connection_set_config(ptr noundef %7041, ptr noundef %7042)
  %7044 = icmp eq i32 %7043, -1
  br i1 %7044, label %7045, label %7098

7045:                                             ; preds = %7038
  br label %7046

7046:                                             ; preds = %7045
  br label %7047

7047:                                             ; preds = %7046
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %7048 = call ptr @__errno_location() #12
  %7049 = load i32, ptr %7048, align 4, !tbaa !5
  store i32 %7049, ptr %207, align 4, !tbaa !5
  %7050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7051 = call i32 @s2n_print_stacktrace(ptr noundef %7050)
  %7052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7053 = trunc i8 %7052 to i1
  br i1 %7053, label %7054, label %7076

7054:                                             ; preds = %7047
  %7055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7056 = call i32 @fileno(ptr noundef %7055) #11
  %7057 = call i32 @isatty(i32 noundef %7056) #11
  %7058 = icmp ne i32 %7057, 0
  br i1 %7058, label %7059, label %7076

7059:                                             ; preds = %7054
  %7060 = load i32, ptr %207, align 4, !tbaa !5
  %7061 = call ptr @__errno_location() #12
  store i32 %7060, ptr %7061, align 4, !tbaa !5
  %7062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7063 = load i32, ptr @test_count, align 4, !tbaa !5
  %7064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7065 = load i32, ptr %7064, align 4, !tbaa !5
  %7066 = call ptr @s2n_strerror(i32 noundef %7065, ptr noundef @.str.24)
  %7067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7068 = load i32, ptr %7067, align 4, !tbaa !5
  %7069 = call ptr @s2n_strerror_debug(i32 noundef %7068, ptr noundef @.str.24)
  %7070 = call ptr @__errno_location() #12
  %7071 = load i32, ptr %7070, align 4, !tbaa !5
  %7072 = call ptr @strerror(i32 noundef %7071) #11
  %7073 = call ptr @__errno_location() #12
  %7074 = load i32, ptr %7073, align 4, !tbaa !5
  %7075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7062, ptr noundef @.str.22, i32 noundef %7063, ptr noundef @.str.104, ptr noundef @.str.21, i32 noundef 391, ptr noundef %7066, ptr noundef %7069, ptr noundef %7072, i32 noundef %7074) #11
  br label %7093

7076:                                             ; preds = %7054, %7047
  %7077 = load i32, ptr %207, align 4, !tbaa !5
  %7078 = call ptr @__errno_location() #12
  store i32 %7077, ptr %7078, align 4, !tbaa !5
  %7079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7080 = load i32, ptr @test_count, align 4, !tbaa !5
  %7081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7082 = load i32, ptr %7081, align 4, !tbaa !5
  %7083 = call ptr @s2n_strerror(i32 noundef %7082, ptr noundef @.str.24)
  %7084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7085 = load i32, ptr %7084, align 4, !tbaa !5
  %7086 = call ptr @s2n_strerror_debug(i32 noundef %7085, ptr noundef @.str.24)
  %7087 = call ptr @__errno_location() #12
  %7088 = load i32, ptr %7087, align 4, !tbaa !5
  %7089 = call ptr @strerror(i32 noundef %7088) #11
  %7090 = call ptr @__errno_location() #12
  %7091 = load i32, ptr %7090, align 4, !tbaa !5
  %7092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7079, ptr noundef @.str.25, i32 noundef %7080, ptr noundef @.str.104, ptr noundef @.str.21, i32 noundef 391, ptr noundef %7083, ptr noundef %7086, ptr noundef %7089, i32 noundef %7091) #11
  br label %7093

7093:                                             ; preds = %7076, %7059
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %7094

7094:                                             ; preds = %7093
  br label %7095

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

7096:                                             ; No predecessors!
  br label %7097

7097:                                             ; preds = %7096
  br label %7098

7098:                                             ; preds = %7097, %7038
  br label %7099

7099:                                             ; preds = %7098
  br label %7100

7100:                                             ; preds = %7099
  call void @llvm.lifetime.start.p0(i64 40, ptr %208) #11
  call void @llvm.memset.p0.i64(ptr align 8 %208, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %209) #11
  call void @llvm.memset.p0.i64(ptr align 8 %209, i8 0, i64 40, i1 false)
  br label %7101

7101:                                             ; preds = %7100
  %7102 = load i32, ptr @test_count, align 4, !tbaa !5
  %7103 = add nsw i32 %7102, 1
  store i32 %7103, ptr @test_count, align 4, !tbaa !5
  %7104 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %208, i32 noundef 0)
  %7105 = icmp eq i32 %7104, -1
  br i1 %7105, label %7106, label %7159

7106:                                             ; preds = %7101
  br label %7107

7107:                                             ; preds = %7106
  br label %7108

7108:                                             ; preds = %7107
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %7109 = call ptr @__errno_location() #12
  %7110 = load i32, ptr %7109, align 4, !tbaa !5
  store i32 %7110, ptr %210, align 4, !tbaa !5
  %7111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7112 = call i32 @s2n_print_stacktrace(ptr noundef %7111)
  %7113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7114 = trunc i8 %7113 to i1
  br i1 %7114, label %7115, label %7137

7115:                                             ; preds = %7108
  %7116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7117 = call i32 @fileno(ptr noundef %7116) #11
  %7118 = call i32 @isatty(i32 noundef %7117) #11
  %7119 = icmp ne i32 %7118, 0
  br i1 %7119, label %7120, label %7137

7120:                                             ; preds = %7115
  %7121 = load i32, ptr %210, align 4, !tbaa !5
  %7122 = call ptr @__errno_location() #12
  store i32 %7121, ptr %7122, align 4, !tbaa !5
  %7123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7124 = load i32, ptr @test_count, align 4, !tbaa !5
  %7125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7126 = load i32, ptr %7125, align 4, !tbaa !5
  %7127 = call ptr @s2n_strerror(i32 noundef %7126, ptr noundef @.str.24)
  %7128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  %7130 = call ptr @s2n_strerror_debug(i32 noundef %7129, ptr noundef @.str.24)
  %7131 = call ptr @__errno_location() #12
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call ptr @strerror(i32 noundef %7132) #11
  %7134 = call ptr @__errno_location() #12
  %7135 = load i32, ptr %7134, align 4, !tbaa !5
  %7136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7123, ptr noundef @.str.22, i32 noundef %7124, ptr noundef @.str.105, ptr noundef @.str.21, i32 noundef 395, ptr noundef %7127, ptr noundef %7130, ptr noundef %7133, i32 noundef %7135) #11
  br label %7154

7137:                                             ; preds = %7115, %7108
  %7138 = load i32, ptr %210, align 4, !tbaa !5
  %7139 = call ptr @__errno_location() #12
  store i32 %7138, ptr %7139, align 4, !tbaa !5
  %7140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7141 = load i32, ptr @test_count, align 4, !tbaa !5
  %7142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7143 = load i32, ptr %7142, align 4, !tbaa !5
  %7144 = call ptr @s2n_strerror(i32 noundef %7143, ptr noundef @.str.24)
  %7145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7146 = load i32, ptr %7145, align 4, !tbaa !5
  %7147 = call ptr @s2n_strerror_debug(i32 noundef %7146, ptr noundef @.str.24)
  %7148 = call ptr @__errno_location() #12
  %7149 = load i32, ptr %7148, align 4, !tbaa !5
  %7150 = call ptr @strerror(i32 noundef %7149) #11
  %7151 = call ptr @__errno_location() #12
  %7152 = load i32, ptr %7151, align 4, !tbaa !5
  %7153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7140, ptr noundef @.str.25, i32 noundef %7141, ptr noundef @.str.105, ptr noundef @.str.21, i32 noundef 395, ptr noundef %7144, ptr noundef %7147, ptr noundef %7150, i32 noundef %7152) #11
  br label %7154

7154:                                             ; preds = %7137, %7120
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %7155

7155:                                             ; preds = %7154
  br label %7156

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

7157:                                             ; No predecessors!
  br label %7158

7158:                                             ; preds = %7157
  br label %7159

7159:                                             ; preds = %7158, %7101
  br label %7160

7160:                                             ; preds = %7159
  br label %7161

7161:                                             ; preds = %7160
  br label %7162

7162:                                             ; preds = %7161
  %7163 = load i32, ptr @test_count, align 4, !tbaa !5
  %7164 = add nsw i32 %7163, 1
  store i32 %7164, ptr @test_count, align 4, !tbaa !5
  %7165 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %209, i32 noundef 0)
  %7166 = icmp eq i32 %7165, -1
  br i1 %7166, label %7167, label %7220

7167:                                             ; preds = %7162
  br label %7168

7168:                                             ; preds = %7167
  br label %7169

7169:                                             ; preds = %7168
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %7170 = call ptr @__errno_location() #12
  %7171 = load i32, ptr %7170, align 4, !tbaa !5
  store i32 %7171, ptr %211, align 4, !tbaa !5
  %7172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7173 = call i32 @s2n_print_stacktrace(ptr noundef %7172)
  %7174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7175 = trunc i8 %7174 to i1
  br i1 %7175, label %7176, label %7198

7176:                                             ; preds = %7169
  %7177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7178 = call i32 @fileno(ptr noundef %7177) #11
  %7179 = call i32 @isatty(i32 noundef %7178) #11
  %7180 = icmp ne i32 %7179, 0
  br i1 %7180, label %7181, label %7198

7181:                                             ; preds = %7176
  %7182 = load i32, ptr %211, align 4, !tbaa !5
  %7183 = call ptr @__errno_location() #12
  store i32 %7182, ptr %7183, align 4, !tbaa !5
  %7184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7185 = load i32, ptr @test_count, align 4, !tbaa !5
  %7186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7187 = load i32, ptr %7186, align 4, !tbaa !5
  %7188 = call ptr @s2n_strerror(i32 noundef %7187, ptr noundef @.str.24)
  %7189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7190 = load i32, ptr %7189, align 4, !tbaa !5
  %7191 = call ptr @s2n_strerror_debug(i32 noundef %7190, ptr noundef @.str.24)
  %7192 = call ptr @__errno_location() #12
  %7193 = load i32, ptr %7192, align 4, !tbaa !5
  %7194 = call ptr @strerror(i32 noundef %7193) #11
  %7195 = call ptr @__errno_location() #12
  %7196 = load i32, ptr %7195, align 4, !tbaa !5
  %7197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7184, ptr noundef @.str.22, i32 noundef %7185, ptr noundef @.str.106, ptr noundef @.str.21, i32 noundef 396, ptr noundef %7188, ptr noundef %7191, ptr noundef %7194, i32 noundef %7196) #11
  br label %7215

7198:                                             ; preds = %7176, %7169
  %7199 = load i32, ptr %211, align 4, !tbaa !5
  %7200 = call ptr @__errno_location() #12
  store i32 %7199, ptr %7200, align 4, !tbaa !5
  %7201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7202 = load i32, ptr @test_count, align 4, !tbaa !5
  %7203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7204 = load i32, ptr %7203, align 4, !tbaa !5
  %7205 = call ptr @s2n_strerror(i32 noundef %7204, ptr noundef @.str.24)
  %7206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7207 = load i32, ptr %7206, align 4, !tbaa !5
  %7208 = call ptr @s2n_strerror_debug(i32 noundef %7207, ptr noundef @.str.24)
  %7209 = call ptr @__errno_location() #12
  %7210 = load i32, ptr %7209, align 4, !tbaa !5
  %7211 = call ptr @strerror(i32 noundef %7210) #11
  %7212 = call ptr @__errno_location() #12
  %7213 = load i32, ptr %7212, align 4, !tbaa !5
  %7214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7201, ptr noundef @.str.25, i32 noundef %7202, ptr noundef @.str.106, ptr noundef @.str.21, i32 noundef 396, ptr noundef %7205, ptr noundef %7208, ptr noundef %7211, i32 noundef %7213) #11
  br label %7215

7215:                                             ; preds = %7198, %7181
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %7216

7216:                                             ; preds = %7215
  br label %7217

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

7218:                                             ; No predecessors!
  br label %7219

7219:                                             ; preds = %7218
  br label %7220

7220:                                             ; preds = %7219, %7162
  br label %7221

7221:                                             ; preds = %7220
  br label %7222

7222:                                             ; preds = %7221
  br label %7223

7223:                                             ; preds = %7222
  %7224 = load i32, ptr @test_count, align 4, !tbaa !5
  %7225 = add nsw i32 %7224, 1
  store i32 %7225, ptr @test_count, align 4, !tbaa !5
  %7226 = load ptr, ptr %202, align 8, !tbaa !9
  %7227 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %209, ptr noundef %208, ptr noundef %7226)
  %7228 = icmp eq i32 %7227, -1
  br i1 %7228, label %7229, label %7282

7229:                                             ; preds = %7223
  br label %7230

7230:                                             ; preds = %7229
  br label %7231

7231:                                             ; preds = %7230
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %7232 = call ptr @__errno_location() #12
  %7233 = load i32, ptr %7232, align 4, !tbaa !5
  store i32 %7233, ptr %212, align 4, !tbaa !5
  %7234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7235 = call i32 @s2n_print_stacktrace(ptr noundef %7234)
  %7236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7237 = trunc i8 %7236 to i1
  br i1 %7237, label %7238, label %7260

7238:                                             ; preds = %7231
  %7239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7240 = call i32 @fileno(ptr noundef %7239) #11
  %7241 = call i32 @isatty(i32 noundef %7240) #11
  %7242 = icmp ne i32 %7241, 0
  br i1 %7242, label %7243, label %7260

7243:                                             ; preds = %7238
  %7244 = load i32, ptr %212, align 4, !tbaa !5
  %7245 = call ptr @__errno_location() #12
  store i32 %7244, ptr %7245, align 4, !tbaa !5
  %7246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7247 = load i32, ptr @test_count, align 4, !tbaa !5
  %7248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7249 = load i32, ptr %7248, align 4, !tbaa !5
  %7250 = call ptr @s2n_strerror(i32 noundef %7249, ptr noundef @.str.24)
  %7251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7252 = load i32, ptr %7251, align 4, !tbaa !5
  %7253 = call ptr @s2n_strerror_debug(i32 noundef %7252, ptr noundef @.str.24)
  %7254 = call ptr @__errno_location() #12
  %7255 = load i32, ptr %7254, align 4, !tbaa !5
  %7256 = call ptr @strerror(i32 noundef %7255) #11
  %7257 = call ptr @__errno_location() #12
  %7258 = load i32, ptr %7257, align 4, !tbaa !5
  %7259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7246, ptr noundef @.str.22, i32 noundef %7247, ptr noundef @.str.107, ptr noundef @.str.21, i32 noundef 397, ptr noundef %7250, ptr noundef %7253, ptr noundef %7256, i32 noundef %7258) #11
  br label %7277

7260:                                             ; preds = %7238, %7231
  %7261 = load i32, ptr %212, align 4, !tbaa !5
  %7262 = call ptr @__errno_location() #12
  store i32 %7261, ptr %7262, align 4, !tbaa !5
  %7263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7264 = load i32, ptr @test_count, align 4, !tbaa !5
  %7265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7266 = load i32, ptr %7265, align 4, !tbaa !5
  %7267 = call ptr @s2n_strerror(i32 noundef %7266, ptr noundef @.str.24)
  %7268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7269 = load i32, ptr %7268, align 4, !tbaa !5
  %7270 = call ptr @s2n_strerror_debug(i32 noundef %7269, ptr noundef @.str.24)
  %7271 = call ptr @__errno_location() #12
  %7272 = load i32, ptr %7271, align 4, !tbaa !5
  %7273 = call ptr @strerror(i32 noundef %7272) #11
  %7274 = call ptr @__errno_location() #12
  %7275 = load i32, ptr %7274, align 4, !tbaa !5
  %7276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7263, ptr noundef @.str.25, i32 noundef %7264, ptr noundef @.str.107, ptr noundef @.str.21, i32 noundef 397, ptr noundef %7267, ptr noundef %7270, ptr noundef %7273, i32 noundef %7275) #11
  br label %7277

7277:                                             ; preds = %7260, %7243
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %7278

7278:                                             ; preds = %7277
  br label %7279

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

7280:                                             ; No predecessors!
  br label %7281

7281:                                             ; preds = %7280
  br label %7282

7282:                                             ; preds = %7281, %7223
  br label %7283

7283:                                             ; preds = %7282
  br label %7284

7284:                                             ; preds = %7283
  br label %7285

7285:                                             ; preds = %7284
  %7286 = load i32, ptr @test_count, align 4, !tbaa !5
  %7287 = add nsw i32 %7286, 1
  store i32 %7287, ptr @test_count, align 4, !tbaa !5
  %7288 = load ptr, ptr %204, align 8, !tbaa !9
  %7289 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %208, ptr noundef %209, ptr noundef %7288)
  %7290 = icmp eq i32 %7289, -1
  br i1 %7290, label %7291, label %7344

7291:                                             ; preds = %7285
  br label %7292

7292:                                             ; preds = %7291
  br label %7293

7293:                                             ; preds = %7292
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #11
  %7294 = call ptr @__errno_location() #12
  %7295 = load i32, ptr %7294, align 4, !tbaa !5
  store i32 %7295, ptr %213, align 4, !tbaa !5
  %7296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7297 = call i32 @s2n_print_stacktrace(ptr noundef %7296)
  %7298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7299 = trunc i8 %7298 to i1
  br i1 %7299, label %7300, label %7322

7300:                                             ; preds = %7293
  %7301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7302 = call i32 @fileno(ptr noundef %7301) #11
  %7303 = call i32 @isatty(i32 noundef %7302) #11
  %7304 = icmp ne i32 %7303, 0
  br i1 %7304, label %7305, label %7322

7305:                                             ; preds = %7300
  %7306 = load i32, ptr %213, align 4, !tbaa !5
  %7307 = call ptr @__errno_location() #12
  store i32 %7306, ptr %7307, align 4, !tbaa !5
  %7308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7309 = load i32, ptr @test_count, align 4, !tbaa !5
  %7310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7311 = load i32, ptr %7310, align 4, !tbaa !5
  %7312 = call ptr @s2n_strerror(i32 noundef %7311, ptr noundef @.str.24)
  %7313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7314 = load i32, ptr %7313, align 4, !tbaa !5
  %7315 = call ptr @s2n_strerror_debug(i32 noundef %7314, ptr noundef @.str.24)
  %7316 = call ptr @__errno_location() #12
  %7317 = load i32, ptr %7316, align 4, !tbaa !5
  %7318 = call ptr @strerror(i32 noundef %7317) #11
  %7319 = call ptr @__errno_location() #12
  %7320 = load i32, ptr %7319, align 4, !tbaa !5
  %7321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7308, ptr noundef @.str.22, i32 noundef %7309, ptr noundef @.str.108, ptr noundef @.str.21, i32 noundef 398, ptr noundef %7312, ptr noundef %7315, ptr noundef %7318, i32 noundef %7320) #11
  br label %7339

7322:                                             ; preds = %7300, %7293
  %7323 = load i32, ptr %213, align 4, !tbaa !5
  %7324 = call ptr @__errno_location() #12
  store i32 %7323, ptr %7324, align 4, !tbaa !5
  %7325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7326 = load i32, ptr @test_count, align 4, !tbaa !5
  %7327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7328 = load i32, ptr %7327, align 4, !tbaa !5
  %7329 = call ptr @s2n_strerror(i32 noundef %7328, ptr noundef @.str.24)
  %7330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7331 = load i32, ptr %7330, align 4, !tbaa !5
  %7332 = call ptr @s2n_strerror_debug(i32 noundef %7331, ptr noundef @.str.24)
  %7333 = call ptr @__errno_location() #12
  %7334 = load i32, ptr %7333, align 4, !tbaa !5
  %7335 = call ptr @strerror(i32 noundef %7334) #11
  %7336 = call ptr @__errno_location() #12
  %7337 = load i32, ptr %7336, align 4, !tbaa !5
  %7338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7325, ptr noundef @.str.25, i32 noundef %7326, ptr noundef @.str.108, ptr noundef @.str.21, i32 noundef 398, ptr noundef %7329, ptr noundef %7332, ptr noundef %7335, i32 noundef %7337) #11
  br label %7339

7339:                                             ; preds = %7322, %7305
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #11
  br label %7340

7340:                                             ; preds = %7339
  br label %7341

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

7342:                                             ; No predecessors!
  br label %7343

7343:                                             ; preds = %7342
  br label %7344

7344:                                             ; preds = %7343, %7285
  br label %7345

7345:                                             ; preds = %7344
  br label %7346

7346:                                             ; preds = %7345
  br label %7347

7347:                                             ; preds = %7346
  %7348 = load i32, ptr @test_count, align 4, !tbaa !5
  %7349 = add nsw i32 %7348, 1
  store i32 %7349, ptr @test_count, align 4, !tbaa !5
  %7350 = load ptr, ptr %204, align 8, !tbaa !9
  %7351 = load ptr, ptr %202, align 8, !tbaa !9
  %7352 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %7350, ptr noundef %7351, i32 noundef 9)
  %7353 = getelementptr inbounds %struct.s2n_result, ptr %214, i32 0, i32 0
  store i32 %7352, ptr %7353, align 4
  %7354 = getelementptr inbounds %struct.s2n_result, ptr %214, i32 0, i32 0
  %7355 = load i32, ptr %7354, align 4
  %7356 = call zeroext i1 @s2n_result_is_ok(i32 %7355)
  br i1 %7356, label %7410, label %7357

7357:                                             ; preds = %7347
  br label %7358

7358:                                             ; preds = %7357
  br label %7359

7359:                                             ; preds = %7358
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %7360 = call ptr @__errno_location() #12
  %7361 = load i32, ptr %7360, align 4, !tbaa !5
  store i32 %7361, ptr %215, align 4, !tbaa !5
  %7362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7363 = call i32 @s2n_print_stacktrace(ptr noundef %7362)
  %7364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7365 = trunc i8 %7364 to i1
  br i1 %7365, label %7366, label %7388

7366:                                             ; preds = %7359
  %7367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7368 = call i32 @fileno(ptr noundef %7367) #11
  %7369 = call i32 @isatty(i32 noundef %7368) #11
  %7370 = icmp ne i32 %7369, 0
  br i1 %7370, label %7371, label %7388

7371:                                             ; preds = %7366
  %7372 = load i32, ptr %215, align 4, !tbaa !5
  %7373 = call ptr @__errno_location() #12
  store i32 %7372, ptr %7373, align 4, !tbaa !5
  %7374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7375 = load i32, ptr @test_count, align 4, !tbaa !5
  %7376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7377 = load i32, ptr %7376, align 4, !tbaa !5
  %7378 = call ptr @s2n_strerror(i32 noundef %7377, ptr noundef @.str.24)
  %7379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7380 = load i32, ptr %7379, align 4, !tbaa !5
  %7381 = call ptr @s2n_strerror_debug(i32 noundef %7380, ptr noundef @.str.24)
  %7382 = call ptr @__errno_location() #12
  %7383 = load i32, ptr %7382, align 4, !tbaa !5
  %7384 = call ptr @strerror(i32 noundef %7383) #11
  %7385 = call ptr @__errno_location() #12
  %7386 = load i32, ptr %7385, align 4, !tbaa !5
  %7387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7374, ptr noundef @.str.22, i32 noundef %7375, ptr noundef @.str.109, ptr noundef @.str.21, i32 noundef 400, ptr noundef %7378, ptr noundef %7381, ptr noundef %7384, i32 noundef %7386) #11
  br label %7405

7388:                                             ; preds = %7366, %7359
  %7389 = load i32, ptr %215, align 4, !tbaa !5
  %7390 = call ptr @__errno_location() #12
  store i32 %7389, ptr %7390, align 4, !tbaa !5
  %7391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7392 = load i32, ptr @test_count, align 4, !tbaa !5
  %7393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7394 = load i32, ptr %7393, align 4, !tbaa !5
  %7395 = call ptr @s2n_strerror(i32 noundef %7394, ptr noundef @.str.24)
  %7396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7397 = load i32, ptr %7396, align 4, !tbaa !5
  %7398 = call ptr @s2n_strerror_debug(i32 noundef %7397, ptr noundef @.str.24)
  %7399 = call ptr @__errno_location() #12
  %7400 = load i32, ptr %7399, align 4, !tbaa !5
  %7401 = call ptr @strerror(i32 noundef %7400) #11
  %7402 = call ptr @__errno_location() #12
  %7403 = load i32, ptr %7402, align 4, !tbaa !5
  %7404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7391, ptr noundef @.str.25, i32 noundef %7392, ptr noundef @.str.109, ptr noundef @.str.21, i32 noundef 400, ptr noundef %7395, ptr noundef %7398, ptr noundef %7401, i32 noundef %7403) #11
  br label %7405

7405:                                             ; preds = %7388, %7371
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %7406

7406:                                             ; preds = %7405
  br label %7407

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

7408:                                             ; No predecessors!
  br label %7409

7409:                                             ; preds = %7408
  br label %7410

7410:                                             ; preds = %7409, %7347
  br label %7411

7411:                                             ; preds = %7410
  br label %7412

7412:                                             ; preds = %7411
  br label %7413

7413:                                             ; preds = %7412
  %7414 = load i32, ptr @test_count, align 4, !tbaa !5
  %7415 = add nsw i32 %7414, 1
  store i32 %7415, ptr @test_count, align 4, !tbaa !5
  %7416 = load ptr, ptr %202, align 8, !tbaa !9
  %7417 = call i32 @s2n_handshake_write_io(ptr noundef %7416)
  %7418 = icmp eq i32 %7417, -1
  br i1 %7418, label %7419, label %7472

7419:                                             ; preds = %7413
  br label %7420

7420:                                             ; preds = %7419
  br label %7421

7421:                                             ; preds = %7420
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %7422 = call ptr @__errno_location() #12
  %7423 = load i32, ptr %7422, align 4, !tbaa !5
  store i32 %7423, ptr %216, align 4, !tbaa !5
  %7424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7425 = call i32 @s2n_print_stacktrace(ptr noundef %7424)
  %7426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7427 = trunc i8 %7426 to i1
  br i1 %7427, label %7428, label %7450

7428:                                             ; preds = %7421
  %7429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7430 = call i32 @fileno(ptr noundef %7429) #11
  %7431 = call i32 @isatty(i32 noundef %7430) #11
  %7432 = icmp ne i32 %7431, 0
  br i1 %7432, label %7433, label %7450

7433:                                             ; preds = %7428
  %7434 = load i32, ptr %216, align 4, !tbaa !5
  %7435 = call ptr @__errno_location() #12
  store i32 %7434, ptr %7435, align 4, !tbaa !5
  %7436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7437 = load i32, ptr @test_count, align 4, !tbaa !5
  %7438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7439 = load i32, ptr %7438, align 4, !tbaa !5
  %7440 = call ptr @s2n_strerror(i32 noundef %7439, ptr noundef @.str.24)
  %7441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7442 = load i32, ptr %7441, align 4, !tbaa !5
  %7443 = call ptr @s2n_strerror_debug(i32 noundef %7442, ptr noundef @.str.24)
  %7444 = call ptr @__errno_location() #12
  %7445 = load i32, ptr %7444, align 4, !tbaa !5
  %7446 = call ptr @strerror(i32 noundef %7445) #11
  %7447 = call ptr @__errno_location() #12
  %7448 = load i32, ptr %7447, align 4, !tbaa !5
  %7449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7436, ptr noundef @.str.22, i32 noundef %7437, ptr noundef @.str.110, ptr noundef @.str.21, i32 noundef 403, ptr noundef %7440, ptr noundef %7443, ptr noundef %7446, i32 noundef %7448) #11
  br label %7467

7450:                                             ; preds = %7428, %7421
  %7451 = load i32, ptr %216, align 4, !tbaa !5
  %7452 = call ptr @__errno_location() #12
  store i32 %7451, ptr %7452, align 4, !tbaa !5
  %7453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7454 = load i32, ptr @test_count, align 4, !tbaa !5
  %7455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7456 = load i32, ptr %7455, align 4, !tbaa !5
  %7457 = call ptr @s2n_strerror(i32 noundef %7456, ptr noundef @.str.24)
  %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_debug(i32 noundef %7459, ptr noundef @.str.24)
  %7461 = call ptr @__errno_location() #12
  %7462 = load i32, ptr %7461, align 4, !tbaa !5
  %7463 = call ptr @strerror(i32 noundef %7462) #11
  %7464 = call ptr @__errno_location() #12
  %7465 = load i32, ptr %7464, align 4, !tbaa !5
  %7466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7453, ptr noundef @.str.25, i32 noundef %7454, ptr noundef @.str.110, ptr noundef @.str.21, i32 noundef 403, ptr noundef %7457, ptr noundef %7460, ptr noundef %7463, i32 noundef %7465) #11
  br label %7467

7467:                                             ; preds = %7450, %7433
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %7468

7468:                                             ; preds = %7467
  br label %7469

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

7470:                                             ; No predecessors!
  br label %7471

7471:                                             ; preds = %7470
  br label %7472

7472:                                             ; preds = %7471, %7413
  br label %7473

7473:                                             ; preds = %7472
  br label %7474

7474:                                             ; preds = %7473
  call void @llvm.lifetime.start.p0(i64 64, ptr %217) #11
  call void @llvm.memset.p0.i64(ptr align 16 %217, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %218) #11
  call void @llvm.memset.p0.i64(ptr align 8 %218, i8 0, i64 24, i1 false)
  br label %7475

7475:                                             ; preds = %7474
  %7476 = load i32, ptr @test_count, align 4, !tbaa !5
  %7477 = add nsw i32 %7476, 1
  store i32 %7477, ptr @test_count, align 4, !tbaa !5
  %7478 = getelementptr inbounds [64 x i8], ptr %217, i64 0, i64 0
  %7479 = call i32 @s2n_blob_init(ptr noundef %218, ptr noundef %7478, i32 noundef 64)
  %7480 = icmp eq i32 %7479, -1
  br i1 %7480, label %7481, label %7534

7481:                                             ; preds = %7475
  br label %7482

7482:                                             ; preds = %7481
  br label %7483

7483:                                             ; preds = %7482
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #11
  %7484 = call ptr @__errno_location() #12
  %7485 = load i32, ptr %7484, align 4, !tbaa !5
  store i32 %7485, ptr %219, align 4, !tbaa !5
  %7486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7487 = call i32 @s2n_print_stacktrace(ptr noundef %7486)
  %7488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7489 = trunc i8 %7488 to i1
  br i1 %7489, label %7490, label %7512

7490:                                             ; preds = %7483
  %7491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7492 = call i32 @fileno(ptr noundef %7491) #11
  %7493 = call i32 @isatty(i32 noundef %7492) #11
  %7494 = icmp ne i32 %7493, 0
  br i1 %7494, label %7495, label %7512

7495:                                             ; preds = %7490
  %7496 = load i32, ptr %219, align 4, !tbaa !5
  %7497 = call ptr @__errno_location() #12
  store i32 %7496, ptr %7497, align 4, !tbaa !5
  %7498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7499 = load i32, ptr @test_count, align 4, !tbaa !5
  %7500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7501 = load i32, ptr %7500, align 4, !tbaa !5
  %7502 = call ptr @s2n_strerror(i32 noundef %7501, ptr noundef @.str.24)
  %7503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call ptr @s2n_strerror_debug(i32 noundef %7504, ptr noundef @.str.24)
  %7506 = call ptr @__errno_location() #12
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call ptr @strerror(i32 noundef %7507) #11
  %7509 = call ptr @__errno_location() #12
  %7510 = load i32, ptr %7509, align 4, !tbaa !5
  %7511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7498, ptr noundef @.str.22, i32 noundef %7499, ptr noundef @.str.111, ptr noundef @.str.21, i32 noundef 407, ptr noundef %7502, ptr noundef %7505, ptr noundef %7508, i32 noundef %7510) #11
  br label %7529

7512:                                             ; preds = %7490, %7483
  %7513 = load i32, ptr %219, align 4, !tbaa !5
  %7514 = call ptr @__errno_location() #12
  store i32 %7513, ptr %7514, align 4, !tbaa !5
  %7515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7516 = load i32, ptr @test_count, align 4, !tbaa !5
  %7517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7518 = load i32, ptr %7517, align 4, !tbaa !5
  %7519 = call ptr @s2n_strerror(i32 noundef %7518, ptr noundef @.str.24)
  %7520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  %7522 = call ptr @s2n_strerror_debug(i32 noundef %7521, ptr noundef @.str.24)
  %7523 = call ptr @__errno_location() #12
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  %7525 = call ptr @strerror(i32 noundef %7524) #11
  %7526 = call ptr @__errno_location() #12
  %7527 = load i32, ptr %7526, align 4, !tbaa !5
  %7528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7515, ptr noundef @.str.25, i32 noundef %7516, ptr noundef @.str.111, ptr noundef @.str.21, i32 noundef 407, ptr noundef %7519, ptr noundef %7522, ptr noundef %7525, i32 noundef %7527) #11
  br label %7529

7529:                                             ; preds = %7512, %7495
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #11
  br label %7530

7530:                                             ; preds = %7529
  br label %7531

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

7532:                                             ; No predecessors!
  br label %7533

7533:                                             ; preds = %7532
  br label %7534

7534:                                             ; preds = %7533, %7475
  br label %7535

7535:                                             ; preds = %7534
  br label %7536

7536:                                             ; preds = %7535
  br label %7537

7537:                                             ; preds = %7536
  %7538 = load i32, ptr @test_count, align 4, !tbaa !5
  %7539 = add nsw i32 %7538, 1
  store i32 %7539, ptr @test_count, align 4, !tbaa !5
  %7540 = call i32 @s2n_stuffer_skip_read(ptr noundef %208, i32 noundef 5)
  %7541 = icmp eq i32 %7540, -1
  br i1 %7541, label %7542, label %7595

7542:                                             ; preds = %7537
  br label %7543

7543:                                             ; preds = %7542
  br label %7544

7544:                                             ; preds = %7543
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %7545 = call ptr @__errno_location() #12
  %7546 = load i32, ptr %7545, align 4, !tbaa !5
  store i32 %7546, ptr %220, align 4, !tbaa !5
  %7547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7548 = call i32 @s2n_print_stacktrace(ptr noundef %7547)
  %7549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7550 = trunc i8 %7549 to i1
  br i1 %7550, label %7551, label %7573

7551:                                             ; preds = %7544
  %7552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7553 = call i32 @fileno(ptr noundef %7552) #11
  %7554 = call i32 @isatty(i32 noundef %7553) #11
  %7555 = icmp ne i32 %7554, 0
  br i1 %7555, label %7556, label %7573

7556:                                             ; preds = %7551
  %7557 = load i32, ptr %220, align 4, !tbaa !5
  %7558 = call ptr @__errno_location() #12
  store i32 %7557, ptr %7558, align 4, !tbaa !5
  %7559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7560 = load i32, ptr @test_count, align 4, !tbaa !5
  %7561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7562 = load i32, ptr %7561, align 4, !tbaa !5
  %7563 = call ptr @s2n_strerror(i32 noundef %7562, ptr noundef @.str.24)
  %7564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7565 = load i32, ptr %7564, align 4, !tbaa !5
  %7566 = call ptr @s2n_strerror_debug(i32 noundef %7565, ptr noundef @.str.24)
  %7567 = call ptr @__errno_location() #12
  %7568 = load i32, ptr %7567, align 4, !tbaa !5
  %7569 = call ptr @strerror(i32 noundef %7568) #11
  %7570 = call ptr @__errno_location() #12
  %7571 = load i32, ptr %7570, align 4, !tbaa !5
  %7572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7559, ptr noundef @.str.22, i32 noundef %7560, ptr noundef @.str.112, ptr noundef @.str.21, i32 noundef 410, ptr noundef %7563, ptr noundef %7566, ptr noundef %7569, i32 noundef %7571) #11
  br label %7590

7573:                                             ; preds = %7551, %7544
  %7574 = load i32, ptr %220, align 4, !tbaa !5
  %7575 = call ptr @__errno_location() #12
  store i32 %7574, ptr %7575, align 4, !tbaa !5
  %7576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7577 = load i32, ptr @test_count, align 4, !tbaa !5
  %7578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7579 = load i32, ptr %7578, align 4, !tbaa !5
  %7580 = call ptr @s2n_strerror(i32 noundef %7579, ptr noundef @.str.24)
  %7581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7582 = load i32, ptr %7581, align 4, !tbaa !5
  %7583 = call ptr @s2n_strerror_debug(i32 noundef %7582, ptr noundef @.str.24)
  %7584 = call ptr @__errno_location() #12
  %7585 = load i32, ptr %7584, align 4, !tbaa !5
  %7586 = call ptr @strerror(i32 noundef %7585) #11
  %7587 = call ptr @__errno_location() #12
  %7588 = load i32, ptr %7587, align 4, !tbaa !5
  %7589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7576, ptr noundef @.str.25, i32 noundef %7577, ptr noundef @.str.112, ptr noundef @.str.21, i32 noundef 410, ptr noundef %7580, ptr noundef %7583, ptr noundef %7586, i32 noundef %7588) #11
  br label %7590

7590:                                             ; preds = %7573, %7556
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %7591

7591:                                             ; preds = %7590
  br label %7592

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

7593:                                             ; No predecessors!
  br label %7594

7594:                                             ; preds = %7593
  br label %7595

7595:                                             ; preds = %7594, %7537
  br label %7596

7596:                                             ; preds = %7595
  br label %7597

7597:                                             ; preds = %7596
  call void @llvm.lifetime.start.p0(i64 1, ptr %221) #11
  %7598 = getelementptr inbounds %struct.s2n_stuffer, ptr %208, i32 0, i32 2
  %7599 = load i32, ptr %7598, align 4, !tbaa !60
  %7600 = getelementptr inbounds %struct.s2n_stuffer, ptr %208, i32 0, i32 1
  %7601 = load i32, ptr %7600, align 8, !tbaa !61
  %7602 = sub i32 %7599, %7601
  %7603 = trunc i32 %7602 to i8
  store i8 %7603, ptr %221, align 1, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #11
  %7604 = load i8, ptr %221, align 1, !tbaa !62
  %7605 = zext i8 %7604 to i32
  %7606 = call ptr @s2n_stuffer_raw_read(ptr noundef %208, i32 noundef %7605)
  store ptr %7606, ptr %222, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %223) #11
  call void @llvm.memset.p0.i64(ptr align 8 %223, i8 0, i64 24, i1 false)
  br label %7607

7607:                                             ; preds = %7597
  %7608 = load i32, ptr @test_count, align 4, !tbaa !5
  %7609 = add nsw i32 %7608, 1
  store i32 %7609, ptr @test_count, align 4, !tbaa !5
  %7610 = load ptr, ptr %222, align 8, !tbaa !9
  %7611 = load i8, ptr %221, align 1, !tbaa !62
  %7612 = zext i8 %7611 to i32
  %7613 = call i32 @s2n_blob_init(ptr noundef %223, ptr noundef %7610, i32 noundef %7612)
  %7614 = icmp eq i32 %7613, -1
  br i1 %7614, label %7615, label %7668

7615:                                             ; preds = %7607
  br label %7616

7616:                                             ; preds = %7615
  br label %7617

7617:                                             ; preds = %7616
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #11
  %7618 = call ptr @__errno_location() #12
  %7619 = load i32, ptr %7618, align 4, !tbaa !5
  store i32 %7619, ptr %224, align 4, !tbaa !5
  %7620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7621 = call i32 @s2n_print_stacktrace(ptr noundef %7620)
  %7622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7623 = trunc i8 %7622 to i1
  br i1 %7623, label %7624, label %7646

7624:                                             ; preds = %7617
  %7625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7626 = call i32 @fileno(ptr noundef %7625) #11
  %7627 = call i32 @isatty(i32 noundef %7626) #11
  %7628 = icmp ne i32 %7627, 0
  br i1 %7628, label %7629, label %7646

7629:                                             ; preds = %7624
  %7630 = load i32, ptr %224, align 4, !tbaa !5
  %7631 = call ptr @__errno_location() #12
  store i32 %7630, ptr %7631, align 4, !tbaa !5
  %7632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7633 = load i32, ptr @test_count, align 4, !tbaa !5
  %7634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7635 = load i32, ptr %7634, align 4, !tbaa !5
  %7636 = call ptr @s2n_strerror(i32 noundef %7635, ptr noundef @.str.24)
  %7637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7638 = load i32, ptr %7637, align 4, !tbaa !5
  %7639 = call ptr @s2n_strerror_debug(i32 noundef %7638, ptr noundef @.str.24)
  %7640 = call ptr @__errno_location() #12
  %7641 = load i32, ptr %7640, align 4, !tbaa !5
  %7642 = call ptr @strerror(i32 noundef %7641) #11
  %7643 = call ptr @__errno_location() #12
  %7644 = load i32, ptr %7643, align 4, !tbaa !5
  %7645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7632, ptr noundef @.str.22, i32 noundef %7633, ptr noundef @.str.113, ptr noundef @.str.21, i32 noundef 414, ptr noundef %7636, ptr noundef %7639, ptr noundef %7642, i32 noundef %7644) #11
  br label %7663

7646:                                             ; preds = %7624, %7617
  %7647 = load i32, ptr %224, align 4, !tbaa !5
  %7648 = call ptr @__errno_location() #12
  store i32 %7647, ptr %7648, align 4, !tbaa !5
  %7649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7650 = load i32, ptr @test_count, align 4, !tbaa !5
  %7651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7652 = load i32, ptr %7651, align 4, !tbaa !5
  %7653 = call ptr @s2n_strerror(i32 noundef %7652, ptr noundef @.str.24)
  %7654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7655 = load i32, ptr %7654, align 4, !tbaa !5
  %7656 = call ptr @s2n_strerror_debug(i32 noundef %7655, ptr noundef @.str.24)
  %7657 = call ptr @__errno_location() #12
  %7658 = load i32, ptr %7657, align 4, !tbaa !5
  %7659 = call ptr @strerror(i32 noundef %7658) #11
  %7660 = call ptr @__errno_location() #12
  %7661 = load i32, ptr %7660, align 4, !tbaa !5
  %7662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7649, ptr noundef @.str.25, i32 noundef %7650, ptr noundef @.str.113, ptr noundef @.str.21, i32 noundef 414, ptr noundef %7653, ptr noundef %7656, ptr noundef %7659, i32 noundef %7661) #11
  br label %7663

7663:                                             ; preds = %7646, %7629
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #11
  br label %7664

7664:                                             ; preds = %7663
  br label %7665

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

7666:                                             ; No predecessors!
  br label %7667

7667:                                             ; preds = %7666
  br label %7668

7668:                                             ; preds = %7667, %7607
  br label %7669

7669:                                             ; preds = %7668
  br label %7670

7670:                                             ; preds = %7669
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #11
  %7671 = load ptr, ptr %204, align 8, !tbaa !9
  %7672 = getelementptr inbounds %struct.s2n_connection, ptr %7671, i32 0, i32 27
  %7673 = load ptr, ptr %7672, align 8, !tbaa !48
  %7674 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7673, i32 0, i32 0
  %7675 = load ptr, ptr %7674, align 8, !tbaa !49
  %7676 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %7675, i32 0, i32 11
  %7677 = load i32, ptr %7676, align 8, !tbaa !63
  store i32 %7677, ptr %225, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #11
  store i32 0, ptr %226, align 4, !tbaa !5
  br label %7678

7678:                                             ; preds = %7670
  %7679 = load i32, ptr %225, align 4, !tbaa !5
  %7680 = call i32 @s2n_hmac_hash_alg(i32 noundef %7679, ptr noundef %226)
  %7681 = icmp sgt i32 %7680, -1
  br i1 %7681, label %7683, label %7682

7682:                                             ; preds = %7678
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %8454

7683:                                             ; preds = %7678
  br label %7684

7684:                                             ; preds = %7683
  br label %7685

7685:                                             ; preds = %7684
  br label %7686

7686:                                             ; preds = %7685
  %7687 = load i32, ptr @test_count, align 4, !tbaa !5
  %7688 = add nsw i32 %7687, 1
  store i32 %7688, ptr @test_count, align 4, !tbaa !5
  %7689 = load ptr, ptr %204, align 8, !tbaa !9
  %7690 = load i32, ptr %226, align 4, !tbaa !5
  %7691 = call i32 @s2n_prf_get_digest_for_ems(ptr noundef %7689, ptr noundef %223, i32 noundef %7690, ptr noundef %218)
  %7692 = getelementptr inbounds %struct.s2n_result, ptr %227, i32 0, i32 0
  store i32 %7691, ptr %7692, align 4
  %7693 = getelementptr inbounds %struct.s2n_result, ptr %227, i32 0, i32 0
  %7694 = load i32, ptr %7693, align 4
  %7695 = call zeroext i1 @s2n_result_is_ok(i32 %7694)
  br i1 %7695, label %7749, label %7696

7696:                                             ; preds = %7686
  br label %7697

7697:                                             ; preds = %7696
  br label %7698

7698:                                             ; preds = %7697
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #11
  %7699 = call ptr @__errno_location() #12
  %7700 = load i32, ptr %7699, align 4, !tbaa !5
  store i32 %7700, ptr %228, align 4, !tbaa !5
  %7701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7702 = call i32 @s2n_print_stacktrace(ptr noundef %7701)
  %7703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7704 = trunc i8 %7703 to i1
  br i1 %7704, label %7705, label %7727

7705:                                             ; preds = %7698
  %7706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7707 = call i32 @fileno(ptr noundef %7706) #11
  %7708 = call i32 @isatty(i32 noundef %7707) #11
  %7709 = icmp ne i32 %7708, 0
  br i1 %7709, label %7710, label %7727

7710:                                             ; preds = %7705
  %7711 = load i32, ptr %228, align 4, !tbaa !5
  %7712 = call ptr @__errno_location() #12
  store i32 %7711, ptr %7712, align 4, !tbaa !5
  %7713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7714 = load i32, ptr @test_count, align 4, !tbaa !5
  %7715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7716 = load i32, ptr %7715, align 4, !tbaa !5
  %7717 = call ptr @s2n_strerror(i32 noundef %7716, ptr noundef @.str.24)
  %7718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7719 = load i32, ptr %7718, align 4, !tbaa !5
  %7720 = call ptr @s2n_strerror_debug(i32 noundef %7719, ptr noundef @.str.24)
  %7721 = call ptr @__errno_location() #12
  %7722 = load i32, ptr %7721, align 4, !tbaa !5
  %7723 = call ptr @strerror(i32 noundef %7722) #11
  %7724 = call ptr @__errno_location() #12
  %7725 = load i32, ptr %7724, align 4, !tbaa !5
  %7726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7713, ptr noundef @.str.22, i32 noundef %7714, ptr noundef @.str.114, ptr noundef @.str.21, i32 noundef 419, ptr noundef %7717, ptr noundef %7720, ptr noundef %7723, i32 noundef %7725) #11
  br label %7744

7727:                                             ; preds = %7705, %7698
  %7728 = load i32, ptr %228, align 4, !tbaa !5
  %7729 = call ptr @__errno_location() #12
  store i32 %7728, ptr %7729, align 4, !tbaa !5
  %7730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7731 = load i32, ptr @test_count, align 4, !tbaa !5
  %7732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7733 = load i32, ptr %7732, align 4, !tbaa !5
  %7734 = call ptr @s2n_strerror(i32 noundef %7733, ptr noundef @.str.24)
  %7735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7736 = load i32, ptr %7735, align 4, !tbaa !5
  %7737 = call ptr @s2n_strerror_debug(i32 noundef %7736, ptr noundef @.str.24)
  %7738 = call ptr @__errno_location() #12
  %7739 = load i32, ptr %7738, align 4, !tbaa !5
  %7740 = call ptr @strerror(i32 noundef %7739) #11
  %7741 = call ptr @__errno_location() #12
  %7742 = load i32, ptr %7741, align 4, !tbaa !5
  %7743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7730, ptr noundef @.str.25, i32 noundef %7731, ptr noundef @.str.114, ptr noundef @.str.21, i32 noundef 419, ptr noundef %7734, ptr noundef %7737, ptr noundef %7740, i32 noundef %7742) #11
  br label %7744

7744:                                             ; preds = %7727, %7710
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #11
  br label %7745

7745:                                             ; preds = %7744
  br label %7746

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

7747:                                             ; No predecessors!
  br label %7748

7748:                                             ; preds = %7747
  br label %7749

7749:                                             ; preds = %7748, %7686
  br label %7750

7750:                                             ; preds = %7749
  br label %7751

7751:                                             ; preds = %7750
  br label %7752

7752:                                             ; preds = %7751
  %7753 = load i32, ptr @test_count, align 4, !tbaa !5
  %7754 = add nsw i32 %7753, 1
  store i32 %7754, ptr @test_count, align 4, !tbaa !5
  %7755 = load i8, ptr %221, align 1, !tbaa !62
  %7756 = zext i8 %7755 to i32
  %7757 = add nsw i32 5, %7756
  %7758 = call i32 @s2n_stuffer_rewind_read(ptr noundef %208, i32 noundef %7757)
  %7759 = icmp eq i32 %7758, -1
  br i1 %7759, label %7760, label %7813

7760:                                             ; preds = %7752
  br label %7761

7761:                                             ; preds = %7760
  br label %7762

7762:                                             ; preds = %7761
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #11
  %7763 = call ptr @__errno_location() #12
  %7764 = load i32, ptr %7763, align 4, !tbaa !5
  store i32 %7764, ptr %229, align 4, !tbaa !5
  %7765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7766 = call i32 @s2n_print_stacktrace(ptr noundef %7765)
  %7767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7768 = trunc i8 %7767 to i1
  br i1 %7768, label %7769, label %7791

7769:                                             ; preds = %7762
  %7770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7771 = call i32 @fileno(ptr noundef %7770) #11
  %7772 = call i32 @isatty(i32 noundef %7771) #11
  %7773 = icmp ne i32 %7772, 0
  br i1 %7773, label %7774, label %7791

7774:                                             ; preds = %7769
  %7775 = load i32, ptr %229, align 4, !tbaa !5
  %7776 = call ptr @__errno_location() #12
  store i32 %7775, ptr %7776, align 4, !tbaa !5
  %7777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7778 = load i32, ptr @test_count, align 4, !tbaa !5
  %7779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7780 = load i32, ptr %7779, align 4, !tbaa !5
  %7781 = call ptr @s2n_strerror(i32 noundef %7780, ptr noundef @.str.24)
  %7782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7783 = load i32, ptr %7782, align 4, !tbaa !5
  %7784 = call ptr @s2n_strerror_debug(i32 noundef %7783, ptr noundef @.str.24)
  %7785 = call ptr @__errno_location() #12
  %7786 = load i32, ptr %7785, align 4, !tbaa !5
  %7787 = call ptr @strerror(i32 noundef %7786) #11
  %7788 = call ptr @__errno_location() #12
  %7789 = load i32, ptr %7788, align 4, !tbaa !5
  %7790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7777, ptr noundef @.str.22, i32 noundef %7778, ptr noundef @.str.115, ptr noundef @.str.21, i32 noundef 422, ptr noundef %7781, ptr noundef %7784, ptr noundef %7787, i32 noundef %7789) #11
  br label %7808

7791:                                             ; preds = %7769, %7762
  %7792 = load i32, ptr %229, align 4, !tbaa !5
  %7793 = call ptr @__errno_location() #12
  store i32 %7792, ptr %7793, align 4, !tbaa !5
  %7794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7795 = load i32, ptr @test_count, align 4, !tbaa !5
  %7796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7797 = load i32, ptr %7796, align 4, !tbaa !5
  %7798 = call ptr @s2n_strerror(i32 noundef %7797, ptr noundef @.str.24)
  %7799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7800 = load i32, ptr %7799, align 4, !tbaa !5
  %7801 = call ptr @s2n_strerror_debug(i32 noundef %7800, ptr noundef @.str.24)
  %7802 = call ptr @__errno_location() #12
  %7803 = load i32, ptr %7802, align 4, !tbaa !5
  %7804 = call ptr @strerror(i32 noundef %7803) #11
  %7805 = call ptr @__errno_location() #12
  %7806 = load i32, ptr %7805, align 4, !tbaa !5
  %7807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7794, ptr noundef @.str.25, i32 noundef %7795, ptr noundef @.str.115, ptr noundef @.str.21, i32 noundef 422, ptr noundef %7798, ptr noundef %7801, ptr noundef %7804, i32 noundef %7806) #11
  br label %7808

7808:                                             ; preds = %7791, %7774
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #11
  br label %7809

7809:                                             ; preds = %7808
  br label %7810

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

7811:                                             ; No predecessors!
  br label %7812

7812:                                             ; preds = %7811
  br label %7813

7813:                                             ; preds = %7812, %7752
  br label %7814

7814:                                             ; preds = %7813
  br label %7815

7815:                                             ; preds = %7814
  br label %7816

7816:                                             ; preds = %7815
  %7817 = load i32, ptr @test_count, align 4, !tbaa !5
  %7818 = add nsw i32 %7817, 1
  store i32 %7818, ptr @test_count, align 4, !tbaa !5
  %7819 = load ptr, ptr %204, align 8, !tbaa !9
  %7820 = call i32 @s2n_handshake_read_io(ptr noundef %7819)
  %7821 = icmp eq i32 %7820, -1
  br i1 %7821, label %7822, label %7875

7822:                                             ; preds = %7816
  br label %7823

7823:                                             ; preds = %7822
  br label %7824

7824:                                             ; preds = %7823
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #11
  %7825 = call ptr @__errno_location() #12
  %7826 = load i32, ptr %7825, align 4, !tbaa !5
  store i32 %7826, ptr %230, align 4, !tbaa !5
  %7827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7828 = call i32 @s2n_print_stacktrace(ptr noundef %7827)
  %7829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7830 = trunc i8 %7829 to i1
  br i1 %7830, label %7831, label %7853

7831:                                             ; preds = %7824
  %7832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7833 = call i32 @fileno(ptr noundef %7832) #11
  %7834 = call i32 @isatty(i32 noundef %7833) #11
  %7835 = icmp ne i32 %7834, 0
  br i1 %7835, label %7836, label %7853

7836:                                             ; preds = %7831
  %7837 = load i32, ptr %230, align 4, !tbaa !5
  %7838 = call ptr @__errno_location() #12
  store i32 %7837, ptr %7838, align 4, !tbaa !5
  %7839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7840 = load i32, ptr @test_count, align 4, !tbaa !5
  %7841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7842 = load i32, ptr %7841, align 4, !tbaa !5
  %7843 = call ptr @s2n_strerror(i32 noundef %7842, ptr noundef @.str.24)
  %7844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7845 = load i32, ptr %7844, align 4, !tbaa !5
  %7846 = call ptr @s2n_strerror_debug(i32 noundef %7845, ptr noundef @.str.24)
  %7847 = call ptr @__errno_location() #12
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call ptr @strerror(i32 noundef %7848) #11
  %7850 = call ptr @__errno_location() #12
  %7851 = load i32, ptr %7850, align 4, !tbaa !5
  %7852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7839, ptr noundef @.str.22, i32 noundef %7840, ptr noundef @.str.116, ptr noundef @.str.21, i32 noundef 423, ptr noundef %7843, ptr noundef %7846, ptr noundef %7849, i32 noundef %7851) #11
  br label %7870

7853:                                             ; preds = %7831, %7824
  %7854 = load i32, ptr %230, align 4, !tbaa !5
  %7855 = call ptr @__errno_location() #12
  store i32 %7854, ptr %7855, align 4, !tbaa !5
  %7856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7857 = load i32, ptr @test_count, align 4, !tbaa !5
  %7858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7859 = load i32, ptr %7858, align 4, !tbaa !5
  %7860 = call ptr @s2n_strerror(i32 noundef %7859, ptr noundef @.str.24)
  %7861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7862 = load i32, ptr %7861, align 4, !tbaa !5
  %7863 = call ptr @s2n_strerror_debug(i32 noundef %7862, ptr noundef @.str.24)
  %7864 = call ptr @__errno_location() #12
  %7865 = load i32, ptr %7864, align 4, !tbaa !5
  %7866 = call ptr @strerror(i32 noundef %7865) #11
  %7867 = call ptr @__errno_location() #12
  %7868 = load i32, ptr %7867, align 4, !tbaa !5
  %7869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7856, ptr noundef @.str.25, i32 noundef %7857, ptr noundef @.str.116, ptr noundef @.str.21, i32 noundef 423, ptr noundef %7860, ptr noundef %7863, ptr noundef %7866, i32 noundef %7868) #11
  br label %7870

7870:                                             ; preds = %7853, %7836
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #11
  br label %7871

7871:                                             ; preds = %7870
  br label %7872

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

7873:                                             ; No predecessors!
  br label %7874

7874:                                             ; preds = %7873
  br label %7875

7875:                                             ; preds = %7874, %7816
  br label %7876

7876:                                             ; preds = %7875
  br label %7877

7877:                                             ; preds = %7876
  call void @llvm.lifetime.start.p0(i64 56, ptr %231) #11
  call void @llvm.memset.p0.i64(ptr align 8 %231, i8 0, i64 56, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %232) #11
  call void @llvm.memset.p0.i64(ptr align 16 %232, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %233) #11
  store i8 0, ptr %233, align 1, !tbaa !62
  br label %7878

7878:                                             ; preds = %7877
  %7879 = load i32, ptr @test_count, align 4, !tbaa !5
  %7880 = add nsw i32 %7879, 1
  store i32 %7880, ptr @test_count, align 4, !tbaa !5
  %7881 = load i32, ptr %226, align 4, !tbaa !5
  %7882 = call i32 @s2n_hash_digest_size(i32 noundef %7881, ptr noundef %233)
  %7883 = icmp eq i32 %7882, -1
  br i1 %7883, label %7884, label %7937

7884:                                             ; preds = %7878
  br label %7885

7885:                                             ; preds = %7884
  br label %7886

7886:                                             ; preds = %7885
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #11
  %7887 = call ptr @__errno_location() #12
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  store i32 %7888, ptr %234, 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 %234, 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.117, ptr noundef @.str.21, i32 noundef 429, ptr noundef %7905, ptr noundef %7908, ptr noundef %7911, i32 noundef %7913) #11
  br label %7932

7915:                                             ; preds = %7893, %7886
  %7916 = load i32, ptr %234, 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.117, ptr noundef @.str.21, i32 noundef 429, 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 %234) #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, %7878
  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 = call i32 @s2n_hash_new(ptr noundef %231)
  %7944 = icmp eq i32 %7943, -1
  br i1 %7944, label %7945, label %7998

7945:                                             ; preds = %7940
  br label %7946

7946:                                             ; preds = %7945
  br label %7947

7947:                                             ; preds = %7946
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #11
  %7948 = call ptr @__errno_location() #12
  %7949 = load i32, ptr %7948, align 4, !tbaa !5
  store i32 %7949, ptr %235, align 4, !tbaa !5
  %7950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7951 = call i32 @s2n_print_stacktrace(ptr noundef %7950)
  %7952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7953 = trunc i8 %7952 to i1
  br i1 %7953, label %7954, label %7976

7954:                                             ; preds = %7947
  %7955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7956 = call i32 @fileno(ptr noundef %7955) #11
  %7957 = call i32 @isatty(i32 noundef %7956) #11
  %7958 = icmp ne i32 %7957, 0
  br i1 %7958, label %7959, label %7976

7959:                                             ; preds = %7954
  %7960 = load i32, ptr %235, align 4, !tbaa !5
  %7961 = call ptr @__errno_location() #12
  store i32 %7960, ptr %7961, align 4, !tbaa !5
  %7962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7963 = load i32, ptr @test_count, align 4, !tbaa !5
  %7964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  %7966 = call ptr @s2n_strerror(i32 noundef %7965, ptr noundef @.str.24)
  %7967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7968 = load i32, ptr %7967, align 4, !tbaa !5
  %7969 = call ptr @s2n_strerror_debug(i32 noundef %7968, ptr noundef @.str.24)
  %7970 = call ptr @__errno_location() #12
  %7971 = load i32, ptr %7970, align 4, !tbaa !5
  %7972 = call ptr @strerror(i32 noundef %7971) #11
  %7973 = call ptr @__errno_location() #12
  %7974 = load i32, ptr %7973, align 4, !tbaa !5
  %7975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7962, ptr noundef @.str.22, i32 noundef %7963, ptr noundef @.str.118, ptr noundef @.str.21, i32 noundef 430, ptr noundef %7966, ptr noundef %7969, ptr noundef %7972, i32 noundef %7974) #11
  br label %7993

7976:                                             ; preds = %7954, %7947
  %7977 = load i32, ptr %235, align 4, !tbaa !5
  %7978 = call ptr @__errno_location() #12
  store i32 %7977, ptr %7978, align 4, !tbaa !5
  %7979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7980 = load i32, ptr @test_count, align 4, !tbaa !5
  %7981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7982 = load i32, ptr %7981, align 4, !tbaa !5
  %7983 = call ptr @s2n_strerror(i32 noundef %7982, ptr noundef @.str.24)
  %7984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7985 = load i32, ptr %7984, align 4, !tbaa !5
  %7986 = call ptr @s2n_strerror_debug(i32 noundef %7985, ptr noundef @.str.24)
  %7987 = call ptr @__errno_location() #12
  %7988 = load i32, ptr %7987, align 4, !tbaa !5
  %7989 = call ptr @strerror(i32 noundef %7988) #11
  %7990 = call ptr @__errno_location() #12
  %7991 = load i32, ptr %7990, align 4, !tbaa !5
  %7992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7979, ptr noundef @.str.25, i32 noundef %7980, ptr noundef @.str.118, ptr noundef @.str.21, i32 noundef 430, ptr noundef %7983, ptr noundef %7986, ptr noundef %7989, i32 noundef %7991) #11
  br label %7993

7993:                                             ; preds = %7976, %7959
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #11
  br label %7994

7994:                                             ; preds = %7993
  br label %7995

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

7996:                                             ; No predecessors!
  br label %7997

7997:                                             ; preds = %7996
  br label %7998

7998:                                             ; preds = %7997, %7940
  br label %7999

7999:                                             ; preds = %7998
  br label %8000

8000:                                             ; preds = %7999
  br label %8001

8001:                                             ; preds = %8000
  %8002 = load i32, ptr @test_count, align 4, !tbaa !5
  %8003 = add nsw i32 %8002, 1
  store i32 %8003, ptr @test_count, align 4, !tbaa !5
  %8004 = load ptr, ptr %204, align 8, !tbaa !9
  %8005 = load i32, ptr %226, align 4, !tbaa !5
  %8006 = call i32 @s2n_handshake_copy_hash_state(ptr noundef %8004, i32 noundef %8005, ptr noundef %231)
  %8007 = getelementptr inbounds %struct.s2n_result, ptr %236, i32 0, i32 0
  store i32 %8006, ptr %8007, align 4
  %8008 = getelementptr inbounds %struct.s2n_result, ptr %236, i32 0, i32 0
  %8009 = load i32, ptr %8008, align 4
  %8010 = call zeroext i1 @s2n_result_is_ok(i32 %8009)
  br i1 %8010, label %8064, label %8011

8011:                                             ; preds = %8001
  br label %8012

8012:                                             ; preds = %8011
  br label %8013

8013:                                             ; preds = %8012
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #11
  %8014 = call ptr @__errno_location() #12
  %8015 = load i32, ptr %8014, align 4, !tbaa !5
  store i32 %8015, ptr %237, align 4, !tbaa !5
  %8016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8017 = call i32 @s2n_print_stacktrace(ptr noundef %8016)
  %8018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8019 = trunc i8 %8018 to i1
  br i1 %8019, label %8020, label %8042

8020:                                             ; preds = %8013
  %8021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8022 = call i32 @fileno(ptr noundef %8021) #11
  %8023 = call i32 @isatty(i32 noundef %8022) #11
  %8024 = icmp ne i32 %8023, 0
  br i1 %8024, label %8025, label %8042

8025:                                             ; preds = %8020
  %8026 = load i32, ptr %237, align 4, !tbaa !5
  %8027 = call ptr @__errno_location() #12
  store i32 %8026, ptr %8027, align 4, !tbaa !5
  %8028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8029 = load i32, ptr @test_count, align 4, !tbaa !5
  %8030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8031 = load i32, ptr %8030, align 4, !tbaa !5
  %8032 = call ptr @s2n_strerror(i32 noundef %8031, ptr noundef @.str.24)
  %8033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8034 = load i32, ptr %8033, align 4, !tbaa !5
  %8035 = call ptr @s2n_strerror_debug(i32 noundef %8034, ptr noundef @.str.24)
  %8036 = call ptr @__errno_location() #12
  %8037 = load i32, ptr %8036, align 4, !tbaa !5
  %8038 = call ptr @strerror(i32 noundef %8037) #11
  %8039 = call ptr @__errno_location() #12
  %8040 = load i32, ptr %8039, align 4, !tbaa !5
  %8041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8028, ptr noundef @.str.22, i32 noundef %8029, ptr noundef @.str.119, ptr noundef @.str.21, i32 noundef 431, ptr noundef %8032, ptr noundef %8035, ptr noundef %8038, i32 noundef %8040) #11
  br label %8059

8042:                                             ; preds = %8020, %8013
  %8043 = load i32, ptr %237, align 4, !tbaa !5
  %8044 = call ptr @__errno_location() #12
  store i32 %8043, ptr %8044, align 4, !tbaa !5
  %8045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8046 = load i32, ptr @test_count, align 4, !tbaa !5
  %8047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8048 = load i32, ptr %8047, align 4, !tbaa !5
  %8049 = call ptr @s2n_strerror(i32 noundef %8048, ptr noundef @.str.24)
  %8050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8051 = load i32, ptr %8050, align 4, !tbaa !5
  %8052 = call ptr @s2n_strerror_debug(i32 noundef %8051, ptr noundef @.str.24)
  %8053 = call ptr @__errno_location() #12
  %8054 = load i32, ptr %8053, align 4, !tbaa !5
  %8055 = call ptr @strerror(i32 noundef %8054) #11
  %8056 = call ptr @__errno_location() #12
  %8057 = load i32, ptr %8056, align 4, !tbaa !5
  %8058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8045, ptr noundef @.str.25, i32 noundef %8046, ptr noundef @.str.119, ptr noundef @.str.21, i32 noundef 431, ptr noundef %8049, ptr noundef %8052, ptr noundef %8055, i32 noundef %8057) #11
  br label %8059

8059:                                             ; preds = %8042, %8025
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #11
  br label %8060

8060:                                             ; preds = %8059
  br label %8061

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

8062:                                             ; No predecessors!
  br label %8063

8063:                                             ; preds = %8062
  br label %8064

8064:                                             ; preds = %8063, %8001
  br label %8065

8065:                                             ; preds = %8064
  br label %8066

8066:                                             ; preds = %8065
  br label %8067

8067:                                             ; preds = %8066
  %8068 = load i32, ptr @test_count, align 4, !tbaa !5
  %8069 = add nsw i32 %8068, 1
  store i32 %8069, ptr @test_count, align 4, !tbaa !5
  %8070 = getelementptr inbounds [64 x i8], ptr %232, i64 0, i64 0
  %8071 = load i8, ptr %233, align 1, !tbaa !62
  %8072 = zext i8 %8071 to i32
  %8073 = call i32 @s2n_hash_digest(ptr noundef %231, ptr noundef %8070, i32 noundef %8072)
  %8074 = icmp eq i32 %8073, -1
  br i1 %8074, label %8075, label %8128

8075:                                             ; preds = %8067
  br label %8076

8076:                                             ; preds = %8075
  br label %8077

8077:                                             ; preds = %8076
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #11
  %8078 = call ptr @__errno_location() #12
  %8079 = load i32, ptr %8078, align 4, !tbaa !5
  store i32 %8079, ptr %238, align 4, !tbaa !5
  %8080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8081 = call i32 @s2n_print_stacktrace(ptr noundef %8080)
  %8082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8083 = trunc i8 %8082 to i1
  br i1 %8083, label %8084, label %8106

8084:                                             ; preds = %8077
  %8085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8086 = call i32 @fileno(ptr noundef %8085) #11
  %8087 = call i32 @isatty(i32 noundef %8086) #11
  %8088 = icmp ne i32 %8087, 0
  br i1 %8088, label %8089, label %8106

8089:                                             ; preds = %8084
  %8090 = load i32, ptr %238, align 4, !tbaa !5
  %8091 = call ptr @__errno_location() #12
  store i32 %8090, ptr %8091, align 4, !tbaa !5
  %8092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8093 = load i32, ptr @test_count, align 4, !tbaa !5
  %8094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8095 = load i32, ptr %8094, align 4, !tbaa !5
  %8096 = call ptr @s2n_strerror(i32 noundef %8095, ptr noundef @.str.24)
  %8097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8098 = load i32, ptr %8097, align 4, !tbaa !5
  %8099 = call ptr @s2n_strerror_debug(i32 noundef %8098, ptr noundef @.str.24)
  %8100 = call ptr @__errno_location() #12
  %8101 = load i32, ptr %8100, align 4, !tbaa !5
  %8102 = call ptr @strerror(i32 noundef %8101) #11
  %8103 = call ptr @__errno_location() #12
  %8104 = load i32, ptr %8103, align 4, !tbaa !5
  %8105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8092, ptr noundef @.str.22, i32 noundef %8093, ptr noundef @.str.120, ptr noundef @.str.21, i32 noundef 432, ptr noundef %8096, ptr noundef %8099, ptr noundef %8102, i32 noundef %8104) #11
  br label %8123

8106:                                             ; preds = %8084, %8077
  %8107 = load i32, ptr %238, align 4, !tbaa !5
  %8108 = call ptr @__errno_location() #12
  store i32 %8107, ptr %8108, align 4, !tbaa !5
  %8109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8110 = load i32, ptr @test_count, align 4, !tbaa !5
  %8111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8112 = load i32, ptr %8111, align 4, !tbaa !5
  %8113 = call ptr @s2n_strerror(i32 noundef %8112, ptr noundef @.str.24)
  %8114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8115 = load i32, ptr %8114, align 4, !tbaa !5
  %8116 = call ptr @s2n_strerror_debug(i32 noundef %8115, ptr noundef @.str.24)
  %8117 = call ptr @__errno_location() #12
  %8118 = load i32, ptr %8117, align 4, !tbaa !5
  %8119 = call ptr @strerror(i32 noundef %8118) #11
  %8120 = call ptr @__errno_location() #12
  %8121 = load i32, ptr %8120, align 4, !tbaa !5
  %8122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8109, ptr noundef @.str.25, i32 noundef %8110, ptr noundef @.str.120, ptr noundef @.str.21, i32 noundef 432, ptr noundef %8113, ptr noundef %8116, ptr noundef %8119, i32 noundef %8121) #11
  br label %8123

8123:                                             ; preds = %8106, %8089
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #11
  br label %8124

8124:                                             ; preds = %8123
  br label %8125

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

8126:                                             ; No predecessors!
  br label %8127

8127:                                             ; preds = %8126
  br label %8128

8128:                                             ; preds = %8127, %8067
  br label %8129

8129:                                             ; preds = %8128
  br label %8130

8130:                                             ; preds = %8129
  br label %8131

8131:                                             ; preds = %8130
  %8132 = load i8, ptr %233, align 1, !tbaa !62
  %8133 = zext i8 %8132 to i32
  %8134 = icmp ne i32 %8133, 0
  br i1 %8134, label %8135, label %8202

8135:                                             ; preds = %8131
  br label %8136

8136:                                             ; preds = %8135
  %8137 = load i32, ptr @test_count, align 4, !tbaa !5
  %8138 = add nsw i32 %8137, 1
  store i32 %8138, ptr @test_count, align 4, !tbaa !5
  %8139 = getelementptr inbounds [64 x i8], ptr %232, i64 0, i64 0
  %8140 = getelementptr inbounds %struct.s2n_blob, ptr %218, i32 0, i32 0
  %8141 = load ptr, ptr %8140, align 8, !tbaa !47
  %8142 = load i8, ptr %233, align 1, !tbaa !62
  %8143 = zext i8 %8142 to i64
  %8144 = call i32 @memcmp(ptr noundef %8139, ptr noundef %8141, i64 noundef %8143) #14
  %8145 = icmp eq i32 %8144, 0
  br i1 %8145, label %8199, label %8146

8146:                                             ; preds = %8136
  br label %8147

8147:                                             ; preds = %8146
  br label %8148

8148:                                             ; preds = %8147
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #11
  %8149 = call ptr @__errno_location() #12
  %8150 = load i32, ptr %8149, align 4, !tbaa !5
  store i32 %8150, ptr %239, align 4, !tbaa !5
  %8151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8152 = call i32 @s2n_print_stacktrace(ptr noundef %8151)
  %8153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8154 = trunc i8 %8153 to i1
  br i1 %8154, label %8155, label %8177

8155:                                             ; preds = %8148
  %8156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8157 = call i32 @fileno(ptr noundef %8156) #11
  %8158 = call i32 @isatty(i32 noundef %8157) #11
  %8159 = icmp ne i32 %8158, 0
  br i1 %8159, label %8160, label %8177

8160:                                             ; preds = %8155
  %8161 = load i32, ptr %239, align 4, !tbaa !5
  %8162 = call ptr @__errno_location() #12
  store i32 %8161, ptr %8162, align 4, !tbaa !5
  %8163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8164 = load i32, ptr @test_count, align 4, !tbaa !5
  %8165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8166 = load i32, ptr %8165, align 4, !tbaa !5
  %8167 = call ptr @s2n_strerror(i32 noundef %8166, ptr noundef @.str.24)
  %8168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8169 = load i32, ptr %8168, align 4, !tbaa !5
  %8170 = call ptr @s2n_strerror_debug(i32 noundef %8169, ptr noundef @.str.24)
  %8171 = call ptr @__errno_location() #12
  %8172 = load i32, ptr %8171, align 4, !tbaa !5
  %8173 = call ptr @strerror(i32 noundef %8172) #11
  %8174 = call ptr @__errno_location() #12
  %8175 = load i32, ptr %8174, align 4, !tbaa !5
  %8176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8163, ptr noundef @.str.22, i32 noundef %8164, ptr noundef @.str.121, ptr noundef @.str.21, i32 noundef 436, ptr noundef %8167, ptr noundef %8170, ptr noundef %8173, i32 noundef %8175) #11
  br label %8194

8177:                                             ; preds = %8155, %8148
  %8178 = load i32, ptr %239, align 4, !tbaa !5
  %8179 = call ptr @__errno_location() #12
  store i32 %8178, ptr %8179, align 4, !tbaa !5
  %8180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8181 = load i32, ptr @test_count, align 4, !tbaa !5
  %8182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8183 = load i32, ptr %8182, align 4, !tbaa !5
  %8184 = call ptr @s2n_strerror(i32 noundef %8183, ptr noundef @.str.24)
  %8185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8186 = load i32, ptr %8185, align 4, !tbaa !5
  %8187 = call ptr @s2n_strerror_debug(i32 noundef %8186, ptr noundef @.str.24)
  %8188 = call ptr @__errno_location() #12
  %8189 = load i32, ptr %8188, align 4, !tbaa !5
  %8190 = call ptr @strerror(i32 noundef %8189) #11
  %8191 = call ptr @__errno_location() #12
  %8192 = load i32, ptr %8191, align 4, !tbaa !5
  %8193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8180, ptr noundef @.str.25, i32 noundef %8181, ptr noundef @.str.121, ptr noundef @.str.21, i32 noundef 436, ptr noundef %8184, ptr noundef %8187, ptr noundef %8190, i32 noundef %8192) #11
  br label %8194

8194:                                             ; preds = %8177, %8160
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #11
  br label %8195

8195:                                             ; preds = %8194
  br label %8196

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

8197:                                             ; No predecessors!
  br label %8198

8198:                                             ; preds = %8197
  br label %8199

8199:                                             ; preds = %8198, %8136
  br label %8200

8200:                                             ; preds = %8199
  br label %8201

8201:                                             ; preds = %8200
  br label %8202

8202:                                             ; preds = %8201, %8131
  br label %8203

8203:                                             ; preds = %8202
  br label %8204

8204:                                             ; preds = %8203
  br label %8205

8205:                                             ; preds = %8204
  %8206 = load i32, ptr @test_count, align 4, !tbaa !5
  %8207 = add nsw i32 %8206, 1
  store i32 %8207, ptr @test_count, align 4, !tbaa !5
  %8208 = load ptr, ptr %202, align 8, !tbaa !9
  %8209 = call i32 @s2n_connection_free(ptr noundef %8208)
  %8210 = icmp eq i32 %8209, -1
  br i1 %8210, label %8211, label %8264

8211:                                             ; preds = %8205
  br label %8212

8212:                                             ; preds = %8211
  br label %8213

8213:                                             ; preds = %8212
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #11
  %8214 = call ptr @__errno_location() #12
  %8215 = load i32, ptr %8214, align 4, !tbaa !5
  store i32 %8215, ptr %240, align 4, !tbaa !5
  %8216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8217 = call i32 @s2n_print_stacktrace(ptr noundef %8216)
  %8218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8219 = trunc i8 %8218 to i1
  br i1 %8219, label %8220, label %8242

8220:                                             ; preds = %8213
  %8221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8222 = call i32 @fileno(ptr noundef %8221) #11
  %8223 = call i32 @isatty(i32 noundef %8222) #11
  %8224 = icmp ne i32 %8223, 0
  br i1 %8224, label %8225, label %8242

8225:                                             ; preds = %8220
  %8226 = load i32, ptr %240, align 4, !tbaa !5
  %8227 = call ptr @__errno_location() #12
  store i32 %8226, ptr %8227, align 4, !tbaa !5
  %8228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8229 = load i32, ptr @test_count, align 4, !tbaa !5
  %8230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8231 = load i32, ptr %8230, align 4, !tbaa !5
  %8232 = call ptr @s2n_strerror(i32 noundef %8231, ptr noundef @.str.24)
  %8233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8234 = load i32, ptr %8233, align 4, !tbaa !5
  %8235 = call ptr @s2n_strerror_debug(i32 noundef %8234, ptr noundef @.str.24)
  %8236 = call ptr @__errno_location() #12
  %8237 = load i32, ptr %8236, align 4, !tbaa !5
  %8238 = call ptr @strerror(i32 noundef %8237) #11
  %8239 = call ptr @__errno_location() #12
  %8240 = load i32, ptr %8239, align 4, !tbaa !5
  %8241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8228, ptr noundef @.str.22, i32 noundef %8229, ptr noundef @.str.122, ptr noundef @.str.21, i32 noundef 438, ptr noundef %8232, ptr noundef %8235, ptr noundef %8238, i32 noundef %8240) #11
  br label %8259

8242:                                             ; preds = %8220, %8213
  %8243 = load i32, ptr %240, align 4, !tbaa !5
  %8244 = call ptr @__errno_location() #12
  store i32 %8243, ptr %8244, align 4, !tbaa !5
  %8245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8246 = load i32, ptr @test_count, align 4, !tbaa !5
  %8247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8248 = load i32, ptr %8247, align 4, !tbaa !5
  %8249 = call ptr @s2n_strerror(i32 noundef %8248, ptr noundef @.str.24)
  %8250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8251 = load i32, ptr %8250, align 4, !tbaa !5
  %8252 = call ptr @s2n_strerror_debug(i32 noundef %8251, ptr noundef @.str.24)
  %8253 = call ptr @__errno_location() #12
  %8254 = load i32, ptr %8253, align 4, !tbaa !5
  %8255 = call ptr @strerror(i32 noundef %8254) #11
  %8256 = call ptr @__errno_location() #12
  %8257 = load i32, ptr %8256, align 4, !tbaa !5
  %8258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8245, ptr noundef @.str.25, i32 noundef %8246, ptr noundef @.str.122, ptr noundef @.str.21, i32 noundef 438, ptr noundef %8249, ptr noundef %8252, ptr noundef %8255, i32 noundef %8257) #11
  br label %8259

8259:                                             ; preds = %8242, %8225
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #11
  br label %8260

8260:                                             ; preds = %8259
  br label %8261

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

8262:                                             ; No predecessors!
  br label %8263

8263:                                             ; preds = %8262
  br label %8264

8264:                                             ; preds = %8263, %8205
  br label %8265

8265:                                             ; preds = %8264
  br label %8266

8266:                                             ; preds = %8265
  br label %8267

8267:                                             ; preds = %8266
  %8268 = load i32, ptr @test_count, align 4, !tbaa !5
  %8269 = add nsw i32 %8268, 1
  store i32 %8269, ptr @test_count, align 4, !tbaa !5
  %8270 = load ptr, ptr %204, align 8, !tbaa !9
  %8271 = call i32 @s2n_connection_free(ptr noundef %8270)
  %8272 = icmp eq i32 %8271, -1
  br i1 %8272, label %8273, label %8326

8273:                                             ; preds = %8267
  br label %8274

8274:                                             ; preds = %8273
  br label %8275

8275:                                             ; preds = %8274
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #11
  %8276 = call ptr @__errno_location() #12
  %8277 = load i32, ptr %8276, align 4, !tbaa !5
  store i32 %8277, ptr %241, align 4, !tbaa !5
  %8278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8279 = call i32 @s2n_print_stacktrace(ptr noundef %8278)
  %8280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8281 = trunc i8 %8280 to i1
  br i1 %8281, label %8282, label %8304

8282:                                             ; preds = %8275
  %8283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8284 = call i32 @fileno(ptr noundef %8283) #11
  %8285 = call i32 @isatty(i32 noundef %8284) #11
  %8286 = icmp ne i32 %8285, 0
  br i1 %8286, label %8287, label %8304

8287:                                             ; preds = %8282
  %8288 = load i32, ptr %241, align 4, !tbaa !5
  %8289 = call ptr @__errno_location() #12
  store i32 %8288, ptr %8289, align 4, !tbaa !5
  %8290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8291 = load i32, ptr @test_count, align 4, !tbaa !5
  %8292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8293 = load i32, ptr %8292, align 4, !tbaa !5
  %8294 = call ptr @s2n_strerror(i32 noundef %8293, ptr noundef @.str.24)
  %8295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8296 = load i32, ptr %8295, align 4, !tbaa !5
  %8297 = call ptr @s2n_strerror_debug(i32 noundef %8296, ptr noundef @.str.24)
  %8298 = call ptr @__errno_location() #12
  %8299 = load i32, ptr %8298, align 4, !tbaa !5
  %8300 = call ptr @strerror(i32 noundef %8299) #11
  %8301 = call ptr @__errno_location() #12
  %8302 = load i32, ptr %8301, align 4, !tbaa !5
  %8303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8290, ptr noundef @.str.22, i32 noundef %8291, ptr noundef @.str.123, ptr noundef @.str.21, i32 noundef 439, ptr noundef %8294, ptr noundef %8297, ptr noundef %8300, i32 noundef %8302) #11
  br label %8321

8304:                                             ; preds = %8282, %8275
  %8305 = load i32, ptr %241, align 4, !tbaa !5
  %8306 = call ptr @__errno_location() #12
  store i32 %8305, ptr %8306, align 4, !tbaa !5
  %8307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8308 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8310, ptr noundef @.str.24)
  %8312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8313 = load i32, ptr %8312, align 4, !tbaa !5
  %8314 = call ptr @s2n_strerror_debug(i32 noundef %8313, ptr noundef @.str.24)
  %8315 = call ptr @__errno_location() #12
  %8316 = load i32, ptr %8315, align 4, !tbaa !5
  %8317 = call ptr @strerror(i32 noundef %8316) #11
  %8318 = call ptr @__errno_location() #12
  %8319 = load i32, ptr %8318, align 4, !tbaa !5
  %8320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8307, ptr noundef @.str.25, i32 noundef %8308, ptr noundef @.str.123, ptr noundef @.str.21, i32 noundef 439, ptr noundef %8311, ptr noundef %8314, ptr noundef %8317, i32 noundef %8319) #11
  br label %8321

8321:                                             ; preds = %8304, %8287
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #11
  br label %8322

8322:                                             ; preds = %8321
  br label %8323

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

8324:                                             ; No predecessors!
  br label %8325

8325:                                             ; preds = %8324
  br label %8326

8326:                                             ; preds = %8325, %8267
  br label %8327

8327:                                             ; preds = %8326
  br label %8328

8328:                                             ; preds = %8327
  br label %8329

8329:                                             ; preds = %8328
  %8330 = load i32, ptr @test_count, align 4, !tbaa !5
  %8331 = add nsw i32 %8330, 1
  store i32 %8331, ptr @test_count, align 4, !tbaa !5
  %8332 = load ptr, ptr %198, align 8, !tbaa !9
  %8333 = call i32 @s2n_config_free(ptr noundef %8332)
  %8334 = icmp eq i32 %8333, -1
  br i1 %8334, label %8335, label %8388

8335:                                             ; preds = %8329
  br label %8336

8336:                                             ; preds = %8335
  br label %8337

8337:                                             ; preds = %8336
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #11
  %8338 = call ptr @__errno_location() #12
  %8339 = load i32, ptr %8338, align 4, !tbaa !5
  store i32 %8339, ptr %242, align 4, !tbaa !5
  %8340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8341 = call i32 @s2n_print_stacktrace(ptr noundef %8340)
  %8342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8343 = trunc i8 %8342 to i1
  br i1 %8343, label %8344, label %8366

8344:                                             ; preds = %8337
  %8345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8346 = call i32 @fileno(ptr noundef %8345) #11
  %8347 = call i32 @isatty(i32 noundef %8346) #11
  %8348 = icmp ne i32 %8347, 0
  br i1 %8348, label %8349, label %8366

8349:                                             ; preds = %8344
  %8350 = load i32, ptr %242, align 4, !tbaa !5
  %8351 = call ptr @__errno_location() #12
  store i32 %8350, ptr %8351, align 4, !tbaa !5
  %8352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8353 = load i32, ptr @test_count, align 4, !tbaa !5
  %8354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8355 = load i32, ptr %8354, align 4, !tbaa !5
  %8356 = call ptr @s2n_strerror(i32 noundef %8355, ptr noundef @.str.24)
  %8357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8358 = load i32, ptr %8357, align 4, !tbaa !5
  %8359 = call ptr @s2n_strerror_debug(i32 noundef %8358, ptr noundef @.str.24)
  %8360 = call ptr @__errno_location() #12
  %8361 = load i32, ptr %8360, align 4, !tbaa !5
  %8362 = call ptr @strerror(i32 noundef %8361) #11
  %8363 = call ptr @__errno_location() #12
  %8364 = load i32, ptr %8363, align 4, !tbaa !5
  %8365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8352, ptr noundef @.str.22, i32 noundef %8353, ptr noundef @.str.124, ptr noundef @.str.21, i32 noundef 441, ptr noundef %8356, ptr noundef %8359, ptr noundef %8362, i32 noundef %8364) #11
  br label %8383

8366:                                             ; preds = %8344, %8337
  %8367 = load i32, ptr %242, align 4, !tbaa !5
  %8368 = call ptr @__errno_location() #12
  store i32 %8367, ptr %8368, align 4, !tbaa !5
  %8369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8370 = load i32, ptr @test_count, align 4, !tbaa !5
  %8371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8372 = load i32, ptr %8371, align 4, !tbaa !5
  %8373 = call ptr @s2n_strerror(i32 noundef %8372, ptr noundef @.str.24)
  %8374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8375 = load i32, ptr %8374, align 4, !tbaa !5
  %8376 = call ptr @s2n_strerror_debug(i32 noundef %8375, ptr noundef @.str.24)
  %8377 = call ptr @__errno_location() #12
  %8378 = load i32, ptr %8377, align 4, !tbaa !5
  %8379 = call ptr @strerror(i32 noundef %8378) #11
  %8380 = call ptr @__errno_location() #12
  %8381 = load i32, ptr %8380, align 4, !tbaa !5
  %8382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8369, ptr noundef @.str.25, i32 noundef %8370, ptr noundef @.str.124, ptr noundef @.str.21, i32 noundef 441, ptr noundef %8373, ptr noundef %8376, ptr noundef %8379, i32 noundef %8381) #11
  br label %8383

8383:                                             ; preds = %8366, %8349
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #11
  br label %8384

8384:                                             ; preds = %8383
  br label %8385

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

8386:                                             ; No predecessors!
  br label %8387

8387:                                             ; preds = %8386
  br label %8388

8388:                                             ; preds = %8387, %8329
  br label %8389

8389:                                             ; preds = %8388
  br label %8390

8390:                                             ; preds = %8389
  br label %8391

8391:                                             ; preds = %8390
  %8392 = load i32, ptr @test_count, align 4, !tbaa !5
  %8393 = add nsw i32 %8392, 1
  store i32 %8393, ptr @test_count, align 4, !tbaa !5
  %8394 = load ptr, ptr %196, align 8, !tbaa !9
  %8395 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %8394)
  %8396 = icmp eq i32 %8395, -1
  br i1 %8396, label %8397, label %8450

8397:                                             ; preds = %8391
  br label %8398

8398:                                             ; preds = %8397
  br label %8399

8399:                                             ; preds = %8398
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  %8400 = call ptr @__errno_location() #12
  %8401 = load i32, ptr %8400, align 4, !tbaa !5
  store i32 %8401, ptr %243, align 4, !tbaa !5
  %8402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8403 = call i32 @s2n_print_stacktrace(ptr noundef %8402)
  %8404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8405 = trunc i8 %8404 to i1
  br i1 %8405, label %8406, label %8428

8406:                                             ; preds = %8399
  %8407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8408 = call i32 @fileno(ptr noundef %8407) #11
  %8409 = call i32 @isatty(i32 noundef %8408) #11
  %8410 = icmp ne i32 %8409, 0
  br i1 %8410, label %8411, label %8428

8411:                                             ; preds = %8406
  %8412 = load i32, ptr %243, align 4, !tbaa !5
  %8413 = call ptr @__errno_location() #12
  store i32 %8412, ptr %8413, align 4, !tbaa !5
  %8414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8415 = load i32, ptr @test_count, align 4, !tbaa !5
  %8416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8417 = load i32, ptr %8416, align 4, !tbaa !5
  %8418 = call ptr @s2n_strerror(i32 noundef %8417, ptr noundef @.str.24)
  %8419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8420 = load i32, ptr %8419, align 4, !tbaa !5
  %8421 = call ptr @s2n_strerror_debug(i32 noundef %8420, ptr noundef @.str.24)
  %8422 = call ptr @__errno_location() #12
  %8423 = load i32, ptr %8422, align 4, !tbaa !5
  %8424 = call ptr @strerror(i32 noundef %8423) #11
  %8425 = call ptr @__errno_location() #12
  %8426 = load i32, ptr %8425, align 4, !tbaa !5
  %8427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8414, ptr noundef @.str.22, i32 noundef %8415, ptr noundef @.str.125, ptr noundef @.str.21, i32 noundef 442, ptr noundef %8418, ptr noundef %8421, ptr noundef %8424, i32 noundef %8426) #11
  br label %8445

8428:                                             ; preds = %8406, %8399
  %8429 = load i32, ptr %243, align 4, !tbaa !5
  %8430 = call ptr @__errno_location() #12
  store i32 %8429, ptr %8430, align 4, !tbaa !5
  %8431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8432 = load i32, ptr @test_count, align 4, !tbaa !5
  %8433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8434 = load i32, ptr %8433, align 4, !tbaa !5
  %8435 = call ptr @s2n_strerror(i32 noundef %8434, ptr noundef @.str.24)
  %8436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8437 = load i32, ptr %8436, align 4, !tbaa !5
  %8438 = call ptr @s2n_strerror_debug(i32 noundef %8437, ptr noundef @.str.24)
  %8439 = call ptr @__errno_location() #12
  %8440 = load i32, ptr %8439, align 4, !tbaa !5
  %8441 = call ptr @strerror(i32 noundef %8440) #11
  %8442 = call ptr @__errno_location() #12
  %8443 = load i32, ptr %8442, align 4, !tbaa !5
  %8444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8431, ptr noundef @.str.25, i32 noundef %8432, ptr noundef @.str.125, ptr noundef @.str.21, i32 noundef 442, ptr noundef %8435, ptr noundef %8438, ptr noundef %8441, i32 noundef %8443) #11
  br label %8445

8445:                                             ; preds = %8428, %8411
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  br label %8446

8446:                                             ; preds = %8445
  br label %8447

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

8448:                                             ; No predecessors!
  br label %8449

8449:                                             ; preds = %8448
  br label %8450

8450:                                             ; preds = %8449, %8391
  br label %8451

8451:                                             ; preds = %8450
  br label %8452

8452:                                             ; preds = %8451
  call void @llvm.lifetime.end.p0(i64 1, ptr %233) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %232) #11
  %8453 = call i32 @s2n_hash_free(ptr noundef %231)
  call void @llvm.lifetime.end.p0(i64 56, ptr %231) #11
  store i32 0, ptr %12, align 4
  br label %8454

8454:                                             ; preds = %8452, %7682
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %223) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %221) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %218) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %217) #11
  %8455 = call i32 @s2n_stuffer_free(ptr noundef %209)
  call void @llvm.lifetime.end.p0(i64 40, ptr %209) #11
  %8456 = call i32 @s2n_stuffer_free(ptr noundef %208)
  call void @llvm.lifetime.end.p0(i64 40, ptr %208) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #11
  %8457 = load i32, ptr %12, align 4
  switch i32 %8457, label %11916 [
    i32 0, label %8458
  ]

8458:                                             ; preds = %8454
  br label %8459

8459:                                             ; preds = %8458
  br label %8460

8460:                                             ; preds = %8459
  br label %8461

8461:                                             ; preds = %8460
  %8462 = load i32, ptr @test_count, align 4, !tbaa !5
  %8463 = add nsw i32 %8462, 1
  store i32 %8463, ptr @test_count, align 4, !tbaa !5
  %8464 = call i32 @s2n_prf_new(ptr noundef null)
  %8465 = getelementptr inbounds %struct.s2n_result, ptr %244, i32 0, i32 0
  store i32 %8464, ptr %8465, align 4
  %8466 = getelementptr inbounds %struct.s2n_result, ptr %244, i32 0, i32 0
  %8467 = load i32, ptr %8466, align 4
  %8468 = call zeroext i1 @s2n_result_is_error(i32 %8467)
  br i1 %8468, label %8522, label %8469

8469:                                             ; preds = %8461
  br label %8470

8470:                                             ; preds = %8469
  br label %8471

8471:                                             ; preds = %8470
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #11
  %8472 = call ptr @__errno_location() #12
  %8473 = load i32, ptr %8472, align 4, !tbaa !5
  store i32 %8473, ptr %245, align 4, !tbaa !5
  %8474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8475 = call i32 @s2n_print_stacktrace(ptr noundef %8474)
  %8476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8477 = trunc i8 %8476 to i1
  br i1 %8477, label %8478, label %8500

8478:                                             ; preds = %8471
  %8479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8480 = call i32 @fileno(ptr noundef %8479) #11
  %8481 = call i32 @isatty(i32 noundef %8480) #11
  %8482 = icmp ne i32 %8481, 0
  br i1 %8482, label %8483, label %8500

8483:                                             ; preds = %8478
  %8484 = load i32, ptr %245, align 4, !tbaa !5
  %8485 = call ptr @__errno_location() #12
  store i32 %8484, ptr %8485, align 4, !tbaa !5
  %8486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8487 = load i32, ptr @test_count, align 4, !tbaa !5
  %8488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8489 = load i32, ptr %8488, align 4, !tbaa !5
  %8490 = call ptr @s2n_strerror(i32 noundef %8489, ptr noundef @.str.24)
  %8491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8492 = load i32, ptr %8491, align 4, !tbaa !5
  %8493 = call ptr @s2n_strerror_debug(i32 noundef %8492, ptr noundef @.str.24)
  %8494 = call ptr @__errno_location() #12
  %8495 = load i32, ptr %8494, align 4, !tbaa !5
  %8496 = call ptr @strerror(i32 noundef %8495) #11
  %8497 = call ptr @__errno_location() #12
  %8498 = load i32, ptr %8497, align 4, !tbaa !5
  %8499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8486, ptr noundef @.str.22, i32 noundef %8487, ptr noundef @.str.126, ptr noundef @.str.21, i32 noundef 449, ptr noundef %8490, ptr noundef %8493, ptr noundef %8496, i32 noundef %8498) #11
  br label %8517

8500:                                             ; preds = %8478, %8471
  %8501 = load i32, ptr %245, align 4, !tbaa !5
  %8502 = call ptr @__errno_location() #12
  store i32 %8501, ptr %8502, align 4, !tbaa !5
  %8503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8504 = load i32, ptr @test_count, align 4, !tbaa !5
  %8505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8506 = load i32, ptr %8505, align 4, !tbaa !5
  %8507 = call ptr @s2n_strerror(i32 noundef %8506, ptr noundef @.str.24)
  %8508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8509 = load i32, ptr %8508, align 4, !tbaa !5
  %8510 = call ptr @s2n_strerror_debug(i32 noundef %8509, ptr noundef @.str.24)
  %8511 = call ptr @__errno_location() #12
  %8512 = load i32, ptr %8511, align 4, !tbaa !5
  %8513 = call ptr @strerror(i32 noundef %8512) #11
  %8514 = call ptr @__errno_location() #12
  %8515 = load i32, ptr %8514, align 4, !tbaa !5
  %8516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8503, ptr noundef @.str.25, i32 noundef %8504, ptr noundef @.str.126, ptr noundef @.str.21, i32 noundef 449, ptr noundef %8507, ptr noundef %8510, ptr noundef %8513, i32 noundef %8515) #11
  br label %8517

8517:                                             ; preds = %8500, %8483
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #11
  br label %8518

8518:                                             ; preds = %8517
  br label %8519

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

8520:                                             ; No predecessors!
  br label %8521

8521:                                             ; preds = %8520
  br label %8522

8522:                                             ; preds = %8521, %8461
  br label %8523

8523:                                             ; preds = %8522
  br label %8524

8524:                                             ; preds = %8523
  br label %8525

8525:                                             ; preds = %8524
  %8526 = load i32, ptr @test_count, align 4, !tbaa !5
  %8527 = add nsw i32 %8526, 1
  store i32 %8527, ptr @test_count, align 4, !tbaa !5
  %8528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8529 = load i32, ptr %8528, align 4, !tbaa !5
  %8530 = icmp eq i32 %8529, 402653193
  br i1 %8530, label %8584, label %8531

8531:                                             ; preds = %8525
  br label %8532

8532:                                             ; preds = %8531
  br label %8533

8533:                                             ; preds = %8532
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #11
  %8534 = call ptr @__errno_location() #12
  %8535 = load i32, ptr %8534, align 4, !tbaa !5
  store i32 %8535, ptr %246, align 4, !tbaa !5
  %8536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8537 = call i32 @s2n_print_stacktrace(ptr noundef %8536)
  %8538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8539 = trunc i8 %8538 to i1
  br i1 %8539, label %8540, label %8562

8540:                                             ; preds = %8533
  %8541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8542 = call i32 @fileno(ptr noundef %8541) #11
  %8543 = call i32 @isatty(i32 noundef %8542) #11
  %8544 = icmp ne i32 %8543, 0
  br i1 %8544, label %8545, label %8562

8545:                                             ; preds = %8540
  %8546 = load i32, ptr %246, align 4, !tbaa !5
  %8547 = call ptr @__errno_location() #12
  store i32 %8546, ptr %8547, align 4, !tbaa !5
  %8548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8549 = load i32, ptr @test_count, align 4, !tbaa !5
  %8550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8551 = load i32, ptr %8550, align 4, !tbaa !5
  %8552 = call ptr @s2n_strerror(i32 noundef %8551, ptr noundef @.str.24)
  %8553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8554 = load i32, ptr %8553, align 4, !tbaa !5
  %8555 = call ptr @s2n_strerror_debug(i32 noundef %8554, ptr noundef @.str.24)
  %8556 = call ptr @__errno_location() #12
  %8557 = load i32, ptr %8556, align 4, !tbaa !5
  %8558 = call ptr @strerror(i32 noundef %8557) #11
  %8559 = call ptr @__errno_location() #12
  %8560 = load i32, ptr %8559, align 4, !tbaa !5
  %8561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8548, ptr noundef @.str.22, i32 noundef %8549, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 449, ptr noundef %8552, ptr noundef %8555, ptr noundef %8558, i32 noundef %8560) #11
  br label %8579

8562:                                             ; preds = %8540, %8533
  %8563 = load i32, ptr %246, align 4, !tbaa !5
  %8564 = call ptr @__errno_location() #12
  store i32 %8563, ptr %8564, align 4, !tbaa !5
  %8565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8566 = load i32, ptr @test_count, align 4, !tbaa !5
  %8567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8568 = load i32, ptr %8567, align 4, !tbaa !5
  %8569 = call ptr @s2n_strerror(i32 noundef %8568, ptr noundef @.str.24)
  %8570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8571 = load i32, ptr %8570, align 4, !tbaa !5
  %8572 = call ptr @s2n_strerror_debug(i32 noundef %8571, ptr noundef @.str.24)
  %8573 = call ptr @__errno_location() #12
  %8574 = load i32, ptr %8573, align 4, !tbaa !5
  %8575 = call ptr @strerror(i32 noundef %8574) #11
  %8576 = call ptr @__errno_location() #12
  %8577 = load i32, ptr %8576, align 4, !tbaa !5
  %8578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8565, ptr noundef @.str.25, i32 noundef %8566, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 449, ptr noundef %8569, ptr noundef %8572, ptr noundef %8575, i32 noundef %8577) #11
  br label %8579

8579:                                             ; preds = %8562, %8545
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #11
  br label %8580

8580:                                             ; preds = %8579
  br label %8581

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

8582:                                             ; No predecessors!
  br label %8583

8583:                                             ; preds = %8582
  br label %8584

8584:                                             ; preds = %8583, %8525
  br label %8585

8585:                                             ; preds = %8584
  br label %8586

8586:                                             ; preds = %8585
  br label %8587

8587:                                             ; preds = %8586
  %8588 = load i32, ptr @test_count, align 4, !tbaa !5
  %8589 = add nsw i32 %8588, 1
  store i32 %8589, ptr @test_count, align 4, !tbaa !5
  %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 = icmp eq ptr %8592, null
  br i1 %8593, label %8594, label %8647

8594:                                             ; preds = %8587
  br label %8595

8595:                                             ; preds = %8594
  br label %8596

8596:                                             ; preds = %8595
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #11
  %8597 = call ptr @__errno_location() #12
  %8598 = load i32, ptr %8597, align 4, !tbaa !5
  store i32 %8598, ptr %247, align 4, !tbaa !5
  %8599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8600 = call i32 @s2n_print_stacktrace(ptr noundef %8599)
  %8601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8602 = trunc i8 %8601 to i1
  br i1 %8602, label %8603, label %8625

8603:                                             ; preds = %8596
  %8604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8605 = call i32 @fileno(ptr noundef %8604) #11
  %8606 = call i32 @isatty(i32 noundef %8605) #11
  %8607 = icmp ne i32 %8606, 0
  br i1 %8607, label %8608, label %8625

8608:                                             ; preds = %8603
  %8609 = load i32, ptr %247, align 4, !tbaa !5
  %8610 = call ptr @__errno_location() #12
  store i32 %8609, ptr %8610, align 4, !tbaa !5
  %8611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8612 = load i32, ptr @test_count, align 4, !tbaa !5
  %8613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8614 = load i32, ptr %8613, align 4, !tbaa !5
  %8615 = call ptr @s2n_strerror(i32 noundef %8614, ptr noundef @.str.24)
  %8616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8617 = load i32, ptr %8616, align 4, !tbaa !5
  %8618 = call ptr @s2n_strerror_debug(i32 noundef %8617, ptr noundef @.str.24)
  %8619 = call ptr @__errno_location() #12
  %8620 = load i32, ptr %8619, align 4, !tbaa !5
  %8621 = call ptr @strerror(i32 noundef %8620) #11
  %8622 = call ptr @__errno_location() #12
  %8623 = load i32, ptr %8622, align 4, !tbaa !5
  %8624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8611, ptr noundef @.str.22, i32 noundef %8612, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 449, ptr noundef %8615, ptr noundef %8618, ptr noundef %8621, i32 noundef %8623) #11
  br label %8642

8625:                                             ; preds = %8603, %8596
  %8626 = load i32, ptr %247, align 4, !tbaa !5
  %8627 = call ptr @__errno_location() #12
  store i32 %8626, ptr %8627, align 4, !tbaa !5
  %8628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8629 = load i32, ptr @test_count, align 4, !tbaa !5
  %8630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8631 = load i32, ptr %8630, align 4, !tbaa !5
  %8632 = call ptr @s2n_strerror(i32 noundef %8631, ptr noundef @.str.24)
  %8633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8634 = load i32, ptr %8633, align 4, !tbaa !5
  %8635 = call ptr @s2n_strerror_debug(i32 noundef %8634, ptr noundef @.str.24)
  %8636 = call ptr @__errno_location() #12
  %8637 = load i32, ptr %8636, align 4, !tbaa !5
  %8638 = call ptr @strerror(i32 noundef %8637) #11
  %8639 = call ptr @__errno_location() #12
  %8640 = load i32, ptr %8639, align 4, !tbaa !5
  %8641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8628, ptr noundef @.str.25, i32 noundef %8629, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 449, ptr noundef %8632, ptr noundef %8635, ptr noundef %8638, i32 noundef %8640) #11
  br label %8642

8642:                                             ; preds = %8625, %8608
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #11
  br label %8643

8643:                                             ; preds = %8642
  br label %8644

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

8645:                                             ; No predecessors!
  br label %8646

8646:                                             ; preds = %8645
  br label %8647

8647:                                             ; preds = %8646, %8587
  br label %8648

8648:                                             ; preds = %8647
  br label %8649

8649:                                             ; preds = %8648
  br label %8650

8650:                                             ; preds = %8649
  br label %8651

8651:                                             ; preds = %8650
  br label %8652

8652:                                             ; preds = %8651
  %8653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8653, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8654 = call ptr @__errno_location() #12
  store i32 0, ptr %8654, align 4, !tbaa !5
  br label %8655

8655:                                             ; preds = %8652
  br label %8656

8656:                                             ; preds = %8655
  br label %8657

8657:                                             ; preds = %8656
  br label %8658

8658:                                             ; preds = %8657
  br label %8659

8659:                                             ; preds = %8658
  br label %8660

8660:                                             ; preds = %8659
  br label %8661

8661:                                             ; preds = %8660
  %8662 = load i32, ptr @test_count, align 4, !tbaa !5
  %8663 = add nsw i32 %8662, 1
  store i32 %8663, ptr @test_count, align 4, !tbaa !5
  %8664 = call i32 @s2n_prf_wipe(ptr noundef null)
  %8665 = getelementptr inbounds %struct.s2n_result, ptr %248, i32 0, i32 0
  store i32 %8664, ptr %8665, align 4
  %8666 = getelementptr inbounds %struct.s2n_result, ptr %248, i32 0, i32 0
  %8667 = load i32, ptr %8666, align 4
  %8668 = call zeroext i1 @s2n_result_is_error(i32 %8667)
  br i1 %8668, label %8722, label %8669

8669:                                             ; preds = %8661
  br label %8670

8670:                                             ; preds = %8669
  br label %8671

8671:                                             ; preds = %8670
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #11
  %8672 = call ptr @__errno_location() #12
  %8673 = load i32, ptr %8672, align 4, !tbaa !5
  store i32 %8673, ptr %249, align 4, !tbaa !5
  %8674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8675 = call i32 @s2n_print_stacktrace(ptr noundef %8674)
  %8676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8677 = trunc i8 %8676 to i1
  br i1 %8677, label %8678, label %8700

8678:                                             ; preds = %8671
  %8679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8680 = call i32 @fileno(ptr noundef %8679) #11
  %8681 = call i32 @isatty(i32 noundef %8680) #11
  %8682 = icmp ne i32 %8681, 0
  br i1 %8682, label %8683, label %8700

8683:                                             ; preds = %8678
  %8684 = load i32, ptr %249, align 4, !tbaa !5
  %8685 = call ptr @__errno_location() #12
  store i32 %8684, ptr %8685, align 4, !tbaa !5
  %8686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8687 = load i32, ptr @test_count, align 4, !tbaa !5
  %8688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8689 = load i32, ptr %8688, align 4, !tbaa !5
  %8690 = call ptr @s2n_strerror(i32 noundef %8689, ptr noundef @.str.24)
  %8691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8692 = load i32, ptr %8691, align 4, !tbaa !5
  %8693 = call ptr @s2n_strerror_debug(i32 noundef %8692, ptr noundef @.str.24)
  %8694 = call ptr @__errno_location() #12
  %8695 = load i32, ptr %8694, align 4, !tbaa !5
  %8696 = call ptr @strerror(i32 noundef %8695) #11
  %8697 = call ptr @__errno_location() #12
  %8698 = load i32, ptr %8697, align 4, !tbaa !5
  %8699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8686, ptr noundef @.str.22, i32 noundef %8687, ptr noundef @.str.127, ptr noundef @.str.21, i32 noundef 450, ptr noundef %8690, ptr noundef %8693, ptr noundef %8696, i32 noundef %8698) #11
  br label %8717

8700:                                             ; preds = %8678, %8671
  %8701 = load i32, ptr %249, align 4, !tbaa !5
  %8702 = call ptr @__errno_location() #12
  store i32 %8701, ptr %8702, align 4, !tbaa !5
  %8703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8704 = load i32, ptr @test_count, align 4, !tbaa !5
  %8705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8706 = load i32, ptr %8705, align 4, !tbaa !5
  %8707 = call ptr @s2n_strerror(i32 noundef %8706, ptr noundef @.str.24)
  %8708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8709 = load i32, ptr %8708, align 4, !tbaa !5
  %8710 = call ptr @s2n_strerror_debug(i32 noundef %8709, ptr noundef @.str.24)
  %8711 = call ptr @__errno_location() #12
  %8712 = load i32, ptr %8711, align 4, !tbaa !5
  %8713 = call ptr @strerror(i32 noundef %8712) #11
  %8714 = call ptr @__errno_location() #12
  %8715 = load i32, ptr %8714, align 4, !tbaa !5
  %8716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8703, ptr noundef @.str.25, i32 noundef %8704, ptr noundef @.str.127, ptr noundef @.str.21, i32 noundef 450, ptr noundef %8707, ptr noundef %8710, ptr noundef %8713, i32 noundef %8715) #11
  br label %8717

8717:                                             ; preds = %8700, %8683
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #11
  br label %8718

8718:                                             ; preds = %8717
  br label %8719

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

8720:                                             ; No predecessors!
  br label %8721

8721:                                             ; preds = %8720
  br label %8722

8722:                                             ; preds = %8721, %8661
  br label %8723

8723:                                             ; preds = %8722
  br label %8724

8724:                                             ; preds = %8723
  br label %8725

8725:                                             ; preds = %8724
  %8726 = load i32, ptr @test_count, align 4, !tbaa !5
  %8727 = add nsw i32 %8726, 1
  store i32 %8727, ptr @test_count, align 4, !tbaa !5
  %8728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8729 = load i32, ptr %8728, align 4, !tbaa !5
  %8730 = icmp eq i32 %8729, 402653193
  br i1 %8730, label %8784, label %8731

8731:                                             ; preds = %8725
  br label %8732

8732:                                             ; preds = %8731
  br label %8733

8733:                                             ; preds = %8732
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #11
  %8734 = call ptr @__errno_location() #12
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  store i32 %8735, ptr %250, align 4, !tbaa !5
  %8736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8737 = call i32 @s2n_print_stacktrace(ptr noundef %8736)
  %8738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8739 = trunc i8 %8738 to i1
  br i1 %8739, label %8740, label %8762

8740:                                             ; preds = %8733
  %8741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8742 = call i32 @fileno(ptr noundef %8741) #11
  %8743 = call i32 @isatty(i32 noundef %8742) #11
  %8744 = icmp ne i32 %8743, 0
  br i1 %8744, label %8745, label %8762

8745:                                             ; preds = %8740
  %8746 = load i32, ptr %250, align 4, !tbaa !5
  %8747 = call ptr @__errno_location() #12
  store i32 %8746, ptr %8747, align 4, !tbaa !5
  %8748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8749 = load i32, ptr @test_count, align 4, !tbaa !5
  %8750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8751 = load i32, ptr %8750, align 4, !tbaa !5
  %8752 = call ptr @s2n_strerror(i32 noundef %8751, ptr noundef @.str.24)
  %8753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8754 = load i32, ptr %8753, align 4, !tbaa !5
  %8755 = call ptr @s2n_strerror_debug(i32 noundef %8754, ptr noundef @.str.24)
  %8756 = call ptr @__errno_location() #12
  %8757 = load i32, ptr %8756, align 4, !tbaa !5
  %8758 = call ptr @strerror(i32 noundef %8757) #11
  %8759 = call ptr @__errno_location() #12
  %8760 = load i32, ptr %8759, align 4, !tbaa !5
  %8761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8748, ptr noundef @.str.22, i32 noundef %8749, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 450, ptr noundef %8752, ptr noundef %8755, ptr noundef %8758, i32 noundef %8760) #11
  br label %8779

8762:                                             ; preds = %8740, %8733
  %8763 = load i32, ptr %250, align 4, !tbaa !5
  %8764 = call ptr @__errno_location() #12
  store i32 %8763, ptr %8764, align 4, !tbaa !5
  %8765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8766 = load i32, ptr @test_count, align 4, !tbaa !5
  %8767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8768 = load i32, ptr %8767, align 4, !tbaa !5
  %8769 = call ptr @s2n_strerror(i32 noundef %8768, ptr noundef @.str.24)
  %8770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8771 = load i32, ptr %8770, align 4, !tbaa !5
  %8772 = call ptr @s2n_strerror_debug(i32 noundef %8771, ptr noundef @.str.24)
  %8773 = call ptr @__errno_location() #12
  %8774 = load i32, ptr %8773, align 4, !tbaa !5
  %8775 = call ptr @strerror(i32 noundef %8774) #11
  %8776 = call ptr @__errno_location() #12
  %8777 = load i32, ptr %8776, align 4, !tbaa !5
  %8778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8765, ptr noundef @.str.25, i32 noundef %8766, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 450, ptr noundef %8769, ptr noundef %8772, ptr noundef %8775, i32 noundef %8777) #11
  br label %8779

8779:                                             ; preds = %8762, %8745
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #11
  br label %8780

8780:                                             ; preds = %8779
  br label %8781

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

8782:                                             ; No predecessors!
  br label %8783

8783:                                             ; preds = %8782
  br label %8784

8784:                                             ; preds = %8783, %8725
  br label %8785

8785:                                             ; preds = %8784
  br label %8786

8786:                                             ; preds = %8785
  br label %8787

8787:                                             ; preds = %8786
  %8788 = load i32, ptr @test_count, align 4, !tbaa !5
  %8789 = add nsw i32 %8788, 1
  store i32 %8789, ptr @test_count, align 4, !tbaa !5
  %8790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8791 = load i32, ptr %8790, align 4, !tbaa !5
  %8792 = call ptr @s2n_strerror_debug(i32 noundef %8791, ptr noundef @.str.24)
  %8793 = icmp eq ptr %8792, null
  br i1 %8793, label %8794, label %8847

8794:                                             ; preds = %8787
  br label %8795

8795:                                             ; preds = %8794
  br label %8796

8796:                                             ; preds = %8795
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %8797 = call ptr @__errno_location() #12
  %8798 = load i32, ptr %8797, align 4, !tbaa !5
  store i32 %8798, ptr %251, align 4, !tbaa !5
  %8799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8800 = call i32 @s2n_print_stacktrace(ptr noundef %8799)
  %8801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8802 = trunc i8 %8801 to i1
  br i1 %8802, label %8803, label %8825

8803:                                             ; preds = %8796
  %8804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8805 = call i32 @fileno(ptr noundef %8804) #11
  %8806 = call i32 @isatty(i32 noundef %8805) #11
  %8807 = icmp ne i32 %8806, 0
  br i1 %8807, label %8808, label %8825

8808:                                             ; preds = %8803
  %8809 = load i32, ptr %251, align 4, !tbaa !5
  %8810 = call ptr @__errno_location() #12
  store i32 %8809, ptr %8810, align 4, !tbaa !5
  %8811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8812 = load i32, ptr @test_count, align 4, !tbaa !5
  %8813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8814 = load i32, ptr %8813, align 4, !tbaa !5
  %8815 = call ptr @s2n_strerror(i32 noundef %8814, ptr noundef @.str.24)
  %8816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8817 = load i32, ptr %8816, align 4, !tbaa !5
  %8818 = call ptr @s2n_strerror_debug(i32 noundef %8817, ptr noundef @.str.24)
  %8819 = call ptr @__errno_location() #12
  %8820 = load i32, ptr %8819, align 4, !tbaa !5
  %8821 = call ptr @strerror(i32 noundef %8820) #11
  %8822 = call ptr @__errno_location() #12
  %8823 = load i32, ptr %8822, align 4, !tbaa !5
  %8824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8811, ptr noundef @.str.22, i32 noundef %8812, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 450, ptr noundef %8815, ptr noundef %8818, ptr noundef %8821, i32 noundef %8823) #11
  br label %8842

8825:                                             ; preds = %8803, %8796
  %8826 = load i32, ptr %251, align 4, !tbaa !5
  %8827 = call ptr @__errno_location() #12
  store i32 %8826, ptr %8827, align 4, !tbaa !5
  %8828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8829 = load i32, ptr @test_count, align 4, !tbaa !5
  %8830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8831 = load i32, ptr %8830, align 4, !tbaa !5
  %8832 = call ptr @s2n_strerror(i32 noundef %8831, ptr noundef @.str.24)
  %8833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8834 = load i32, ptr %8833, align 4, !tbaa !5
  %8835 = call ptr @s2n_strerror_debug(i32 noundef %8834, ptr noundef @.str.24)
  %8836 = call ptr @__errno_location() #12
  %8837 = load i32, ptr %8836, align 4, !tbaa !5
  %8838 = call ptr @strerror(i32 noundef %8837) #11
  %8839 = call ptr @__errno_location() #12
  %8840 = load i32, ptr %8839, align 4, !tbaa !5
  %8841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8828, ptr noundef @.str.25, i32 noundef %8829, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 450, ptr noundef %8832, ptr noundef %8835, ptr noundef %8838, i32 noundef %8840) #11
  br label %8842

8842:                                             ; preds = %8825, %8808
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %8843

8843:                                             ; preds = %8842
  br label %8844

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

8845:                                             ; No predecessors!
  br label %8846

8846:                                             ; preds = %8845
  br label %8847

8847:                                             ; preds = %8846, %8787
  br label %8848

8848:                                             ; preds = %8847
  br label %8849

8849:                                             ; preds = %8848
  br label %8850

8850:                                             ; preds = %8849
  br label %8851

8851:                                             ; preds = %8850
  br label %8852

8852:                                             ; preds = %8851
  %8853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8853, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8854 = call ptr @__errno_location() #12
  store i32 0, ptr %8854, align 4, !tbaa !5
  br label %8855

8855:                                             ; preds = %8852
  br label %8856

8856:                                             ; preds = %8855
  br label %8857

8857:                                             ; preds = %8856
  br label %8858

8858:                                             ; preds = %8857
  br label %8859

8859:                                             ; preds = %8858
  br label %8860

8860:                                             ; preds = %8859
  br label %8861

8861:                                             ; preds = %8860
  %8862 = load i32, ptr @test_count, align 4, !tbaa !5
  %8863 = add nsw i32 %8862, 1
  store i32 %8863, ptr @test_count, align 4, !tbaa !5
  %8864 = call i32 @s2n_prf_free(ptr noundef null)
  %8865 = getelementptr inbounds %struct.s2n_result, ptr %252, i32 0, i32 0
  store i32 %8864, ptr %8865, align 4
  %8866 = getelementptr inbounds %struct.s2n_result, ptr %252, i32 0, i32 0
  %8867 = load i32, ptr %8866, align 4
  %8868 = call zeroext i1 @s2n_result_is_error(i32 %8867)
  br i1 %8868, label %8922, label %8869

8869:                                             ; preds = %8861
  br label %8870

8870:                                             ; preds = %8869
  br label %8871

8871:                                             ; preds = %8870
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #11
  %8872 = call ptr @__errno_location() #12
  %8873 = load i32, ptr %8872, align 4, !tbaa !5
  store i32 %8873, ptr %253, align 4, !tbaa !5
  %8874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8875 = call i32 @s2n_print_stacktrace(ptr noundef %8874)
  %8876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8877 = trunc i8 %8876 to i1
  br i1 %8877, label %8878, label %8900

8878:                                             ; preds = %8871
  %8879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8880 = call i32 @fileno(ptr noundef %8879) #11
  %8881 = call i32 @isatty(i32 noundef %8880) #11
  %8882 = icmp ne i32 %8881, 0
  br i1 %8882, label %8883, label %8900

8883:                                             ; preds = %8878
  %8884 = load i32, ptr %253, align 4, !tbaa !5
  %8885 = call ptr @__errno_location() #12
  store i32 %8884, ptr %8885, align 4, !tbaa !5
  %8886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8887 = load i32, ptr @test_count, align 4, !tbaa !5
  %8888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8889 = load i32, ptr %8888, align 4, !tbaa !5
  %8890 = call ptr @s2n_strerror(i32 noundef %8889, ptr noundef @.str.24)
  %8891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8892 = load i32, ptr %8891, align 4, !tbaa !5
  %8893 = call ptr @s2n_strerror_debug(i32 noundef %8892, ptr noundef @.str.24)
  %8894 = call ptr @__errno_location() #12
  %8895 = load i32, ptr %8894, align 4, !tbaa !5
  %8896 = call ptr @strerror(i32 noundef %8895) #11
  %8897 = call ptr @__errno_location() #12
  %8898 = load i32, ptr %8897, align 4, !tbaa !5
  %8899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8886, ptr noundef @.str.22, i32 noundef %8887, ptr noundef @.str.128, ptr noundef @.str.21, i32 noundef 451, ptr noundef %8890, ptr noundef %8893, ptr noundef %8896, i32 noundef %8898) #11
  br label %8917

8900:                                             ; preds = %8878, %8871
  %8901 = load i32, ptr %253, align 4, !tbaa !5
  %8902 = call ptr @__errno_location() #12
  store i32 %8901, ptr %8902, align 4, !tbaa !5
  %8903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8904 = load i32, ptr @test_count, align 4, !tbaa !5
  %8905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8906 = load i32, ptr %8905, align 4, !tbaa !5
  %8907 = call ptr @s2n_strerror(i32 noundef %8906, ptr noundef @.str.24)
  %8908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8909 = load i32, ptr %8908, align 4, !tbaa !5
  %8910 = call ptr @s2n_strerror_debug(i32 noundef %8909, ptr noundef @.str.24)
  %8911 = call ptr @__errno_location() #12
  %8912 = load i32, ptr %8911, align 4, !tbaa !5
  %8913 = call ptr @strerror(i32 noundef %8912) #11
  %8914 = call ptr @__errno_location() #12
  %8915 = load i32, ptr %8914, align 4, !tbaa !5
  %8916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8903, ptr noundef @.str.25, i32 noundef %8904, ptr noundef @.str.128, ptr noundef @.str.21, i32 noundef 451, ptr noundef %8907, ptr noundef %8910, ptr noundef %8913, i32 noundef %8915) #11
  br label %8917

8917:                                             ; preds = %8900, %8883
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #11
  br label %8918

8918:                                             ; preds = %8917
  br label %8919

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

8920:                                             ; No predecessors!
  br label %8921

8921:                                             ; preds = %8920
  br label %8922

8922:                                             ; preds = %8921, %8861
  br label %8923

8923:                                             ; preds = %8922
  br label %8924

8924:                                             ; preds = %8923
  br label %8925

8925:                                             ; preds = %8924
  %8926 = load i32, ptr @test_count, align 4, !tbaa !5
  %8927 = add nsw i32 %8926, 1
  store i32 %8927, ptr @test_count, align 4, !tbaa !5
  %8928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8929 = load i32, ptr %8928, align 4, !tbaa !5
  %8930 = icmp eq i32 %8929, 402653193
  br i1 %8930, label %8984, label %8931

8931:                                             ; preds = %8925
  br label %8932

8932:                                             ; preds = %8931
  br label %8933

8933:                                             ; preds = %8932
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #11
  %8934 = call ptr @__errno_location() #12
  %8935 = load i32, ptr %8934, align 4, !tbaa !5
  store i32 %8935, ptr %254, align 4, !tbaa !5
  %8936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8937 = call i32 @s2n_print_stacktrace(ptr noundef %8936)
  %8938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8939 = trunc i8 %8938 to i1
  br i1 %8939, label %8940, label %8962

8940:                                             ; preds = %8933
  %8941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8942 = call i32 @fileno(ptr noundef %8941) #11
  %8943 = call i32 @isatty(i32 noundef %8942) #11
  %8944 = icmp ne i32 %8943, 0
  br i1 %8944, label %8945, label %8962

8945:                                             ; preds = %8940
  %8946 = load i32, ptr %254, align 4, !tbaa !5
  %8947 = call ptr @__errno_location() #12
  store i32 %8946, ptr %8947, align 4, !tbaa !5
  %8948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8949 = load i32, ptr @test_count, align 4, !tbaa !5
  %8950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8951 = load i32, ptr %8950, align 4, !tbaa !5
  %8952 = call ptr @s2n_strerror(i32 noundef %8951, ptr noundef @.str.24)
  %8953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8954 = load i32, ptr %8953, align 4, !tbaa !5
  %8955 = call ptr @s2n_strerror_debug(i32 noundef %8954, ptr noundef @.str.24)
  %8956 = call ptr @__errno_location() #12
  %8957 = load i32, ptr %8956, align 4, !tbaa !5
  %8958 = call ptr @strerror(i32 noundef %8957) #11
  %8959 = call ptr @__errno_location() #12
  %8960 = load i32, ptr %8959, align 4, !tbaa !5
  %8961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8948, ptr noundef @.str.22, i32 noundef %8949, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 451, ptr noundef %8952, ptr noundef %8955, ptr noundef %8958, i32 noundef %8960) #11
  br label %8979

8962:                                             ; preds = %8940, %8933
  %8963 = load i32, ptr %254, align 4, !tbaa !5
  %8964 = call ptr @__errno_location() #12
  store i32 %8963, ptr %8964, align 4, !tbaa !5
  %8965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8966 = load i32, ptr @test_count, align 4, !tbaa !5
  %8967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8968 = load i32, ptr %8967, align 4, !tbaa !5
  %8969 = call ptr @s2n_strerror(i32 noundef %8968, ptr noundef @.str.24)
  %8970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8971 = load i32, ptr %8970, align 4, !tbaa !5
  %8972 = call ptr @s2n_strerror_debug(i32 noundef %8971, ptr noundef @.str.24)
  %8973 = call ptr @__errno_location() #12
  %8974 = load i32, ptr %8973, align 4, !tbaa !5
  %8975 = call ptr @strerror(i32 noundef %8974) #11
  %8976 = call ptr @__errno_location() #12
  %8977 = load i32, ptr %8976, align 4, !tbaa !5
  %8978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8965, ptr noundef @.str.25, i32 noundef %8966, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 451, ptr noundef %8969, ptr noundef %8972, ptr noundef %8975, i32 noundef %8977) #11
  br label %8979

8979:                                             ; preds = %8962, %8945
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #11
  br label %8980

8980:                                             ; preds = %8979
  br label %8981

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

8982:                                             ; No predecessors!
  br label %8983

8983:                                             ; preds = %8982
  br label %8984

8984:                                             ; preds = %8983, %8925
  br label %8985

8985:                                             ; preds = %8984
  br label %8986

8986:                                             ; preds = %8985
  br label %8987

8987:                                             ; preds = %8986
  %8988 = load i32, ptr @test_count, align 4, !tbaa !5
  %8989 = add nsw i32 %8988, 1
  store i32 %8989, ptr @test_count, align 4, !tbaa !5
  %8990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8991 = load i32, ptr %8990, align 4, !tbaa !5
  %8992 = call ptr @s2n_strerror_debug(i32 noundef %8991, ptr noundef @.str.24)
  %8993 = icmp eq ptr %8992, null
  br i1 %8993, label %8994, label %9047

8994:                                             ; preds = %8987
  br label %8995

8995:                                             ; preds = %8994
  br label %8996

8996:                                             ; preds = %8995
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #11
  %8997 = call ptr @__errno_location() #12
  %8998 = load i32, ptr %8997, align 4, !tbaa !5
  store i32 %8998, ptr %255, align 4, !tbaa !5
  %8999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9000 = call i32 @s2n_print_stacktrace(ptr noundef %8999)
  %9001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9002 = trunc i8 %9001 to i1
  br i1 %9002, label %9003, label %9025

9003:                                             ; preds = %8996
  %9004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9005 = call i32 @fileno(ptr noundef %9004) #11
  %9006 = call i32 @isatty(i32 noundef %9005) #11
  %9007 = icmp ne i32 %9006, 0
  br i1 %9007, label %9008, label %9025

9008:                                             ; preds = %9003
  %9009 = load i32, ptr %255, align 4, !tbaa !5
  %9010 = call ptr @__errno_location() #12
  store i32 %9009, ptr %9010, align 4, !tbaa !5
  %9011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9012 = load i32, ptr @test_count, align 4, !tbaa !5
  %9013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9014 = load i32, ptr %9013, align 4, !tbaa !5
  %9015 = call ptr @s2n_strerror(i32 noundef %9014, ptr noundef @.str.24)
  %9016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9017 = load i32, ptr %9016, align 4, !tbaa !5
  %9018 = call ptr @s2n_strerror_debug(i32 noundef %9017, ptr noundef @.str.24)
  %9019 = call ptr @__errno_location() #12
  %9020 = load i32, ptr %9019, align 4, !tbaa !5
  %9021 = call ptr @strerror(i32 noundef %9020) #11
  %9022 = call ptr @__errno_location() #12
  %9023 = load i32, ptr %9022, align 4, !tbaa !5
  %9024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9011, ptr noundef @.str.22, i32 noundef %9012, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 451, ptr noundef %9015, ptr noundef %9018, ptr noundef %9021, i32 noundef %9023) #11
  br label %9042

9025:                                             ; preds = %9003, %8996
  %9026 = load i32, ptr %255, align 4, !tbaa !5
  %9027 = call ptr @__errno_location() #12
  store i32 %9026, ptr %9027, align 4, !tbaa !5
  %9028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9029 = load i32, ptr @test_count, align 4, !tbaa !5
  %9030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9031 = load i32, ptr %9030, align 4, !tbaa !5
  %9032 = call ptr @s2n_strerror(i32 noundef %9031, ptr noundef @.str.24)
  %9033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9034 = load i32, ptr %9033, align 4, !tbaa !5
  %9035 = call ptr @s2n_strerror_debug(i32 noundef %9034, ptr noundef @.str.24)
  %9036 = call ptr @__errno_location() #12
  %9037 = load i32, ptr %9036, align 4, !tbaa !5
  %9038 = call ptr @strerror(i32 noundef %9037) #11
  %9039 = call ptr @__errno_location() #12
  %9040 = load i32, ptr %9039, align 4, !tbaa !5
  %9041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9028, ptr noundef @.str.25, i32 noundef %9029, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 451, ptr noundef %9032, ptr noundef %9035, ptr noundef %9038, i32 noundef %9040) #11
  br label %9042

9042:                                             ; preds = %9025, %9008
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #11
  br label %9043

9043:                                             ; preds = %9042
  br label %9044

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

9045:                                             ; No predecessors!
  br label %9046

9046:                                             ; preds = %9045
  br label %9047

9047:                                             ; preds = %9046, %8987
  br label %9048

9048:                                             ; preds = %9047
  br label %9049

9049:                                             ; preds = %9048
  br label %9050

9050:                                             ; preds = %9049
  br label %9051

9051:                                             ; preds = %9050
  br label %9052

9052:                                             ; preds = %9051
  %9053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9053, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9054 = call ptr @__errno_location() #12
  store i32 0, ptr %9054, align 4, !tbaa !5
  br label %9055

9055:                                             ; preds = %9052
  br label %9056

9056:                                             ; preds = %9055
  br label %9057

9057:                                             ; preds = %9056
  br label %9058

9058:                                             ; preds = %9057
  call void @llvm.lifetime.start.p0(i64 4184, ptr %256) #11
  call void @llvm.memset.p0.i64(ptr align 8 %256, i8 0, i64 4184, i1 false)
  br label %9059

9059:                                             ; preds = %9058
  %9060 = load i32, ptr @test_count, align 4, !tbaa !5
  %9061 = add nsw i32 %9060, 1
  store i32 %9061, ptr @test_count, align 4, !tbaa !5
  %9062 = getelementptr inbounds %struct.s2n_connection, ptr %256, i32 0, i32 34
  %9063 = load ptr, ptr %9062, align 8, !tbaa !54
  %9064 = icmp eq ptr %9063, null
  br i1 %9064, label %9118, label %9065

9065:                                             ; preds = %9059
  br label %9066

9066:                                             ; preds = %9065
  br label %9067

9067:                                             ; preds = %9066
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #11
  %9068 = call ptr @__errno_location() #12
  %9069 = load i32, ptr %9068, align 4, !tbaa !5
  store i32 %9069, ptr %257, align 4, !tbaa !5
  %9070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9071 = call i32 @s2n_print_stacktrace(ptr noundef %9070)
  %9072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9073 = trunc i8 %9072 to i1
  br i1 %9073, label %9074, label %9096

9074:                                             ; preds = %9067
  %9075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9076 = call i32 @fileno(ptr noundef %9075) #11
  %9077 = call i32 @isatty(i32 noundef %9076) #11
  %9078 = icmp ne i32 %9077, 0
  br i1 %9078, label %9079, label %9096

9079:                                             ; preds = %9074
  %9080 = load i32, ptr %257, align 4, !tbaa !5
  %9081 = call ptr @__errno_location() #12
  store i32 %9080, ptr %9081, align 4, !tbaa !5
  %9082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9083 = load i32, ptr @test_count, align 4, !tbaa !5
  %9084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9085 = load i32, ptr %9084, align 4, !tbaa !5
  %9086 = call ptr @s2n_strerror(i32 noundef %9085, ptr noundef @.str.24)
  %9087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9088 = load i32, ptr %9087, align 4, !tbaa !5
  %9089 = call ptr @s2n_strerror_debug(i32 noundef %9088, ptr noundef @.str.24)
  %9090 = call ptr @__errno_location() #12
  %9091 = load i32, ptr %9090, align 4, !tbaa !5
  %9092 = call ptr @strerror(i32 noundef %9091) #11
  %9093 = call ptr @__errno_location() #12
  %9094 = load i32, ptr %9093, align 4, !tbaa !5
  %9095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9082, ptr noundef @.str.22, i32 noundef %9083, ptr noundef @.str.129, ptr noundef @.str.21, i32 noundef 454, ptr noundef %9086, ptr noundef %9089, ptr noundef %9092, i32 noundef %9094) #11
  br label %9113

9096:                                             ; preds = %9074, %9067
  %9097 = load i32, ptr %257, align 4, !tbaa !5
  %9098 = call ptr @__errno_location() #12
  store i32 %9097, ptr %9098, align 4, !tbaa !5
  %9099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9100 = load i32, ptr @test_count, align 4, !tbaa !5
  %9101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9102 = load i32, ptr %9101, align 4, !tbaa !5
  %9103 = call ptr @s2n_strerror(i32 noundef %9102, ptr noundef @.str.24)
  %9104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9105 = load i32, ptr %9104, align 4, !tbaa !5
  %9106 = call ptr @s2n_strerror_debug(i32 noundef %9105, ptr noundef @.str.24)
  %9107 = call ptr @__errno_location() #12
  %9108 = load i32, ptr %9107, align 4, !tbaa !5
  %9109 = call ptr @strerror(i32 noundef %9108) #11
  %9110 = call ptr @__errno_location() #12
  %9111 = load i32, ptr %9110, align 4, !tbaa !5
  %9112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9099, ptr noundef @.str.25, i32 noundef %9100, ptr noundef @.str.129, ptr noundef @.str.21, i32 noundef 454, ptr noundef %9103, ptr noundef %9106, ptr noundef %9109, i32 noundef %9111) #11
  br label %9113

9113:                                             ; preds = %9096, %9079
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #11
  br label %9114

9114:                                             ; preds = %9113
  br label %9115

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

9116:                                             ; No predecessors!
  br label %9117

9117:                                             ; preds = %9116
  br label %9118

9118:                                             ; preds = %9117, %9059
  br label %9119

9119:                                             ; preds = %9118
  br label %9120

9120:                                             ; preds = %9119
  br label %9121

9121:                                             ; preds = %9120
  br label %9122

9122:                                             ; preds = %9121
  br label %9123

9123:                                             ; preds = %9122
  %9124 = load i32, ptr @test_count, align 4, !tbaa !5
  %9125 = add nsw i32 %9124, 1
  store i32 %9125, ptr @test_count, align 4, !tbaa !5
  %9126 = call i32 @s2n_prf_wipe(ptr noundef %256)
  %9127 = getelementptr inbounds %struct.s2n_result, ptr %258, i32 0, i32 0
  store i32 %9126, ptr %9127, align 4
  %9128 = getelementptr inbounds %struct.s2n_result, ptr %258, i32 0, i32 0
  %9129 = load i32, ptr %9128, align 4
  %9130 = call zeroext i1 @s2n_result_is_error(i32 %9129)
  br i1 %9130, label %9184, label %9131

9131:                                             ; preds = %9123
  br label %9132

9132:                                             ; preds = %9131
  br label %9133

9133:                                             ; preds = %9132
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #11
  %9134 = call ptr @__errno_location() #12
  %9135 = load i32, ptr %9134, align 4, !tbaa !5
  store i32 %9135, ptr %259, align 4, !tbaa !5
  %9136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9137 = call i32 @s2n_print_stacktrace(ptr noundef %9136)
  %9138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9139 = trunc i8 %9138 to i1
  br i1 %9139, label %9140, label %9162

9140:                                             ; preds = %9133
  %9141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9142 = call i32 @fileno(ptr noundef %9141) #11
  %9143 = call i32 @isatty(i32 noundef %9142) #11
  %9144 = icmp ne i32 %9143, 0
  br i1 %9144, label %9145, label %9162

9145:                                             ; preds = %9140
  %9146 = load i32, ptr %259, align 4, !tbaa !5
  %9147 = call ptr @__errno_location() #12
  store i32 %9146, ptr %9147, align 4, !tbaa !5
  %9148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9149 = load i32, ptr @test_count, align 4, !tbaa !5
  %9150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9151 = load i32, ptr %9150, align 4, !tbaa !5
  %9152 = call ptr @s2n_strerror(i32 noundef %9151, ptr noundef @.str.24)
  %9153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9154 = load i32, ptr %9153, align 4, !tbaa !5
  %9155 = call ptr @s2n_strerror_debug(i32 noundef %9154, ptr noundef @.str.24)
  %9156 = call ptr @__errno_location() #12
  %9157 = load i32, ptr %9156, align 4, !tbaa !5
  %9158 = call ptr @strerror(i32 noundef %9157) #11
  %9159 = call ptr @__errno_location() #12
  %9160 = load i32, ptr %9159, align 4, !tbaa !5
  %9161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9148, ptr noundef @.str.22, i32 noundef %9149, ptr noundef @.str.130, ptr noundef @.str.21, i32 noundef 456, ptr noundef %9152, ptr noundef %9155, ptr noundef %9158, i32 noundef %9160) #11
  br label %9179

9162:                                             ; preds = %9140, %9133
  %9163 = load i32, ptr %259, align 4, !tbaa !5
  %9164 = call ptr @__errno_location() #12
  store i32 %9163, ptr %9164, align 4, !tbaa !5
  %9165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9166 = load i32, ptr @test_count, align 4, !tbaa !5
  %9167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9168 = load i32, ptr %9167, align 4, !tbaa !5
  %9169 = call ptr @s2n_strerror(i32 noundef %9168, ptr noundef @.str.24)
  %9170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9171 = load i32, ptr %9170, align 4, !tbaa !5
  %9172 = call ptr @s2n_strerror_debug(i32 noundef %9171, ptr noundef @.str.24)
  %9173 = call ptr @__errno_location() #12
  %9174 = load i32, ptr %9173, align 4, !tbaa !5
  %9175 = call ptr @strerror(i32 noundef %9174) #11
  %9176 = call ptr @__errno_location() #12
  %9177 = load i32, ptr %9176, align 4, !tbaa !5
  %9178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9165, ptr noundef @.str.25, i32 noundef %9166, ptr noundef @.str.130, ptr noundef @.str.21, i32 noundef 456, ptr noundef %9169, ptr noundef %9172, ptr noundef %9175, i32 noundef %9177) #11
  br label %9179

9179:                                             ; preds = %9162, %9145
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #11
  br label %9180

9180:                                             ; preds = %9179
  br label %9181

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

9182:                                             ; No predecessors!
  br label %9183

9183:                                             ; preds = %9182
  br label %9184

9184:                                             ; preds = %9183, %9123
  br label %9185

9185:                                             ; preds = %9184
  br label %9186

9186:                                             ; preds = %9185
  br label %9187

9187:                                             ; preds = %9186
  %9188 = load i32, ptr @test_count, align 4, !tbaa !5
  %9189 = add nsw i32 %9188, 1
  store i32 %9189, ptr @test_count, align 4, !tbaa !5
  %9190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9191 = load i32, ptr %9190, align 4, !tbaa !5
  %9192 = icmp eq i32 %9191, 402653193
  br i1 %9192, label %9246, label %9193

9193:                                             ; preds = %9187
  br label %9194

9194:                                             ; preds = %9193
  br label %9195

9195:                                             ; preds = %9194
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #11
  %9196 = call ptr @__errno_location() #12
  %9197 = load i32, ptr %9196, align 4, !tbaa !5
  store i32 %9197, ptr %260, align 4, !tbaa !5
  %9198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9199 = call i32 @s2n_print_stacktrace(ptr noundef %9198)
  %9200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9201 = trunc i8 %9200 to i1
  br i1 %9201, label %9202, label %9224

9202:                                             ; preds = %9195
  %9203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9204 = call i32 @fileno(ptr noundef %9203) #11
  %9205 = call i32 @isatty(i32 noundef %9204) #11
  %9206 = icmp ne i32 %9205, 0
  br i1 %9206, label %9207, label %9224

9207:                                             ; preds = %9202
  %9208 = load i32, ptr %260, align 4, !tbaa !5
  %9209 = call ptr @__errno_location() #12
  store i32 %9208, ptr %9209, align 4, !tbaa !5
  %9210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9211 = load i32, ptr @test_count, align 4, !tbaa !5
  %9212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9213 = load i32, ptr %9212, align 4, !tbaa !5
  %9214 = call ptr @s2n_strerror(i32 noundef %9213, ptr noundef @.str.24)
  %9215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9216 = load i32, ptr %9215, align 4, !tbaa !5
  %9217 = call ptr @s2n_strerror_debug(i32 noundef %9216, ptr noundef @.str.24)
  %9218 = call ptr @__errno_location() #12
  %9219 = load i32, ptr %9218, align 4, !tbaa !5
  %9220 = call ptr @strerror(i32 noundef %9219) #11
  %9221 = call ptr @__errno_location() #12
  %9222 = load i32, ptr %9221, align 4, !tbaa !5
  %9223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9210, ptr noundef @.str.22, i32 noundef %9211, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 456, ptr noundef %9214, ptr noundef %9217, ptr noundef %9220, i32 noundef %9222) #11
  br label %9241

9224:                                             ; preds = %9202, %9195
  %9225 = load i32, ptr %260, align 4, !tbaa !5
  %9226 = call ptr @__errno_location() #12
  store i32 %9225, ptr %9226, align 4, !tbaa !5
  %9227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9228 = load i32, ptr @test_count, align 4, !tbaa !5
  %9229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9230 = load i32, ptr %9229, align 4, !tbaa !5
  %9231 = call ptr @s2n_strerror(i32 noundef %9230, ptr noundef @.str.24)
  %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_debug(i32 noundef %9233, ptr noundef @.str.24)
  %9235 = call ptr @__errno_location() #12
  %9236 = load i32, ptr %9235, align 4, !tbaa !5
  %9237 = call ptr @strerror(i32 noundef %9236) #11
  %9238 = call ptr @__errno_location() #12
  %9239 = load i32, ptr %9238, align 4, !tbaa !5
  %9240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9227, ptr noundef @.str.25, i32 noundef %9228, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 456, ptr noundef %9231, ptr noundef %9234, ptr noundef %9237, i32 noundef %9239) #11
  br label %9241

9241:                                             ; preds = %9224, %9207
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #11
  br label %9242

9242:                                             ; preds = %9241
  br label %9243

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

9244:                                             ; No predecessors!
  br label %9245

9245:                                             ; preds = %9244
  br label %9246

9246:                                             ; preds = %9245, %9187
  br label %9247

9247:                                             ; preds = %9246
  br label %9248

9248:                                             ; preds = %9247
  br label %9249

9249:                                             ; preds = %9248
  %9250 = load i32, ptr @test_count, align 4, !tbaa !5
  %9251 = add nsw i32 %9250, 1
  store i32 %9251, ptr @test_count, align 4, !tbaa !5
  %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 = icmp eq ptr %9254, null
  br i1 %9255, label %9256, label %9309

9256:                                             ; preds = %9249
  br label %9257

9257:                                             ; preds = %9256
  br label %9258

9258:                                             ; preds = %9257
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #11
  %9259 = call ptr @__errno_location() #12
  %9260 = load i32, ptr %9259, align 4, !tbaa !5
  store i32 %9260, ptr %261, align 4, !tbaa !5
  %9261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9262 = call i32 @s2n_print_stacktrace(ptr noundef %9261)
  %9263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9264 = trunc i8 %9263 to i1
  br i1 %9264, label %9265, label %9287

9265:                                             ; preds = %9258
  %9266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9267 = call i32 @fileno(ptr noundef %9266) #11
  %9268 = call i32 @isatty(i32 noundef %9267) #11
  %9269 = icmp ne i32 %9268, 0
  br i1 %9269, label %9270, label %9287

9270:                                             ; preds = %9265
  %9271 = load i32, ptr %261, align 4, !tbaa !5
  %9272 = call ptr @__errno_location() #12
  store i32 %9271, ptr %9272, align 4, !tbaa !5
  %9273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9274 = load i32, ptr @test_count, align 4, !tbaa !5
  %9275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9276 = load i32, ptr %9275, align 4, !tbaa !5
  %9277 = call ptr @s2n_strerror(i32 noundef %9276, ptr noundef @.str.24)
  %9278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9279 = load i32, ptr %9278, align 4, !tbaa !5
  %9280 = call ptr @s2n_strerror_debug(i32 noundef %9279, ptr noundef @.str.24)
  %9281 = call ptr @__errno_location() #12
  %9282 = load i32, ptr %9281, align 4, !tbaa !5
  %9283 = call ptr @strerror(i32 noundef %9282) #11
  %9284 = call ptr @__errno_location() #12
  %9285 = load i32, ptr %9284, align 4, !tbaa !5
  %9286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9273, ptr noundef @.str.22, i32 noundef %9274, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 456, ptr noundef %9277, ptr noundef %9280, ptr noundef %9283, i32 noundef %9285) #11
  br label %9304

9287:                                             ; preds = %9265, %9258
  %9288 = load i32, ptr %261, align 4, !tbaa !5
  %9289 = call ptr @__errno_location() #12
  store i32 %9288, ptr %9289, align 4, !tbaa !5
  %9290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9291 = load i32, ptr @test_count, align 4, !tbaa !5
  %9292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9293 = load i32, ptr %9292, align 4, !tbaa !5
  %9294 = call ptr @s2n_strerror(i32 noundef %9293, ptr noundef @.str.24)
  %9295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9296 = load i32, ptr %9295, align 4, !tbaa !5
  %9297 = call ptr @s2n_strerror_debug(i32 noundef %9296, ptr noundef @.str.24)
  %9298 = call ptr @__errno_location() #12
  %9299 = load i32, ptr %9298, align 4, !tbaa !5
  %9300 = call ptr @strerror(i32 noundef %9299) #11
  %9301 = call ptr @__errno_location() #12
  %9302 = load i32, ptr %9301, align 4, !tbaa !5
  %9303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9290, ptr noundef @.str.25, i32 noundef %9291, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 456, ptr noundef %9294, ptr noundef %9297, ptr noundef %9300, i32 noundef %9302) #11
  br label %9304

9304:                                             ; preds = %9287, %9270
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #11
  br label %9305

9305:                                             ; preds = %9304
  br label %9306

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

9307:                                             ; No predecessors!
  br label %9308

9308:                                             ; preds = %9307
  br label %9309

9309:                                             ; preds = %9308, %9249
  br label %9310

9310:                                             ; preds = %9309
  br label %9311

9311:                                             ; preds = %9310
  br label %9312

9312:                                             ; preds = %9311
  br label %9313

9313:                                             ; preds = %9312
  br label %9314

9314:                                             ; preds = %9313
  %9315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9315, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9316 = call ptr @__errno_location() #12
  store i32 0, ptr %9316, align 4, !tbaa !5
  br label %9317

9317:                                             ; preds = %9314
  br label %9318

9318:                                             ; preds = %9317
  br label %9319

9319:                                             ; preds = %9318
  br label %9320

9320:                                             ; preds = %9319
  br label %9321

9321:                                             ; preds = %9320
  %9322 = load i32, ptr @test_count, align 4, !tbaa !5
  %9323 = add nsw i32 %9322, 1
  store i32 %9323, ptr @test_count, align 4, !tbaa !5
  %9324 = call i32 @s2n_prf_free(ptr noundef %256)
  %9325 = getelementptr inbounds %struct.s2n_result, ptr %262, i32 0, i32 0
  store i32 %9324, ptr %9325, align 4
  %9326 = getelementptr inbounds %struct.s2n_result, ptr %262, i32 0, i32 0
  %9327 = load i32, ptr %9326, align 4
  %9328 = call zeroext i1 @s2n_result_is_ok(i32 %9327)
  br i1 %9328, label %9382, label %9329

9329:                                             ; preds = %9321
  br label %9330

9330:                                             ; preds = %9329
  br label %9331

9331:                                             ; preds = %9330
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #11
  %9332 = call ptr @__errno_location() #12
  %9333 = load i32, ptr %9332, align 4, !tbaa !5
  store i32 %9333, ptr %263, align 4, !tbaa !5
  %9334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9335 = call i32 @s2n_print_stacktrace(ptr noundef %9334)
  %9336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9337 = trunc i8 %9336 to i1
  br i1 %9337, label %9338, label %9360

9338:                                             ; preds = %9331
  %9339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9340 = call i32 @fileno(ptr noundef %9339) #11
  %9341 = call i32 @isatty(i32 noundef %9340) #11
  %9342 = icmp ne i32 %9341, 0
  br i1 %9342, label %9343, label %9360

9343:                                             ; preds = %9338
  %9344 = load i32, ptr %263, align 4, !tbaa !5
  %9345 = call ptr @__errno_location() #12
  store i32 %9344, ptr %9345, align 4, !tbaa !5
  %9346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9347 = load i32, ptr @test_count, align 4, !tbaa !5
  %9348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9349 = load i32, ptr %9348, align 4, !tbaa !5
  %9350 = call ptr @s2n_strerror(i32 noundef %9349, ptr noundef @.str.24)
  %9351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9352 = load i32, ptr %9351, align 4, !tbaa !5
  %9353 = call ptr @s2n_strerror_debug(i32 noundef %9352, ptr noundef @.str.24)
  %9354 = call ptr @__errno_location() #12
  %9355 = load i32, ptr %9354, align 4, !tbaa !5
  %9356 = call ptr @strerror(i32 noundef %9355) #11
  %9357 = call ptr @__errno_location() #12
  %9358 = load i32, ptr %9357, align 4, !tbaa !5
  %9359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9346, ptr noundef @.str.22, i32 noundef %9347, ptr noundef @.str.131, ptr noundef @.str.21, i32 noundef 457, ptr noundef %9350, ptr noundef %9353, ptr noundef %9356, i32 noundef %9358) #11
  br label %9377

9360:                                             ; preds = %9338, %9331
  %9361 = load i32, ptr %263, align 4, !tbaa !5
  %9362 = call ptr @__errno_location() #12
  store i32 %9361, ptr %9362, align 4, !tbaa !5
  %9363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9364 = load i32, ptr @test_count, align 4, !tbaa !5
  %9365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9366 = load i32, ptr %9365, align 4, !tbaa !5
  %9367 = call ptr @s2n_strerror(i32 noundef %9366, ptr noundef @.str.24)
  %9368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9369 = load i32, ptr %9368, align 4, !tbaa !5
  %9370 = call ptr @s2n_strerror_debug(i32 noundef %9369, ptr noundef @.str.24)
  %9371 = call ptr @__errno_location() #12
  %9372 = load i32, ptr %9371, align 4, !tbaa !5
  %9373 = call ptr @strerror(i32 noundef %9372) #11
  %9374 = call ptr @__errno_location() #12
  %9375 = load i32, ptr %9374, align 4, !tbaa !5
  %9376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9363, ptr noundef @.str.25, i32 noundef %9364, ptr noundef @.str.131, ptr noundef @.str.21, i32 noundef 457, ptr noundef %9367, ptr noundef %9370, ptr noundef %9373, i32 noundef %9375) #11
  br label %9377

9377:                                             ; preds = %9360, %9343
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #11
  br label %9378

9378:                                             ; preds = %9377
  br label %9379

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

9380:                                             ; No predecessors!
  br label %9381

9381:                                             ; preds = %9380
  br label %9382

9382:                                             ; preds = %9381, %9321
  br label %9383

9383:                                             ; preds = %9382
  br label %9384

9384:                                             ; preds = %9383
  call void @llvm.lifetime.end.p0(i64 4184, ptr %256) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %264) #11
  call void @llvm.memset.p0.i64(ptr align 8 %264, i8 0, i64 4184, i1 false)
  br label %9385

9385:                                             ; preds = %9384
  %9386 = load i32, ptr @test_count, align 4, !tbaa !5
  %9387 = add nsw i32 %9386, 1
  store i32 %9387, ptr @test_count, align 4, !tbaa !5
  %9388 = getelementptr inbounds %struct.s2n_connection, ptr %264, i32 0, i32 34
  %9389 = load ptr, ptr %9388, align 8, !tbaa !54
  %9390 = icmp eq ptr %9389, null
  br i1 %9390, label %9444, label %9391

9391:                                             ; preds = %9385
  br label %9392

9392:                                             ; preds = %9391
  br label %9393

9393:                                             ; preds = %9392
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #11
  %9394 = call ptr @__errno_location() #12
  %9395 = load i32, ptr %9394, align 4, !tbaa !5
  store i32 %9395, ptr %265, align 4, !tbaa !5
  %9396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9397 = call i32 @s2n_print_stacktrace(ptr noundef %9396)
  %9398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9399 = trunc i8 %9398 to i1
  br i1 %9399, label %9400, label %9422

9400:                                             ; preds = %9393
  %9401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9402 = call i32 @fileno(ptr noundef %9401) #11
  %9403 = call i32 @isatty(i32 noundef %9402) #11
  %9404 = icmp ne i32 %9403, 0
  br i1 %9404, label %9405, label %9422

9405:                                             ; preds = %9400
  %9406 = load i32, ptr %265, align 4, !tbaa !5
  %9407 = call ptr @__errno_location() #12
  store i32 %9406, ptr %9407, align 4, !tbaa !5
  %9408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9409 = load i32, ptr @test_count, align 4, !tbaa !5
  %9410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9411 = load i32, ptr %9410, align 4, !tbaa !5
  %9412 = call ptr @s2n_strerror(i32 noundef %9411, ptr noundef @.str.24)
  %9413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9414 = load i32, ptr %9413, align 4, !tbaa !5
  %9415 = call ptr @s2n_strerror_debug(i32 noundef %9414, ptr noundef @.str.24)
  %9416 = call ptr @__errno_location() #12
  %9417 = load i32, ptr %9416, align 4, !tbaa !5
  %9418 = call ptr @strerror(i32 noundef %9417) #11
  %9419 = call ptr @__errno_location() #12
  %9420 = load i32, ptr %9419, align 4, !tbaa !5
  %9421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9408, ptr noundef @.str.22, i32 noundef %9409, ptr noundef @.str.132, ptr noundef @.str.21, i32 noundef 463, ptr noundef %9412, ptr noundef %9415, ptr noundef %9418, i32 noundef %9420) #11
  br label %9439

9422:                                             ; preds = %9400, %9393
  %9423 = load i32, ptr %265, 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.25, i32 noundef %9426, ptr noundef @.str.132, ptr noundef @.str.21, i32 noundef 463, ptr noundef %9429, ptr noundef %9432, ptr noundef %9435, i32 noundef %9437) #11
  br label %9439

9439:                                             ; preds = %9422, %9405
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #11
  br label %9440

9440:                                             ; preds = %9439
  br label %9441

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

9442:                                             ; No predecessors!
  br label %9443

9443:                                             ; preds = %9442
  br label %9444

9444:                                             ; preds = %9443, %9385
  br label %9445

9445:                                             ; preds = %9444
  br label %9446

9446:                                             ; preds = %9445
  br label %9447

9447:                                             ; preds = %9446
  %9448 = load i32, ptr @test_count, align 4, !tbaa !5
  %9449 = add nsw i32 %9448, 1
  store i32 %9449, ptr @test_count, align 4, !tbaa !5
  %9450 = call i32 @s2n_prf_new(ptr noundef %264)
  %9451 = getelementptr inbounds %struct.s2n_result, ptr %266, i32 0, i32 0
  store i32 %9450, ptr %9451, align 4
  %9452 = getelementptr inbounds %struct.s2n_result, ptr %266, i32 0, i32 0
  %9453 = load i32, ptr %9452, align 4
  %9454 = call zeroext i1 @s2n_result_is_ok(i32 %9453)
  br i1 %9454, label %9508, label %9455

9455:                                             ; preds = %9447
  br label %9456

9456:                                             ; preds = %9455
  br label %9457

9457:                                             ; preds = %9456
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #11
  %9458 = call ptr @__errno_location() #12
  %9459 = load i32, ptr %9458, align 4, !tbaa !5
  store i32 %9459, ptr %267, align 4, !tbaa !5
  %9460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9461 = call i32 @s2n_print_stacktrace(ptr noundef %9460)
  %9462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9463 = trunc i8 %9462 to i1
  br i1 %9463, label %9464, label %9486

9464:                                             ; preds = %9457
  %9465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9466 = call i32 @fileno(ptr noundef %9465) #11
  %9467 = call i32 @isatty(i32 noundef %9466) #11
  %9468 = icmp ne i32 %9467, 0
  br i1 %9468, label %9469, label %9486

9469:                                             ; preds = %9464
  %9470 = load i32, ptr %267, align 4, !tbaa !5
  %9471 = call ptr @__errno_location() #12
  store i32 %9470, ptr %9471, align 4, !tbaa !5
  %9472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9473 = load i32, ptr @test_count, align 4, !tbaa !5
  %9474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9475 = load i32, ptr %9474, align 4, !tbaa !5
  %9476 = call ptr @s2n_strerror(i32 noundef %9475, ptr noundef @.str.24)
  %9477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9478 = load i32, ptr %9477, align 4, !tbaa !5
  %9479 = call ptr @s2n_strerror_debug(i32 noundef %9478, ptr noundef @.str.24)
  %9480 = call ptr @__errno_location() #12
  %9481 = load i32, ptr %9480, align 4, !tbaa !5
  %9482 = call ptr @strerror(i32 noundef %9481) #11
  %9483 = call ptr @__errno_location() #12
  %9484 = load i32, ptr %9483, align 4, !tbaa !5
  %9485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9472, ptr noundef @.str.22, i32 noundef %9473, ptr noundef @.str.133, ptr noundef @.str.21, i32 noundef 465, ptr noundef %9476, ptr noundef %9479, ptr noundef %9482, i32 noundef %9484) #11
  br label %9503

9486:                                             ; preds = %9464, %9457
  %9487 = load i32, ptr %267, align 4, !tbaa !5
  %9488 = call ptr @__errno_location() #12
  store i32 %9487, ptr %9488, align 4, !tbaa !5
  %9489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9490 = load i32, ptr @test_count, align 4, !tbaa !5
  %9491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9492 = load i32, ptr %9491, align 4, !tbaa !5
  %9493 = call ptr @s2n_strerror(i32 noundef %9492, ptr noundef @.str.24)
  %9494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9495 = load i32, ptr %9494, align 4, !tbaa !5
  %9496 = call ptr @s2n_strerror_debug(i32 noundef %9495, ptr noundef @.str.24)
  %9497 = call ptr @__errno_location() #12
  %9498 = load i32, ptr %9497, align 4, !tbaa !5
  %9499 = call ptr @strerror(i32 noundef %9498) #11
  %9500 = call ptr @__errno_location() #12
  %9501 = load i32, ptr %9500, align 4, !tbaa !5
  %9502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9489, ptr noundef @.str.25, i32 noundef %9490, ptr noundef @.str.133, ptr noundef @.str.21, i32 noundef 465, ptr noundef %9493, ptr noundef %9496, ptr noundef %9499, i32 noundef %9501) #11
  br label %9503

9503:                                             ; preds = %9486, %9469
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #11
  br label %9504

9504:                                             ; preds = %9503
  br label %9505

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

9506:                                             ; No predecessors!
  br label %9507

9507:                                             ; preds = %9506
  br label %9508

9508:                                             ; preds = %9507, %9447
  br label %9509

9509:                                             ; preds = %9508
  br label %9510

9510:                                             ; preds = %9509
  br label %9511

9511:                                             ; preds = %9510
  %9512 = load i32, ptr @test_count, align 4, !tbaa !5
  %9513 = add nsw i32 %9512, 1
  store i32 %9513, ptr @test_count, align 4, !tbaa !5
  %9514 = getelementptr inbounds %struct.s2n_connection, ptr %264, i32 0, i32 34
  %9515 = load ptr, ptr %9514, align 8, !tbaa !54
  %9516 = icmp eq ptr %9515, null
  br i1 %9516, label %9517, label %9570

9517:                                             ; preds = %9511
  br label %9518

9518:                                             ; preds = %9517
  br label %9519

9519:                                             ; preds = %9518
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #11
  %9520 = call ptr @__errno_location() #12
  %9521 = load i32, ptr %9520, align 4, !tbaa !5
  store i32 %9521, ptr %268, align 4, !tbaa !5
  %9522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9523 = call i32 @s2n_print_stacktrace(ptr noundef %9522)
  %9524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9525 = trunc i8 %9524 to i1
  br i1 %9525, label %9526, label %9548

9526:                                             ; preds = %9519
  %9527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9528 = call i32 @fileno(ptr noundef %9527) #11
  %9529 = call i32 @isatty(i32 noundef %9528) #11
  %9530 = icmp ne i32 %9529, 0
  br i1 %9530, label %9531, label %9548

9531:                                             ; preds = %9526
  %9532 = load i32, ptr %268, align 4, !tbaa !5
  %9533 = call ptr @__errno_location() #12
  store i32 %9532, ptr %9533, align 4, !tbaa !5
  %9534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9535 = load i32, ptr @test_count, align 4, !tbaa !5
  %9536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9537 = load i32, ptr %9536, align 4, !tbaa !5
  %9538 = call ptr @s2n_strerror(i32 noundef %9537, ptr noundef @.str.24)
  %9539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9540 = load i32, ptr %9539, align 4, !tbaa !5
  %9541 = call ptr @s2n_strerror_debug(i32 noundef %9540, ptr noundef @.str.24)
  %9542 = call ptr @__errno_location() #12
  %9543 = load i32, ptr %9542, align 4, !tbaa !5
  %9544 = call ptr @strerror(i32 noundef %9543) #11
  %9545 = call ptr @__errno_location() #12
  %9546 = load i32, ptr %9545, align 4, !tbaa !5
  %9547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9534, ptr noundef @.str.22, i32 noundef %9535, ptr noundef @.str.134, ptr noundef @.str.21, i32 noundef 466, ptr noundef %9538, ptr noundef %9541, ptr noundef %9544, i32 noundef %9546) #11
  br label %9565

9548:                                             ; preds = %9526, %9519
  %9549 = load i32, ptr %268, align 4, !tbaa !5
  %9550 = call ptr @__errno_location() #12
  store i32 %9549, ptr %9550, align 4, !tbaa !5
  %9551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9552 = load i32, ptr @test_count, align 4, !tbaa !5
  %9553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9554 = load i32, ptr %9553, align 4, !tbaa !5
  %9555 = call ptr @s2n_strerror(i32 noundef %9554, ptr noundef @.str.24)
  %9556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9557 = load i32, ptr %9556, align 4, !tbaa !5
  %9558 = call ptr @s2n_strerror_debug(i32 noundef %9557, ptr noundef @.str.24)
  %9559 = call ptr @__errno_location() #12
  %9560 = load i32, ptr %9559, align 4, !tbaa !5
  %9561 = call ptr @strerror(i32 noundef %9560) #11
  %9562 = call ptr @__errno_location() #12
  %9563 = load i32, ptr %9562, align 4, !tbaa !5
  %9564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9551, ptr noundef @.str.25, i32 noundef %9552, ptr noundef @.str.134, ptr noundef @.str.21, i32 noundef 466, ptr noundef %9555, ptr noundef %9558, ptr noundef %9561, i32 noundef %9563) #11
  br label %9565

9565:                                             ; preds = %9548, %9531
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #11
  br label %9566

9566:                                             ; preds = %9565
  br label %9567

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

9568:                                             ; No predecessors!
  br label %9569

9569:                                             ; preds = %9568
  br label %9570

9570:                                             ; preds = %9569, %9511
  br label %9571

9571:                                             ; preds = %9570
  br label %9572

9572:                                             ; preds = %9571
  br label %9573

9573:                                             ; preds = %9572
  %9574 = load i32, ptr @test_count, align 4, !tbaa !5
  %9575 = add nsw i32 %9574, 1
  store i32 %9575, ptr @test_count, align 4, !tbaa !5
  %9576 = call i32 @s2n_prf_wipe(ptr noundef %264)
  %9577 = getelementptr inbounds %struct.s2n_result, ptr %269, i32 0, i32 0
  store i32 %9576, ptr %9577, align 4
  %9578 = getelementptr inbounds %struct.s2n_result, ptr %269, i32 0, i32 0
  %9579 = load i32, ptr %9578, align 4
  %9580 = call zeroext i1 @s2n_result_is_ok(i32 %9579)
  br i1 %9580, label %9634, label %9581

9581:                                             ; preds = %9573
  br label %9582

9582:                                             ; preds = %9581
  br label %9583

9583:                                             ; preds = %9582
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #11
  %9584 = call ptr @__errno_location() #12
  %9585 = load i32, ptr %9584, align 4, !tbaa !5
  store i32 %9585, ptr %270, align 4, !tbaa !5
  %9586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9587 = call i32 @s2n_print_stacktrace(ptr noundef %9586)
  %9588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9589 = trunc i8 %9588 to i1
  br i1 %9589, label %9590, label %9612

9590:                                             ; preds = %9583
  %9591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9592 = call i32 @fileno(ptr noundef %9591) #11
  %9593 = call i32 @isatty(i32 noundef %9592) #11
  %9594 = icmp ne i32 %9593, 0
  br i1 %9594, label %9595, label %9612

9595:                                             ; preds = %9590
  %9596 = load i32, ptr %270, align 4, !tbaa !5
  %9597 = call ptr @__errno_location() #12
  store i32 %9596, ptr %9597, align 4, !tbaa !5
  %9598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9599 = load i32, ptr @test_count, align 4, !tbaa !5
  %9600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9601 = load i32, ptr %9600, align 4, !tbaa !5
  %9602 = call ptr @s2n_strerror(i32 noundef %9601, ptr noundef @.str.24)
  %9603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9604 = load i32, ptr %9603, align 4, !tbaa !5
  %9605 = call ptr @s2n_strerror_debug(i32 noundef %9604, ptr noundef @.str.24)
  %9606 = call ptr @__errno_location() #12
  %9607 = load i32, ptr %9606, align 4, !tbaa !5
  %9608 = call ptr @strerror(i32 noundef %9607) #11
  %9609 = call ptr @__errno_location() #12
  %9610 = load i32, ptr %9609, align 4, !tbaa !5
  %9611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9598, ptr noundef @.str.22, i32 noundef %9599, ptr noundef @.str.135, ptr noundef @.str.21, i32 noundef 468, ptr noundef %9602, ptr noundef %9605, ptr noundef %9608, i32 noundef %9610) #11
  br label %9629

9612:                                             ; preds = %9590, %9583
  %9613 = load i32, ptr %270, align 4, !tbaa !5
  %9614 = call ptr @__errno_location() #12
  store i32 %9613, ptr %9614, align 4, !tbaa !5
  %9615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9616 = load i32, ptr @test_count, align 4, !tbaa !5
  %9617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9618 = load i32, ptr %9617, align 4, !tbaa !5
  %9619 = call ptr @s2n_strerror(i32 noundef %9618, ptr noundef @.str.24)
  %9620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9621 = load i32, ptr %9620, align 4, !tbaa !5
  %9622 = call ptr @s2n_strerror_debug(i32 noundef %9621, ptr noundef @.str.24)
  %9623 = call ptr @__errno_location() #12
  %9624 = load i32, ptr %9623, align 4, !tbaa !5
  %9625 = call ptr @strerror(i32 noundef %9624) #11
  %9626 = call ptr @__errno_location() #12
  %9627 = load i32, ptr %9626, align 4, !tbaa !5
  %9628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9615, ptr noundef @.str.25, i32 noundef %9616, ptr noundef @.str.135, ptr noundef @.str.21, i32 noundef 468, ptr noundef %9619, ptr noundef %9622, ptr noundef %9625, i32 noundef %9627) #11
  br label %9629

9629:                                             ; preds = %9612, %9595
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #11
  br label %9630

9630:                                             ; preds = %9629
  br label %9631

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

9632:                                             ; No predecessors!
  br label %9633

9633:                                             ; preds = %9632
  br label %9634

9634:                                             ; preds = %9633, %9573
  br label %9635

9635:                                             ; preds = %9634
  br label %9636

9636:                                             ; preds = %9635
  br label %9637

9637:                                             ; preds = %9636
  %9638 = load i32, ptr @test_count, align 4, !tbaa !5
  %9639 = add nsw i32 %9638, 1
  store i32 %9639, ptr @test_count, align 4, !tbaa !5
  %9640 = getelementptr inbounds %struct.s2n_connection, ptr %264, i32 0, i32 34
  %9641 = load ptr, ptr %9640, align 8, !tbaa !54
  %9642 = icmp eq ptr %9641, null
  br i1 %9642, label %9643, label %9696

9643:                                             ; preds = %9637
  br label %9644

9644:                                             ; preds = %9643
  br label %9645

9645:                                             ; preds = %9644
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #11
  %9646 = call ptr @__errno_location() #12
  %9647 = load i32, ptr %9646, align 4, !tbaa !5
  store i32 %9647, ptr %271, align 4, !tbaa !5
  %9648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9649 = call i32 @s2n_print_stacktrace(ptr noundef %9648)
  %9650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9651 = trunc i8 %9650 to i1
  br i1 %9651, label %9652, label %9674

9652:                                             ; preds = %9645
  %9653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9654 = call i32 @fileno(ptr noundef %9653) #11
  %9655 = call i32 @isatty(i32 noundef %9654) #11
  %9656 = icmp ne i32 %9655, 0
  br i1 %9656, label %9657, label %9674

9657:                                             ; preds = %9652
  %9658 = load i32, ptr %271, align 4, !tbaa !5
  %9659 = call ptr @__errno_location() #12
  store i32 %9658, ptr %9659, align 4, !tbaa !5
  %9660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9661 = load i32, ptr @test_count, align 4, !tbaa !5
  %9662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9663 = load i32, ptr %9662, align 4, !tbaa !5
  %9664 = call ptr @s2n_strerror(i32 noundef %9663, ptr noundef @.str.24)
  %9665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9666 = load i32, ptr %9665, align 4, !tbaa !5
  %9667 = call ptr @s2n_strerror_debug(i32 noundef %9666, ptr noundef @.str.24)
  %9668 = call ptr @__errno_location() #12
  %9669 = load i32, ptr %9668, align 4, !tbaa !5
  %9670 = call ptr @strerror(i32 noundef %9669) #11
  %9671 = call ptr @__errno_location() #12
  %9672 = load i32, ptr %9671, align 4, !tbaa !5
  %9673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9660, ptr noundef @.str.22, i32 noundef %9661, ptr noundef @.str.134, ptr noundef @.str.21, i32 noundef 469, ptr noundef %9664, ptr noundef %9667, ptr noundef %9670, i32 noundef %9672) #11
  br label %9691

9674:                                             ; preds = %9652, %9645
  %9675 = load i32, ptr %271, align 4, !tbaa !5
  %9676 = call ptr @__errno_location() #12
  store i32 %9675, ptr %9676, align 4, !tbaa !5
  %9677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9678 = load i32, ptr @test_count, align 4, !tbaa !5
  %9679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9680 = load i32, ptr %9679, align 4, !tbaa !5
  %9681 = call ptr @s2n_strerror(i32 noundef %9680, ptr noundef @.str.24)
  %9682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9683 = load i32, ptr %9682, align 4, !tbaa !5
  %9684 = call ptr @s2n_strerror_debug(i32 noundef %9683, ptr noundef @.str.24)
  %9685 = call ptr @__errno_location() #12
  %9686 = load i32, ptr %9685, align 4, !tbaa !5
  %9687 = call ptr @strerror(i32 noundef %9686) #11
  %9688 = call ptr @__errno_location() #12
  %9689 = load i32, ptr %9688, align 4, !tbaa !5
  %9690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9677, ptr noundef @.str.25, i32 noundef %9678, ptr noundef @.str.134, ptr noundef @.str.21, i32 noundef 469, ptr noundef %9681, ptr noundef %9684, ptr noundef %9687, i32 noundef %9689) #11
  br label %9691

9691:                                             ; preds = %9674, %9657
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #11
  br label %9692

9692:                                             ; preds = %9691
  br label %9693

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

9694:                                             ; No predecessors!
  br label %9695

9695:                                             ; preds = %9694
  br label %9696

9696:                                             ; preds = %9695, %9637
  br label %9697

9697:                                             ; preds = %9696
  br label %9698

9698:                                             ; preds = %9697
  br label %9699

9699:                                             ; preds = %9698
  %9700 = load i32, ptr @test_count, align 4, !tbaa !5
  %9701 = add nsw i32 %9700, 1
  store i32 %9701, ptr @test_count, align 4, !tbaa !5
  %9702 = call i32 @s2n_prf_free(ptr noundef %264)
  %9703 = getelementptr inbounds %struct.s2n_result, ptr %272, i32 0, i32 0
  store i32 %9702, ptr %9703, align 4
  %9704 = getelementptr inbounds %struct.s2n_result, ptr %272, i32 0, i32 0
  %9705 = load i32, ptr %9704, align 4
  %9706 = call zeroext i1 @s2n_result_is_ok(i32 %9705)
  br i1 %9706, label %9760, label %9707

9707:                                             ; preds = %9699
  br label %9708

9708:                                             ; preds = %9707
  br label %9709

9709:                                             ; preds = %9708
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #11
  %9710 = call ptr @__errno_location() #12
  %9711 = load i32, ptr %9710, align 4, !tbaa !5
  store i32 %9711, ptr %273, align 4, !tbaa !5
  %9712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9713 = call i32 @s2n_print_stacktrace(ptr noundef %9712)
  %9714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9715 = trunc i8 %9714 to i1
  br i1 %9715, label %9716, label %9738

9716:                                             ; preds = %9709
  %9717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9718 = call i32 @fileno(ptr noundef %9717) #11
  %9719 = call i32 @isatty(i32 noundef %9718) #11
  %9720 = icmp ne i32 %9719, 0
  br i1 %9720, label %9721, label %9738

9721:                                             ; preds = %9716
  %9722 = load i32, ptr %273, align 4, !tbaa !5
  %9723 = call ptr @__errno_location() #12
  store i32 %9722, ptr %9723, align 4, !tbaa !5
  %9724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9725 = load i32, ptr @test_count, align 4, !tbaa !5
  %9726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9727 = load i32, ptr %9726, align 4, !tbaa !5
  %9728 = call ptr @s2n_strerror(i32 noundef %9727, ptr noundef @.str.24)
  %9729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9730 = load i32, ptr %9729, align 4, !tbaa !5
  %9731 = call ptr @s2n_strerror_debug(i32 noundef %9730, ptr noundef @.str.24)
  %9732 = call ptr @__errno_location() #12
  %9733 = load i32, ptr %9732, align 4, !tbaa !5
  %9734 = call ptr @strerror(i32 noundef %9733) #11
  %9735 = call ptr @__errno_location() #12
  %9736 = load i32, ptr %9735, align 4, !tbaa !5
  %9737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9724, ptr noundef @.str.22, i32 noundef %9725, ptr noundef @.str.136, ptr noundef @.str.21, i32 noundef 471, ptr noundef %9728, ptr noundef %9731, ptr noundef %9734, i32 noundef %9736) #11
  br label %9755

9738:                                             ; preds = %9716, %9709
  %9739 = load i32, ptr %273, align 4, !tbaa !5
  %9740 = call ptr @__errno_location() #12
  store i32 %9739, ptr %9740, align 4, !tbaa !5
  %9741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9742 = load i32, ptr @test_count, align 4, !tbaa !5
  %9743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9744 = load i32, ptr %9743, align 4, !tbaa !5
  %9745 = call ptr @s2n_strerror(i32 noundef %9744, ptr noundef @.str.24)
  %9746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9747 = load i32, ptr %9746, align 4, !tbaa !5
  %9748 = call ptr @s2n_strerror_debug(i32 noundef %9747, ptr noundef @.str.24)
  %9749 = call ptr @__errno_location() #12
  %9750 = load i32, ptr %9749, align 4, !tbaa !5
  %9751 = call ptr @strerror(i32 noundef %9750) #11
  %9752 = call ptr @__errno_location() #12
  %9753 = load i32, ptr %9752, align 4, !tbaa !5
  %9754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9741, ptr noundef @.str.25, i32 noundef %9742, ptr noundef @.str.136, ptr noundef @.str.21, i32 noundef 471, ptr noundef %9745, ptr noundef %9748, ptr noundef %9751, i32 noundef %9753) #11
  br label %9755

9755:                                             ; preds = %9738, %9721
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #11
  br label %9756

9756:                                             ; preds = %9755
  br label %9757

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

9758:                                             ; No predecessors!
  br label %9759

9759:                                             ; preds = %9758
  br label %9760

9760:                                             ; preds = %9759, %9699
  br label %9761

9761:                                             ; preds = %9760
  br label %9762

9762:                                             ; preds = %9761
  br label %9763

9763:                                             ; preds = %9762
  %9764 = load i32, ptr @test_count, align 4, !tbaa !5
  %9765 = add nsw i32 %9764, 1
  store i32 %9765, ptr @test_count, align 4, !tbaa !5
  %9766 = getelementptr inbounds %struct.s2n_connection, ptr %264, i32 0, i32 34
  %9767 = load ptr, ptr %9766, align 8, !tbaa !54
  %9768 = icmp eq ptr %9767, null
  br i1 %9768, label %9822, label %9769

9769:                                             ; preds = %9763
  br label %9770

9770:                                             ; preds = %9769
  br label %9771

9771:                                             ; preds = %9770
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #11
  %9772 = call ptr @__errno_location() #12
  %9773 = load i32, ptr %9772, align 4, !tbaa !5
  store i32 %9773, ptr %274, align 4, !tbaa !5
  %9774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9775 = call i32 @s2n_print_stacktrace(ptr noundef %9774)
  %9776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9777 = trunc i8 %9776 to i1
  br i1 %9777, label %9778, label %9800

9778:                                             ; preds = %9771
  %9779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9780 = call i32 @fileno(ptr noundef %9779) #11
  %9781 = call i32 @isatty(i32 noundef %9780) #11
  %9782 = icmp ne i32 %9781, 0
  br i1 %9782, label %9783, label %9800

9783:                                             ; preds = %9778
  %9784 = load i32, ptr %274, align 4, !tbaa !5
  %9785 = call ptr @__errno_location() #12
  store i32 %9784, ptr %9785, align 4, !tbaa !5
  %9786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9787 = load i32, ptr @test_count, align 4, !tbaa !5
  %9788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9789 = load i32, ptr %9788, align 4, !tbaa !5
  %9790 = call ptr @s2n_strerror(i32 noundef %9789, ptr noundef @.str.24)
  %9791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9792 = load i32, ptr %9791, align 4, !tbaa !5
  %9793 = call ptr @s2n_strerror_debug(i32 noundef %9792, ptr noundef @.str.24)
  %9794 = call ptr @__errno_location() #12
  %9795 = load i32, ptr %9794, align 4, !tbaa !5
  %9796 = call ptr @strerror(i32 noundef %9795) #11
  %9797 = call ptr @__errno_location() #12
  %9798 = load i32, ptr %9797, align 4, !tbaa !5
  %9799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9786, ptr noundef @.str.22, i32 noundef %9787, ptr noundef @.str.132, ptr noundef @.str.21, i32 noundef 472, ptr noundef %9790, ptr noundef %9793, ptr noundef %9796, i32 noundef %9798) #11
  br label %9817

9800:                                             ; preds = %9778, %9771
  %9801 = load i32, ptr %274, align 4, !tbaa !5
  %9802 = call ptr @__errno_location() #12
  store i32 %9801, ptr %9802, align 4, !tbaa !5
  %9803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9804 = load i32, ptr @test_count, align 4, !tbaa !5
  %9805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9806 = load i32, ptr %9805, align 4, !tbaa !5
  %9807 = call ptr @s2n_strerror(i32 noundef %9806, ptr noundef @.str.24)
  %9808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9809 = load i32, ptr %9808, align 4, !tbaa !5
  %9810 = call ptr @s2n_strerror_debug(i32 noundef %9809, ptr noundef @.str.24)
  %9811 = call ptr @__errno_location() #12
  %9812 = load i32, ptr %9811, align 4, !tbaa !5
  %9813 = call ptr @strerror(i32 noundef %9812) #11
  %9814 = call ptr @__errno_location() #12
  %9815 = load i32, ptr %9814, align 4, !tbaa !5
  %9816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9803, ptr noundef @.str.25, i32 noundef %9804, ptr noundef @.str.132, ptr noundef @.str.21, i32 noundef 472, ptr noundef %9807, ptr noundef %9810, ptr noundef %9813, i32 noundef %9815) #11
  br label %9817

9817:                                             ; preds = %9800, %9783
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #11
  br label %9818

9818:                                             ; preds = %9817
  br label %9819

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

9820:                                             ; No predecessors!
  br label %9821

9821:                                             ; preds = %9820
  br label %9822

9822:                                             ; preds = %9821, %9763
  br label %9823

9823:                                             ; preds = %9822
  br label %9824

9824:                                             ; preds = %9823
  call void @llvm.lifetime.end.p0(i64 4184, ptr %264) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %275) #11
  %9825 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9825, ptr %275, align 8, !tbaa !9
  br label %9826

9826:                                             ; preds = %9824
  %9827 = load i32, ptr @test_count, align 4, !tbaa !5
  %9828 = add nsw i32 %9827, 1
  store i32 %9828, ptr @test_count, align 4, !tbaa !5
  %9829 = load ptr, ptr %275, align 8, !tbaa !9
  %9830 = icmp eq ptr %9829, null
  br i1 %9830, label %9831, label %9884

9831:                                             ; preds = %9826
  br label %9832

9832:                                             ; preds = %9831
  br label %9833

9833:                                             ; preds = %9832
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #11
  %9834 = call ptr @__errno_location() #12
  %9835 = load i32, ptr %9834, align 4, !tbaa !5
  store i32 %9835, ptr %276, align 4, !tbaa !5
  %9836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9837 = call i32 @s2n_print_stacktrace(ptr noundef %9836)
  %9838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9839 = trunc i8 %9838 to i1
  br i1 %9839, label %9840, label %9862

9840:                                             ; preds = %9833
  %9841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9842 = call i32 @fileno(ptr noundef %9841) #11
  %9843 = call i32 @isatty(i32 noundef %9842) #11
  %9844 = icmp ne i32 %9843, 0
  br i1 %9844, label %9845, label %9862

9845:                                             ; preds = %9840
  %9846 = load i32, ptr %276, align 4, !tbaa !5
  %9847 = call ptr @__errno_location() #12
  store i32 %9846, ptr %9847, align 4, !tbaa !5
  %9848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9849 = load i32, ptr @test_count, align 4, !tbaa !5
  %9850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9851 = load i32, ptr %9850, align 4, !tbaa !5
  %9852 = call ptr @s2n_strerror(i32 noundef %9851, ptr noundef @.str.24)
  %9853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9854 = load i32, ptr %9853, align 4, !tbaa !5
  %9855 = call ptr @s2n_strerror_debug(i32 noundef %9854, ptr noundef @.str.24)
  %9856 = call ptr @__errno_location() #12
  %9857 = load i32, ptr %9856, align 4, !tbaa !5
  %9858 = call ptr @strerror(i32 noundef %9857) #11
  %9859 = call ptr @__errno_location() #12
  %9860 = load i32, ptr %9859, align 4, !tbaa !5
  %9861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9848, ptr noundef @.str.22, i32 noundef %9849, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 479, ptr noundef %9852, ptr noundef %9855, ptr noundef %9858, i32 noundef %9860) #11
  br label %9879

9862:                                             ; preds = %9840, %9833
  %9863 = load i32, ptr %276, align 4, !tbaa !5
  %9864 = call ptr @__errno_location() #12
  store i32 %9863, ptr %9864, align 4, !tbaa !5
  %9865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9866 = load i32, ptr @test_count, align 4, !tbaa !5
  %9867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9868 = load i32, ptr %9867, align 4, !tbaa !5
  %9869 = call ptr @s2n_strerror(i32 noundef %9868, ptr noundef @.str.24)
  %9870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9871 = load i32, ptr %9870, align 4, !tbaa !5
  %9872 = call ptr @s2n_strerror_debug(i32 noundef %9871, ptr noundef @.str.24)
  %9873 = call ptr @__errno_location() #12
  %9874 = load i32, ptr %9873, align 4, !tbaa !5
  %9875 = call ptr @strerror(i32 noundef %9874) #11
  %9876 = call ptr @__errno_location() #12
  %9877 = load i32, ptr %9876, align 4, !tbaa !5
  %9878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9865, ptr noundef @.str.25, i32 noundef %9866, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 479, ptr noundef %9869, ptr noundef %9872, ptr noundef %9875, i32 noundef %9877) #11
  br label %9879

9879:                                             ; preds = %9862, %9845
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #11
  br label %9880

9880:                                             ; preds = %9879
  br label %9881

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

9882:                                             ; No predecessors!
  br label %9883

9883:                                             ; preds = %9882
  br label %9884

9884:                                             ; preds = %9883, %9826
  br label %9885

9885:                                             ; preds = %9884
  br label %9886

9886:                                             ; preds = %9885
  br label %9887

9887:                                             ; preds = %9886
  %9888 = load i32, ptr @test_count, align 4, !tbaa !5
  %9889 = add nsw i32 %9888, 1
  store i32 %9889, ptr @test_count, align 4, !tbaa !5
  %9890 = load ptr, ptr %275, align 8, !tbaa !9
  %9891 = getelementptr inbounds %struct.s2n_connection, ptr %9890, i32 0, i32 34
  %9892 = load ptr, ptr %9891, align 8, !tbaa !54
  %9893 = icmp eq ptr %9892, null
  br i1 %9893, label %9894, label %9947

9894:                                             ; preds = %9887
  br label %9895

9895:                                             ; preds = %9894
  br label %9896

9896:                                             ; preds = %9895
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #11
  %9897 = call ptr @__errno_location() #12
  %9898 = load i32, ptr %9897, align 4, !tbaa !5
  store i32 %9898, ptr %277, align 4, !tbaa !5
  %9899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9900 = call i32 @s2n_print_stacktrace(ptr noundef %9899)
  %9901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9902 = trunc i8 %9901 to i1
  br i1 %9902, label %9903, label %9925

9903:                                             ; preds = %9896
  %9904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9905 = call i32 @fileno(ptr noundef %9904) #11
  %9906 = call i32 @isatty(i32 noundef %9905) #11
  %9907 = icmp ne i32 %9906, 0
  br i1 %9907, label %9908, label %9925

9908:                                             ; preds = %9903
  %9909 = load i32, ptr %277, align 4, !tbaa !5
  %9910 = call ptr @__errno_location() #12
  store i32 %9909, ptr %9910, align 4, !tbaa !5
  %9911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9912 = load i32, ptr @test_count, align 4, !tbaa !5
  %9913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9914 = load i32, ptr %9913, align 4, !tbaa !5
  %9915 = call ptr @s2n_strerror(i32 noundef %9914, ptr noundef @.str.24)
  %9916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9917 = load i32, ptr %9916, align 4, !tbaa !5
  %9918 = call ptr @s2n_strerror_debug(i32 noundef %9917, ptr noundef @.str.24)
  %9919 = call ptr @__errno_location() #12
  %9920 = load i32, ptr %9919, align 4, !tbaa !5
  %9921 = call ptr @strerror(i32 noundef %9920) #11
  %9922 = call ptr @__errno_location() #12
  %9923 = load i32, ptr %9922, align 4, !tbaa !5
  %9924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9911, ptr noundef @.str.22, i32 noundef %9912, ptr noundef @.str.137, ptr noundef @.str.21, i32 noundef 480, ptr noundef %9915, ptr noundef %9918, ptr noundef %9921, i32 noundef %9923) #11
  br label %9942

9925:                                             ; preds = %9903, %9896
  %9926 = load i32, ptr %277, align 4, !tbaa !5
  %9927 = call ptr @__errno_location() #12
  store i32 %9926, ptr %9927, align 4, !tbaa !5
  %9928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9929 = load i32, ptr @test_count, align 4, !tbaa !5
  %9930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9931 = load i32, ptr %9930, align 4, !tbaa !5
  %9932 = call ptr @s2n_strerror(i32 noundef %9931, ptr noundef @.str.24)
  %9933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9934 = load i32, ptr %9933, align 4, !tbaa !5
  %9935 = call ptr @s2n_strerror_debug(i32 noundef %9934, ptr noundef @.str.24)
  %9936 = call ptr @__errno_location() #12
  %9937 = load i32, ptr %9936, align 4, !tbaa !5
  %9938 = call ptr @strerror(i32 noundef %9937) #11
  %9939 = call ptr @__errno_location() #12
  %9940 = load i32, ptr %9939, align 4, !tbaa !5
  %9941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9928, ptr noundef @.str.25, i32 noundef %9929, ptr noundef @.str.137, ptr noundef @.str.21, i32 noundef 480, ptr noundef %9932, ptr noundef %9935, ptr noundef %9938, i32 noundef %9940) #11
  br label %9942

9942:                                             ; preds = %9925, %9908
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #11
  br label %9943

9943:                                             ; preds = %9942
  br label %9944

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

9945:                                             ; No predecessors!
  br label %9946

9946:                                             ; preds = %9945
  br label %9947

9947:                                             ; preds = %9946, %9887
  br label %9948

9948:                                             ; preds = %9947
  br label %9949

9949:                                             ; preds = %9948
  br label %9950

9950:                                             ; preds = %9949
  %9951 = load i32, ptr @test_count, align 4, !tbaa !5
  %9952 = add nsw i32 %9951, 1
  store i32 %9952, ptr @test_count, align 4, !tbaa !5
  %9953 = load ptr, ptr %275, align 8, !tbaa !9
  %9954 = call i32 @s2n_connection_free_handshake(ptr noundef %9953)
  %9955 = icmp eq i32 %9954, -1
  br i1 %9955, label %9956, label %10009

9956:                                             ; preds = %9950
  br label %9957

9957:                                             ; preds = %9956
  br label %9958

9958:                                             ; preds = %9957
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #11
  %9959 = call ptr @__errno_location() #12
  %9960 = load i32, ptr %9959, align 4, !tbaa !5
  store i32 %9960, ptr %278, align 4, !tbaa !5
  %9961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9962 = call i32 @s2n_print_stacktrace(ptr noundef %9961)
  %9963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9964 = trunc i8 %9963 to i1
  br i1 %9964, label %9965, label %9987

9965:                                             ; preds = %9958
  %9966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9967 = call i32 @fileno(ptr noundef %9966) #11
  %9968 = call i32 @isatty(i32 noundef %9967) #11
  %9969 = icmp ne i32 %9968, 0
  br i1 %9969, label %9970, label %9987

9970:                                             ; preds = %9965
  %9971 = load i32, ptr %278, align 4, !tbaa !5
  %9972 = call ptr @__errno_location() #12
  store i32 %9971, ptr %9972, align 4, !tbaa !5
  %9973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9974 = load i32, ptr @test_count, align 4, !tbaa !5
  %9975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9976 = load i32, ptr %9975, align 4, !tbaa !5
  %9977 = call ptr @s2n_strerror(i32 noundef %9976, ptr noundef @.str.24)
  %9978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9979 = load i32, ptr %9978, align 4, !tbaa !5
  %9980 = call ptr @s2n_strerror_debug(i32 noundef %9979, ptr noundef @.str.24)
  %9981 = call ptr @__errno_location() #12
  %9982 = load i32, ptr %9981, align 4, !tbaa !5
  %9983 = call ptr @strerror(i32 noundef %9982) #11
  %9984 = call ptr @__errno_location() #12
  %9985 = load i32, ptr %9984, align 4, !tbaa !5
  %9986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9973, ptr noundef @.str.22, i32 noundef %9974, ptr noundef @.str.138, ptr noundef @.str.21, i32 noundef 482, ptr noundef %9977, ptr noundef %9980, ptr noundef %9983, i32 noundef %9985) #11
  br label %10004

9987:                                             ; preds = %9965, %9958
  %9988 = load i32, ptr %278, align 4, !tbaa !5
  %9989 = call ptr @__errno_location() #12
  store i32 %9988, ptr %9989, align 4, !tbaa !5
  %9990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9991 = load i32, ptr @test_count, align 4, !tbaa !5
  %9992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9993 = load i32, ptr %9992, align 4, !tbaa !5
  %9994 = call ptr @s2n_strerror(i32 noundef %9993, ptr noundef @.str.24)
  %9995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9996 = load i32, ptr %9995, align 4, !tbaa !5
  %9997 = call ptr @s2n_strerror_debug(i32 noundef %9996, ptr noundef @.str.24)
  %9998 = call ptr @__errno_location() #12
  %9999 = load i32, ptr %9998, align 4, !tbaa !5
  %10000 = call ptr @strerror(i32 noundef %9999) #11
  %10001 = call ptr @__errno_location() #12
  %10002 = load i32, ptr %10001, align 4, !tbaa !5
  %10003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9990, ptr noundef @.str.25, i32 noundef %9991, ptr noundef @.str.138, ptr noundef @.str.21, i32 noundef 482, ptr noundef %9994, ptr noundef %9997, ptr noundef %10000, i32 noundef %10002) #11
  br label %10004

10004:                                            ; preds = %9987, %9970
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #11
  br label %10005

10005:                                            ; preds = %10004
  br label %10006

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

10007:                                            ; No predecessors!
  br label %10008

10008:                                            ; preds = %10007
  br label %10009

10009:                                            ; preds = %10008, %9950
  br label %10010

10010:                                            ; preds = %10009
  br label %10011

10011:                                            ; preds = %10010
  br label %10012

10012:                                            ; preds = %10011
  %10013 = load i32, ptr @test_count, align 4, !tbaa !5
  %10014 = add nsw i32 %10013, 1
  store i32 %10014, ptr @test_count, align 4, !tbaa !5
  %10015 = load ptr, ptr %275, align 8, !tbaa !9
  %10016 = getelementptr inbounds %struct.s2n_connection, ptr %10015, i32 0, i32 34
  %10017 = load ptr, ptr %10016, align 8, !tbaa !54
  %10018 = icmp eq ptr %10017, null
  br i1 %10018, label %10072, label %10019

10019:                                            ; preds = %10012
  br label %10020

10020:                                            ; preds = %10019
  br label %10021

10021:                                            ; preds = %10020
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #11
  %10022 = call ptr @__errno_location() #12
  %10023 = load i32, ptr %10022, align 4, !tbaa !5
  store i32 %10023, ptr %279, align 4, !tbaa !5
  %10024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10025 = call i32 @s2n_print_stacktrace(ptr noundef %10024)
  %10026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10027 = trunc i8 %10026 to i1
  br i1 %10027, label %10028, label %10050

10028:                                            ; preds = %10021
  %10029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10030 = call i32 @fileno(ptr noundef %10029) #11
  %10031 = call i32 @isatty(i32 noundef %10030) #11
  %10032 = icmp ne i32 %10031, 0
  br i1 %10032, label %10033, label %10050

10033:                                            ; preds = %10028
  %10034 = load i32, ptr %279, align 4, !tbaa !5
  %10035 = call ptr @__errno_location() #12
  store i32 %10034, ptr %10035, align 4, !tbaa !5
  %10036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10037 = load i32, ptr @test_count, align 4, !tbaa !5
  %10038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10039 = load i32, ptr %10038, align 4, !tbaa !5
  %10040 = call ptr @s2n_strerror(i32 noundef %10039, ptr noundef @.str.24)
  %10041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10042 = load i32, ptr %10041, align 4, !tbaa !5
  %10043 = call ptr @s2n_strerror_debug(i32 noundef %10042, ptr noundef @.str.24)
  %10044 = call ptr @__errno_location() #12
  %10045 = load i32, ptr %10044, align 4, !tbaa !5
  %10046 = call ptr @strerror(i32 noundef %10045) #11
  %10047 = call ptr @__errno_location() #12
  %10048 = load i32, ptr %10047, align 4, !tbaa !5
  %10049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10036, ptr noundef @.str.22, i32 noundef %10037, ptr noundef @.str.139, ptr noundef @.str.21, i32 noundef 483, ptr noundef %10040, ptr noundef %10043, ptr noundef %10046, i32 noundef %10048) #11
  br label %10067

10050:                                            ; preds = %10028, %10021
  %10051 = load i32, ptr %279, align 4, !tbaa !5
  %10052 = call ptr @__errno_location() #12
  store i32 %10051, ptr %10052, align 4, !tbaa !5
  %10053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10054 = load i32, ptr @test_count, align 4, !tbaa !5
  %10055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10056 = load i32, ptr %10055, align 4, !tbaa !5
  %10057 = call ptr @s2n_strerror(i32 noundef %10056, ptr noundef @.str.24)
  %10058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10059 = load i32, ptr %10058, align 4, !tbaa !5
  %10060 = call ptr @s2n_strerror_debug(i32 noundef %10059, ptr noundef @.str.24)
  %10061 = call ptr @__errno_location() #12
  %10062 = load i32, ptr %10061, align 4, !tbaa !5
  %10063 = call ptr @strerror(i32 noundef %10062) #11
  %10064 = call ptr @__errno_location() #12
  %10065 = load i32, ptr %10064, align 4, !tbaa !5
  %10066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10053, ptr noundef @.str.25, i32 noundef %10054, ptr noundef @.str.139, ptr noundef @.str.21, i32 noundef 483, ptr noundef %10057, ptr noundef %10060, ptr noundef %10063, i32 noundef %10065) #11
  br label %10067

10067:                                            ; preds = %10050, %10033
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #11
  br label %10068

10068:                                            ; preds = %10067
  br label %10069

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

10070:                                            ; No predecessors!
  br label %10071

10071:                                            ; preds = %10070
  br label %10072

10072:                                            ; preds = %10071, %10012
  br label %10073

10073:                                            ; preds = %10072
  br label %10074

10074:                                            ; preds = %10073
  %10075 = call i32 @s2n_connection_ptr_free(ptr noundef %275)
  %10076 = getelementptr inbounds %struct.s2n_result, ptr %280, i32 0, i32 0
  store i32 %10075, ptr %10076, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #11
  %10077 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10077, ptr %281, align 8, !tbaa !9
  br label %10078

10078:                                            ; preds = %10074
  %10079 = load i32, ptr @test_count, align 4, !tbaa !5
  %10080 = add nsw i32 %10079, 1
  store i32 %10080, ptr @test_count, align 4, !tbaa !5
  %10081 = load ptr, ptr %281, align 8, !tbaa !9
  %10082 = icmp eq ptr %10081, null
  br i1 %10082, label %10083, label %10136

10083:                                            ; preds = %10078
  br label %10084

10084:                                            ; preds = %10083
  br label %10085

10085:                                            ; preds = %10084
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %10086 = call ptr @__errno_location() #12
  %10087 = load i32, ptr %10086, align 4, !tbaa !5
  store i32 %10087, ptr %282, align 4, !tbaa !5
  %10088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10089 = call i32 @s2n_print_stacktrace(ptr noundef %10088)
  %10090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10091 = trunc i8 %10090 to i1
  br i1 %10091, label %10092, label %10114

10092:                                            ; preds = %10085
  %10093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10094 = call i32 @fileno(ptr noundef %10093) #11
  %10095 = call i32 @isatty(i32 noundef %10094) #11
  %10096 = icmp ne i32 %10095, 0
  br i1 %10096, label %10097, label %10114

10097:                                            ; preds = %10092
  %10098 = load i32, ptr %282, align 4, !tbaa !5
  %10099 = call ptr @__errno_location() #12
  store i32 %10098, ptr %10099, align 4, !tbaa !5
  %10100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10101 = load i32, ptr @test_count, align 4, !tbaa !5
  %10102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10103 = load i32, ptr %10102, align 4, !tbaa !5
  %10104 = call ptr @s2n_strerror(i32 noundef %10103, ptr noundef @.str.24)
  %10105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10106 = load i32, ptr %10105, align 4, !tbaa !5
  %10107 = call ptr @s2n_strerror_debug(i32 noundef %10106, ptr noundef @.str.24)
  %10108 = call ptr @__errno_location() #12
  %10109 = load i32, ptr %10108, align 4, !tbaa !5
  %10110 = call ptr @strerror(i32 noundef %10109) #11
  %10111 = call ptr @__errno_location() #12
  %10112 = load i32, ptr %10111, align 4, !tbaa !5
  %10113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10100, ptr noundef @.str.22, i32 noundef %10101, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 490, ptr noundef %10104, ptr noundef %10107, ptr noundef %10110, i32 noundef %10112) #11
  br label %10131

10114:                                            ; preds = %10092, %10085
  %10115 = load i32, ptr %282, align 4, !tbaa !5
  %10116 = call ptr @__errno_location() #12
  store i32 %10115, ptr %10116, align 4, !tbaa !5
  %10117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10118 = load i32, ptr @test_count, align 4, !tbaa !5
  %10119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10120 = load i32, ptr %10119, align 4, !tbaa !5
  %10121 = call ptr @s2n_strerror(i32 noundef %10120, ptr noundef @.str.24)
  %10122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10123 = load i32, ptr %10122, align 4, !tbaa !5
  %10124 = call ptr @s2n_strerror_debug(i32 noundef %10123, ptr noundef @.str.24)
  %10125 = call ptr @__errno_location() #12
  %10126 = load i32, ptr %10125, align 4, !tbaa !5
  %10127 = call ptr @strerror(i32 noundef %10126) #11
  %10128 = call ptr @__errno_location() #12
  %10129 = load i32, ptr %10128, align 4, !tbaa !5
  %10130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10117, ptr noundef @.str.25, i32 noundef %10118, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 490, ptr noundef %10121, ptr noundef %10124, ptr noundef %10127, i32 noundef %10129) #11
  br label %10131

10131:                                            ; preds = %10114, %10097
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #11
  br label %10132

10132:                                            ; preds = %10131
  br label %10133

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

10134:                                            ; No predecessors!
  br label %10135

10135:                                            ; preds = %10134
  br label %10136

10136:                                            ; preds = %10135, %10078
  br label %10137

10137:                                            ; preds = %10136
  br label %10138

10138:                                            ; preds = %10137
  br label %10139

10139:                                            ; preds = %10138
  %10140 = load i32, ptr @test_count, align 4, !tbaa !5
  %10141 = add nsw i32 %10140, 1
  store i32 %10141, ptr @test_count, align 4, !tbaa !5
  %10142 = load ptr, ptr %281, align 8, !tbaa !9
  %10143 = call i32 @s2n_prf_free(ptr noundef %10142)
  %10144 = getelementptr inbounds %struct.s2n_result, ptr %283, i32 0, i32 0
  store i32 %10143, ptr %10144, align 4
  %10145 = getelementptr inbounds %struct.s2n_result, ptr %283, i32 0, i32 0
  %10146 = load i32, ptr %10145, align 4
  %10147 = call zeroext i1 @s2n_result_is_ok(i32 %10146)
  br i1 %10147, label %10201, label %10148

10148:                                            ; preds = %10139
  br label %10149

10149:                                            ; preds = %10148
  br label %10150

10150:                                            ; preds = %10149
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #11
  %10151 = call ptr @__errno_location() #12
  %10152 = load i32, ptr %10151, align 4, !tbaa !5
  store i32 %10152, ptr %284, align 4, !tbaa !5
  %10153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10154 = call i32 @s2n_print_stacktrace(ptr noundef %10153)
  %10155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10156 = trunc i8 %10155 to i1
  br i1 %10156, label %10157, label %10179

10157:                                            ; preds = %10150
  %10158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10159 = call i32 @fileno(ptr noundef %10158) #11
  %10160 = call i32 @isatty(i32 noundef %10159) #11
  %10161 = icmp ne i32 %10160, 0
  br i1 %10161, label %10162, label %10179

10162:                                            ; preds = %10157
  %10163 = load i32, ptr %284, align 4, !tbaa !5
  %10164 = call ptr @__errno_location() #12
  store i32 %10163, ptr %10164, align 4, !tbaa !5
  %10165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10166 = load i32, ptr @test_count, align 4, !tbaa !5
  %10167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10168 = load i32, ptr %10167, align 4, !tbaa !5
  %10169 = call ptr @s2n_strerror(i32 noundef %10168, ptr noundef @.str.24)
  %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_debug(i32 noundef %10171, ptr noundef @.str.24)
  %10173 = call ptr @__errno_location() #12
  %10174 = load i32, ptr %10173, align 4, !tbaa !5
  %10175 = call ptr @strerror(i32 noundef %10174) #11
  %10176 = call ptr @__errno_location() #12
  %10177 = load i32, ptr %10176, align 4, !tbaa !5
  %10178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10165, ptr noundef @.str.22, i32 noundef %10166, ptr noundef @.str.140, ptr noundef @.str.21, i32 noundef 491, ptr noundef %10169, ptr noundef %10172, ptr noundef %10175, i32 noundef %10177) #11
  br label %10196

10179:                                            ; preds = %10157, %10150
  %10180 = load i32, ptr %284, align 4, !tbaa !5
  %10181 = call ptr @__errno_location() #12
  store i32 %10180, ptr %10181, align 4, !tbaa !5
  %10182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10183 = load i32, ptr @test_count, align 4, !tbaa !5
  %10184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10185 = load i32, ptr %10184, align 4, !tbaa !5
  %10186 = call ptr @s2n_strerror(i32 noundef %10185, ptr noundef @.str.24)
  %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_debug(i32 noundef %10188, ptr noundef @.str.24)
  %10190 = call ptr @__errno_location() #12
  %10191 = load i32, ptr %10190, align 4, !tbaa !5
  %10192 = call ptr @strerror(i32 noundef %10191) #11
  %10193 = call ptr @__errno_location() #12
  %10194 = load i32, ptr %10193, align 4, !tbaa !5
  %10195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10182, ptr noundef @.str.25, i32 noundef %10183, ptr noundef @.str.140, ptr noundef @.str.21, i32 noundef 491, ptr noundef %10186, ptr noundef %10189, ptr noundef %10192, i32 noundef %10194) #11
  br label %10196

10196:                                            ; preds = %10179, %10162
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #11
  br label %10197

10197:                                            ; preds = %10196
  br label %10198

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

10199:                                            ; No predecessors!
  br label %10200

10200:                                            ; preds = %10199
  br label %10201

10201:                                            ; preds = %10200, %10139
  br label %10202

10202:                                            ; preds = %10201
  br label %10203

10203:                                            ; preds = %10202
  br label %10204

10204:                                            ; preds = %10203
  %10205 = load i32, ptr @test_count, align 4, !tbaa !5
  %10206 = add nsw i32 %10205, 1
  store i32 %10206, ptr @test_count, align 4, !tbaa !5
  %10207 = load ptr, ptr %281, align 8, !tbaa !9
  %10208 = getelementptr inbounds %struct.s2n_connection, ptr %10207, i32 0, i32 34
  %10209 = load ptr, ptr %10208, align 8, !tbaa !54
  %10210 = icmp eq ptr %10209, null
  br i1 %10210, label %10264, label %10211

10211:                                            ; preds = %10204
  br label %10212

10212:                                            ; preds = %10211
  br label %10213

10213:                                            ; preds = %10212
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #11
  %10214 = call ptr @__errno_location() #12
  %10215 = load i32, ptr %10214, align 4, !tbaa !5
  store i32 %10215, ptr %285, align 4, !tbaa !5
  %10216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10217 = call i32 @s2n_print_stacktrace(ptr noundef %10216)
  %10218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10219 = trunc i8 %10218 to i1
  br i1 %10219, label %10220, label %10242

10220:                                            ; preds = %10213
  %10221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10222 = call i32 @fileno(ptr noundef %10221) #11
  %10223 = call i32 @isatty(i32 noundef %10222) #11
  %10224 = icmp ne i32 %10223, 0
  br i1 %10224, label %10225, label %10242

10225:                                            ; preds = %10220
  %10226 = load i32, ptr %285, align 4, !tbaa !5
  %10227 = call ptr @__errno_location() #12
  store i32 %10226, ptr %10227, align 4, !tbaa !5
  %10228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10229 = load i32, ptr @test_count, align 4, !tbaa !5
  %10230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10231 = load i32, ptr %10230, align 4, !tbaa !5
  %10232 = call ptr @s2n_strerror(i32 noundef %10231, ptr noundef @.str.24)
  %10233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10234 = load i32, ptr %10233, align 4, !tbaa !5
  %10235 = call ptr @s2n_strerror_debug(i32 noundef %10234, ptr noundef @.str.24)
  %10236 = call ptr @__errno_location() #12
  %10237 = load i32, ptr %10236, align 4, !tbaa !5
  %10238 = call ptr @strerror(i32 noundef %10237) #11
  %10239 = call ptr @__errno_location() #12
  %10240 = load i32, ptr %10239, align 4, !tbaa !5
  %10241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10228, ptr noundef @.str.22, i32 noundef %10229, ptr noundef @.str.139, ptr noundef @.str.21, i32 noundef 492, ptr noundef %10232, ptr noundef %10235, ptr noundef %10238, i32 noundef %10240) #11
  br label %10259

10242:                                            ; preds = %10220, %10213
  %10243 = load i32, ptr %285, align 4, !tbaa !5
  %10244 = call ptr @__errno_location() #12
  store i32 %10243, ptr %10244, align 4, !tbaa !5
  %10245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10246 = load i32, ptr @test_count, align 4, !tbaa !5
  %10247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10248 = load i32, ptr %10247, align 4, !tbaa !5
  %10249 = call ptr @s2n_strerror(i32 noundef %10248, ptr noundef @.str.24)
  %10250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10251 = load i32, ptr %10250, align 4, !tbaa !5
  %10252 = call ptr @s2n_strerror_debug(i32 noundef %10251, ptr noundef @.str.24)
  %10253 = call ptr @__errno_location() #12
  %10254 = load i32, ptr %10253, align 4, !tbaa !5
  %10255 = call ptr @strerror(i32 noundef %10254) #11
  %10256 = call ptr @__errno_location() #12
  %10257 = load i32, ptr %10256, align 4, !tbaa !5
  %10258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10245, ptr noundef @.str.25, i32 noundef %10246, ptr noundef @.str.139, ptr noundef @.str.21, i32 noundef 492, ptr noundef %10249, ptr noundef %10252, ptr noundef %10255, i32 noundef %10257) #11
  br label %10259

10259:                                            ; preds = %10242, %10225
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #11
  br label %10260

10260:                                            ; preds = %10259
  br label %10261

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

10262:                                            ; No predecessors!
  br label %10263

10263:                                            ; preds = %10262
  br label %10264

10264:                                            ; preds = %10263, %10204
  br label %10265

10265:                                            ; preds = %10264
  br label %10266

10266:                                            ; preds = %10265
  br label %10267

10267:                                            ; preds = %10266
  %10268 = load i32, ptr @test_count, align 4, !tbaa !5
  %10269 = add nsw i32 %10268, 1
  store i32 %10269, ptr @test_count, align 4, !tbaa !5
  %10270 = load ptr, ptr %281, align 8, !tbaa !9
  %10271 = call i32 @s2n_connection_wipe(ptr noundef %10270)
  %10272 = icmp eq i32 %10271, -1
  br i1 %10272, label %10273, label %10326

10273:                                            ; preds = %10267
  br label %10274

10274:                                            ; preds = %10273
  br label %10275

10275:                                            ; preds = %10274
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #11
  %10276 = call ptr @__errno_location() #12
  %10277 = load i32, ptr %10276, align 4, !tbaa !5
  store i32 %10277, ptr %286, align 4, !tbaa !5
  %10278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10279 = call i32 @s2n_print_stacktrace(ptr noundef %10278)
  %10280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10281 = trunc i8 %10280 to i1
  br i1 %10281, label %10282, label %10304

10282:                                            ; preds = %10275
  %10283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10284 = call i32 @fileno(ptr noundef %10283) #11
  %10285 = call i32 @isatty(i32 noundef %10284) #11
  %10286 = icmp ne i32 %10285, 0
  br i1 %10286, label %10287, label %10304

10287:                                            ; preds = %10282
  %10288 = load i32, ptr %286, align 4, !tbaa !5
  %10289 = call ptr @__errno_location() #12
  store i32 %10288, ptr %10289, align 4, !tbaa !5
  %10290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10291 = load i32, ptr @test_count, align 4, !tbaa !5
  %10292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10293 = load i32, ptr %10292, align 4, !tbaa !5
  %10294 = call ptr @s2n_strerror(i32 noundef %10293, ptr noundef @.str.24)
  %10295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10296 = load i32, ptr %10295, align 4, !tbaa !5
  %10297 = call ptr @s2n_strerror_debug(i32 noundef %10296, ptr noundef @.str.24)
  %10298 = call ptr @__errno_location() #12
  %10299 = load i32, ptr %10298, align 4, !tbaa !5
  %10300 = call ptr @strerror(i32 noundef %10299) #11
  %10301 = call ptr @__errno_location() #12
  %10302 = load i32, ptr %10301, align 4, !tbaa !5
  %10303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10290, ptr noundef @.str.22, i32 noundef %10291, ptr noundef @.str.141, ptr noundef @.str.21, i32 noundef 494, ptr noundef %10294, ptr noundef %10297, ptr noundef %10300, i32 noundef %10302) #11
  br label %10321

10304:                                            ; preds = %10282, %10275
  %10305 = load i32, ptr %286, align 4, !tbaa !5
  %10306 = call ptr @__errno_location() #12
  store i32 %10305, ptr %10306, align 4, !tbaa !5
  %10307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10308 = load i32, ptr @test_count, align 4, !tbaa !5
  %10309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10310 = load i32, ptr %10309, align 4, !tbaa !5
  %10311 = call ptr @s2n_strerror(i32 noundef %10310, ptr noundef @.str.24)
  %10312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10313 = load i32, ptr %10312, align 4, !tbaa !5
  %10314 = call ptr @s2n_strerror_debug(i32 noundef %10313, ptr noundef @.str.24)
  %10315 = call ptr @__errno_location() #12
  %10316 = load i32, ptr %10315, align 4, !tbaa !5
  %10317 = call ptr @strerror(i32 noundef %10316) #11
  %10318 = call ptr @__errno_location() #12
  %10319 = load i32, ptr %10318, align 4, !tbaa !5
  %10320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10307, ptr noundef @.str.25, i32 noundef %10308, ptr noundef @.str.141, ptr noundef @.str.21, i32 noundef 494, ptr noundef %10311, ptr noundef %10314, ptr noundef %10317, i32 noundef %10319) #11
  br label %10321

10321:                                            ; preds = %10304, %10287
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #11
  br label %10322

10322:                                            ; preds = %10321
  br label %10323

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

10324:                                            ; No predecessors!
  br label %10325

10325:                                            ; preds = %10324
  br label %10326

10326:                                            ; preds = %10325, %10267
  br label %10327

10327:                                            ; preds = %10326
  br label %10328

10328:                                            ; preds = %10327
  br label %10329

10329:                                            ; preds = %10328
  %10330 = load i32, ptr @test_count, align 4, !tbaa !5
  %10331 = add nsw i32 %10330, 1
  store i32 %10331, ptr @test_count, align 4, !tbaa !5
  %10332 = load ptr, ptr %281, align 8, !tbaa !9
  %10333 = getelementptr inbounds %struct.s2n_connection, ptr %10332, i32 0, i32 34
  %10334 = load ptr, ptr %10333, align 8, !tbaa !54
  %10335 = icmp eq ptr %10334, null
  br i1 %10335, label %10336, label %10389

10336:                                            ; preds = %10329
  br label %10337

10337:                                            ; preds = %10336
  br label %10338

10338:                                            ; preds = %10337
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #11
  %10339 = call ptr @__errno_location() #12
  %10340 = load i32, ptr %10339, align 4, !tbaa !5
  store i32 %10340, ptr %287, align 4, !tbaa !5
  %10341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10342 = call i32 @s2n_print_stacktrace(ptr noundef %10341)
  %10343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10344 = trunc i8 %10343 to i1
  br i1 %10344, label %10345, label %10367

10345:                                            ; preds = %10338
  %10346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10347 = call i32 @fileno(ptr noundef %10346) #11
  %10348 = call i32 @isatty(i32 noundef %10347) #11
  %10349 = icmp ne i32 %10348, 0
  br i1 %10349, label %10350, label %10367

10350:                                            ; preds = %10345
  %10351 = load i32, ptr %287, align 4, !tbaa !5
  %10352 = call ptr @__errno_location() #12
  store i32 %10351, ptr %10352, align 4, !tbaa !5
  %10353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10354 = load i32, ptr @test_count, align 4, !tbaa !5
  %10355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10356 = load i32, ptr %10355, align 4, !tbaa !5
  %10357 = call ptr @s2n_strerror(i32 noundef %10356, ptr noundef @.str.24)
  %10358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10359 = load i32, ptr %10358, align 4, !tbaa !5
  %10360 = call ptr @s2n_strerror_debug(i32 noundef %10359, ptr noundef @.str.24)
  %10361 = call ptr @__errno_location() #12
  %10362 = load i32, ptr %10361, align 4, !tbaa !5
  %10363 = call ptr @strerror(i32 noundef %10362) #11
  %10364 = call ptr @__errno_location() #12
  %10365 = load i32, ptr %10364, align 4, !tbaa !5
  %10366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10353, ptr noundef @.str.22, i32 noundef %10354, ptr noundef @.str.137, ptr noundef @.str.21, i32 noundef 495, ptr noundef %10357, ptr noundef %10360, ptr noundef %10363, i32 noundef %10365) #11
  br label %10384

10367:                                            ; preds = %10345, %10338
  %10368 = load i32, ptr %287, align 4, !tbaa !5
  %10369 = call ptr @__errno_location() #12
  store i32 %10368, ptr %10369, align 4, !tbaa !5
  %10370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10371 = load i32, ptr @test_count, align 4, !tbaa !5
  %10372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10373 = load i32, ptr %10372, align 4, !tbaa !5
  %10374 = call ptr @s2n_strerror(i32 noundef %10373, ptr noundef @.str.24)
  %10375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10376 = load i32, ptr %10375, align 4, !tbaa !5
  %10377 = call ptr @s2n_strerror_debug(i32 noundef %10376, ptr noundef @.str.24)
  %10378 = call ptr @__errno_location() #12
  %10379 = load i32, ptr %10378, align 4, !tbaa !5
  %10380 = call ptr @strerror(i32 noundef %10379) #11
  %10381 = call ptr @__errno_location() #12
  %10382 = load i32, ptr %10381, align 4, !tbaa !5
  %10383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10370, ptr noundef @.str.25, i32 noundef %10371, ptr noundef @.str.137, ptr noundef @.str.21, i32 noundef 495, ptr noundef %10374, ptr noundef %10377, ptr noundef %10380, i32 noundef %10382) #11
  br label %10384

10384:                                            ; preds = %10367, %10350
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #11
  br label %10385

10385:                                            ; preds = %10384
  br label %10386

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

10387:                                            ; No predecessors!
  br label %10388

10388:                                            ; preds = %10387
  br label %10389

10389:                                            ; preds = %10388, %10329
  br label %10390

10390:                                            ; preds = %10389
  br label %10391

10391:                                            ; preds = %10390
  %10392 = call i32 @s2n_connection_ptr_free(ptr noundef %281)
  %10393 = getelementptr inbounds %struct.s2n_result, ptr %288, i32 0, i32 0
  store i32 %10392, ptr %10393, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %289) #11
  call void @llvm.memset.p0.i64(ptr align 8 %289, i8 0, i64 24, i1 false)
  br label %10394

10394:                                            ; preds = %10391
  %10395 = load i32, ptr @test_count, align 4, !tbaa !5
  %10396 = add nsw i32 %10395, 1
  store i32 %10396, ptr @test_count, align 4, !tbaa !5
  %10397 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %10398 = load ptr, ptr %10397, align 8, !tbaa !47
  %10399 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %10400 = load i32, ptr %10399, align 8, !tbaa !46
  %10401 = call i32 @s2n_blob_init(ptr noundef %289, ptr noundef %10398, i32 noundef %10400)
  %10402 = icmp eq i32 %10401, -1
  br i1 %10402, label %10403, label %10456

10403:                                            ; preds = %10394
  br label %10404

10404:                                            ; preds = %10403
  br label %10405

10405:                                            ; preds = %10404
  call void @llvm.lifetime.start.p0(i64 4, ptr %290) #11
  %10406 = call ptr @__errno_location() #12
  %10407 = load i32, ptr %10406, align 4, !tbaa !5
  store i32 %10407, ptr %290, align 4, !tbaa !5
  %10408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10409 = call i32 @s2n_print_stacktrace(ptr noundef %10408)
  %10410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10411 = trunc i8 %10410 to i1
  br i1 %10411, label %10412, label %10434

10412:                                            ; preds = %10405
  %10413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10414 = call i32 @fileno(ptr noundef %10413) #11
  %10415 = call i32 @isatty(i32 noundef %10414) #11
  %10416 = icmp ne i32 %10415, 0
  br i1 %10416, label %10417, label %10434

10417:                                            ; preds = %10412
  %10418 = load i32, ptr %290, align 4, !tbaa !5
  %10419 = call ptr @__errno_location() #12
  store i32 %10418, ptr %10419, align 4, !tbaa !5
  %10420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10421 = load i32, ptr @test_count, align 4, !tbaa !5
  %10422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10423 = load i32, ptr %10422, align 4, !tbaa !5
  %10424 = call ptr @s2n_strerror(i32 noundef %10423, ptr noundef @.str.24)
  %10425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10426 = load i32, ptr %10425, align 4, !tbaa !5
  %10427 = call ptr @s2n_strerror_debug(i32 noundef %10426, ptr noundef @.str.24)
  %10428 = call ptr @__errno_location() #12
  %10429 = load i32, ptr %10428, align 4, !tbaa !5
  %10430 = call ptr @strerror(i32 noundef %10429) #11
  %10431 = call ptr @__errno_location() #12
  %10432 = load i32, ptr %10431, align 4, !tbaa !5
  %10433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10420, ptr noundef @.str.22, i32 noundef %10421, ptr noundef @.str.142, ptr noundef @.str.21, i32 noundef 501, ptr noundef %10424, ptr noundef %10427, ptr noundef %10430, i32 noundef %10432) #11
  br label %10451

10434:                                            ; preds = %10412, %10405
  %10435 = load i32, ptr %290, align 4, !tbaa !5
  %10436 = call ptr @__errno_location() #12
  store i32 %10435, ptr %10436, align 4, !tbaa !5
  %10437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10438 = load i32, ptr @test_count, align 4, !tbaa !5
  %10439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10440 = load i32, ptr %10439, align 4, !tbaa !5
  %10441 = call ptr @s2n_strerror(i32 noundef %10440, ptr noundef @.str.24)
  %10442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10443 = load i32, ptr %10442, align 4, !tbaa !5
  %10444 = call ptr @s2n_strerror_debug(i32 noundef %10443, ptr noundef @.str.24)
  %10445 = call ptr @__errno_location() #12
  %10446 = load i32, ptr %10445, align 4, !tbaa !5
  %10447 = call ptr @strerror(i32 noundef %10446) #11
  %10448 = call ptr @__errno_location() #12
  %10449 = load i32, ptr %10448, align 4, !tbaa !5
  %10450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10437, ptr noundef @.str.25, i32 noundef %10438, ptr noundef @.str.142, ptr noundef @.str.21, i32 noundef 501, ptr noundef %10441, ptr noundef %10444, ptr noundef %10447, i32 noundef %10449) #11
  br label %10451

10451:                                            ; preds = %10434, %10417
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #11
  br label %10452

10452:                                            ; preds = %10451
  br label %10453

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

10454:                                            ; No predecessors!
  br label %10455

10455:                                            ; preds = %10454
  br label %10456

10456:                                            ; preds = %10455, %10394
  br label %10457

10457:                                            ; preds = %10456
  br label %10458

10458:                                            ; preds = %10457
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #11
  %10459 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10459, ptr %291, align 8, !tbaa !9
  br label %10460

10460:                                            ; preds = %10458
  %10461 = load i32, ptr @test_count, align 4, !tbaa !5
  %10462 = add nsw i32 %10461, 1
  store i32 %10462, ptr @test_count, align 4, !tbaa !5
  %10463 = load ptr, ptr %291, align 8, !tbaa !9
  %10464 = icmp eq ptr %10463, null
  br i1 %10464, label %10465, label %10518

10465:                                            ; preds = %10460
  br label %10466

10466:                                            ; preds = %10465
  br label %10467

10467:                                            ; preds = %10466
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #11
  %10468 = call ptr @__errno_location() #12
  %10469 = load i32, ptr %10468, align 4, !tbaa !5
  store i32 %10469, ptr %292, align 4, !tbaa !5
  %10470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10471 = call i32 @s2n_print_stacktrace(ptr noundef %10470)
  %10472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10473 = trunc i8 %10472 to i1
  br i1 %10473, label %10474, label %10496

10474:                                            ; preds = %10467
  %10475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10476 = call i32 @fileno(ptr noundef %10475) #11
  %10477 = call i32 @isatty(i32 noundef %10476) #11
  %10478 = icmp ne i32 %10477, 0
  br i1 %10478, label %10479, label %10496

10479:                                            ; preds = %10474
  %10480 = load i32, ptr %292, align 4, !tbaa !5
  %10481 = call ptr @__errno_location() #12
  store i32 %10480, ptr %10481, align 4, !tbaa !5
  %10482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10483 = load i32, ptr @test_count, align 4, !tbaa !5
  %10484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10485 = load i32, ptr %10484, align 4, !tbaa !5
  %10486 = call ptr @s2n_strerror(i32 noundef %10485, ptr noundef @.str.24)
  %10487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10488 = load i32, ptr %10487, align 4, !tbaa !5
  %10489 = call ptr @s2n_strerror_debug(i32 noundef %10488, ptr noundef @.str.24)
  %10490 = call ptr @__errno_location() #12
  %10491 = load i32, ptr %10490, align 4, !tbaa !5
  %10492 = call ptr @strerror(i32 noundef %10491) #11
  %10493 = call ptr @__errno_location() #12
  %10494 = load i32, ptr %10493, align 4, !tbaa !5
  %10495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10482, ptr noundef @.str.22, i32 noundef %10483, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 505, ptr noundef %10486, ptr noundef %10489, ptr noundef %10492, i32 noundef %10494) #11
  br label %10513

10496:                                            ; preds = %10474, %10467
  %10497 = load i32, ptr %292, align 4, !tbaa !5
  %10498 = call ptr @__errno_location() #12
  store i32 %10497, ptr %10498, align 4, !tbaa !5
  %10499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10500 = load i32, ptr @test_count, align 4, !tbaa !5
  %10501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10502 = load i32, ptr %10501, align 4, !tbaa !5
  %10503 = call ptr @s2n_strerror(i32 noundef %10502, ptr noundef @.str.24)
  %10504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10505 = load i32, ptr %10504, align 4, !tbaa !5
  %10506 = call ptr @s2n_strerror_debug(i32 noundef %10505, ptr noundef @.str.24)
  %10507 = call ptr @__errno_location() #12
  %10508 = load i32, ptr %10507, align 4, !tbaa !5
  %10509 = call ptr @strerror(i32 noundef %10508) #11
  %10510 = call ptr @__errno_location() #12
  %10511 = load i32, ptr %10510, align 4, !tbaa !5
  %10512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10499, ptr noundef @.str.25, i32 noundef %10500, ptr noundef @.str.78, ptr noundef @.str.21, i32 noundef 505, ptr noundef %10503, ptr noundef %10506, ptr noundef %10509, i32 noundef %10511) #11
  br label %10513

10513:                                            ; preds = %10496, %10479
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #11
  br label %10514

10514:                                            ; preds = %10513
  br label %10515

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

10516:                                            ; No predecessors!
  br label %10517

10517:                                            ; preds = %10516
  br label %10518

10518:                                            ; preds = %10517, %10460
  br label %10519

10519:                                            ; preds = %10518
  br label %10520

10520:                                            ; preds = %10519
  br label %10521

10521:                                            ; preds = %10520
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #11
  %10522 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %10523 = load i32, ptr %10522, align 8, !tbaa !46
  store i32 %10523, ptr %293, align 4, !tbaa !5
  %10524 = load i32, ptr %293, align 4, !tbaa !5
  %10525 = icmp ne i32 %10524, 0
  br i1 %10525, label %10526, label %10591

10526:                                            ; preds = %10521
  %10527 = load ptr, ptr %291, align 8, !tbaa !9
  %10528 = getelementptr inbounds %struct.s2n_connection, ptr %10527, i32 0, i32 28
  %10529 = getelementptr inbounds %struct.s2n_secrets, ptr %10528, i32 0, i32 0
  %10530 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %10529, i32 0, i32 0
  %10531 = getelementptr inbounds [48 x i8], ptr %10530, i64 0, i64 0
  %10532 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %10533 = load ptr, ptr %10532, align 8, !tbaa !47
  %10534 = load i32, ptr %293, align 4, !tbaa !5
  %10535 = zext i32 %10534 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %10531, ptr align 1 %10533, i64 %10535, i1 false)
  %10536 = icmp eq ptr %10531, null
  br i1 %10536, label %10537, label %10590

10537:                                            ; preds = %10526
  br label %10538

10538:                                            ; preds = %10537
  br label %10539

10539:                                            ; preds = %10538
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #11
  %10540 = call ptr @__errno_location() #12
  %10541 = load i32, ptr %10540, align 4, !tbaa !5
  store i32 %10541, ptr %294, align 4, !tbaa !5
  %10542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10543 = call i32 @s2n_print_stacktrace(ptr noundef %10542)
  %10544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10545 = trunc i8 %10544 to i1
  br i1 %10545, label %10546, label %10568

10546:                                            ; preds = %10539
  %10547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10548 = call i32 @fileno(ptr noundef %10547) #11
  %10549 = call i32 @isatty(i32 noundef %10548) #11
  %10550 = icmp ne i32 %10549, 0
  br i1 %10550, label %10551, label %10568

10551:                                            ; preds = %10546
  %10552 = load i32, ptr %294, align 4, !tbaa !5
  %10553 = call ptr @__errno_location() #12
  store i32 %10552, ptr %10553, align 4, !tbaa !5
  %10554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10555 = load i32, ptr @test_count, align 4, !tbaa !5
  %10556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10557 = load i32, ptr %10556, align 4, !tbaa !5
  %10558 = call ptr @s2n_strerror(i32 noundef %10557, ptr noundef @.str.24)
  %10559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10560 = load i32, ptr %10559, align 4, !tbaa !5
  %10561 = call ptr @s2n_strerror_debug(i32 noundef %10560, ptr noundef @.str.24)
  %10562 = call ptr @__errno_location() #12
  %10563 = load i32, ptr %10562, align 4, !tbaa !5
  %10564 = call ptr @strerror(i32 noundef %10563) #11
  %10565 = call ptr @__errno_location() #12
  %10566 = load i32, ptr %10565, align 4, !tbaa !5
  %10567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10554, ptr noundef @.str.22, i32 noundef %10555, ptr noundef @.str.79, ptr noundef @.str.21, i32 noundef 506, ptr noundef %10558, ptr noundef %10561, ptr noundef %10564, i32 noundef %10566) #11
  br label %10585

10568:                                            ; preds = %10546, %10539
  %10569 = load i32, ptr %294, align 4, !tbaa !5
  %10570 = call ptr @__errno_location() #12
  store i32 %10569, ptr %10570, align 4, !tbaa !5
  %10571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10572 = load i32, ptr @test_count, align 4, !tbaa !5
  %10573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10574 = load i32, ptr %10573, align 4, !tbaa !5
  %10575 = call ptr @s2n_strerror(i32 noundef %10574, ptr noundef @.str.24)
  %10576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10577 = load i32, ptr %10576, align 4, !tbaa !5
  %10578 = call ptr @s2n_strerror_debug(i32 noundef %10577, ptr noundef @.str.24)
  %10579 = call ptr @__errno_location() #12
  %10580 = load i32, ptr %10579, align 4, !tbaa !5
  %10581 = call ptr @strerror(i32 noundef %10580) #11
  %10582 = call ptr @__errno_location() #12
  %10583 = load i32, ptr %10582, align 4, !tbaa !5
  %10584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10571, ptr noundef @.str.25, i32 noundef %10572, ptr noundef @.str.79, ptr noundef @.str.21, i32 noundef 506, ptr noundef %10575, ptr noundef %10578, ptr noundef %10581, i32 noundef %10583) #11
  br label %10585

10585:                                            ; preds = %10568, %10551
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #11
  br label %10586

10586:                                            ; preds = %10585
  br label %10587

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

10588:                                            ; No predecessors!
  br label %10589

10589:                                            ; preds = %10588
  br label %10590

10590:                                            ; preds = %10589, %10526
  br label %10591

10591:                                            ; preds = %10590, %10521
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #11
  br label %10592

10592:                                            ; preds = %10591
  br label %10593

10593:                                            ; preds = %10592
  br label %10594

10594:                                            ; preds = %10593
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #11
  %10595 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %10596 = load i32, ptr %10595, align 8, !tbaa !46
  store i32 %10596, ptr %295, align 4, !tbaa !5
  %10597 = load i32, ptr %295, align 4, !tbaa !5
  %10598 = icmp ne i32 %10597, 0
  br i1 %10598, label %10599, label %10663

10599:                                            ; preds = %10594
  %10600 = load ptr, ptr %291, align 8, !tbaa !9
  %10601 = getelementptr inbounds %struct.s2n_connection, ptr %10600, i32 0, i32 32
  %10602 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10601, i32 0, i32 12
  %10603 = getelementptr inbounds [32 x i8], ptr %10602, i64 0, i64 0
  %10604 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %10605 = load ptr, ptr %10604, align 8, !tbaa !47
  %10606 = load i32, ptr %295, align 4, !tbaa !5
  %10607 = zext i32 %10606 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %10603, ptr align 1 %10605, i64 %10607, i1 false)
  %10608 = icmp eq ptr %10603, null
  br i1 %10608, label %10609, label %10662

10609:                                            ; preds = %10599
  br label %10610

10610:                                            ; preds = %10609
  br label %10611

10611:                                            ; preds = %10610
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #11
  %10612 = call ptr @__errno_location() #12
  %10613 = load i32, ptr %10612, align 4, !tbaa !5
  store i32 %10613, ptr %296, align 4, !tbaa !5
  %10614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10615 = call i32 @s2n_print_stacktrace(ptr noundef %10614)
  %10616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10617 = trunc i8 %10616 to i1
  br i1 %10617, label %10618, label %10640

10618:                                            ; preds = %10611
  %10619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10620 = call i32 @fileno(ptr noundef %10619) #11
  %10621 = call i32 @isatty(i32 noundef %10620) #11
  %10622 = icmp ne i32 %10621, 0
  br i1 %10622, label %10623, label %10640

10623:                                            ; preds = %10618
  %10624 = load i32, ptr %296, align 4, !tbaa !5
  %10625 = call ptr @__errno_location() #12
  store i32 %10624, ptr %10625, align 4, !tbaa !5
  %10626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10627 = load i32, ptr @test_count, align 4, !tbaa !5
  %10628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10629 = load i32, ptr %10628, align 4, !tbaa !5
  %10630 = call ptr @s2n_strerror(i32 noundef %10629, ptr noundef @.str.24)
  %10631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10632 = load i32, ptr %10631, align 4, !tbaa !5
  %10633 = call ptr @s2n_strerror_debug(i32 noundef %10632, ptr noundef @.str.24)
  %10634 = call ptr @__errno_location() #12
  %10635 = load i32, ptr %10634, align 4, !tbaa !5
  %10636 = call ptr @strerror(i32 noundef %10635) #11
  %10637 = call ptr @__errno_location() #12
  %10638 = load i32, ptr %10637, align 4, !tbaa !5
  %10639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10626, ptr noundef @.str.22, i32 noundef %10627, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 507, ptr noundef %10630, ptr noundef %10633, ptr noundef %10636, i32 noundef %10638) #11
  br label %10657

10640:                                            ; preds = %10618, %10611
  %10641 = load i32, ptr %296, align 4, !tbaa !5
  %10642 = call ptr @__errno_location() #12
  store i32 %10641, ptr %10642, align 4, !tbaa !5
  %10643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10644 = load i32, ptr @test_count, align 4, !tbaa !5
  %10645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10646 = load i32, ptr %10645, align 4, !tbaa !5
  %10647 = call ptr @s2n_strerror(i32 noundef %10646, ptr noundef @.str.24)
  %10648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10649 = load i32, ptr %10648, align 4, !tbaa !5
  %10650 = call ptr @s2n_strerror_debug(i32 noundef %10649, ptr noundef @.str.24)
  %10651 = call ptr @__errno_location() #12
  %10652 = load i32, ptr %10651, align 4, !tbaa !5
  %10653 = call ptr @strerror(i32 noundef %10652) #11
  %10654 = call ptr @__errno_location() #12
  %10655 = load i32, ptr %10654, align 4, !tbaa !5
  %10656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10643, ptr noundef @.str.25, i32 noundef %10644, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 507, ptr noundef %10647, ptr noundef %10650, ptr noundef %10653, i32 noundef %10655) #11
  br label %10657

10657:                                            ; preds = %10640, %10623
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #11
  br label %10658

10658:                                            ; preds = %10657
  br label %10659

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

10660:                                            ; No predecessors!
  br label %10661

10661:                                            ; preds = %10660
  br label %10662

10662:                                            ; preds = %10661, %10599
  br label %10663

10663:                                            ; preds = %10662, %10594
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #11
  br label %10664

10664:                                            ; preds = %10663
  br label %10665

10665:                                            ; preds = %10664
  br label %10666

10666:                                            ; preds = %10665
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #11
  %10667 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 1
  %10668 = load i32, ptr %10667, align 8, !tbaa !46
  store i32 %10668, ptr %297, align 4, !tbaa !5
  %10669 = load i32, ptr %297, align 4, !tbaa !5
  %10670 = icmp ne i32 %10669, 0
  br i1 %10670, label %10671, label %10735

10671:                                            ; preds = %10666
  %10672 = load ptr, ptr %291, align 8, !tbaa !9
  %10673 = getelementptr inbounds %struct.s2n_connection, ptr %10672, i32 0, i32 32
  %10674 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %10673, i32 0, i32 13
  %10675 = getelementptr inbounds [32 x i8], ptr %10674, i64 0, i64 0
  %10676 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 0
  %10677 = load ptr, ptr %10676, align 8, !tbaa !47
  %10678 = load i32, ptr %297, align 4, !tbaa !5
  %10679 = zext i32 %10678 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %10675, ptr align 1 %10677, i64 %10679, i1 false)
  %10680 = icmp eq ptr %10675, null
  br i1 %10680, label %10681, label %10734

10681:                                            ; preds = %10671
  br label %10682

10682:                                            ; preds = %10681
  br label %10683

10683:                                            ; preds = %10682
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #11
  %10684 = call ptr @__errno_location() #12
  %10685 = load i32, ptr %10684, align 4, !tbaa !5
  store i32 %10685, ptr %298, align 4, !tbaa !5
  %10686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10687 = call i32 @s2n_print_stacktrace(ptr noundef %10686)
  %10688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10689 = trunc i8 %10688 to i1
  br i1 %10689, label %10690, label %10712

10690:                                            ; preds = %10683
  %10691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10692 = call i32 @fileno(ptr noundef %10691) #11
  %10693 = call i32 @isatty(i32 noundef %10692) #11
  %10694 = icmp ne i32 %10693, 0
  br i1 %10694, label %10695, label %10712

10695:                                            ; preds = %10690
  %10696 = load i32, ptr %298, align 4, !tbaa !5
  %10697 = call ptr @__errno_location() #12
  store i32 %10696, ptr %10697, align 4, !tbaa !5
  %10698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10699 = load i32, ptr @test_count, align 4, !tbaa !5
  %10700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10701 = load i32, ptr %10700, align 4, !tbaa !5
  %10702 = call ptr @s2n_strerror(i32 noundef %10701, ptr noundef @.str.24)
  %10703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10704 = load i32, ptr %10703, align 4, !tbaa !5
  %10705 = call ptr @s2n_strerror_debug(i32 noundef %10704, ptr noundef @.str.24)
  %10706 = call ptr @__errno_location() #12
  %10707 = load i32, ptr %10706, align 4, !tbaa !5
  %10708 = call ptr @strerror(i32 noundef %10707) #11
  %10709 = call ptr @__errno_location() #12
  %10710 = load i32, ptr %10709, align 4, !tbaa !5
  %10711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10698, ptr noundef @.str.22, i32 noundef %10699, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 508, ptr noundef %10702, ptr noundef %10705, ptr noundef %10708, i32 noundef %10710) #11
  br label %10729

10712:                                            ; preds = %10690, %10683
  %10713 = load i32, ptr %298, align 4, !tbaa !5
  %10714 = call ptr @__errno_location() #12
  store i32 %10713, ptr %10714, align 4, !tbaa !5
  %10715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10716 = load i32, ptr @test_count, align 4, !tbaa !5
  %10717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10718 = load i32, ptr %10717, align 4, !tbaa !5
  %10719 = call ptr @s2n_strerror(i32 noundef %10718, ptr noundef @.str.24)
  %10720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10721 = load i32, ptr %10720, align 4, !tbaa !5
  %10722 = call ptr @s2n_strerror_debug(i32 noundef %10721, ptr noundef @.str.24)
  %10723 = call ptr @__errno_location() #12
  %10724 = load i32, ptr %10723, align 4, !tbaa !5
  %10725 = call ptr @strerror(i32 noundef %10724) #11
  %10726 = call ptr @__errno_location() #12
  %10727 = load i32, ptr %10726, align 4, !tbaa !5
  %10728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10715, ptr noundef @.str.25, i32 noundef %10716, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 508, ptr noundef %10719, ptr noundef %10722, ptr noundef %10725, i32 noundef %10727) #11
  br label %10729

10729:                                            ; preds = %10712, %10695
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #11
  br label %10730

10730:                                            ; preds = %10729
  br label %10731

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

10732:                                            ; No predecessors!
  br label %10733

10733:                                            ; preds = %10732
  br label %10734

10734:                                            ; preds = %10733, %10671
  br label %10735

10735:                                            ; preds = %10734, %10666
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #11
  br label %10736

10736:                                            ; preds = %10735
  br label %10737

10737:                                            ; preds = %10736
  br label %10738

10738:                                            ; preds = %10737
  %10739 = load i32, ptr @test_count, align 4, !tbaa !5
  %10740 = add nsw i32 %10739, 1
  store i32 %10740, ptr @test_count, align 4, !tbaa !5
  %10741 = load ptr, ptr %291, align 8, !tbaa !9
  %10742 = call i32 @s2n_prf_tls_master_secret(ptr noundef %10741, ptr noundef %289)
  %10743 = icmp eq i32 %10742, -1
  br i1 %10743, label %10744, label %10797

10744:                                            ; preds = %10738
  br label %10745

10745:                                            ; preds = %10744
  br label %10746

10746:                                            ; preds = %10745
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #11
  %10747 = call ptr @__errno_location() #12
  %10748 = load i32, ptr %10747, align 4, !tbaa !5
  store i32 %10748, ptr %299, align 4, !tbaa !5
  %10749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10750 = call i32 @s2n_print_stacktrace(ptr noundef %10749)
  %10751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10752 = trunc i8 %10751 to i1
  br i1 %10752, label %10753, label %10775

10753:                                            ; preds = %10746
  %10754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10755 = call i32 @fileno(ptr noundef %10754) #11
  %10756 = call i32 @isatty(i32 noundef %10755) #11
  %10757 = icmp ne i32 %10756, 0
  br i1 %10757, label %10758, label %10775

10758:                                            ; preds = %10753
  %10759 = load i32, ptr %299, align 4, !tbaa !5
  %10760 = call ptr @__errno_location() #12
  store i32 %10759, ptr %10760, align 4, !tbaa !5
  %10761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10762 = load i32, ptr @test_count, align 4, !tbaa !5
  %10763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10764 = load i32, ptr %10763, align 4, !tbaa !5
  %10765 = call ptr @s2n_strerror(i32 noundef %10764, ptr noundef @.str.24)
  %10766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10767 = load i32, ptr %10766, align 4, !tbaa !5
  %10768 = call ptr @s2n_strerror_debug(i32 noundef %10767, ptr noundef @.str.24)
  %10769 = call ptr @__errno_location() #12
  %10770 = load i32, ptr %10769, align 4, !tbaa !5
  %10771 = call ptr @strerror(i32 noundef %10770) #11
  %10772 = call ptr @__errno_location() #12
  %10773 = load i32, ptr %10772, align 4, !tbaa !5
  %10774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10761, ptr noundef @.str.22, i32 noundef %10762, ptr noundef @.str.83, ptr noundef @.str.21, i32 noundef 509, ptr noundef %10765, ptr noundef %10768, ptr noundef %10771, i32 noundef %10773) #11
  br label %10792

10775:                                            ; preds = %10753, %10746
  %10776 = load i32, ptr %299, align 4, !tbaa !5
  %10777 = call ptr @__errno_location() #12
  store i32 %10776, ptr %10777, align 4, !tbaa !5
  %10778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10779 = load i32, ptr @test_count, align 4, !tbaa !5
  %10780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10781 = load i32, ptr %10780, align 4, !tbaa !5
  %10782 = call ptr @s2n_strerror(i32 noundef %10781, ptr noundef @.str.24)
  %10783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10784 = load i32, ptr %10783, align 4, !tbaa !5
  %10785 = call ptr @s2n_strerror_debug(i32 noundef %10784, ptr noundef @.str.24)
  %10786 = call ptr @__errno_location() #12
  %10787 = load i32, ptr %10786, align 4, !tbaa !5
  %10788 = call ptr @strerror(i32 noundef %10787) #11
  %10789 = call ptr @__errno_location() #12
  %10790 = load i32, ptr %10789, align 4, !tbaa !5
  %10791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10778, ptr noundef @.str.25, i32 noundef %10779, ptr noundef @.str.83, ptr noundef @.str.21, i32 noundef 509, ptr noundef %10782, ptr noundef %10785, ptr noundef %10788, i32 noundef %10790) #11
  br label %10792

10792:                                            ; preds = %10775, %10758
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #11
  br label %10793

10793:                                            ; preds = %10792
  br label %10794

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

10795:                                            ; No predecessors!
  br label %10796

10796:                                            ; preds = %10795
  br label %10797

10797:                                            ; preds = %10796, %10738
  br label %10798

10798:                                            ; preds = %10797
  br label %10799

10799:                                            ; preds = %10798
  br label %10800

10800:                                            ; preds = %10799
  %10801 = load i32, ptr @test_count, align 4, !tbaa !5
  %10802 = add nsw i32 %10801, 1
  store i32 %10802, ptr @test_count, align 4, !tbaa !5
  %10803 = load ptr, ptr %291, align 8, !tbaa !9
  %10804 = getelementptr inbounds %struct.s2n_connection, ptr %10803, i32 0, i32 28
  %10805 = getelementptr inbounds %struct.s2n_secrets, ptr %10804, i32 0, i32 0
  %10806 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %10805, i32 0, i32 1
  %10807 = getelementptr inbounds [48 x i8], ptr %10806, i64 0, i64 0
  %10808 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 0
  %10809 = load ptr, ptr %10808, align 8, !tbaa !47
  %10810 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 1
  %10811 = load i32, ptr %10810, align 8, !tbaa !46
  %10812 = zext i32 %10811 to i64
  %10813 = call i32 @memcmp(ptr noundef %10807, ptr noundef %10809, i64 noundef %10812) #14
  %10814 = icmp eq i32 %10813, 0
  br i1 %10814, label %10868, label %10815

10815:                                            ; preds = %10800
  br label %10816

10816:                                            ; preds = %10815
  br label %10817

10817:                                            ; preds = %10816
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #11
  %10818 = call ptr @__errno_location() #12
  %10819 = load i32, ptr %10818, align 4, !tbaa !5
  store i32 %10819, ptr %300, align 4, !tbaa !5
  %10820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10821 = call i32 @s2n_print_stacktrace(ptr noundef %10820)
  %10822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10823 = trunc i8 %10822 to i1
  br i1 %10823, label %10824, label %10846

10824:                                            ; preds = %10817
  %10825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10826 = call i32 @fileno(ptr noundef %10825) #11
  %10827 = call i32 @isatty(i32 noundef %10826) #11
  %10828 = icmp ne i32 %10827, 0
  br i1 %10828, label %10829, label %10846

10829:                                            ; preds = %10824
  %10830 = load i32, ptr %300, align 4, !tbaa !5
  %10831 = call ptr @__errno_location() #12
  store i32 %10830, ptr %10831, align 4, !tbaa !5
  %10832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10833 = load i32, ptr @test_count, align 4, !tbaa !5
  %10834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10835 = load i32, ptr %10834, align 4, !tbaa !5
  %10836 = call ptr @s2n_strerror(i32 noundef %10835, ptr noundef @.str.24)
  %10837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10838 = load i32, ptr %10837, align 4, !tbaa !5
  %10839 = call ptr @s2n_strerror_debug(i32 noundef %10838, ptr noundef @.str.24)
  %10840 = call ptr @__errno_location() #12
  %10841 = load i32, ptr %10840, align 4, !tbaa !5
  %10842 = call ptr @strerror(i32 noundef %10841) #11
  %10843 = call ptr @__errno_location() #12
  %10844 = load i32, ptr %10843, align 4, !tbaa !5
  %10845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10832, ptr noundef @.str.22, i32 noundef %10833, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 510, ptr noundef %10836, ptr noundef %10839, ptr noundef %10842, i32 noundef %10844) #11
  br label %10863

10846:                                            ; preds = %10824, %10817
  %10847 = load i32, ptr %300, align 4, !tbaa !5
  %10848 = call ptr @__errno_location() #12
  store i32 %10847, ptr %10848, align 4, !tbaa !5
  %10849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10850 = load i32, ptr @test_count, align 4, !tbaa !5
  %10851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10852 = load i32, ptr %10851, align 4, !tbaa !5
  %10853 = call ptr @s2n_strerror(i32 noundef %10852, ptr noundef @.str.24)
  %10854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10855 = load i32, ptr %10854, align 4, !tbaa !5
  %10856 = call ptr @s2n_strerror_debug(i32 noundef %10855, ptr noundef @.str.24)
  %10857 = call ptr @__errno_location() #12
  %10858 = load i32, ptr %10857, align 4, !tbaa !5
  %10859 = call ptr @strerror(i32 noundef %10858) #11
  %10860 = call ptr @__errno_location() #12
  %10861 = load i32, ptr %10860, align 4, !tbaa !5
  %10862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10849, ptr noundef @.str.25, i32 noundef %10850, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 510, ptr noundef %10853, ptr noundef %10856, ptr noundef %10859, i32 noundef %10861) #11
  br label %10863

10863:                                            ; preds = %10846, %10829
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #11
  br label %10864

10864:                                            ; preds = %10863
  br label %10865

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

10866:                                            ; No predecessors!
  br label %10867

10867:                                            ; preds = %10866
  br label %10868

10868:                                            ; preds = %10867, %10800
  br label %10869

10869:                                            ; preds = %10868
  br label %10870

10870:                                            ; preds = %10869
  br label %10871

10871:                                            ; preds = %10870
  %10872 = load i32, ptr @test_count, align 4, !tbaa !5
  %10873 = add nsw i32 %10872, 1
  store i32 %10873, ptr @test_count, align 4, !tbaa !5
  %10874 = load ptr, ptr %291, align 8, !tbaa !9
  %10875 = call i32 @s2n_connection_free_handshake(ptr noundef %10874)
  %10876 = icmp eq i32 %10875, -1
  br i1 %10876, label %10877, label %10930

10877:                                            ; preds = %10871
  br label %10878

10878:                                            ; preds = %10877
  br label %10879

10879:                                            ; preds = %10878
  call void @llvm.lifetime.start.p0(i64 4, ptr %301) #11
  %10880 = call ptr @__errno_location() #12
  %10881 = load i32, ptr %10880, align 4, !tbaa !5
  store i32 %10881, ptr %301, align 4, !tbaa !5
  %10882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10883 = call i32 @s2n_print_stacktrace(ptr noundef %10882)
  %10884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10885 = trunc i8 %10884 to i1
  br i1 %10885, label %10886, label %10908

10886:                                            ; preds = %10879
  %10887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10888 = call i32 @fileno(ptr noundef %10887) #11
  %10889 = call i32 @isatty(i32 noundef %10888) #11
  %10890 = icmp ne i32 %10889, 0
  br i1 %10890, label %10891, label %10908

10891:                                            ; preds = %10886
  %10892 = load i32, ptr %301, align 4, !tbaa !5
  %10893 = call ptr @__errno_location() #12
  store i32 %10892, ptr %10893, align 4, !tbaa !5
  %10894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10895 = load i32, ptr @test_count, align 4, !tbaa !5
  %10896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10897 = load i32, ptr %10896, align 4, !tbaa !5
  %10898 = call ptr @s2n_strerror(i32 noundef %10897, ptr noundef @.str.24)
  %10899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10900 = load i32, ptr %10899, align 4, !tbaa !5
  %10901 = call ptr @s2n_strerror_debug(i32 noundef %10900, ptr noundef @.str.24)
  %10902 = call ptr @__errno_location() #12
  %10903 = load i32, ptr %10902, align 4, !tbaa !5
  %10904 = call ptr @strerror(i32 noundef %10903) #11
  %10905 = call ptr @__errno_location() #12
  %10906 = load i32, ptr %10905, align 4, !tbaa !5
  %10907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10894, ptr noundef @.str.22, i32 noundef %10895, ptr noundef @.str.138, ptr noundef @.str.21, i32 noundef 512, ptr noundef %10898, ptr noundef %10901, ptr noundef %10904, i32 noundef %10906) #11
  br label %10925

10908:                                            ; preds = %10886, %10879
  %10909 = load i32, ptr %301, align 4, !tbaa !5
  %10910 = call ptr @__errno_location() #12
  store i32 %10909, ptr %10910, align 4, !tbaa !5
  %10911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10912 = load i32, ptr @test_count, align 4, !tbaa !5
  %10913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10914 = load i32, ptr %10913, align 4, !tbaa !5
  %10915 = call ptr @s2n_strerror(i32 noundef %10914, ptr noundef @.str.24)
  %10916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10917 = load i32, ptr %10916, align 4, !tbaa !5
  %10918 = call ptr @s2n_strerror_debug(i32 noundef %10917, ptr noundef @.str.24)
  %10919 = call ptr @__errno_location() #12
  %10920 = load i32, ptr %10919, align 4, !tbaa !5
  %10921 = call ptr @strerror(i32 noundef %10920) #11
  %10922 = call ptr @__errno_location() #12
  %10923 = load i32, ptr %10922, align 4, !tbaa !5
  %10924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10911, ptr noundef @.str.25, i32 noundef %10912, ptr noundef @.str.138, ptr noundef @.str.21, i32 noundef 512, ptr noundef %10915, ptr noundef %10918, ptr noundef %10921, i32 noundef %10923) #11
  br label %10925

10925:                                            ; preds = %10908, %10891
  call void @llvm.lifetime.end.p0(i64 4, ptr %301) #11
  br label %10926

10926:                                            ; preds = %10925
  br label %10927

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

10928:                                            ; No predecessors!
  br label %10929

10929:                                            ; preds = %10928
  br label %10930

10930:                                            ; preds = %10929, %10871
  br label %10931

10931:                                            ; preds = %10930
  br label %10932

10932:                                            ; preds = %10931
  br label %10933

10933:                                            ; preds = %10932
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #11
  %10934 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %10935 = load i32, ptr %10934, align 8, !tbaa !46
  store i32 %10935, ptr %302, align 4, !tbaa !5
  %10936 = load i32, ptr %302, align 4, !tbaa !5
  %10937 = icmp ne i32 %10936, 0
  br i1 %10937, label %10938, label %11003

10938:                                            ; preds = %10933
  %10939 = load ptr, ptr %291, align 8, !tbaa !9
  %10940 = getelementptr inbounds %struct.s2n_connection, ptr %10939, i32 0, i32 28
  %10941 = getelementptr inbounds %struct.s2n_secrets, ptr %10940, i32 0, i32 0
  %10942 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %10941, i32 0, i32 0
  %10943 = getelementptr inbounds [48 x i8], ptr %10942, i64 0, i64 0
  %10944 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %10945 = load ptr, ptr %10944, align 8, !tbaa !47
  %10946 = load i32, ptr %302, align 4, !tbaa !5
  %10947 = zext i32 %10946 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %10943, ptr align 1 %10945, i64 %10947, i1 false)
  %10948 = icmp eq ptr %10943, null
  br i1 %10948, label %10949, label %11002

10949:                                            ; preds = %10938
  br label %10950

10950:                                            ; preds = %10949
  br label %10951

10951:                                            ; preds = %10950
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #11
  %10952 = call ptr @__errno_location() #12
  %10953 = load i32, ptr %10952, align 4, !tbaa !5
  store i32 %10953, ptr %303, align 4, !tbaa !5
  %10954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10955 = call i32 @s2n_print_stacktrace(ptr noundef %10954)
  %10956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10957 = trunc i8 %10956 to i1
  br i1 %10957, label %10958, label %10980

10958:                                            ; preds = %10951
  %10959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10960 = call i32 @fileno(ptr noundef %10959) #11
  %10961 = call i32 @isatty(i32 noundef %10960) #11
  %10962 = icmp ne i32 %10961, 0
  br i1 %10962, label %10963, label %10980

10963:                                            ; preds = %10958
  %10964 = load i32, ptr %303, align 4, !tbaa !5
  %10965 = call ptr @__errno_location() #12
  store i32 %10964, ptr %10965, align 4, !tbaa !5
  %10966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10967 = load i32, ptr @test_count, align 4, !tbaa !5
  %10968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10969 = load i32, ptr %10968, align 4, !tbaa !5
  %10970 = call ptr @s2n_strerror(i32 noundef %10969, ptr noundef @.str.24)
  %10971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10972 = load i32, ptr %10971, align 4, !tbaa !5
  %10973 = call ptr @s2n_strerror_debug(i32 noundef %10972, ptr noundef @.str.24)
  %10974 = call ptr @__errno_location() #12
  %10975 = load i32, ptr %10974, align 4, !tbaa !5
  %10976 = call ptr @strerror(i32 noundef %10975) #11
  %10977 = call ptr @__errno_location() #12
  %10978 = load i32, ptr %10977, align 4, !tbaa !5
  %10979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10966, ptr noundef @.str.22, i32 noundef %10967, ptr noundef @.str.79, ptr noundef @.str.21, i32 noundef 513, ptr noundef %10970, ptr noundef %10973, ptr noundef %10976, i32 noundef %10978) #11
  br label %10997

10980:                                            ; preds = %10958, %10951
  %10981 = load i32, ptr %303, align 4, !tbaa !5
  %10982 = call ptr @__errno_location() #12
  store i32 %10981, ptr %10982, align 4, !tbaa !5
  %10983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10984 = load i32, ptr @test_count, align 4, !tbaa !5
  %10985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10986 = load i32, ptr %10985, align 4, !tbaa !5
  %10987 = call ptr @s2n_strerror(i32 noundef %10986, ptr noundef @.str.24)
  %10988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10989 = load i32, ptr %10988, align 4, !tbaa !5
  %10990 = call ptr @s2n_strerror_debug(i32 noundef %10989, ptr noundef @.str.24)
  %10991 = call ptr @__errno_location() #12
  %10992 = load i32, ptr %10991, align 4, !tbaa !5
  %10993 = call ptr @strerror(i32 noundef %10992) #11
  %10994 = call ptr @__errno_location() #12
  %10995 = load i32, ptr %10994, align 4, !tbaa !5
  %10996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10983, ptr noundef @.str.25, i32 noundef %10984, ptr noundef @.str.79, ptr noundef @.str.21, i32 noundef 513, ptr noundef %10987, ptr noundef %10990, ptr noundef %10993, i32 noundef %10995) #11
  br label %10997

10997:                                            ; preds = %10980, %10963
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #11
  br label %10998

10998:                                            ; preds = %10997
  br label %10999

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

11000:                                            ; No predecessors!
  br label %11001

11001:                                            ; preds = %11000
  br label %11002

11002:                                            ; preds = %11001, %10938
  br label %11003

11003:                                            ; preds = %11002, %10933
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #11
  br label %11004

11004:                                            ; preds = %11003
  br label %11005

11005:                                            ; preds = %11004
  br label %11006

11006:                                            ; preds = %11005
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #11
  %11007 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %11008 = load i32, ptr %11007, align 8, !tbaa !46
  store i32 %11008, ptr %304, align 4, !tbaa !5
  %11009 = load i32, ptr %304, align 4, !tbaa !5
  %11010 = icmp ne i32 %11009, 0
  br i1 %11010, label %11011, label %11075

11011:                                            ; preds = %11006
  %11012 = load ptr, ptr %291, align 8, !tbaa !9
  %11013 = getelementptr inbounds %struct.s2n_connection, ptr %11012, i32 0, i32 32
  %11014 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %11013, i32 0, i32 12
  %11015 = getelementptr inbounds [32 x i8], ptr %11014, i64 0, i64 0
  %11016 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %11017 = load ptr, ptr %11016, align 8, !tbaa !47
  %11018 = load i32, ptr %304, align 4, !tbaa !5
  %11019 = zext i32 %11018 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %11015, ptr align 1 %11017, i64 %11019, i1 false)
  %11020 = icmp eq ptr %11015, null
  br i1 %11020, label %11021, label %11074

11021:                                            ; preds = %11011
  br label %11022

11022:                                            ; preds = %11021
  br label %11023

11023:                                            ; preds = %11022
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #11
  %11024 = call ptr @__errno_location() #12
  %11025 = load i32, ptr %11024, align 4, !tbaa !5
  store i32 %11025, ptr %305, align 4, !tbaa !5
  %11026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11027 = call i32 @s2n_print_stacktrace(ptr noundef %11026)
  %11028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11029 = trunc i8 %11028 to i1
  br i1 %11029, label %11030, label %11052

11030:                                            ; preds = %11023
  %11031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11032 = call i32 @fileno(ptr noundef %11031) #11
  %11033 = call i32 @isatty(i32 noundef %11032) #11
  %11034 = icmp ne i32 %11033, 0
  br i1 %11034, label %11035, label %11052

11035:                                            ; preds = %11030
  %11036 = load i32, ptr %305, align 4, !tbaa !5
  %11037 = call ptr @__errno_location() #12
  store i32 %11036, ptr %11037, align 4, !tbaa !5
  %11038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11039 = load i32, ptr @test_count, align 4, !tbaa !5
  %11040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11041 = load i32, ptr %11040, align 4, !tbaa !5
  %11042 = call ptr @s2n_strerror(i32 noundef %11041, ptr noundef @.str.24)
  %11043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11044 = load i32, ptr %11043, align 4, !tbaa !5
  %11045 = call ptr @s2n_strerror_debug(i32 noundef %11044, ptr noundef @.str.24)
  %11046 = call ptr @__errno_location() #12
  %11047 = load i32, ptr %11046, align 4, !tbaa !5
  %11048 = call ptr @strerror(i32 noundef %11047) #11
  %11049 = call ptr @__errno_location() #12
  %11050 = load i32, ptr %11049, align 4, !tbaa !5
  %11051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11038, ptr noundef @.str.22, i32 noundef %11039, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 514, ptr noundef %11042, ptr noundef %11045, ptr noundef %11048, i32 noundef %11050) #11
  br label %11069

11052:                                            ; preds = %11030, %11023
  %11053 = load i32, ptr %305, align 4, !tbaa !5
  %11054 = call ptr @__errno_location() #12
  store i32 %11053, ptr %11054, align 4, !tbaa !5
  %11055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11056 = load i32, ptr @test_count, align 4, !tbaa !5
  %11057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11058 = load i32, ptr %11057, align 4, !tbaa !5
  %11059 = call ptr @s2n_strerror(i32 noundef %11058, ptr noundef @.str.24)
  %11060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11061 = load i32, ptr %11060, align 4, !tbaa !5
  %11062 = call ptr @s2n_strerror_debug(i32 noundef %11061, ptr noundef @.str.24)
  %11063 = call ptr @__errno_location() #12
  %11064 = load i32, ptr %11063, align 4, !tbaa !5
  %11065 = call ptr @strerror(i32 noundef %11064) #11
  %11066 = call ptr @__errno_location() #12
  %11067 = load i32, ptr %11066, align 4, !tbaa !5
  %11068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11055, ptr noundef @.str.25, i32 noundef %11056, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 514, ptr noundef %11059, ptr noundef %11062, ptr noundef %11065, i32 noundef %11067) #11
  br label %11069

11069:                                            ; preds = %11052, %11035
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #11
  br label %11070

11070:                                            ; preds = %11069
  br label %11071

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

11072:                                            ; No predecessors!
  br label %11073

11073:                                            ; preds = %11072
  br label %11074

11074:                                            ; preds = %11073, %11011
  br label %11075

11075:                                            ; preds = %11074, %11006
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #11
  br label %11076

11076:                                            ; preds = %11075
  br label %11077

11077:                                            ; preds = %11076
  br label %11078

11078:                                            ; preds = %11077
  call void @llvm.lifetime.start.p0(i64 4, ptr %306) #11
  %11079 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 1
  %11080 = load i32, ptr %11079, align 8, !tbaa !46
  store i32 %11080, ptr %306, align 4, !tbaa !5
  %11081 = load i32, ptr %306, align 4, !tbaa !5
  %11082 = icmp ne i32 %11081, 0
  br i1 %11082, label %11083, label %11147

11083:                                            ; preds = %11078
  %11084 = load ptr, ptr %291, align 8, !tbaa !9
  %11085 = getelementptr inbounds %struct.s2n_connection, ptr %11084, i32 0, i32 32
  %11086 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %11085, i32 0, i32 13
  %11087 = getelementptr inbounds [32 x i8], ptr %11086, i64 0, i64 0
  %11088 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 0
  %11089 = load ptr, ptr %11088, align 8, !tbaa !47
  %11090 = load i32, ptr %306, align 4, !tbaa !5
  %11091 = zext i32 %11090 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %11087, ptr align 1 %11089, i64 %11091, i1 false)
  %11092 = icmp eq ptr %11087, null
  br i1 %11092, label %11093, label %11146

11093:                                            ; preds = %11083
  br label %11094

11094:                                            ; preds = %11093
  br label %11095

11095:                                            ; preds = %11094
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #11
  %11096 = call ptr @__errno_location() #12
  %11097 = load i32, ptr %11096, align 4, !tbaa !5
  store i32 %11097, ptr %307, align 4, !tbaa !5
  %11098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11099 = call i32 @s2n_print_stacktrace(ptr noundef %11098)
  %11100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11101 = trunc i8 %11100 to i1
  br i1 %11101, label %11102, label %11124

11102:                                            ; preds = %11095
  %11103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11104 = call i32 @fileno(ptr noundef %11103) #11
  %11105 = call i32 @isatty(i32 noundef %11104) #11
  %11106 = icmp ne i32 %11105, 0
  br i1 %11106, label %11107, label %11124

11107:                                            ; preds = %11102
  %11108 = load i32, ptr %307, align 4, !tbaa !5
  %11109 = call ptr @__errno_location() #12
  store i32 %11108, ptr %11109, align 4, !tbaa !5
  %11110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11111 = load i32, ptr @test_count, align 4, !tbaa !5
  %11112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11113 = load i32, ptr %11112, align 4, !tbaa !5
  %11114 = call ptr @s2n_strerror(i32 noundef %11113, ptr noundef @.str.24)
  %11115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11116 = load i32, ptr %11115, align 4, !tbaa !5
  %11117 = call ptr @s2n_strerror_debug(i32 noundef %11116, ptr noundef @.str.24)
  %11118 = call ptr @__errno_location() #12
  %11119 = load i32, ptr %11118, align 4, !tbaa !5
  %11120 = call ptr @strerror(i32 noundef %11119) #11
  %11121 = call ptr @__errno_location() #12
  %11122 = load i32, ptr %11121, align 4, !tbaa !5
  %11123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11110, ptr noundef @.str.22, i32 noundef %11111, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 515, ptr noundef %11114, ptr noundef %11117, ptr noundef %11120, i32 noundef %11122) #11
  br label %11141

11124:                                            ; preds = %11102, %11095
  %11125 = load i32, ptr %307, align 4, !tbaa !5
  %11126 = call ptr @__errno_location() #12
  store i32 %11125, ptr %11126, align 4, !tbaa !5
  %11127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11128 = load i32, ptr @test_count, align 4, !tbaa !5
  %11129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11130 = load i32, ptr %11129, align 4, !tbaa !5
  %11131 = call ptr @s2n_strerror(i32 noundef %11130, ptr noundef @.str.24)
  %11132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11133 = load i32, ptr %11132, align 4, !tbaa !5
  %11134 = call ptr @s2n_strerror_debug(i32 noundef %11133, ptr noundef @.str.24)
  %11135 = call ptr @__errno_location() #12
  %11136 = load i32, ptr %11135, align 4, !tbaa !5
  %11137 = call ptr @strerror(i32 noundef %11136) #11
  %11138 = call ptr @__errno_location() #12
  %11139 = load i32, ptr %11138, align 4, !tbaa !5
  %11140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11127, ptr noundef @.str.25, i32 noundef %11128, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 515, ptr noundef %11131, ptr noundef %11134, ptr noundef %11137, i32 noundef %11139) #11
  br label %11141

11141:                                            ; preds = %11124, %11107
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #11
  br label %11142

11142:                                            ; preds = %11141
  br label %11143

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

11144:                                            ; No predecessors!
  br label %11145

11145:                                            ; preds = %11144
  br label %11146

11146:                                            ; preds = %11145, %11083
  br label %11147

11147:                                            ; preds = %11146, %11078
  call void @llvm.lifetime.end.p0(i64 4, ptr %306) #11
  br label %11148

11148:                                            ; preds = %11147
  br label %11149

11149:                                            ; preds = %11148
  br label %11150

11150:                                            ; preds = %11149
  br label %11151

11151:                                            ; preds = %11150
  br label %11152

11152:                                            ; preds = %11151
  %11153 = load i32, ptr @test_count, align 4, !tbaa !5
  %11154 = add nsw i32 %11153, 1
  store i32 %11154, ptr @test_count, align 4, !tbaa !5
  %11155 = load ptr, ptr %291, align 8, !tbaa !9
  %11156 = call i32 @s2n_prf_tls_master_secret(ptr noundef %11155, ptr noundef %289)
  %11157 = icmp eq i32 %11156, -1
  br i1 %11157, label %11211, label %11158

11158:                                            ; preds = %11152
  br label %11159

11159:                                            ; preds = %11158
  br label %11160

11160:                                            ; preds = %11159
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #11
  %11161 = call ptr @__errno_location() #12
  %11162 = load i32, ptr %11161, align 4, !tbaa !5
  store i32 %11162, ptr %308, align 4, !tbaa !5
  %11163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11164 = call i32 @s2n_print_stacktrace(ptr noundef %11163)
  %11165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11166 = trunc i8 %11165 to i1
  br i1 %11166, label %11167, label %11189

11167:                                            ; preds = %11160
  %11168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11169 = call i32 @fileno(ptr noundef %11168) #11
  %11170 = call i32 @isatty(i32 noundef %11169) #11
  %11171 = icmp ne i32 %11170, 0
  br i1 %11171, label %11172, label %11189

11172:                                            ; preds = %11167
  %11173 = load i32, ptr %308, align 4, !tbaa !5
  %11174 = call ptr @__errno_location() #12
  store i32 %11173, ptr %11174, align 4, !tbaa !5
  %11175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11176 = load i32, ptr @test_count, align 4, !tbaa !5
  %11177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11178 = load i32, ptr %11177, align 4, !tbaa !5
  %11179 = call ptr @s2n_strerror(i32 noundef %11178, ptr noundef @.str.24)
  %11180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11181 = load i32, ptr %11180, align 4, !tbaa !5
  %11182 = call ptr @s2n_strerror_debug(i32 noundef %11181, ptr noundef @.str.24)
  %11183 = call ptr @__errno_location() #12
  %11184 = load i32, ptr %11183, align 4, !tbaa !5
  %11185 = call ptr @strerror(i32 noundef %11184) #11
  %11186 = call ptr @__errno_location() #12
  %11187 = load i32, ptr %11186, align 4, !tbaa !5
  %11188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11175, ptr noundef @.str.22, i32 noundef %11176, ptr noundef @.str.143, ptr noundef @.str.21, i32 noundef 516, ptr noundef %11179, ptr noundef %11182, ptr noundef %11185, i32 noundef %11187) #11
  br label %11206

11189:                                            ; preds = %11167, %11160
  %11190 = load i32, ptr %308, align 4, !tbaa !5
  %11191 = call ptr @__errno_location() #12
  store i32 %11190, ptr %11191, align 4, !tbaa !5
  %11192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11193 = load i32, ptr @test_count, align 4, !tbaa !5
  %11194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11195 = load i32, ptr %11194, align 4, !tbaa !5
  %11196 = call ptr @s2n_strerror(i32 noundef %11195, ptr noundef @.str.24)
  %11197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11198 = load i32, ptr %11197, align 4, !tbaa !5
  %11199 = call ptr @s2n_strerror_debug(i32 noundef %11198, ptr noundef @.str.24)
  %11200 = call ptr @__errno_location() #12
  %11201 = load i32, ptr %11200, align 4, !tbaa !5
  %11202 = call ptr @strerror(i32 noundef %11201) #11
  %11203 = call ptr @__errno_location() #12
  %11204 = load i32, ptr %11203, align 4, !tbaa !5
  %11205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11192, ptr noundef @.str.25, i32 noundef %11193, ptr noundef @.str.143, ptr noundef @.str.21, i32 noundef 516, ptr noundef %11196, ptr noundef %11199, ptr noundef %11202, i32 noundef %11204) #11
  br label %11206

11206:                                            ; preds = %11189, %11172
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #11
  br label %11207

11207:                                            ; preds = %11206
  br label %11208

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

11209:                                            ; No predecessors!
  br label %11210

11210:                                            ; preds = %11209
  br label %11211

11211:                                            ; preds = %11210, %11152
  br label %11212

11212:                                            ; preds = %11211
  br label %11213

11213:                                            ; preds = %11212
  br label %11214

11214:                                            ; preds = %11213
  %11215 = load i32, ptr @test_count, align 4, !tbaa !5
  %11216 = add nsw i32 %11215, 1
  store i32 %11216, ptr @test_count, align 4, !tbaa !5
  %11217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11218 = load i32, ptr %11217, align 4, !tbaa !5
  %11219 = icmp eq i32 %11218, 402653193
  br i1 %11219, label %11273, label %11220

11220:                                            ; preds = %11214
  br label %11221

11221:                                            ; preds = %11220
  br label %11222

11222:                                            ; preds = %11221
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #11
  %11223 = call ptr @__errno_location() #12
  %11224 = load i32, ptr %11223, align 4, !tbaa !5
  store i32 %11224, ptr %309, align 4, !tbaa !5
  %11225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11226 = call i32 @s2n_print_stacktrace(ptr noundef %11225)
  %11227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11228 = trunc i8 %11227 to i1
  br i1 %11228, label %11229, label %11251

11229:                                            ; preds = %11222
  %11230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11231 = call i32 @fileno(ptr noundef %11230) #11
  %11232 = call i32 @isatty(i32 noundef %11231) #11
  %11233 = icmp ne i32 %11232, 0
  br i1 %11233, label %11234, label %11251

11234:                                            ; preds = %11229
  %11235 = load i32, ptr %309, align 4, !tbaa !5
  %11236 = call ptr @__errno_location() #12
  store i32 %11235, ptr %11236, align 4, !tbaa !5
  %11237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11238 = load i32, ptr @test_count, align 4, !tbaa !5
  %11239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11240 = load i32, ptr %11239, align 4, !tbaa !5
  %11241 = call ptr @s2n_strerror(i32 noundef %11240, ptr noundef @.str.24)
  %11242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11243 = load i32, ptr %11242, align 4, !tbaa !5
  %11244 = call ptr @s2n_strerror_debug(i32 noundef %11243, ptr noundef @.str.24)
  %11245 = call ptr @__errno_location() #12
  %11246 = load i32, ptr %11245, align 4, !tbaa !5
  %11247 = call ptr @strerror(i32 noundef %11246) #11
  %11248 = call ptr @__errno_location() #12
  %11249 = load i32, ptr %11248, align 4, !tbaa !5
  %11250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11237, ptr noundef @.str.22, i32 noundef %11238, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 516, ptr noundef %11241, ptr noundef %11244, ptr noundef %11247, i32 noundef %11249) #11
  br label %11268

11251:                                            ; preds = %11229, %11222
  %11252 = load i32, ptr %309, align 4, !tbaa !5
  %11253 = call ptr @__errno_location() #12
  store i32 %11252, ptr %11253, align 4, !tbaa !5
  %11254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11255 = load i32, ptr @test_count, align 4, !tbaa !5
  %11256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11257 = load i32, ptr %11256, align 4, !tbaa !5
  %11258 = call ptr @s2n_strerror(i32 noundef %11257, ptr noundef @.str.24)
  %11259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11260 = load i32, ptr %11259, align 4, !tbaa !5
  %11261 = call ptr @s2n_strerror_debug(i32 noundef %11260, ptr noundef @.str.24)
  %11262 = call ptr @__errno_location() #12
  %11263 = load i32, ptr %11262, align 4, !tbaa !5
  %11264 = call ptr @strerror(i32 noundef %11263) #11
  %11265 = call ptr @__errno_location() #12
  %11266 = load i32, ptr %11265, align 4, !tbaa !5
  %11267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11254, ptr noundef @.str.25, i32 noundef %11255, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 516, ptr noundef %11258, ptr noundef %11261, ptr noundef %11264, i32 noundef %11266) #11
  br label %11268

11268:                                            ; preds = %11251, %11234
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #11
  br label %11269

11269:                                            ; preds = %11268
  br label %11270

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

11271:                                            ; No predecessors!
  br label %11272

11272:                                            ; preds = %11271
  br label %11273

11273:                                            ; preds = %11272, %11214
  br label %11274

11274:                                            ; preds = %11273
  br label %11275

11275:                                            ; preds = %11274
  br label %11276

11276:                                            ; preds = %11275
  %11277 = load i32, ptr @test_count, align 4, !tbaa !5
  %11278 = add nsw i32 %11277, 1
  store i32 %11278, ptr @test_count, align 4, !tbaa !5
  %11279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11280 = load i32, ptr %11279, align 4, !tbaa !5
  %11281 = call ptr @s2n_strerror_debug(i32 noundef %11280, ptr noundef @.str.24)
  %11282 = icmp eq ptr %11281, null
  br i1 %11282, label %11283, label %11336

11283:                                            ; preds = %11276
  br label %11284

11284:                                            ; preds = %11283
  br label %11285

11285:                                            ; preds = %11284
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #11
  %11286 = call ptr @__errno_location() #12
  %11287 = load i32, ptr %11286, align 4, !tbaa !5
  store i32 %11287, ptr %310, align 4, !tbaa !5
  %11288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11289 = call i32 @s2n_print_stacktrace(ptr noundef %11288)
  %11290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11291 = trunc i8 %11290 to i1
  br i1 %11291, label %11292, label %11314

11292:                                            ; preds = %11285
  %11293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11294 = call i32 @fileno(ptr noundef %11293) #11
  %11295 = call i32 @isatty(i32 noundef %11294) #11
  %11296 = icmp ne i32 %11295, 0
  br i1 %11296, label %11297, label %11314

11297:                                            ; preds = %11292
  %11298 = load i32, ptr %310, align 4, !tbaa !5
  %11299 = call ptr @__errno_location() #12
  store i32 %11298, ptr %11299, align 4, !tbaa !5
  %11300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11301 = load i32, ptr @test_count, align 4, !tbaa !5
  %11302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11303 = load i32, ptr %11302, align 4, !tbaa !5
  %11304 = call ptr @s2n_strerror(i32 noundef %11303, ptr noundef @.str.24)
  %11305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11306 = load i32, ptr %11305, align 4, !tbaa !5
  %11307 = call ptr @s2n_strerror_debug(i32 noundef %11306, ptr noundef @.str.24)
  %11308 = call ptr @__errno_location() #12
  %11309 = load i32, ptr %11308, align 4, !tbaa !5
  %11310 = call ptr @strerror(i32 noundef %11309) #11
  %11311 = call ptr @__errno_location() #12
  %11312 = load i32, ptr %11311, align 4, !tbaa !5
  %11313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11300, ptr noundef @.str.22, i32 noundef %11301, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 516, ptr noundef %11304, ptr noundef %11307, ptr noundef %11310, i32 noundef %11312) #11
  br label %11331

11314:                                            ; preds = %11292, %11285
  %11315 = load i32, ptr %310, align 4, !tbaa !5
  %11316 = call ptr @__errno_location() #12
  store i32 %11315, ptr %11316, align 4, !tbaa !5
  %11317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11318 = load i32, ptr @test_count, align 4, !tbaa !5
  %11319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11320 = load i32, ptr %11319, align 4, !tbaa !5
  %11321 = call ptr @s2n_strerror(i32 noundef %11320, ptr noundef @.str.24)
  %11322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11323 = load i32, ptr %11322, align 4, !tbaa !5
  %11324 = call ptr @s2n_strerror_debug(i32 noundef %11323, ptr noundef @.str.24)
  %11325 = call ptr @__errno_location() #12
  %11326 = load i32, ptr %11325, align 4, !tbaa !5
  %11327 = call ptr @strerror(i32 noundef %11326) #11
  %11328 = call ptr @__errno_location() #12
  %11329 = load i32, ptr %11328, align 4, !tbaa !5
  %11330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11317, ptr noundef @.str.25, i32 noundef %11318, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 516, ptr noundef %11321, ptr noundef %11324, ptr noundef %11327, i32 noundef %11329) #11
  br label %11331

11331:                                            ; preds = %11314, %11297
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #11
  br label %11332

11332:                                            ; preds = %11331
  br label %11333

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

11334:                                            ; No predecessors!
  br label %11335

11335:                                            ; preds = %11334
  br label %11336

11336:                                            ; preds = %11335, %11276
  br label %11337

11337:                                            ; preds = %11336
  br label %11338

11338:                                            ; preds = %11337
  br label %11339

11339:                                            ; preds = %11338
  br label %11340

11340:                                            ; preds = %11339
  br label %11341

11341:                                            ; preds = %11340
  %11342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11342, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11343 = call ptr @__errno_location() #12
  store i32 0, ptr %11343, align 4, !tbaa !5
  br label %11344

11344:                                            ; preds = %11341
  br label %11345

11345:                                            ; preds = %11344
  br label %11346

11346:                                            ; preds = %11345
  br label %11347

11347:                                            ; preds = %11346
  br label %11348

11348:                                            ; preds = %11347
  %11349 = load i32, ptr @test_count, align 4, !tbaa !5
  %11350 = add nsw i32 %11349, 1
  store i32 %11350, ptr @test_count, align 4, !tbaa !5
  %11351 = load ptr, ptr %291, align 8, !tbaa !9
  %11352 = call i32 @s2n_connection_wipe(ptr noundef %11351)
  %11353 = icmp eq i32 %11352, -1
  br i1 %11353, label %11354, label %11407

11354:                                            ; preds = %11348
  br label %11355

11355:                                            ; preds = %11354
  br label %11356

11356:                                            ; preds = %11355
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #11
  %11357 = call ptr @__errno_location() #12
  %11358 = load i32, ptr %11357, align 4, !tbaa !5
  store i32 %11358, ptr %311, align 4, !tbaa !5
  %11359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11360 = call i32 @s2n_print_stacktrace(ptr noundef %11359)
  %11361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11362 = trunc i8 %11361 to i1
  br i1 %11362, label %11363, label %11385

11363:                                            ; preds = %11356
  %11364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11365 = call i32 @fileno(ptr noundef %11364) #11
  %11366 = call i32 @isatty(i32 noundef %11365) #11
  %11367 = icmp ne i32 %11366, 0
  br i1 %11367, label %11368, label %11385

11368:                                            ; preds = %11363
  %11369 = load i32, ptr %311, align 4, !tbaa !5
  %11370 = call ptr @__errno_location() #12
  store i32 %11369, ptr %11370, align 4, !tbaa !5
  %11371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11372 = load i32, ptr @test_count, align 4, !tbaa !5
  %11373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11374 = load i32, ptr %11373, align 4, !tbaa !5
  %11375 = call ptr @s2n_strerror(i32 noundef %11374, ptr noundef @.str.24)
  %11376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11377 = load i32, ptr %11376, align 4, !tbaa !5
  %11378 = call ptr @s2n_strerror_debug(i32 noundef %11377, ptr noundef @.str.24)
  %11379 = call ptr @__errno_location() #12
  %11380 = load i32, ptr %11379, align 4, !tbaa !5
  %11381 = call ptr @strerror(i32 noundef %11380) #11
  %11382 = call ptr @__errno_location() #12
  %11383 = load i32, ptr %11382, align 4, !tbaa !5
  %11384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11371, ptr noundef @.str.22, i32 noundef %11372, ptr noundef @.str.141, ptr noundef @.str.21, i32 noundef 518, ptr noundef %11375, ptr noundef %11378, ptr noundef %11381, i32 noundef %11383) #11
  br label %11402

11385:                                            ; preds = %11363, %11356
  %11386 = load i32, ptr %311, align 4, !tbaa !5
  %11387 = call ptr @__errno_location() #12
  store i32 %11386, ptr %11387, align 4, !tbaa !5
  %11388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11389 = load i32, ptr @test_count, align 4, !tbaa !5
  %11390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11391 = load i32, ptr %11390, align 4, !tbaa !5
  %11392 = call ptr @s2n_strerror(i32 noundef %11391, ptr noundef @.str.24)
  %11393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11394 = load i32, ptr %11393, align 4, !tbaa !5
  %11395 = call ptr @s2n_strerror_debug(i32 noundef %11394, ptr noundef @.str.24)
  %11396 = call ptr @__errno_location() #12
  %11397 = load i32, ptr %11396, align 4, !tbaa !5
  %11398 = call ptr @strerror(i32 noundef %11397) #11
  %11399 = call ptr @__errno_location() #12
  %11400 = load i32, ptr %11399, align 4, !tbaa !5
  %11401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11388, ptr noundef @.str.25, i32 noundef %11389, ptr noundef @.str.141, ptr noundef @.str.21, i32 noundef 518, ptr noundef %11392, ptr noundef %11395, ptr noundef %11398, i32 noundef %11400) #11
  br label %11402

11402:                                            ; preds = %11385, %11368
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #11
  br label %11403

11403:                                            ; preds = %11402
  br label %11404

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

11405:                                            ; No predecessors!
  br label %11406

11406:                                            ; preds = %11405
  br label %11407

11407:                                            ; preds = %11406, %11348
  br label %11408

11408:                                            ; preds = %11407
  br label %11409

11409:                                            ; preds = %11408
  br label %11410

11410:                                            ; preds = %11409
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #11
  %11411 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 1
  %11412 = load i32, ptr %11411, align 8, !tbaa !46
  store i32 %11412, ptr %312, align 4, !tbaa !5
  %11413 = load i32, ptr %312, align 4, !tbaa !5
  %11414 = icmp ne i32 %11413, 0
  br i1 %11414, label %11415, label %11480

11415:                                            ; preds = %11410
  %11416 = load ptr, ptr %291, align 8, !tbaa !9
  %11417 = getelementptr inbounds %struct.s2n_connection, ptr %11416, i32 0, i32 28
  %11418 = getelementptr inbounds %struct.s2n_secrets, ptr %11417, i32 0, i32 0
  %11419 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %11418, i32 0, i32 0
  %11420 = getelementptr inbounds [48 x i8], ptr %11419, i64 0, i64 0
  %11421 = getelementptr inbounds %struct.s2n_blob, ptr %10, i32 0, i32 0
  %11422 = load ptr, ptr %11421, align 8, !tbaa !47
  %11423 = load i32, ptr %312, align 4, !tbaa !5
  %11424 = zext i32 %11423 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %11420, ptr align 1 %11422, i64 %11424, i1 false)
  %11425 = icmp eq ptr %11420, null
  br i1 %11425, label %11426, label %11479

11426:                                            ; preds = %11415
  br label %11427

11427:                                            ; preds = %11426
  br label %11428

11428:                                            ; preds = %11427
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #11
  %11429 = call ptr @__errno_location() #12
  %11430 = load i32, ptr %11429, align 4, !tbaa !5
  store i32 %11430, ptr %313, align 4, !tbaa !5
  %11431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11432 = call i32 @s2n_print_stacktrace(ptr noundef %11431)
  %11433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11434 = trunc i8 %11433 to i1
  br i1 %11434, label %11435, label %11457

11435:                                            ; preds = %11428
  %11436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11437 = call i32 @fileno(ptr noundef %11436) #11
  %11438 = call i32 @isatty(i32 noundef %11437) #11
  %11439 = icmp ne i32 %11438, 0
  br i1 %11439, label %11440, label %11457

11440:                                            ; preds = %11435
  %11441 = load i32, ptr %313, align 4, !tbaa !5
  %11442 = call ptr @__errno_location() #12
  store i32 %11441, ptr %11442, align 4, !tbaa !5
  %11443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11444 = load i32, ptr @test_count, align 4, !tbaa !5
  %11445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11446 = load i32, ptr %11445, align 4, !tbaa !5
  %11447 = call ptr @s2n_strerror(i32 noundef %11446, ptr noundef @.str.24)
  %11448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11449 = load i32, ptr %11448, align 4, !tbaa !5
  %11450 = call ptr @s2n_strerror_debug(i32 noundef %11449, ptr noundef @.str.24)
  %11451 = call ptr @__errno_location() #12
  %11452 = load i32, ptr %11451, align 4, !tbaa !5
  %11453 = call ptr @strerror(i32 noundef %11452) #11
  %11454 = call ptr @__errno_location() #12
  %11455 = load i32, ptr %11454, align 4, !tbaa !5
  %11456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11443, ptr noundef @.str.22, i32 noundef %11444, ptr noundef @.str.79, ptr noundef @.str.21, i32 noundef 519, ptr noundef %11447, ptr noundef %11450, ptr noundef %11453, i32 noundef %11455) #11
  br label %11474

11457:                                            ; preds = %11435, %11428
  %11458 = load i32, ptr %313, align 4, !tbaa !5
  %11459 = call ptr @__errno_location() #12
  store i32 %11458, ptr %11459, align 4, !tbaa !5
  %11460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11461 = load i32, ptr @test_count, align 4, !tbaa !5
  %11462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11463 = load i32, ptr %11462, align 4, !tbaa !5
  %11464 = call ptr @s2n_strerror(i32 noundef %11463, ptr noundef @.str.24)
  %11465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11466 = load i32, ptr %11465, align 4, !tbaa !5
  %11467 = call ptr @s2n_strerror_debug(i32 noundef %11466, ptr noundef @.str.24)
  %11468 = call ptr @__errno_location() #12
  %11469 = load i32, ptr %11468, align 4, !tbaa !5
  %11470 = call ptr @strerror(i32 noundef %11469) #11
  %11471 = call ptr @__errno_location() #12
  %11472 = load i32, ptr %11471, align 4, !tbaa !5
  %11473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11460, ptr noundef @.str.25, i32 noundef %11461, ptr noundef @.str.79, ptr noundef @.str.21, i32 noundef 519, ptr noundef %11464, ptr noundef %11467, ptr noundef %11470, i32 noundef %11472) #11
  br label %11474

11474:                                            ; preds = %11457, %11440
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #11
  br label %11475

11475:                                            ; preds = %11474
  br label %11476

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

11477:                                            ; No predecessors!
  br label %11478

11478:                                            ; preds = %11477
  br label %11479

11479:                                            ; preds = %11478, %11415
  br label %11480

11480:                                            ; preds = %11479, %11410
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #11
  br label %11481

11481:                                            ; preds = %11480
  br label %11482

11482:                                            ; preds = %11481
  br label %11483

11483:                                            ; preds = %11482
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #11
  %11484 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 1
  %11485 = load i32, ptr %11484, align 8, !tbaa !46
  store i32 %11485, ptr %314, align 4, !tbaa !5
  %11486 = load i32, ptr %314, align 4, !tbaa !5
  %11487 = icmp ne i32 %11486, 0
  br i1 %11487, label %11488, label %11552

11488:                                            ; preds = %11483
  %11489 = load ptr, ptr %291, align 8, !tbaa !9
  %11490 = getelementptr inbounds %struct.s2n_connection, ptr %11489, i32 0, i32 32
  %11491 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %11490, i32 0, i32 12
  %11492 = getelementptr inbounds [32 x i8], ptr %11491, i64 0, i64 0
  %11493 = getelementptr inbounds %struct.s2n_blob, ptr %13, i32 0, i32 0
  %11494 = load ptr, ptr %11493, align 8, !tbaa !47
  %11495 = load i32, ptr %314, align 4, !tbaa !5
  %11496 = zext i32 %11495 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %11492, ptr align 1 %11494, i64 %11496, i1 false)
  %11497 = icmp eq ptr %11492, null
  br i1 %11497, label %11498, label %11551

11498:                                            ; preds = %11488
  br label %11499

11499:                                            ; preds = %11498
  br label %11500

11500:                                            ; preds = %11499
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #11
  %11501 = call ptr @__errno_location() #12
  %11502 = load i32, ptr %11501, align 4, !tbaa !5
  store i32 %11502, ptr %315, align 4, !tbaa !5
  %11503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11504 = call i32 @s2n_print_stacktrace(ptr noundef %11503)
  %11505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11506 = trunc i8 %11505 to i1
  br i1 %11506, label %11507, label %11529

11507:                                            ; preds = %11500
  %11508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11509 = call i32 @fileno(ptr noundef %11508) #11
  %11510 = call i32 @isatty(i32 noundef %11509) #11
  %11511 = icmp ne i32 %11510, 0
  br i1 %11511, label %11512, label %11529

11512:                                            ; preds = %11507
  %11513 = load i32, ptr %315, align 4, !tbaa !5
  %11514 = call ptr @__errno_location() #12
  store i32 %11513, ptr %11514, align 4, !tbaa !5
  %11515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11516 = load i32, ptr @test_count, align 4, !tbaa !5
  %11517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11518 = load i32, ptr %11517, align 4, !tbaa !5
  %11519 = call ptr @s2n_strerror(i32 noundef %11518, ptr noundef @.str.24)
  %11520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11521 = load i32, ptr %11520, align 4, !tbaa !5
  %11522 = call ptr @s2n_strerror_debug(i32 noundef %11521, ptr noundef @.str.24)
  %11523 = call ptr @__errno_location() #12
  %11524 = load i32, ptr %11523, align 4, !tbaa !5
  %11525 = call ptr @strerror(i32 noundef %11524) #11
  %11526 = call ptr @__errno_location() #12
  %11527 = load i32, ptr %11526, align 4, !tbaa !5
  %11528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11515, ptr noundef @.str.22, i32 noundef %11516, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 520, ptr noundef %11519, ptr noundef %11522, ptr noundef %11525, i32 noundef %11527) #11
  br label %11546

11529:                                            ; preds = %11507, %11500
  %11530 = load i32, ptr %315, align 4, !tbaa !5
  %11531 = call ptr @__errno_location() #12
  store i32 %11530, ptr %11531, align 4, !tbaa !5
  %11532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11533 = load i32, ptr @test_count, align 4, !tbaa !5
  %11534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11535 = load i32, ptr %11534, align 4, !tbaa !5
  %11536 = call ptr @s2n_strerror(i32 noundef %11535, ptr noundef @.str.24)
  %11537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11538 = load i32, ptr %11537, align 4, !tbaa !5
  %11539 = call ptr @s2n_strerror_debug(i32 noundef %11538, ptr noundef @.str.24)
  %11540 = call ptr @__errno_location() #12
  %11541 = load i32, ptr %11540, align 4, !tbaa !5
  %11542 = call ptr @strerror(i32 noundef %11541) #11
  %11543 = call ptr @__errno_location() #12
  %11544 = load i32, ptr %11543, align 4, !tbaa !5
  %11545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11532, ptr noundef @.str.25, i32 noundef %11533, ptr noundef @.str.80, ptr noundef @.str.21, i32 noundef 520, ptr noundef %11536, ptr noundef %11539, ptr noundef %11542, i32 noundef %11544) #11
  br label %11546

11546:                                            ; preds = %11529, %11512
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #11
  br label %11547

11547:                                            ; preds = %11546
  br label %11548

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

11549:                                            ; No predecessors!
  br label %11550

11550:                                            ; preds = %11549
  br label %11551

11551:                                            ; preds = %11550, %11488
  br label %11552

11552:                                            ; preds = %11551, %11483
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #11
  br label %11553

11553:                                            ; preds = %11552
  br label %11554

11554:                                            ; preds = %11553
  br label %11555

11555:                                            ; preds = %11554
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #11
  %11556 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 1
  %11557 = load i32, ptr %11556, align 8, !tbaa !46
  store i32 %11557, ptr %316, align 4, !tbaa !5
  %11558 = load i32, ptr %316, align 4, !tbaa !5
  %11559 = icmp ne i32 %11558, 0
  br i1 %11559, label %11560, label %11624

11560:                                            ; preds = %11555
  %11561 = load ptr, ptr %291, align 8, !tbaa !9
  %11562 = getelementptr inbounds %struct.s2n_connection, ptr %11561, i32 0, i32 32
  %11563 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %11562, i32 0, i32 13
  %11564 = getelementptr inbounds [32 x i8], ptr %11563, i64 0, i64 0
  %11565 = getelementptr inbounds %struct.s2n_blob, ptr %15, i32 0, i32 0
  %11566 = load ptr, ptr %11565, align 8, !tbaa !47
  %11567 = load i32, ptr %316, align 4, !tbaa !5
  %11568 = zext i32 %11567 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %11564, ptr align 1 %11566, i64 %11568, i1 false)
  %11569 = icmp eq ptr %11564, null
  br i1 %11569, label %11570, label %11623

11570:                                            ; preds = %11560
  br label %11571

11571:                                            ; preds = %11570
  br label %11572

11572:                                            ; preds = %11571
  call void @llvm.lifetime.start.p0(i64 4, ptr %317) #11
  %11573 = call ptr @__errno_location() #12
  %11574 = load i32, ptr %11573, align 4, !tbaa !5
  store i32 %11574, ptr %317, align 4, !tbaa !5
  %11575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11576 = call i32 @s2n_print_stacktrace(ptr noundef %11575)
  %11577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11578 = trunc i8 %11577 to i1
  br i1 %11578, label %11579, label %11601

11579:                                            ; preds = %11572
  %11580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11581 = call i32 @fileno(ptr noundef %11580) #11
  %11582 = call i32 @isatty(i32 noundef %11581) #11
  %11583 = icmp ne i32 %11582, 0
  br i1 %11583, label %11584, label %11601

11584:                                            ; preds = %11579
  %11585 = load i32, ptr %317, align 4, !tbaa !5
  %11586 = call ptr @__errno_location() #12
  store i32 %11585, ptr %11586, align 4, !tbaa !5
  %11587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11588 = load i32, ptr @test_count, align 4, !tbaa !5
  %11589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11590 = load i32, ptr %11589, align 4, !tbaa !5
  %11591 = call ptr @s2n_strerror(i32 noundef %11590, ptr noundef @.str.24)
  %11592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11593 = load i32, ptr %11592, align 4, !tbaa !5
  %11594 = call ptr @s2n_strerror_debug(i32 noundef %11593, ptr noundef @.str.24)
  %11595 = call ptr @__errno_location() #12
  %11596 = load i32, ptr %11595, align 4, !tbaa !5
  %11597 = call ptr @strerror(i32 noundef %11596) #11
  %11598 = call ptr @__errno_location() #12
  %11599 = load i32, ptr %11598, align 4, !tbaa !5
  %11600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11587, ptr noundef @.str.22, i32 noundef %11588, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 521, ptr noundef %11591, ptr noundef %11594, ptr noundef %11597, i32 noundef %11599) #11
  br label %11618

11601:                                            ; preds = %11579, %11572
  %11602 = load i32, ptr %317, align 4, !tbaa !5
  %11603 = call ptr @__errno_location() #12
  store i32 %11602, ptr %11603, align 4, !tbaa !5
  %11604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11605 = load i32, ptr @test_count, align 4, !tbaa !5
  %11606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11607 = load i32, ptr %11606, align 4, !tbaa !5
  %11608 = call ptr @s2n_strerror(i32 noundef %11607, ptr noundef @.str.24)
  %11609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11610 = load i32, ptr %11609, align 4, !tbaa !5
  %11611 = call ptr @s2n_strerror_debug(i32 noundef %11610, ptr noundef @.str.24)
  %11612 = call ptr @__errno_location() #12
  %11613 = load i32, ptr %11612, align 4, !tbaa !5
  %11614 = call ptr @strerror(i32 noundef %11613) #11
  %11615 = call ptr @__errno_location() #12
  %11616 = load i32, ptr %11615, align 4, !tbaa !5
  %11617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11604, ptr noundef @.str.25, i32 noundef %11605, ptr noundef @.str.81, ptr noundef @.str.21, i32 noundef 521, ptr noundef %11608, ptr noundef %11611, ptr noundef %11614, i32 noundef %11616) #11
  br label %11618

11618:                                            ; preds = %11601, %11584
  call void @llvm.lifetime.end.p0(i64 4, ptr %317) #11
  br label %11619

11619:                                            ; preds = %11618
  br label %11620

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

11621:                                            ; No predecessors!
  br label %11622

11622:                                            ; preds = %11621
  br label %11623

11623:                                            ; preds = %11622, %11560
  br label %11624

11624:                                            ; preds = %11623, %11555
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #11
  br label %11625

11625:                                            ; preds = %11624
  br label %11626

11626:                                            ; preds = %11625
  br label %11627

11627:                                            ; preds = %11626
  %11628 = load i32, ptr @test_count, align 4, !tbaa !5
  %11629 = add nsw i32 %11628, 1
  store i32 %11629, ptr @test_count, align 4, !tbaa !5
  %11630 = load ptr, ptr %291, align 8, !tbaa !9
  %11631 = call i32 @s2n_prf_tls_master_secret(ptr noundef %11630, ptr noundef %289)
  %11632 = icmp eq i32 %11631, -1
  br i1 %11632, label %11633, label %11686

11633:                                            ; preds = %11627
  br label %11634

11634:                                            ; preds = %11633
  br label %11635

11635:                                            ; preds = %11634
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #11
  %11636 = call ptr @__errno_location() #12
  %11637 = load i32, ptr %11636, align 4, !tbaa !5
  store i32 %11637, ptr %318, align 4, !tbaa !5
  %11638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11639 = call i32 @s2n_print_stacktrace(ptr noundef %11638)
  %11640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11641 = trunc i8 %11640 to i1
  br i1 %11641, label %11642, label %11664

11642:                                            ; preds = %11635
  %11643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11644 = call i32 @fileno(ptr noundef %11643) #11
  %11645 = call i32 @isatty(i32 noundef %11644) #11
  %11646 = icmp ne i32 %11645, 0
  br i1 %11646, label %11647, label %11664

11647:                                            ; preds = %11642
  %11648 = load i32, ptr %318, align 4, !tbaa !5
  %11649 = call ptr @__errno_location() #12
  store i32 %11648, ptr %11649, align 4, !tbaa !5
  %11650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11651 = load i32, ptr @test_count, align 4, !tbaa !5
  %11652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11653 = load i32, ptr %11652, align 4, !tbaa !5
  %11654 = call ptr @s2n_strerror(i32 noundef %11653, ptr noundef @.str.24)
  %11655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11656 = load i32, ptr %11655, align 4, !tbaa !5
  %11657 = call ptr @s2n_strerror_debug(i32 noundef %11656, ptr noundef @.str.24)
  %11658 = call ptr @__errno_location() #12
  %11659 = load i32, ptr %11658, align 4, !tbaa !5
  %11660 = call ptr @strerror(i32 noundef %11659) #11
  %11661 = call ptr @__errno_location() #12
  %11662 = load i32, ptr %11661, align 4, !tbaa !5
  %11663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11650, ptr noundef @.str.22, i32 noundef %11651, ptr noundef @.str.83, ptr noundef @.str.21, i32 noundef 522, ptr noundef %11654, ptr noundef %11657, ptr noundef %11660, i32 noundef %11662) #11
  br label %11681

11664:                                            ; preds = %11642, %11635
  %11665 = load i32, ptr %318, align 4, !tbaa !5
  %11666 = call ptr @__errno_location() #12
  store i32 %11665, ptr %11666, align 4, !tbaa !5
  %11667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11668 = load i32, ptr @test_count, align 4, !tbaa !5
  %11669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11670 = load i32, ptr %11669, align 4, !tbaa !5
  %11671 = call ptr @s2n_strerror(i32 noundef %11670, ptr noundef @.str.24)
  %11672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11673 = load i32, ptr %11672, align 4, !tbaa !5
  %11674 = call ptr @s2n_strerror_debug(i32 noundef %11673, ptr noundef @.str.24)
  %11675 = call ptr @__errno_location() #12
  %11676 = load i32, ptr %11675, align 4, !tbaa !5
  %11677 = call ptr @strerror(i32 noundef %11676) #11
  %11678 = call ptr @__errno_location() #12
  %11679 = load i32, ptr %11678, align 4, !tbaa !5
  %11680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11667, ptr noundef @.str.25, i32 noundef %11668, ptr noundef @.str.83, ptr noundef @.str.21, i32 noundef 522, ptr noundef %11671, ptr noundef %11674, ptr noundef %11677, i32 noundef %11679) #11
  br label %11681

11681:                                            ; preds = %11664, %11647
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #11
  br label %11682

11682:                                            ; preds = %11681
  br label %11683

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

11684:                                            ; No predecessors!
  br label %11685

11685:                                            ; preds = %11684
  br label %11686

11686:                                            ; preds = %11685, %11627
  br label %11687

11687:                                            ; preds = %11686
  br label %11688

11688:                                            ; preds = %11687
  br label %11689

11689:                                            ; preds = %11688
  %11690 = load i32, ptr @test_count, align 4, !tbaa !5
  %11691 = add nsw i32 %11690, 1
  store i32 %11691, ptr @test_count, align 4, !tbaa !5
  %11692 = load ptr, ptr %291, align 8, !tbaa !9
  %11693 = getelementptr inbounds %struct.s2n_connection, ptr %11692, i32 0, i32 28
  %11694 = getelementptr inbounds %struct.s2n_secrets, ptr %11693, i32 0, i32 0
  %11695 = getelementptr inbounds %struct.s2n_tls12_secrets, ptr %11694, i32 0, i32 1
  %11696 = getelementptr inbounds [48 x i8], ptr %11695, i64 0, i64 0
  %11697 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 0
  %11698 = load ptr, ptr %11697, align 8, !tbaa !47
  %11699 = getelementptr inbounds %struct.s2n_blob, ptr %17, i32 0, i32 1
  %11700 = load i32, ptr %11699, align 8, !tbaa !46
  %11701 = zext i32 %11700 to i64
  %11702 = call i32 @memcmp(ptr noundef %11696, ptr noundef %11698, i64 noundef %11701) #14
  %11703 = icmp eq i32 %11702, 0
  br i1 %11703, label %11757, label %11704

11704:                                            ; preds = %11689
  br label %11705

11705:                                            ; preds = %11704
  br label %11706

11706:                                            ; preds = %11705
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #11
  %11707 = call ptr @__errno_location() #12
  %11708 = load i32, ptr %11707, align 4, !tbaa !5
  store i32 %11708, ptr %319, align 4, !tbaa !5
  %11709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11710 = call i32 @s2n_print_stacktrace(ptr noundef %11709)
  %11711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11712 = trunc i8 %11711 to i1
  br i1 %11712, label %11713, label %11735

11713:                                            ; preds = %11706
  %11714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11715 = call i32 @fileno(ptr noundef %11714) #11
  %11716 = call i32 @isatty(i32 noundef %11715) #11
  %11717 = icmp ne i32 %11716, 0
  br i1 %11717, label %11718, label %11735

11718:                                            ; preds = %11713
  %11719 = load i32, ptr %319, align 4, !tbaa !5
  %11720 = call ptr @__errno_location() #12
  store i32 %11719, ptr %11720, align 4, !tbaa !5
  %11721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11722 = load i32, ptr @test_count, align 4, !tbaa !5
  %11723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11724 = load i32, ptr %11723, align 4, !tbaa !5
  %11725 = call ptr @s2n_strerror(i32 noundef %11724, ptr noundef @.str.24)
  %11726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11727 = load i32, ptr %11726, align 4, !tbaa !5
  %11728 = call ptr @s2n_strerror_debug(i32 noundef %11727, ptr noundef @.str.24)
  %11729 = call ptr @__errno_location() #12
  %11730 = load i32, ptr %11729, align 4, !tbaa !5
  %11731 = call ptr @strerror(i32 noundef %11730) #11
  %11732 = call ptr @__errno_location() #12
  %11733 = load i32, ptr %11732, align 4, !tbaa !5
  %11734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11721, ptr noundef @.str.22, i32 noundef %11722, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 523, ptr noundef %11725, ptr noundef %11728, ptr noundef %11731, i32 noundef %11733) #11
  br label %11752

11735:                                            ; preds = %11713, %11706
  %11736 = load i32, ptr %319, align 4, !tbaa !5
  %11737 = call ptr @__errno_location() #12
  store i32 %11736, ptr %11737, align 4, !tbaa !5
  %11738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11739 = load i32, ptr @test_count, align 4, !tbaa !5
  %11740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11741 = load i32, ptr %11740, align 4, !tbaa !5
  %11742 = call ptr @s2n_strerror(i32 noundef %11741, ptr noundef @.str.24)
  %11743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11744 = load i32, ptr %11743, align 4, !tbaa !5
  %11745 = call ptr @s2n_strerror_debug(i32 noundef %11744, ptr noundef @.str.24)
  %11746 = call ptr @__errno_location() #12
  %11747 = load i32, ptr %11746, align 4, !tbaa !5
  %11748 = call ptr @strerror(i32 noundef %11747) #11
  %11749 = call ptr @__errno_location() #12
  %11750 = load i32, ptr %11749, align 4, !tbaa !5
  %11751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11738, ptr noundef @.str.25, i32 noundef %11739, ptr noundef @.str.84, ptr noundef @.str.21, i32 noundef 523, ptr noundef %11742, ptr noundef %11745, ptr noundef %11748, i32 noundef %11750) #11
  br label %11752

11752:                                            ; preds = %11735, %11718
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #11
  br label %11753

11753:                                            ; preds = %11752
  br label %11754

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

11755:                                            ; No predecessors!
  br label %11756

11756:                                            ; preds = %11755
  br label %11757

11757:                                            ; preds = %11756, %11689
  br label %11758

11758:                                            ; preds = %11757
  br label %11759

11759:                                            ; preds = %11758
  %11760 = call i32 @s2n_connection_ptr_free(ptr noundef %291)
  %11761 = getelementptr inbounds %struct.s2n_result, ptr %320, i32 0, i32 0
  store i32 %11760, ptr %11761, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %289) #11
  br label %11762

11762:                                            ; preds = %11759
  br label %11763

11763:                                            ; preds = %11762
  %11764 = call i32 @s2n_cleanup()
  %11765 = icmp eq i32 %11764, -1
  br i1 %11765, label %11766, label %11819

11766:                                            ; preds = %11763
  br label %11767

11767:                                            ; preds = %11766
  br label %11768

11768:                                            ; preds = %11767
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #11
  %11769 = call ptr @__errno_location() #12
  %11770 = load i32, ptr %11769, align 4, !tbaa !5
  store i32 %11770, ptr %321, align 4, !tbaa !5
  %11771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11772 = call i32 @s2n_print_stacktrace(ptr noundef %11771)
  %11773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11774 = trunc i8 %11773 to i1
  br i1 %11774, label %11775, label %11797

11775:                                            ; preds = %11768
  %11776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11777 = call i32 @fileno(ptr noundef %11776) #11
  %11778 = call i32 @isatty(i32 noundef %11777) #11
  %11779 = icmp ne i32 %11778, 0
  br i1 %11779, label %11780, label %11797

11780:                                            ; preds = %11775
  %11781 = load i32, ptr %321, align 4, !tbaa !5
  %11782 = call ptr @__errno_location() #12
  store i32 %11781, ptr %11782, align 4, !tbaa !5
  %11783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11784 = load i32, ptr @test_count, align 4, !tbaa !5
  %11785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11786 = load i32, ptr %11785, align 4, !tbaa !5
  %11787 = call ptr @s2n_strerror(i32 noundef %11786, ptr noundef @.str.24)
  %11788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11789 = load i32, ptr %11788, align 4, !tbaa !5
  %11790 = call ptr @s2n_strerror_debug(i32 noundef %11789, ptr noundef @.str.24)
  %11791 = call ptr @__errno_location() #12
  %11792 = load i32, ptr %11791, align 4, !tbaa !5
  %11793 = call ptr @strerror(i32 noundef %11792) #11
  %11794 = call ptr @__errno_location() #12
  %11795 = load i32, ptr %11794, align 4, !tbaa !5
  %11796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11783, ptr noundef @.str.22, i32 noundef %11784, ptr noundef @.str.144, ptr noundef @.str.21, i32 noundef 527, ptr noundef %11787, ptr noundef %11790, ptr noundef %11793, i32 noundef %11795) #11
  br label %11814

11797:                                            ; preds = %11775, %11768
  %11798 = load i32, ptr %321, align 4, !tbaa !5
  %11799 = call ptr @__errno_location() #12
  store i32 %11798, ptr %11799, align 4, !tbaa !5
  %11800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11801 = load i32, ptr @test_count, align 4, !tbaa !5
  %11802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11803 = load i32, ptr %11802, align 4, !tbaa !5
  %11804 = call ptr @s2n_strerror(i32 noundef %11803, ptr noundef @.str.24)
  %11805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11806 = load i32, ptr %11805, align 4, !tbaa !5
  %11807 = call ptr @s2n_strerror_debug(i32 noundef %11806, ptr noundef @.str.24)
  %11808 = call ptr @__errno_location() #12
  %11809 = load i32, ptr %11808, align 4, !tbaa !5
  %11810 = call ptr @strerror(i32 noundef %11809) #11
  %11811 = call ptr @__errno_location() #12
  %11812 = load i32, ptr %11811, align 4, !tbaa !5
  %11813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11800, ptr noundef @.str.25, i32 noundef %11801, ptr noundef @.str.144, ptr noundef @.str.21, i32 noundef 527, ptr noundef %11804, ptr noundef %11807, ptr noundef %11810, i32 noundef %11812) #11
  br label %11814

11814:                                            ; preds = %11797, %11780
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #11
  br label %11815

11815:                                            ; preds = %11814
  br label %11816

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

11817:                                            ; No predecessors!
  br label %11818

11818:                                            ; preds = %11817
  br label %11819

11819:                                            ; preds = %11818, %11763
  br label %11820

11820:                                            ; preds = %11819
  br label %11821

11821:                                            ; preds = %11820
  br label %11822

11822:                                            ; preds = %11821
  br label %11823

11823:                                            ; preds = %11822
  %11824 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %11825 = icmp eq i32 %11824, -1
  br i1 %11825, label %11826, label %11879

11826:                                            ; preds = %11823
  br label %11827

11827:                                            ; preds = %11826
  br label %11828

11828:                                            ; preds = %11827
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #11
  %11829 = call ptr @__errno_location() #12
  %11830 = load i32, ptr %11829, align 4, !tbaa !5
  store i32 %11830, ptr %322, align 4, !tbaa !5
  %11831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11832 = call i32 @s2n_print_stacktrace(ptr noundef %11831)
  %11833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11834 = trunc i8 %11833 to i1
  br i1 %11834, label %11835, label %11857

11835:                                            ; preds = %11828
  %11836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11837 = call i32 @fileno(ptr noundef %11836) #11
  %11838 = call i32 @isatty(i32 noundef %11837) #11
  %11839 = icmp ne i32 %11838, 0
  br i1 %11839, label %11840, label %11857

11840:                                            ; preds = %11835
  %11841 = load i32, ptr %322, 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.22, i32 noundef %11844, ptr noundef @.str.145, ptr noundef @.str.21, i32 noundef 527, ptr noundef %11847, ptr noundef %11850, ptr noundef %11853, i32 noundef %11855) #11
  br label %11874

11857:                                            ; preds = %11835, %11828
  %11858 = load i32, ptr %322, align 4, !tbaa !5
  %11859 = call ptr @__errno_location() #12
  store i32 %11858, ptr %11859, align 4, !tbaa !5
  %11860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11861 = load i32, ptr @test_count, align 4, !tbaa !5
  %11862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11863 = load i32, ptr %11862, align 4, !tbaa !5
  %11864 = call ptr @s2n_strerror(i32 noundef %11863, ptr noundef @.str.24)
  %11865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11866 = load i32, ptr %11865, align 4, !tbaa !5
  %11867 = call ptr @s2n_strerror_debug(i32 noundef %11866, ptr noundef @.str.24)
  %11868 = call ptr @__errno_location() #12
  %11869 = load i32, ptr %11868, align 4, !tbaa !5
  %11870 = call ptr @strerror(i32 noundef %11869) #11
  %11871 = call ptr @__errno_location() #12
  %11872 = load i32, ptr %11871, align 4, !tbaa !5
  %11873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11860, ptr noundef @.str.25, i32 noundef %11861, ptr noundef @.str.145, ptr noundef @.str.21, i32 noundef 527, ptr noundef %11864, ptr noundef %11867, ptr noundef %11870, i32 noundef %11872) #11
  br label %11874

11874:                                            ; preds = %11857, %11840
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #11
  br label %11875

11875:                                            ; preds = %11874
  br label %11876

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

11877:                                            ; No predecessors!
  br label %11878

11878:                                            ; preds = %11877
  br label %11879

11879:                                            ; preds = %11878, %11823
  br label %11880

11880:                                            ; preds = %11879
  br label %11881

11881:                                            ; preds = %11880
  %11882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11883 = trunc i8 %11882 to i1
  br i1 %11883, label %11884, label %11900

11884:                                            ; preds = %11881
  %11885 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11886 = call i32 @fileno(ptr noundef %11885) #11
  %11887 = call i32 @isatty(i32 noundef %11886) #11
  %11888 = icmp ne i32 %11887, 0
  br i1 %11888, label %11889, label %11900

11889:                                            ; preds = %11884
  %11890 = load i32, ptr @test_count, align 4, !tbaa !5
  %11891 = icmp ne i32 %11890, 0
  br i1 %11891, label %11892, label %11896

11892:                                            ; preds = %11889
  %11893 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11894 = load i32, ptr @test_count, align 4, !tbaa !5
  %11895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11893, ptr noundef @.str.146, i32 noundef %11894) #11
  br label %11899

11896:                                            ; preds = %11889
  %11897 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11897, ptr noundef @.str.147) #11
  br label %11899

11899:                                            ; preds = %11896, %11892
  br label %11911

11900:                                            ; preds = %11884, %11881
  %11901 = load i32, ptr @test_count, align 4, !tbaa !5
  %11902 = icmp ne i32 %11901, 0
  br i1 %11902, label %11903, label %11907

11903:                                            ; preds = %11900
  %11904 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11905 = load i32, ptr @test_count, align 4, !tbaa !5
  %11906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11904, ptr noundef @.str.148, i32 noundef %11905) #11
  br label %11910

11907:                                            ; preds = %11900
  %11908 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11908, ptr noundef @.str.149) #11
  br label %11910

11910:                                            ; preds = %11907, %11903
  br label %11911

11911:                                            ; preds = %11910, %11899
  store i32 0, ptr %3, align 4
  store i32 1, ptr %12, align 4
  br label %11916

11912:                                            ; No predecessors!
  br label %11913

11913:                                            ; preds = %11912
  br label %11914

11914:                                            ; preds = %11913
  br label %11915

11915:                                            ; preds = %11914
  store i32 0, ptr %12, align 4
  br label %11916

11916:                                            ; preds = %11915, %11911, %8454, %5614, %4889, %595
  %11917 = call i32 @s2n_free(ptr noundef %17)
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #11
  br label %11918

11918:                                            ; preds = %11916, %585
  %11919 = call i32 @s2n_free(ptr noundef %15)
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #11
  br label %11920

11920:                                            ; preds = %11918, %575
  %11921 = call i32 @s2n_free(ptr noundef %13)
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #11
  br label %11922

11922:                                            ; preds = %11920, %565
  %11923 = call i32 @s2n_free(ptr noundef %10)
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #11
  %11924 = load i32, ptr %12, align 4
  switch i32 %11924, label %11927 [
    i32 0, label %11925
    i32 1, label %11925
  ]

11925:                                            ; preds = %11922, %11922
  %11926 = load i32, ptr %3, align 4
  ret i32 %11926

11927:                                            ; preds = %11922
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare i32 @s2n_free(ptr noundef) #2

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

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

declare void @s2n_debug_info_reset() #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #5

declare zeroext i1 @s2n_libcrypto_is_openssl_fips() #2

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

declare zeroext i1 @s2n_is_in_fips_mode() #2

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

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

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

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

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

declare ptr @s2n_config_new() #2

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #2

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

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

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

declare i32 @s2n_hash_free(ptr noundef) #2

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

declare i32 @s2n_hash_new(ptr noundef) #2

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

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

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

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

declare i32 @s2n_prf_new(ptr noundef) #2

declare i32 @s2n_prf_wipe(ptr noundef) #2

declare i32 @s2n_prf_free(ptr noundef) #2

declare i32 @s2n_connection_free_handshake(ptr noundef) #2

declare i32 @s2n_connection_wipe(ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nounwind willreturn memory(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 #6 = { 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 #7 = { 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 #8 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
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 = !{!"long", !7, i64 0}
!17 = !{!18, !10, i64 0}
!18 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!19 = !{!18, !10, i64 8}
!20 = !{!21, !7, i64 220}
!21 = !{!"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, !22, i64 160, !16, i64 168, !16, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !23, i64 240, !10, i64 632, !10, i64 640, !24, i64 648, !30, i64 1144, !33, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !36, i64 1776, !36, i64 1816, !36, i64 1856, !36, i64 1896, !6, i64 1936, !16, i64 1944, !7, i64 1952, !36, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !37, i64 2004, !37, i64 2008, !38, i64 2016, !35, i64 2208, !6, i64 2212, !35, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !37, i64 2264, !37, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !29, i64 2792, !6, i64 2816, !29, i64 2824, !29, i64 2848, !29, i64 2872, !40, i64 2896, !42, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !29, i64 3784, !6, i64 3808, !44, i64 3816, !7, i64 3848, !36, i64 3992, !29, i64 4032, !29, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !35, i64 4084, !35, i64 4086, !6, i64 4088, !6, i64 4092, !29, i64 4096, !6, i64 4120, !45, i64 4128, !37, i64 4176, !7, i64 4180, !7, i64 4181}
!22 = !{!"s2n_timer", !16, i64 0}
!23 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!24 = !{!"s2n_kex_parameters", !25, i64 0, !26, i64 8, !7, i64 24, !26, i64 56, !27, i64 72, !27, i64 184, !7, i64 296, !28, i64 360, !29, i64 448, !29, i64 472}
!25 = !{!"s2n_dh_params", !10, i64 0}
!26 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!27 = !{!"s2n_kem_group_params", !10, i64 0, !28, i64 8, !26, i64 96}
!28 = !{!"s2n_kem_params", !10, i64 0, !29, i64 8, !29, i64 32, !29, i64 56, !12, i64 80}
!29 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!30 = !{!"s2n_handshake_parameters", !31, i64 0, !31, i64 48, !29, i64 96, !6, i64 120, !32, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!31 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!32 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!33 = !{!"s2n_psk_parameters", !6, i64 0, !34, i64 8, !35, i64 40, !35, i64 42, !10, i64 48, !6, i64 56}
!34 = !{!"s2n_array", !29, i64 0, !6, i64 24, !6, i64 28}
!35 = !{!"short", !7, i64 0}
!36 = !{!"s2n_stuffer", !29, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!37 = !{!"", !6, i64 0}
!38 = !{!"s2n_handshake", !36, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !39, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!39 = !{!"s2n_offered_early_data", !10, i64 0}
!40 = !{!"s2n_client_hello", !29, i64 0, !41, i64 24, !29, i64 728, !29, i64 752, !29, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!41 = !{!"", !7, i64 0, !29, i64 672, !35, i64 696}
!42 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !35, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !43, i64 48, !12, i64 52}
!43 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!44 = !{!"s2n_ticket_fields", !29, i64 0, !6, i64 24}
!45 = !{!"s2n_post_handshake", !36, i64 0, !7, i64 40}
!46 = !{!29, !6, i64 8}
!47 = !{!29, !10, i64 0}
!48 = !{!21, !10, i64 232}
!49 = !{!50, !10, i64 0}
!50 = !{!"s2n_crypto_parameters", !10, i64 0, !51, i64 8, !51, i64 16, !52, i64 24, !52, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!51 = !{!"s2n_session_key", !10, i64 0}
!52 = !{!"s2n_hmac_state", !6, i64 0, !35, i64 4, !6, i64 8, !35, i64 12, !7, i64 14, !53, i64 16, !53, i64 72, !53, i64 128, !53, i64 184, !7, i64 240, !7, i64 368}
!53 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !16, i64 16, !7, i64 24}
!54 = !{!21, !10, i64 1752}
!55 = !{!21, !6, i64 2172}
!56 = !{!21, !6, i64 2204}
!57 = !{!21, !6, i64 2176}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = !{!36, !6, i64 28}
!61 = !{!36, !6, i64 24}
!62 = !{!7, !7, i64 0}
!63 = !{!64, !6, i64 96}
!64 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}


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

%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, 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 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@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 [75 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [92 x i8], align 1
@s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.64 = external hidden unnamed_addr constant [189 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [206 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [25 x i8], align 1
@tls13_handshakes = external hidden local_unnamed_addr global <{ <{ i32, i32, [30 x i32] }>, <{ i32, i32, i32, i32, i32, i32, [26 x i32] }>, [32 x i32], <{ [8 x i32], [24 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [10 x i32], [22 x i32] }>, <{ i32, i32, [30 x i32] }>, <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], <{ i32, i32, i32, i32, i32, i32, i32, [25 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [9 x i32], [23 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ i32, i32, i32, [29 x i32] }>, <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, <{ i32, i32, i32, [29 x i32] }>, <{ [10 x i32], [22 x i32] }>, [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [9 x i32], [23 x i32] }>, [30 x [32 x i32]] }>, align 16
@handshakes = external hidden 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

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

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

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

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

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_rewind_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_write_io(ptr noundef) local_unnamed_addr #6

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

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #6 {
  %3 = alloca %struct.s2n_blob, align 8
  %4 = alloca %struct.s2n_blob, align 8
  %5 = alloca %struct.s2n_blob, align 8
  %6 = alloca %struct.s2n_blob, align 8
  %7 = alloca [64 x i8], align 16
  %8 = alloca %struct.s2n_blob, align 8
  %9 = alloca [64 x i8], align 16
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca [64 x i8], align 16
  %12 = alloca %struct.s2n_blob, align 8
  %13 = alloca [64 x i8], align 16
  %14 = alloca %struct.s2n_blob, align 8
  %15 = alloca [64 x i8], align 16
  %16 = alloca %struct.s2n_blob, align 8
  %17 = alloca ptr, align 8
  %18 = alloca [64 x i8], align 16
  %19 = alloca %struct.s2n_blob, align 8
  %20 = alloca %struct.s2n_blob, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.s2n_blob, align 8
  %23 = alloca [64 x i8], align 16
  %24 = alloca %struct.s2n_blob, align 8
  %25 = alloca ptr, align 8
  %26 = alloca %struct.s2n_blob, align 8
  %27 = alloca [64 x i8], align 16
  %28 = alloca %struct.s2n_blob, align 8
  %29 = alloca ptr, align 8
  %30 = alloca %struct.s2n_blob, align 8
  %31 = alloca [64 x i8], align 16
  %32 = alloca %struct.s2n_blob, align 8
  %33 = alloca ptr, align 8
  %34 = alloca %struct.s2n_blob, align 8
  %35 = alloca [64 x i8], align 16
  %36 = alloca %struct.s2n_blob, align 8
  %37 = alloca ptr, align 8
  %38 = alloca %struct.s2n_blob, align 8
  %39 = alloca [64 x i8], align 16
  %40 = alloca %struct.s2n_blob, align 8
  %41 = alloca ptr, align 8
  %42 = alloca %struct.s2n_blob, align 8
  %43 = alloca %struct.s2n_blob, align 8
  %44 = alloca %struct.s2n_blob, align 8
  %45 = alloca [64 x i8], align 16
  %46 = alloca %struct.s2n_blob, align 8
  %47 = alloca ptr, align 8
  %48 = alloca [64 x i8], align 16
  %49 = alloca [64 x i8], align 16
  %50 = alloca %struct.s2n_blob, align 8
  %51 = alloca ptr, align 8
  %52 = alloca [64 x i8], align 16
  %53 = alloca [64 x i8], align 16
  %54 = alloca %struct.s2n_blob, align 8
  %55 = alloca ptr, align 8
  %56 = alloca %struct.s2n_blob, align 8
  %57 = alloca %struct.s2n_blob, align 8
  %58 = alloca %struct.s2n_blob, align 8
  %59 = alloca %struct.s2n_blob, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca %struct.s2n_blob, align 8
  %63 = alloca ptr, align 8
  %64 = alloca %struct.s2n_stuffer, align 8
  %65 = alloca %struct.s2n_stuffer, align 8
  %66 = alloca [64 x i8], align 16
  %67 = alloca %struct.s2n_blob, align 8
  %68 = alloca %struct.s2n_blob, align 8
  %69 = alloca i32, align 4
  %70 = alloca %struct.s2n_hash_state, align 8
  %71 = alloca [64 x i8], align 16
  %72 = alloca i8, align 1
  %73 = alloca %struct.s2n_connection, align 8
  %74 = alloca %struct.s2n_connection, align 8
  %75 = alloca ptr, align 8
  %76 = alloca ptr, align 8
  %77 = alloca %struct.s2n_blob, align 8
  %78 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %79 = load ptr, ptr @stdout, align 8, !tbaa !9
  %80 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %79, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21) #12
  %81 = load ptr, ptr @stdout, align 8, !tbaa !9
  %82 = tail call i32 @fflush(ptr noundef %81)
  %83 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %84 = icmp eq i32 %83, -1
  br i1 %84, label %85, label %109

85:                                               ; preds = %2
  %86 = tail call ptr @__errno_location() #13
  %87 = load i32, ptr %86, align 4, !tbaa !5
  %88 = load ptr, ptr @stderr, align 8, !tbaa !9
  %89 = tail call i32 @s2n_print_stacktrace(ptr noundef %88) #12
  %90 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %91 = trunc nuw i8 %90 to i1
  br i1 %91, label %92, label %96

92:                                               ; preds = %85
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = tail call i32 @fileno(ptr noundef %93) #12
  %95 = tail call i32 @isatty(i32 noundef %94) #12
  %.not725 = icmp eq i32 %95, 0
  br i1 %.not725, label %96, label %97

96:                                               ; preds = %92, %85
  br label %97

97:                                               ; preds = %92, %96
  %.str.25.sink = phi ptr [ @.str.25, %96 ], [ @.str.22, %92 ]
  store i32 %87, ptr %86, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = load i32, ptr @test_count, align 4, !tbaa !5
  %100 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %101 = load i32, ptr %100, align 4, !tbaa !5
  %102 = tail call ptr @s2n_strerror(i32 noundef %101, ptr noundef nonnull @.str.24) #12
  %103 = load i32, ptr %100, align 4, !tbaa !5
  %104 = tail call ptr @s2n_strerror_debug(i32 noundef %103, ptr noundef nonnull @.str.24) #12
  %105 = load i32, ptr %86, align 4, !tbaa !5
  %106 = tail call ptr @strerror(i32 noundef %105) #12
  %107 = load i32, ptr %86, align 4, !tbaa !5
  %108 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %98, ptr noundef nonnull %.str.25.sink, i32 noundef %99, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.21, i32 noundef 48, ptr noundef %102, ptr noundef %104, ptr noundef %106, i32 noundef %107) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

109:                                              ; preds = %2
  %110 = load i32, ptr @test_count, align 4, !tbaa !5
  %111 = add nsw i32 %110, 1
  store i32 %111, ptr @test_count, align 4, !tbaa !5
  %112 = tail call i32 @s2n_enable_atexit() #12
  %113 = icmp eq i32 %112, -1
  br i1 %113, label %114, label %138

114:                                              ; preds = %109
  %115 = tail call ptr @__errno_location() #13
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %118 = tail call i32 @s2n_print_stacktrace(ptr noundef %117) #12
  %119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %120 = trunc nuw i8 %119 to i1
  br i1 %120, label %121, label %125

121:                                              ; preds = %114
  %122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %123 = tail call i32 @fileno(ptr noundef %122) #12
  %124 = tail call i32 @isatty(i32 noundef %123) #12
  %.not724 = icmp eq i32 %124, 0
  br i1 %.not724, label %125, label %126

125:                                              ; preds = %121, %114
  br label %126

126:                                              ; preds = %121, %125
  %.str.25.sink756 = phi ptr [ @.str.25, %125 ], [ @.str.22, %121 ]
  store i32 %116, ptr %115, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = load i32, ptr @test_count, align 4, !tbaa !5
  %129 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = tail call ptr @s2n_strerror(i32 noundef %130, ptr noundef nonnull @.str.24) #12
  %132 = load i32, ptr %129, align 4, !tbaa !5
  %133 = tail call ptr @s2n_strerror_debug(i32 noundef %132, ptr noundef nonnull @.str.24) #12
  %134 = load i32, ptr %115, align 4, !tbaa !5
  %135 = tail call ptr @strerror(i32 noundef %134) #12
  %136 = load i32, ptr %115, align 4, !tbaa !5
  %137 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %127, ptr noundef nonnull %.str.25.sink756, i32 noundef %128, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.21, i32 noundef 48, ptr noundef %131, ptr noundef %133, ptr noundef %135, i32 noundef %136) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

138:                                              ; preds = %109
  %139 = tail call i32 @s2n_init() #12
  %140 = icmp eq i32 %139, -1
  br i1 %140, label %141, label %165

141:                                              ; preds = %138
  %142 = tail call ptr @__errno_location() #13
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %145 = tail call i32 @s2n_print_stacktrace(ptr noundef %144) #12
  %146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %147 = trunc nuw i8 %146 to i1
  br i1 %147, label %148, label %152

148:                                              ; preds = %141
  %149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %150 = tail call i32 @fileno(ptr noundef %149) #12
  %151 = tail call i32 @isatty(i32 noundef %150) #12
  %.not723 = icmp eq i32 %151, 0
  br i1 %.not723, label %152, label %153

152:                                              ; preds = %148, %141
  br label %153

153:                                              ; preds = %148, %152
  %.str.25.sink767 = phi ptr [ @.str.25, %152 ], [ @.str.22, %148 ]
  store i32 %143, ptr %142, align 4, !tbaa !5
  %154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = tail call ptr @s2n_strerror(i32 noundef %157, ptr noundef nonnull @.str.24) #12
  %159 = load i32, ptr %156, align 4, !tbaa !5
  %160 = tail call ptr @s2n_strerror_debug(i32 noundef %159, ptr noundef nonnull @.str.24) #12
  %161 = load i32, ptr %142, align 4, !tbaa !5
  %162 = tail call ptr @strerror(i32 noundef %161) #12
  %163 = load i32, ptr %142, align 4, !tbaa !5
  %164 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %154, ptr noundef nonnull %.str.25.sink767, i32 noundef %155, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.21, i32 noundef 48, ptr noundef %158, ptr noundef %160, ptr noundef %162, i32 noundef %163) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

165:                                              ; preds = %138
  %166 = load i32, ptr @test_count, align 4, !tbaa !5
  %167 = add nsw i32 %166, 1
  store i32 %167, ptr @test_count, align 4, !tbaa !5
  %168 = tail call i32 (...) @s2n_disable_tls13_in_test() #12
  %169 = icmp eq i32 %168, -1
  br i1 %169, label %170, label %194

170:                                              ; preds = %165
  %171 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %180 = tail call i32 @isatty(i32 noundef %179) #12
  %.not722 = icmp eq i32 %180, 0
  br i1 %.not722, label %181, label %182

181:                                              ; preds = %177, %170
  br label %182

182:                                              ; preds = %177, %181
  %.str.25.sink778 = 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) #12
  %188 = load i32, ptr %185, align 4, !tbaa !5
  %189 = tail call ptr @s2n_strerror_debug(i32 noundef %188, ptr noundef nonnull @.str.24) #12
  %190 = load i32, ptr %171, align 4, !tbaa !5
  %191 = tail call ptr @strerror(i32 noundef %190) #12
  %192 = load i32, ptr %171, align 4, !tbaa !5
  %193 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %183, ptr noundef nonnull %.str.25.sink778, i32 noundef %184, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.21, i32 noundef 49, ptr noundef %187, ptr noundef %189, ptr noundef %191, i32 noundef %192) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

194:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false)
  %195 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %3, ptr noundef nonnull @.str.29) #12
  %196 = call zeroext i1 @s2n_result_is_ok(i32 %195)
  br i1 %196, label %197, label %4473

197:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  %198 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %4, ptr noundef nonnull @.str.30) #12
  %199 = call zeroext i1 @s2n_result_is_ok(i32 %198)
  br i1 %199, label %200, label %4471

200:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  %201 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %5, ptr noundef nonnull @.str.31) #12
  %202 = call zeroext i1 @s2n_result_is_ok(i32 %201)
  br i1 %202, label %203, label %4469

203:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false)
  %204 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %6, ptr noundef nonnull @.str.32) #12
  %205 = call zeroext i1 @s2n_result_is_ok(i32 %204)
  br i1 %205, label %206, label %4467

206:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %7, i8 0, i64 64, i1 false)
  store <4 x i8> <i8 115, i8 101, i8 99, i8 114>, ptr %7, align 16
  %207 = getelementptr inbounds i8, ptr %7, i64 4
  store i8 101, ptr %207, align 4
  %208 = getelementptr inbounds i8, ptr %7, i64 5
  store i8 116, ptr %208, align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, i8 0, i64 24, i1 false)
  %209 = load i32, ptr @test_count, align 4, !tbaa !5
  %210 = add nsw i32 %209, 1
  store i32 %210, ptr @test_count, align 4, !tbaa !5
  %211 = call i32 @s2n_blob_init(ptr noundef nonnull %8, ptr noundef nonnull %7, i32 noundef 64) #12
  %212 = icmp eq i32 %211, -1
  br i1 %212, label %213, label %237

213:                                              ; preds = %206
  %214 = tail call ptr @__errno_location() #13
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %217 = call i32 @s2n_print_stacktrace(ptr noundef %216) #12
  %218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %219 = trunc nuw i8 %218 to i1
  br i1 %219, label %220, label %224

220:                                              ; preds = %213
  %221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %222 = call i32 @fileno(ptr noundef %221) #12
  %223 = call i32 @isatty(i32 noundef %222) #12
  %.not721 = icmp eq i32 %223, 0
  br i1 %.not721, label %224, label %225

224:                                              ; preds = %220, %213
  br label %225

225:                                              ; preds = %220, %224
  %.str.25.sink789 = phi ptr [ @.str.25, %224 ], [ @.str.22, %220 ]
  store i32 %215, ptr %214, align 4, !tbaa !5
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = load i32, ptr @test_count, align 4, !tbaa !5
  %228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror(i32 noundef %229, ptr noundef nonnull @.str.24) #12
  %231 = load i32, ptr %228, align 4, !tbaa !5
  %232 = call ptr @s2n_strerror_debug(i32 noundef %231, ptr noundef nonnull @.str.24) #12
  %233 = load i32, ptr %214, align 4, !tbaa !5
  %234 = call ptr @strerror(i32 noundef %233) #12
  %235 = load i32, ptr %214, align 4, !tbaa !5
  %236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %226, ptr noundef nonnull %.str.25.sink789, i32 noundef %227, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 64, ptr noundef %230, ptr noundef %232, ptr noundef %234, i32 noundef %235) #14
  call void @exit(i32 noundef 1) #15
  unreachable

237:                                              ; preds = %206
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %9, i8 0, i64 64, i1 false)
  store <4 x i8> <i8 108, i8 97, i8 98, i8 101>, ptr %9, align 16
  %238 = getelementptr inbounds i8, ptr %9, i64 4
  store i8 108, ptr %238, align 4
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false)
  %239 = load i32, ptr @test_count, align 4, !tbaa !5
  %240 = add nsw i32 %239, 1
  store i32 %240, ptr @test_count, align 4, !tbaa !5
  %241 = call i32 @s2n_blob_init(ptr noundef nonnull %10, ptr noundef nonnull %9, i32 noundef 64) #12
  %242 = icmp eq i32 %241, -1
  br i1 %242, label %243, label %267

243:                                              ; preds = %237
  %244 = tail call ptr @__errno_location() #13
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = call i32 @s2n_print_stacktrace(ptr noundef %246) #12
  %248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %249 = trunc nuw i8 %248 to i1
  br i1 %249, label %250, label %254

250:                                              ; preds = %243
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = call i32 @fileno(ptr noundef %251) #12
  %253 = call i32 @isatty(i32 noundef %252) #12
  %.not720 = icmp eq i32 %253, 0
  br i1 %.not720, label %254, label %255

254:                                              ; preds = %250, %243
  br label %255

255:                                              ; preds = %250, %254
  %.str.25.sink800 = phi ptr [ @.str.25, %254 ], [ @.str.22, %250 ]
  store i32 %245, ptr %244, align 4, !tbaa !5
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = load i32, ptr @test_count, align 4, !tbaa !5
  %258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror(i32 noundef %259, ptr noundef nonnull @.str.24) #12
  %261 = load i32, ptr %258, align 4, !tbaa !5
  %262 = call ptr @s2n_strerror_debug(i32 noundef %261, ptr noundef nonnull @.str.24) #12
  %263 = load i32, ptr %244, align 4, !tbaa !5
  %264 = call ptr @strerror(i32 noundef %263) #12
  %265 = load i32, ptr %244, align 4, !tbaa !5
  %266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %256, ptr noundef nonnull %.str.25.sink800, i32 noundef %257, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 68, ptr noundef %260, ptr noundef %262, ptr noundef %264, i32 noundef %265) #14
  call void @exit(i32 noundef 1) #15
  unreachable

267:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %11) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %11, i8 0, i64 64, i1 false)
  store <4 x i8> <i8 115, i8 101, i8 101, i8 100>, ptr %11, align 16
  %268 = getelementptr inbounds i8, ptr %11, i64 4
  store i8 32, ptr %268, align 4
  %269 = getelementptr inbounds i8, ptr %11, i64 5
  store i8 97, ptr %269, align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, i8 0, i64 24, i1 false)
  %270 = load i32, ptr @test_count, align 4, !tbaa !5
  %271 = add nsw i32 %270, 1
  store i32 %271, ptr @test_count, align 4, !tbaa !5
  %272 = call i32 @s2n_blob_init(ptr noundef nonnull %12, ptr noundef nonnull %11, i32 noundef 64) #12
  %273 = icmp eq i32 %272, -1
  br i1 %273, label %274, label %298

274:                                              ; preds = %267
  %275 = tail call ptr @__errno_location() #13
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = call i32 @s2n_print_stacktrace(ptr noundef %277) #12
  %279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %280 = trunc nuw i8 %279 to i1
  br i1 %280, label %281, label %285

281:                                              ; preds = %274
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = call i32 @fileno(ptr noundef %282) #12
  %284 = call i32 @isatty(i32 noundef %283) #12
  %.not719 = icmp eq i32 %284, 0
  br i1 %.not719, label %285, label %286

285:                                              ; preds = %281, %274
  br label %286

286:                                              ; preds = %281, %285
  %.str.25.sink811 = phi ptr [ @.str.25, %285 ], [ @.str.22, %281 ]
  store i32 %276, ptr %275, align 4, !tbaa !5
  %287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %288 = load i32, ptr @test_count, align 4, !tbaa !5
  %289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = call ptr @s2n_strerror(i32 noundef %290, ptr noundef nonnull @.str.24) #12
  %292 = load i32, ptr %289, align 4, !tbaa !5
  %293 = call ptr @s2n_strerror_debug(i32 noundef %292, ptr noundef nonnull @.str.24) #12
  %294 = load i32, ptr %275, align 4, !tbaa !5
  %295 = call ptr @strerror(i32 noundef %294) #12
  %296 = load i32, ptr %275, align 4, !tbaa !5
  %297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %287, ptr noundef nonnull %.str.25.sink811, i32 noundef %288, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 72, ptr noundef %291, ptr noundef %293, ptr noundef %295, i32 noundef %296) #14
  call void @exit(i32 noundef 1) #15
  unreachable

298:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %13, i8 0, i64 64, i1 false)
  store <4 x i8> <i8 115, i8 101, i8 101, i8 100>, ptr %13, align 16
  %299 = getelementptr inbounds i8, ptr %13, i64 4
  store i8 32, ptr %299, align 4
  %300 = getelementptr inbounds i8, ptr %13, i64 5
  store i8 98, ptr %300, align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, i8 0, i64 24, i1 false)
  %301 = load i32, ptr @test_count, align 4, !tbaa !5
  %302 = add nsw i32 %301, 1
  store i32 %302, ptr @test_count, align 4, !tbaa !5
  %303 = call i32 @s2n_blob_init(ptr noundef nonnull %14, ptr noundef nonnull %13, i32 noundef 64) #12
  %304 = icmp eq i32 %303, -1
  br i1 %304, label %305, label %329

305:                                              ; preds = %298
  %306 = tail call ptr @__errno_location() #13
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %309 = call i32 @s2n_print_stacktrace(ptr noundef %308) #12
  %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 = call i32 @fileno(ptr noundef %313) #12
  %315 = call i32 @isatty(i32 noundef %314) #12
  %.not718 = icmp eq i32 %315, 0
  br i1 %.not718, label %316, label %317

316:                                              ; preds = %312, %305
  br label %317

317:                                              ; preds = %312, %316
  %.str.25.sink822 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = call ptr @s2n_strerror(i32 noundef %321, ptr noundef nonnull @.str.24) #12
  %323 = load i32, ptr %320, align 4, !tbaa !5
  %324 = call ptr @s2n_strerror_debug(i32 noundef %323, ptr noundef nonnull @.str.24) #12
  %325 = load i32, ptr %306, align 4, !tbaa !5
  %326 = call ptr @strerror(i32 noundef %325) #12
  %327 = load i32, ptr %306, align 4, !tbaa !5
  %328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %318, ptr noundef nonnull %.str.25.sink822, i32 noundef %319, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.21, i32 noundef 76, ptr noundef %322, ptr noundef %324, ptr noundef %326, i32 noundef %327) #14
  call void @exit(i32 noundef 1) #15
  unreachable

329:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %15, i8 0, i64 64, i1 false)
  store <4 x i8> <i8 115, i8 101, i8 101, i8 100>, ptr %15, align 16
  %330 = getelementptr inbounds i8, ptr %15, i64 4
  store i8 32, ptr %330, align 4
  %331 = getelementptr inbounds i8, ptr %15, i64 5
  store i8 99, ptr %331, align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, i8 0, i64 24, i1 false)
  %332 = load i32, ptr @test_count, align 4, !tbaa !5
  %333 = add nsw i32 %332, 1
  store i32 %333, ptr @test_count, align 4, !tbaa !5
  %334 = call i32 @s2n_blob_init(ptr noundef nonnull %16, ptr noundef nonnull %15, i32 noundef 64) #12
  %335 = icmp eq i32 %334, -1
  br i1 %335, label %336, label %360

336:                                              ; preds = %329
  %337 = tail call ptr @__errno_location() #13
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @s2n_print_stacktrace(ptr noundef %339) #12
  %341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %342 = trunc nuw i8 %341 to i1
  br i1 %342, label %343, label %347

343:                                              ; preds = %336
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @fileno(ptr noundef %344) #12
  %346 = call i32 @isatty(i32 noundef %345) #12
  %.not717 = icmp eq i32 %346, 0
  br i1 %.not717, label %347, label %348

347:                                              ; preds = %343, %336
  br label %348

348:                                              ; preds = %343, %347
  %.str.25.sink833 = phi ptr [ @.str.25, %347 ], [ @.str.22, %343 ]
  store i32 %338, ptr %337, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = load i32, ptr @test_count, align 4, !tbaa !5
  %351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call ptr @s2n_strerror(i32 noundef %352, ptr noundef nonnull @.str.24) #12
  %354 = load i32, ptr %351, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror_debug(i32 noundef %354, ptr noundef nonnull @.str.24) #12
  %356 = load i32, ptr %337, align 4, !tbaa !5
  %357 = call ptr @strerror(i32 noundef %356) #12
  %358 = load i32, ptr %337, align 4, !tbaa !5
  %359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %349, ptr noundef nonnull %.str.25.sink833, i32 noundef %350, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.21, i32 noundef 80, ptr noundef %353, ptr noundef %355, ptr noundef %357, i32 noundef %358) #14
  call void @exit(i32 noundef 1) #15
  unreachable

360:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %361 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %361, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %18) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %18, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %19, i8 0, i64 24, i1 false)
  %362 = call i32 @s2n_blob_init(ptr noundef nonnull %19, ptr noundef nonnull %18, i32 noundef 64) #12
  %363 = icmp sgt i32 %362, -1
  br i1 %363, label %364, label %911

364:                                              ; preds = %360
  %365 = load i32, ptr @test_count, align 4, !tbaa !5
  %366 = add nsw i32 %365, 1
  store i32 %366, ptr @test_count, align 4, !tbaa !5
  %367 = call i32 @s2n_prf(ptr noundef null, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %19) #12
  %368 = icmp eq i32 %367, -1
  br i1 %368, label %393, label %369

369:                                              ; preds = %364
  %370 = tail call ptr @__errno_location() #13
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %373 = call i32 @s2n_print_stacktrace(ptr noundef %372) #12
  %374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %375 = trunc nuw i8 %374 to i1
  br i1 %375, label %376, label %380

376:                                              ; preds = %369
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = call i32 @fileno(ptr noundef %377) #12
  %379 = call i32 @isatty(i32 noundef %378) #12
  %.not = icmp eq i32 %379, 0
  br i1 %.not, label %380, label %381

380:                                              ; preds = %376, %369
  br label %381

381:                                              ; preds = %376, %380
  %.str.25.sink844 = phi ptr [ @.str.25, %380 ], [ @.str.22, %376 ]
  store i32 %371, ptr %370, align 4, !tbaa !5
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %385, ptr noundef nonnull @.str.24) #12
  %387 = load i32, ptr %384, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror_debug(i32 noundef %387, ptr noundef nonnull @.str.24) #12
  %389 = load i32, ptr %370, align 4, !tbaa !5
  %390 = call ptr @strerror(i32 noundef %389) #12
  %391 = load i32, ptr %370, align 4, !tbaa !5
  %392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %382, ptr noundef nonnull %.str.25.sink844, i32 noundef %383, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 89, ptr noundef %386, ptr noundef %388, ptr noundef %390, i32 noundef %391) #14
  call void @exit(i32 noundef 1) #15
  unreachable

393:                                              ; preds = %364
  %394 = load i32, ptr @test_count, align 4, !tbaa !5
  %395 = add nsw i32 %394, 1
  store i32 %395, ptr @test_count, align 4, !tbaa !5
  %396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = icmp eq i32 %397, 402653193
  br i1 %398, label %422, label %399

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

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

410:                                              ; preds = %406, %399
  br label %411

411:                                              ; preds = %406, %410
  %.str.25.sink855 = phi ptr [ @.str.25, %410 ], [ @.str.22, %406 ]
  store i32 %401, ptr %400, align 4, !tbaa !5
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = load i32, ptr %396, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror(i32 noundef %414, ptr noundef nonnull @.str.24) #12
  %416 = load i32, ptr %396, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror_debug(i32 noundef %416, ptr noundef nonnull @.str.24) #12
  %418 = load i32, ptr %400, align 4, !tbaa !5
  %419 = call ptr @strerror(i32 noundef %418) #12
  %420 = load i32, ptr %400, align 4, !tbaa !5
  %421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef nonnull %.str.25.sink855, i32 noundef %413, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 89, ptr noundef %415, ptr noundef %417, ptr noundef %419, i32 noundef %420) #14
  call void @exit(i32 noundef 1) #15
  unreachable

422:                                              ; preds = %393
  %423 = add nsw i32 %394, 2
  store i32 %423, ptr @test_count, align 4, !tbaa !5
  %424 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.24) #12
  %425 = icmp eq ptr %424, null
  br i1 %425, label %426, label %449

426:                                              ; preds = %422
  %427 = tail call ptr @__errno_location() #13
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = call i32 @s2n_print_stacktrace(ptr noundef %429) #12
  %431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %432 = trunc nuw i8 %431 to i1
  br i1 %432, label %433, label %437

433:                                              ; preds = %426
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @fileno(ptr noundef %434) #12
  %436 = call i32 @isatty(i32 noundef %435) #12
  %.not716 = icmp eq i32 %436, 0
  br i1 %.not716, label %437, label %438

437:                                              ; preds = %433, %426
  br label %438

438:                                              ; preds = %433, %437
  %.str.25.sink864 = phi ptr [ @.str.25, %437 ], [ @.str.22, %433 ]
  store i32 %428, ptr %427, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = load i32, ptr %396, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror(i32 noundef %441, ptr noundef nonnull @.str.24) #12
  %443 = load i32, ptr %396, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror_debug(i32 noundef %443, ptr noundef nonnull @.str.24) #12
  %445 = load i32, ptr %427, align 4, !tbaa !5
  %446 = call ptr @strerror(i32 noundef %445) #12
  %447 = load i32, ptr %427, align 4, !tbaa !5
  %448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %439, ptr noundef nonnull %.str.25.sink864, i32 noundef %440, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 89, ptr noundef %442, ptr noundef %444, ptr noundef %446, i32 noundef %447) #14
  call void @exit(i32 noundef 1) #15
  unreachable

449:                                              ; preds = %422
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %450 = tail call ptr @__errno_location() #13
  store i32 0, ptr %450, align 4, !tbaa !5
  %451 = load i32, ptr @test_count, align 4, !tbaa !5
  %452 = add nsw i32 %451, 1
  store i32 %452, ptr @test_count, align 4, !tbaa !5
  %453 = load ptr, ptr %17, align 8, !tbaa !9
  %454 = call i32 @s2n_prf(ptr noundef %453, ptr noundef null, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %19) #12
  %455 = icmp eq i32 %454, -1
  br i1 %455, label %478, label %456

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

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

466:                                              ; preds = %462, %456
  br label %467

467:                                              ; preds = %462, %466
  %.str.25.sink873 = phi ptr [ @.str.25, %466 ], [ @.str.22, %462 ]
  store i32 %457, ptr %450, align 4, !tbaa !5
  %468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %469 = load i32, ptr @test_count, align 4, !tbaa !5
  %470 = load i32, ptr %396, align 4, !tbaa !5
  %471 = call ptr @s2n_strerror(i32 noundef %470, ptr noundef nonnull @.str.24) #12
  %472 = load i32, ptr %396, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror_debug(i32 noundef %472, ptr noundef nonnull @.str.24) #12
  %474 = load i32, ptr %450, align 4, !tbaa !5
  %475 = call ptr @strerror(i32 noundef %474) #12
  %476 = load i32, ptr %450, align 4, !tbaa !5
  %477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %468, ptr noundef nonnull %.str.25.sink873, i32 noundef %469, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 91, ptr noundef %471, ptr noundef %473, ptr noundef %475, i32 noundef %476) #14
  call void @exit(i32 noundef 1) #15
  unreachable

478:                                              ; preds = %449
  %479 = load i32, ptr @test_count, align 4, !tbaa !5
  %480 = add nsw i32 %479, 1
  store i32 %480, ptr @test_count, align 4, !tbaa !5
  %481 = load i32, ptr %396, align 4, !tbaa !5
  %482 = icmp eq i32 %481, 402653193
  br i1 %482, label %505, label %483

483:                                              ; preds = %478
  %484 = load i32, ptr %450, align 4, !tbaa !5
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @s2n_print_stacktrace(ptr noundef %485) #12
  %487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %488 = trunc nuw i8 %487 to i1
  br i1 %488, label %489, label %493

489:                                              ; preds = %483
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = call i32 @fileno(ptr noundef %490) #12
  %492 = call i32 @isatty(i32 noundef %491) #12
  %.not538 = icmp eq i32 %492, 0
  br i1 %.not538, label %493, label %494

493:                                              ; preds = %489, %483
  br label %494

494:                                              ; preds = %489, %493
  %.str.25.sink882 = phi ptr [ @.str.25, %493 ], [ @.str.22, %489 ]
  store i32 %484, ptr %450, align 4, !tbaa !5
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = load i32, ptr @test_count, align 4, !tbaa !5
  %497 = load i32, ptr %396, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror(i32 noundef %497, ptr noundef nonnull @.str.24) #12
  %499 = load i32, ptr %396, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror_debug(i32 noundef %499, ptr noundef nonnull @.str.24) #12
  %501 = load i32, ptr %450, align 4, !tbaa !5
  %502 = call ptr @strerror(i32 noundef %501) #12
  %503 = load i32, ptr %450, align 4, !tbaa !5
  %504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %495, ptr noundef nonnull %.str.25.sink882, i32 noundef %496, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 91, ptr noundef %498, ptr noundef %500, ptr noundef %502, i32 noundef %503) #14
  call void @exit(i32 noundef 1) #15
  unreachable

505:                                              ; preds = %478
  %506 = add nsw i32 %479, 2
  store i32 %506, ptr @test_count, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.24) #12
  %508 = icmp eq ptr %507, null
  br i1 %508, label %509, label %531

509:                                              ; preds = %505
  %510 = load i32, ptr %450, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @s2n_print_stacktrace(ptr noundef %511) #12
  %513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %514 = trunc nuw i8 %513 to i1
  br i1 %514, label %515, label %519

515:                                              ; preds = %509
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @fileno(ptr noundef %516) #12
  %518 = call i32 @isatty(i32 noundef %517) #12
  %.not715 = icmp eq i32 %518, 0
  br i1 %.not715, label %519, label %520

519:                                              ; preds = %515, %509
  br label %520

520:                                              ; preds = %515, %519
  %.str.25.sink891 = phi ptr [ @.str.25, %519 ], [ @.str.22, %515 ]
  store i32 %510, ptr %450, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = load i32, ptr %396, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror(i32 noundef %523, ptr noundef nonnull @.str.24) #12
  %525 = load i32, ptr %396, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef nonnull @.str.24) #12
  %527 = load i32, ptr %450, align 4, !tbaa !5
  %528 = call ptr @strerror(i32 noundef %527) #12
  %529 = load i32, ptr %450, align 4, !tbaa !5
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %521, ptr noundef nonnull %.str.25.sink891, i32 noundef %522, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 91, ptr noundef %524, ptr noundef %526, ptr noundef %528, i32 noundef %529) #14
  call void @exit(i32 noundef 1) #15
  unreachable

531:                                              ; preds = %505
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %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 = load ptr, ptr %17, align 8, !tbaa !9
  %535 = call i32 @s2n_prf(ptr noundef %534, ptr noundef nonnull %8, ptr noundef null, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %19) #12
  %536 = icmp eq i32 %535, -1
  br i1 %536, label %559, label %537

537:                                              ; preds = %531
  %538 = load i32, ptr %450, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = call i32 @s2n_print_stacktrace(ptr noundef %539) #12
  %541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %542 = trunc nuw i8 %541 to i1
  br i1 %542, label %543, label %547

543:                                              ; preds = %537
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = call i32 @fileno(ptr noundef %544) #12
  %546 = call i32 @isatty(i32 noundef %545) #12
  %.not539 = icmp eq i32 %546, 0
  br i1 %.not539, label %547, label %548

547:                                              ; preds = %543, %537
  br label %548

548:                                              ; preds = %543, %547
  %.str.25.sink900 = phi ptr [ @.str.25, %547 ], [ @.str.22, %543 ]
  store i32 %538, ptr %450, align 4, !tbaa !5
  %549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %550 = load i32, ptr @test_count, align 4, !tbaa !5
  %551 = load i32, ptr %396, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror(i32 noundef %551, ptr noundef nonnull @.str.24) #12
  %553 = load i32, ptr %396, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror_debug(i32 noundef %553, ptr noundef nonnull @.str.24) #12
  %555 = load i32, ptr %450, align 4, !tbaa !5
  %556 = call ptr @strerror(i32 noundef %555) #12
  %557 = load i32, ptr %450, align 4, !tbaa !5
  %558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %549, ptr noundef nonnull %.str.25.sink900, i32 noundef %550, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 93, ptr noundef %552, ptr noundef %554, ptr noundef %556, i32 noundef %557) #14
  call void @exit(i32 noundef 1) #15
  unreachable

559:                                              ; preds = %531
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = add nsw i32 %560, 1
  store i32 %561, ptr @test_count, align 4, !tbaa !5
  %562 = load i32, ptr %396, align 4, !tbaa !5
  %563 = icmp eq i32 %562, 402653193
  br i1 %563, label %586, label %564

564:                                              ; preds = %559
  %565 = load i32, ptr %450, align 4, !tbaa !5
  %566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %567 = call i32 @s2n_print_stacktrace(ptr noundef %566) #12
  %568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %569 = trunc nuw i8 %568 to i1
  br i1 %569, label %570, label %574

570:                                              ; preds = %564
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = call i32 @fileno(ptr noundef %571) #12
  %573 = call i32 @isatty(i32 noundef %572) #12
  %.not540 = icmp eq i32 %573, 0
  br i1 %.not540, label %574, label %575

574:                                              ; preds = %570, %564
  br label %575

575:                                              ; preds = %570, %574
  %.str.25.sink909 = phi ptr [ @.str.25, %574 ], [ @.str.22, %570 ]
  store i32 %565, ptr %450, align 4, !tbaa !5
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = load i32, ptr @test_count, align 4, !tbaa !5
  %578 = load i32, ptr %396, align 4, !tbaa !5
  %579 = call ptr @s2n_strerror(i32 noundef %578, ptr noundef nonnull @.str.24) #12
  %580 = load i32, ptr %396, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror_debug(i32 noundef %580, ptr noundef nonnull @.str.24) #12
  %582 = load i32, ptr %450, align 4, !tbaa !5
  %583 = call ptr @strerror(i32 noundef %582) #12
  %584 = load i32, ptr %450, align 4, !tbaa !5
  %585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %576, ptr noundef nonnull %.str.25.sink909, i32 noundef %577, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 93, ptr noundef %579, ptr noundef %581, ptr noundef %583, i32 noundef %584) #14
  call void @exit(i32 noundef 1) #15
  unreachable

586:                                              ; preds = %559
  %587 = add nsw i32 %560, 2
  store i32 %587, ptr @test_count, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.24) #12
  %589 = icmp eq ptr %588, null
  br i1 %589, label %590, label %612

590:                                              ; preds = %586
  %591 = load i32, ptr %450, align 4, !tbaa !5
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = call i32 @s2n_print_stacktrace(ptr noundef %592) #12
  %594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %595 = trunc nuw i8 %594 to i1
  br i1 %595, label %596, label %600

596:                                              ; preds = %590
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = call i32 @fileno(ptr noundef %597) #12
  %599 = call i32 @isatty(i32 noundef %598) #12
  %.not714 = icmp eq i32 %599, 0
  br i1 %.not714, label %600, label %601

600:                                              ; preds = %596, %590
  br label %601

601:                                              ; preds = %596, %600
  %.str.25.sink918 = phi ptr [ @.str.25, %600 ], [ @.str.22, %596 ]
  store i32 %591, ptr %450, align 4, !tbaa !5
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = load i32, ptr @test_count, align 4, !tbaa !5
  %604 = load i32, ptr %396, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror(i32 noundef %604, ptr noundef nonnull @.str.24) #12
  %606 = load i32, ptr %396, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror_debug(i32 noundef %606, ptr noundef nonnull @.str.24) #12
  %608 = load i32, ptr %450, align 4, !tbaa !5
  %609 = call ptr @strerror(i32 noundef %608) #12
  %610 = load i32, ptr %450, align 4, !tbaa !5
  %611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %602, ptr noundef nonnull %.str.25.sink918, i32 noundef %603, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 93, ptr noundef %605, ptr noundef %607, ptr noundef %609, i32 noundef %610) #14
  call void @exit(i32 noundef 1) #15
  unreachable

612:                                              ; preds = %586
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = add nsw i32 %613, 1
  store i32 %614, ptr @test_count, align 4, !tbaa !5
  %615 = load ptr, ptr %17, align 8, !tbaa !9
  %616 = call i32 @s2n_prf(ptr noundef %615, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef null) #12
  %617 = icmp eq i32 %616, -1
  br i1 %617, label %640, label %618

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

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

628:                                              ; preds = %624, %618
  br label %629

629:                                              ; preds = %624, %628
  %.str.25.sink927 = phi ptr [ @.str.25, %628 ], [ @.str.22, %624 ]
  store i32 %619, ptr %450, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = load i32, ptr %396, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror(i32 noundef %632, ptr noundef nonnull @.str.24) #12
  %634 = load i32, ptr %396, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror_debug(i32 noundef %634, ptr noundef nonnull @.str.24) #12
  %636 = load i32, ptr %450, align 4, !tbaa !5
  %637 = call ptr @strerror(i32 noundef %636) #12
  %638 = load i32, ptr %450, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef nonnull %.str.25.sink927, i32 noundef %631, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 95, ptr noundef %633, ptr noundef %635, ptr noundef %637, i32 noundef %638) #14
  call void @exit(i32 noundef 1) #15
  unreachable

640:                                              ; preds = %612
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr @test_count, align 4, !tbaa !5
  %643 = load i32, ptr %396, align 4, !tbaa !5
  %644 = icmp eq i32 %643, 402653193
  br i1 %644, label %667, label %645

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

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

655:                                              ; preds = %651, %645
  br label %656

656:                                              ; preds = %651, %655
  %.str.25.sink936 = phi ptr [ @.str.25, %655 ], [ @.str.22, %651 ]
  store i32 %646, ptr %450, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = load i32, ptr %396, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror(i32 noundef %659, ptr noundef nonnull @.str.24) #12
  %661 = load i32, ptr %396, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror_debug(i32 noundef %661, ptr noundef nonnull @.str.24) #12
  %663 = load i32, ptr %450, align 4, !tbaa !5
  %664 = call ptr @strerror(i32 noundef %663) #12
  %665 = load i32, ptr %450, align 4, !tbaa !5
  %666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef nonnull %.str.25.sink936, i32 noundef %658, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 95, ptr noundef %660, ptr noundef %662, ptr noundef %664, i32 noundef %665) #14
  call void @exit(i32 noundef 1) #15
  unreachable

667:                                              ; preds = %640
  %668 = add nsw i32 %641, 2
  store i32 %668, ptr @test_count, align 4, !tbaa !5
  %669 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.24) #12
  %670 = icmp eq ptr %669, null
  br i1 %670, label %671, label %693

671:                                              ; preds = %667
  %672 = load i32, ptr %450, align 4, !tbaa !5
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = call i32 @s2n_print_stacktrace(ptr noundef %673) #12
  %675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %676 = trunc nuw i8 %675 to i1
  br i1 %676, label %677, label %681

677:                                              ; preds = %671
  %678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %679 = call i32 @fileno(ptr noundef %678) #12
  %680 = call i32 @isatty(i32 noundef %679) #12
  %.not713 = icmp eq i32 %680, 0
  br i1 %.not713, label %681, label %682

681:                                              ; preds = %677, %671
  br label %682

682:                                              ; preds = %677, %681
  %.str.25.sink945 = phi ptr [ @.str.25, %681 ], [ @.str.22, %677 ]
  store i32 %672, ptr %450, align 4, !tbaa !5
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = load i32, ptr %396, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror(i32 noundef %685, ptr noundef nonnull @.str.24) #12
  %687 = load i32, ptr %396, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror_debug(i32 noundef %687, ptr noundef nonnull @.str.24) #12
  %689 = load i32, ptr %450, align 4, !tbaa !5
  %690 = call ptr @strerror(i32 noundef %689) #12
  %691 = load i32, ptr %450, align 4, !tbaa !5
  %692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef nonnull %.str.25.sink945, i32 noundef %684, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 95, ptr noundef %686, ptr noundef %688, ptr noundef %690, i32 noundef %691) #14
  call void @exit(i32 noundef 1) #15
  unreachable

693:                                              ; preds = %667
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr @test_count, align 4, !tbaa !5
  %696 = load ptr, ptr %17, align 8, !tbaa !9
  %697 = call i32 @s2n_prf(ptr noundef %696, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef null, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %19) #12
  %698 = icmp eq i32 %697, -1
  br i1 %698, label %721, label %699

699:                                              ; preds = %693
  %700 = load i32, ptr %450, align 4, !tbaa !5
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = call i32 @s2n_print_stacktrace(ptr noundef %701) #12
  %703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %704 = trunc nuw i8 %703 to i1
  br i1 %704, label %705, label %709

705:                                              ; preds = %699
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = call i32 @fileno(ptr noundef %706) #12
  %708 = call i32 @isatty(i32 noundef %707) #12
  %.not543 = icmp eq i32 %708, 0
  br i1 %.not543, label %709, label %710

709:                                              ; preds = %705, %699
  br label %710

710:                                              ; preds = %705, %709
  %.str.25.sink954 = phi ptr [ @.str.25, %709 ], [ @.str.22, %705 ]
  store i32 %700, ptr %450, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = load i32, ptr %396, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror(i32 noundef %713, ptr noundef nonnull @.str.24) #12
  %715 = load i32, ptr %396, align 4, !tbaa !5
  %716 = call ptr @s2n_strerror_debug(i32 noundef %715, ptr noundef nonnull @.str.24) #12
  %717 = load i32, ptr %450, align 4, !tbaa !5
  %718 = call ptr @strerror(i32 noundef %717) #12
  %719 = load i32, ptr %450, align 4, !tbaa !5
  %720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %711, ptr noundef nonnull %.str.25.sink954, i32 noundef %712, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 99, ptr noundef %714, ptr noundef %716, ptr noundef %718, i32 noundef %719) #14
  call void @exit(i32 noundef 1) #15
  unreachable

721:                                              ; preds = %693
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = add nsw i32 %722, 1
  store i32 %723, ptr @test_count, align 4, !tbaa !5
  %724 = load i32, ptr %396, align 4, !tbaa !5
  %725 = icmp eq i32 %724, 402653207
  br i1 %725, label %748, label %726

726:                                              ; preds = %721
  %727 = load i32, ptr %450, align 4, !tbaa !5
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @s2n_print_stacktrace(ptr noundef %728) #12
  %730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %731 = trunc nuw i8 %730 to i1
  br i1 %731, label %732, label %736

732:                                              ; preds = %726
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = call i32 @fileno(ptr noundef %733) #12
  %735 = call i32 @isatty(i32 noundef %734) #12
  %.not544 = icmp eq i32 %735, 0
  br i1 %.not544, label %736, label %737

736:                                              ; preds = %732, %726
  br label %737

737:                                              ; preds = %732, %736
  %.str.25.sink963 = phi ptr [ @.str.25, %736 ], [ @.str.22, %732 ]
  store i32 %727, ptr %450, align 4, !tbaa !5
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = load i32, ptr @test_count, align 4, !tbaa !5
  %740 = load i32, ptr %396, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror(i32 noundef %740, ptr noundef nonnull @.str.24) #12
  %742 = load i32, ptr %396, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror_debug(i32 noundef %742, ptr noundef nonnull @.str.24) #12
  %744 = load i32, ptr %450, align 4, !tbaa !5
  %745 = call ptr @strerror(i32 noundef %744) #12
  %746 = load i32, ptr %450, align 4, !tbaa !5
  %747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %738, ptr noundef nonnull %.str.25.sink963, i32 noundef %739, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 99, ptr noundef %741, ptr noundef %743, ptr noundef %745, i32 noundef %746) #14
  call void @exit(i32 noundef 1) #15
  unreachable

748:                                              ; preds = %721
  %749 = add nsw i32 %722, 2
  store i32 %749, ptr @test_count, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror_debug(i32 noundef 402653207, ptr noundef nonnull @.str.24) #12
  %751 = icmp eq ptr %750, null
  br i1 %751, label %752, label %774

752:                                              ; preds = %748
  %753 = load i32, ptr %450, align 4, !tbaa !5
  %754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %755 = call i32 @s2n_print_stacktrace(ptr noundef %754) #12
  %756 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %757 = trunc nuw i8 %756 to i1
  br i1 %757, label %758, label %762

758:                                              ; preds = %752
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = call i32 @fileno(ptr noundef %759) #12
  %761 = call i32 @isatty(i32 noundef %760) #12
  %.not712 = icmp eq i32 %761, 0
  br i1 %.not712, label %762, label %763

762:                                              ; preds = %758, %752
  br label %763

763:                                              ; preds = %758, %762
  %.str.25.sink972 = phi ptr [ @.str.25, %762 ], [ @.str.22, %758 ]
  store i32 %753, ptr %450, align 4, !tbaa !5
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = load i32, ptr %396, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror(i32 noundef %766, ptr noundef nonnull @.str.24) #12
  %768 = load i32, ptr %396, align 4, !tbaa !5
  %769 = call ptr @s2n_strerror_debug(i32 noundef %768, ptr noundef nonnull @.str.24) #12
  %770 = load i32, ptr %450, align 4, !tbaa !5
  %771 = call ptr @strerror(i32 noundef %770) #12
  %772 = load i32, ptr %450, align 4, !tbaa !5
  %773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %764, ptr noundef nonnull %.str.25.sink972, i32 noundef %765, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 99, ptr noundef %767, ptr noundef %769, ptr noundef %771, i32 noundef %772) #14
  call void @exit(i32 noundef 1) #15
  unreachable

774:                                              ; preds = %748
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = add nsw i32 %775, 1
  store i32 %776, ptr @test_count, align 4, !tbaa !5
  %777 = load ptr, ptr %17, align 8, !tbaa !9
  %778 = call i32 @s2n_prf(ptr noundef %777, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef null, ptr noundef null, ptr noundef nonnull %19) #12
  %779 = icmp eq i32 %778, -1
  br i1 %779, label %780, label %802

780:                                              ; preds = %774
  %781 = load i32, ptr %450, align 4, !tbaa !5
  %782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %783 = call i32 @s2n_print_stacktrace(ptr noundef %782) #12
  %784 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %785 = trunc nuw i8 %784 to i1
  br i1 %785, label %786, label %790

786:                                              ; preds = %780
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = call i32 @fileno(ptr noundef %787) #12
  %789 = call i32 @isatty(i32 noundef %788) #12
  %.not711 = icmp eq i32 %789, 0
  br i1 %.not711, label %790, label %791

790:                                              ; preds = %786, %780
  br label %791

791:                                              ; preds = %786, %790
  %.str.25.sink981 = phi ptr [ @.str.25, %790 ], [ @.str.22, %786 ]
  store i32 %781, ptr %450, align 4, !tbaa !5
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = load i32, ptr @test_count, align 4, !tbaa !5
  %794 = load i32, ptr %396, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror(i32 noundef %794, ptr noundef nonnull @.str.24) #12
  %796 = load i32, ptr %396, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror_debug(i32 noundef %796, ptr noundef nonnull @.str.24) #12
  %798 = load i32, ptr %450, align 4, !tbaa !5
  %799 = call ptr @strerror(i32 noundef %798) #12
  %800 = load i32, ptr %450, align 4, !tbaa !5
  %801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef nonnull %.str.25.sink981, i32 noundef %793, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 102, ptr noundef %795, ptr noundef %797, ptr noundef %799, i32 noundef %800) #14
  call void @exit(i32 noundef 1) #15
  unreachable

802:                                              ; preds = %774
  %803 = load i32, ptr @test_count, align 4, !tbaa !5
  %804 = add nsw i32 %803, 1
  store i32 %804, ptr @test_count, align 4, !tbaa !5
  %805 = load ptr, ptr %17, align 8, !tbaa !9
  %806 = call i32 @s2n_prf(ptr noundef %805, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef null, ptr noundef nonnull %16, ptr noundef nonnull %19) #12
  %807 = icmp eq i32 %806, -1
  br i1 %807, label %830, label %808

808:                                              ; preds = %802
  %809 = load i32, ptr %450, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @s2n_print_stacktrace(ptr noundef %810) #12
  %812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %813 = trunc nuw i8 %812 to i1
  br i1 %813, label %814, label %818

814:                                              ; preds = %808
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = call i32 @fileno(ptr noundef %815) #12
  %817 = call i32 @isatty(i32 noundef %816) #12
  %.not545 = icmp eq i32 %817, 0
  br i1 %.not545, label %818, label %819

818:                                              ; preds = %814, %808
  br label %819

819:                                              ; preds = %814, %818
  %.str.25.sink990 = phi ptr [ @.str.25, %818 ], [ @.str.22, %814 ]
  store i32 %809, ptr %450, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = load i32, ptr %396, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror(i32 noundef %822, ptr noundef nonnull @.str.24) #12
  %824 = load i32, ptr %396, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror_debug(i32 noundef %824, ptr noundef nonnull @.str.24) #12
  %826 = load i32, ptr %450, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #12
  %828 = load i32, ptr %450, align 4, !tbaa !5
  %829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %820, ptr noundef nonnull %.str.25.sink990, i32 noundef %821, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 106, ptr noundef %823, ptr noundef %825, ptr noundef %827, i32 noundef %828) #14
  call void @exit(i32 noundef 1) #15
  unreachable

830:                                              ; preds = %802
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = add nsw i32 %831, 1
  store i32 %832, ptr @test_count, align 4, !tbaa !5
  %833 = load i32, ptr %396, align 4, !tbaa !5
  %834 = icmp eq i32 %833, 402653207
  br i1 %834, label %857, label %835

835:                                              ; preds = %830
  %836 = load i32, ptr %450, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = call i32 @s2n_print_stacktrace(ptr noundef %837) #12
  %839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %840 = trunc nuw i8 %839 to i1
  br i1 %840, label %841, label %845

841:                                              ; preds = %835
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = call i32 @fileno(ptr noundef %842) #12
  %844 = call i32 @isatty(i32 noundef %843) #12
  %.not546 = icmp eq i32 %844, 0
  br i1 %.not546, label %845, label %846

845:                                              ; preds = %841, %835
  br label %846

846:                                              ; preds = %841, %845
  %.str.25.sink999 = phi ptr [ @.str.25, %845 ], [ @.str.22, %841 ]
  store i32 %836, ptr %450, align 4, !tbaa !5
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = load i32, ptr @test_count, align 4, !tbaa !5
  %849 = load i32, ptr %396, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror(i32 noundef %849, ptr noundef nonnull @.str.24) #12
  %851 = load i32, ptr %396, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror_debug(i32 noundef %851, ptr noundef nonnull @.str.24) #12
  %853 = load i32, ptr %450, align 4, !tbaa !5
  %854 = call ptr @strerror(i32 noundef %853) #12
  %855 = load i32, ptr %450, align 4, !tbaa !5
  %856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %847, ptr noundef nonnull %.str.25.sink999, i32 noundef %848, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 106, ptr noundef %850, ptr noundef %852, ptr noundef %854, i32 noundef %855) #14
  call void @exit(i32 noundef 1) #15
  unreachable

857:                                              ; preds = %830
  %858 = add nsw i32 %831, 2
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = call ptr @s2n_strerror_debug(i32 noundef 402653207, ptr noundef nonnull @.str.24) #12
  %860 = icmp eq ptr %859, null
  br i1 %860, label %861, label %883

861:                                              ; preds = %857
  %862 = load i32, ptr %450, align 4, !tbaa !5
  %863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %864 = call i32 @s2n_print_stacktrace(ptr noundef %863) #12
  %865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %866 = trunc nuw i8 %865 to i1
  br i1 %866, label %867, label %871

867:                                              ; preds = %861
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @fileno(ptr noundef %868) #12
  %870 = call i32 @isatty(i32 noundef %869) #12
  %.not710 = icmp eq i32 %870, 0
  br i1 %.not710, label %871, label %872

871:                                              ; preds = %867, %861
  br label %872

872:                                              ; preds = %867, %871
  %.str.25.sink1008 = phi ptr [ @.str.25, %871 ], [ @.str.22, %867 ]
  store i32 %862, ptr %450, align 4, !tbaa !5
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = load i32, ptr @test_count, align 4, !tbaa !5
  %875 = load i32, ptr %396, align 4, !tbaa !5
  %876 = call ptr @s2n_strerror(i32 noundef %875, ptr noundef nonnull @.str.24) #12
  %877 = load i32, ptr %396, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror_debug(i32 noundef %877, ptr noundef nonnull @.str.24) #12
  %879 = load i32, ptr %450, align 4, !tbaa !5
  %880 = call ptr @strerror(i32 noundef %879) #12
  %881 = load i32, ptr %450, align 4, !tbaa !5
  %882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %873, ptr noundef nonnull %.str.25.sink1008, i32 noundef %874, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 106, ptr noundef %876, ptr noundef %878, ptr noundef %880, i32 noundef %881) #14
  call void @exit(i32 noundef 1) #15
  unreachable

883:                                              ; preds = %857
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %884 = load i32, ptr @test_count, align 4, !tbaa !5
  %885 = add nsw i32 %884, 1
  store i32 %885, ptr @test_count, align 4, !tbaa !5
  %886 = load ptr, ptr %17, align 8, !tbaa !9
  %887 = call i32 @s2n_prf(ptr noundef %886, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef null, ptr noundef nonnull %19) #12
  %888 = icmp eq i32 %887, -1
  br i1 %888, label %889, label %913

889:                                              ; preds = %883
  %890 = load i32, ptr %450, align 4, !tbaa !5
  %891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %892 = call i32 @s2n_print_stacktrace(ptr noundef %891) #12
  %893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %894 = trunc nuw i8 %893 to i1
  br i1 %894, label %895, label %899

895:                                              ; preds = %889
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = call i32 @fileno(ptr noundef %896) #12
  %898 = call i32 @isatty(i32 noundef %897) #12
  %.not709 = icmp eq i32 %898, 0
  br i1 %.not709, label %899, label %900

899:                                              ; preds = %895, %889
  br label %900

900:                                              ; preds = %895, %899
  %.str.25.sink1017 = phi ptr [ @.str.25, %899 ], [ @.str.22, %895 ]
  store i32 %890, ptr %450, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = load i32, ptr @test_count, align 4, !tbaa !5
  %903 = load i32, ptr %396, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror(i32 noundef %903, ptr noundef nonnull @.str.24) #12
  %905 = load i32, ptr %396, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror_debug(i32 noundef %905, ptr noundef nonnull @.str.24) #12
  %907 = load i32, ptr %450, align 4, !tbaa !5
  %908 = call ptr @strerror(i32 noundef %907) #12
  %909 = load i32, ptr %450, align 4, !tbaa !5
  %910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %901, ptr noundef nonnull %.str.25.sink1017, i32 noundef %902, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 109, ptr noundef %904, ptr noundef %906, ptr noundef %908, i32 noundef %909) #14
  call void @exit(i32 noundef 1) #15
  unreachable

911:                                              ; preds = %360
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %18) #12
  %912 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  br label %.thread730

913:                                              ; preds = %883
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %18) #12
  %914 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %20, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %915 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %915, ptr %21, align 8, !tbaa !9
  %916 = getelementptr inbounds i8, ptr %915, i64 220
  store i8 32, ptr %916, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false)
  %917 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %22, ptr noundef nonnull @.str.50) #12
  %918 = call zeroext i1 @s2n_result_is_ok(i32 %917)
  br i1 %918, label %919, label %1010

919:                                              ; preds = %913
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %23) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %23, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %24, i8 0, i64 24, i1 false)
  %920 = call i32 @s2n_blob_init(ptr noundef nonnull %24, ptr noundef nonnull %23, i32 noundef 64) #12
  %921 = icmp sgt i32 %920, -1
  br i1 %921, label %922, label %1009

922:                                              ; preds = %919
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = add nsw i32 %923, 1
  store i32 %924, ptr @test_count, align 4, !tbaa !5
  %925 = load ptr, ptr %21, align 8, !tbaa !9
  %926 = call i32 @s2n_prf(ptr noundef %925, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %20, ptr noundef null, ptr noundef null, ptr noundef nonnull %24) #12
  %927 = icmp eq i32 %926, -1
  br i1 %927, label %928, label %950

928:                                              ; preds = %922
  %929 = load i32, ptr %450, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = call i32 @s2n_print_stacktrace(ptr noundef %930) #12
  %932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %933 = trunc nuw i8 %932 to i1
  br i1 %933, label %934, label %938

934:                                              ; preds = %928
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = call i32 @fileno(ptr noundef %935) #12
  %937 = call i32 @isatty(i32 noundef %936) #12
  %.not708 = icmp eq i32 %937, 0
  br i1 %.not708, label %938, label %939

938:                                              ; preds = %934, %928
  br label %939

939:                                              ; preds = %934, %938
  %.str.25.sink1026 = phi ptr [ @.str.25, %938 ], [ @.str.22, %934 ]
  store i32 %929, ptr %450, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = load i32, ptr %396, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef nonnull @.str.24) #12
  %944 = load i32, ptr %396, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef nonnull @.str.24) #12
  %946 = load i32, ptr %450, align 4, !tbaa !5
  %947 = call ptr @strerror(i32 noundef %946) #12
  %948 = load i32, ptr %450, align 4, !tbaa !5
  %949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %940, ptr noundef nonnull %.str.25.sink1026, i32 noundef %941, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.21, i32 noundef 127, ptr noundef %943, ptr noundef %945, ptr noundef %947, i32 noundef %948) #14
  call void @exit(i32 noundef 1) #15
  unreachable

950:                                              ; preds = %922
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = add nsw i32 %951, 1
  store i32 %952, ptr @test_count, align 4, !tbaa !5
  %953 = getelementptr inbounds i8, ptr %24, i64 8
  %954 = load i32, ptr %953, align 8, !tbaa !42
  %955 = getelementptr inbounds i8, ptr %22, i64 8
  %956 = load i32, ptr %955, align 8, !tbaa !42
  %957 = icmp eq i32 %954, %956
  br i1 %957, label %980, label %958

958:                                              ; preds = %950
  %959 = load i32, ptr %450, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @s2n_print_stacktrace(ptr noundef %960) #12
  %962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %963 = trunc nuw i8 %962 to i1
  br i1 %963, label %964, label %968

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

968:                                              ; preds = %964, %958
  br label %969

969:                                              ; preds = %964, %968
  %.str.25.sink1035 = phi ptr [ @.str.25, %968 ], [ @.str.22, %964 ]
  store i32 %959, ptr %450, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = load i32, ptr %396, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror(i32 noundef %972, ptr noundef nonnull @.str.24) #12
  %974 = load i32, ptr %396, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef nonnull @.str.24) #12
  %976 = load i32, ptr %450, align 4, !tbaa !5
  %977 = call ptr @strerror(i32 noundef %976) #12
  %978 = load i32, ptr %450, align 4, !tbaa !5
  %979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %970, ptr noundef nonnull %.str.25.sink1035, i32 noundef %971, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 128, ptr noundef %973, ptr noundef %975, ptr noundef %977, i32 noundef %978) #14
  call void @exit(i32 noundef 1) #15
  unreachable

980:                                              ; preds = %950
  %.not548 = icmp eq i32 %954, 0
  br i1 %.not548, label %1009, label %981

981:                                              ; preds = %980
  %982 = add nsw i32 %951, 2
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = load ptr, ptr %24, align 8, !tbaa !43
  %984 = load ptr, ptr %22, align 8, !tbaa !43
  %985 = zext i32 %954 to i64
  %bcmp = call i32 @bcmp(ptr %983, ptr %984, i64 %985)
  %986 = icmp eq i32 %bcmp, 0
  br i1 %986, label %1009, label %987

987:                                              ; preds = %981
  %988 = load i32, ptr %450, align 4, !tbaa !5
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = call i32 @s2n_print_stacktrace(ptr noundef %989) #12
  %991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %992 = trunc nuw i8 %991 to i1
  br i1 %992, label %993, label %997

993:                                              ; preds = %987
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = call i32 @fileno(ptr noundef %994) #12
  %996 = call i32 @isatty(i32 noundef %995) #12
  %.not549 = icmp eq i32 %996, 0
  br i1 %.not549, label %997, label %998

997:                                              ; preds = %993, %987
  br label %998

998:                                              ; preds = %993, %997
  %.str.25.sink1044 = phi ptr [ @.str.25, %997 ], [ @.str.22, %993 ]
  store i32 %988, ptr %450, align 4, !tbaa !5
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = load i32, ptr %396, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror(i32 noundef %1001, ptr noundef nonnull @.str.24) #12
  %1003 = load i32, ptr %396, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror_debug(i32 noundef %1003, ptr noundef nonnull @.str.24) #12
  %1005 = load i32, ptr %450, align 4, !tbaa !5
  %1006 = call ptr @strerror(i32 noundef %1005) #12
  %1007 = load i32, ptr %450, align 4, !tbaa !5
  %1008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %999, ptr noundef nonnull %.str.25.sink1044, i32 noundef %1000, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 129, ptr noundef %1002, ptr noundef %1004, ptr noundef %1006, i32 noundef %1007) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1009:                                             ; preds = %980, %981, %919
  %.2473 = phi i32 [ 1, %919 ], [ 0, %981 ], [ 0, %980 ]
  %.2 = phi i32 [ -1, %919 ], [ 0, %981 ], [ 0, %980 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %23) #12
  br label %1010

1010:                                             ; preds = %913, %1009
  %.4475 = phi i32 [ %.2473, %1009 ], [ 1, %913 ]
  %.4 = phi i32 [ %.2, %1009 ], [ -1, %913 ]
  %1011 = call i32 @s2n_free(ptr noundef nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #12
  %1012 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #12
  %cond4 = icmp eq i32 %.4475, 0
  br i1 %cond4, label %1013, label %.thread730

1013:                                             ; preds = %1010
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #12
  %1014 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1014, ptr %25, align 8, !tbaa !9
  %1015 = getelementptr inbounds i8, ptr %1014, i64 220
  store i8 32, ptr %1015, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %26, i8 0, i64 24, i1 false)
  %1016 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %26, ptr noundef nonnull @.str.55) #12
  %1017 = call zeroext i1 @s2n_result_is_ok(i32 %1016)
  br i1 %1017, label %1018, label %1109

1018:                                             ; preds = %1013
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %27) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %27, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %28, i8 0, i64 24, i1 false)
  %1019 = call i32 @s2n_blob_init(ptr noundef nonnull %28, ptr noundef nonnull %27, i32 noundef 64) #12
  %1020 = icmp sgt i32 %1019, -1
  br i1 %1020, label %1021, label %1108

1021:                                             ; preds = %1018
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = add nsw i32 %1022, 1
  store i32 %1023, ptr @test_count, align 4, !tbaa !5
  %1024 = load ptr, ptr %25, align 8, !tbaa !9
  %1025 = call i32 @s2n_prf(ptr noundef %1024, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef null, ptr noundef null, ptr noundef nonnull %28) #12
  %1026 = icmp eq i32 %1025, -1
  br i1 %1026, label %1027, label %1049

1027:                                             ; preds = %1021
  %1028 = load i32, ptr %450, align 4, !tbaa !5
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = call i32 @s2n_print_stacktrace(ptr noundef %1029) #12
  %1031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1032 = trunc nuw i8 %1031 to i1
  br i1 %1032, label %1033, label %1037

1033:                                             ; preds = %1027
  %1034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1035 = call i32 @fileno(ptr noundef %1034) #12
  %1036 = call i32 @isatty(i32 noundef %1035) #12
  %.not707 = icmp eq i32 %1036, 0
  br i1 %.not707, label %1037, label %1038

1037:                                             ; preds = %1033, %1027
  br label %1038

1038:                                             ; preds = %1033, %1037
  %.str.25.sink1053 = phi ptr [ @.str.25, %1037 ], [ @.str.22, %1033 ]
  store i32 %1028, ptr %450, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = load i32, ptr @test_count, align 4, !tbaa !5
  %1041 = load i32, ptr %396, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror(i32 noundef %1041, ptr noundef nonnull @.str.24) #12
  %1043 = load i32, ptr %396, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror_debug(i32 noundef %1043, ptr noundef nonnull @.str.24) #12
  %1045 = load i32, ptr %450, align 4, !tbaa !5
  %1046 = call ptr @strerror(i32 noundef %1045) #12
  %1047 = load i32, ptr %450, align 4, !tbaa !5
  %1048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1039, ptr noundef nonnull %.str.25.sink1053, i32 noundef %1040, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.21, i32 noundef 146, ptr noundef %1042, ptr noundef %1044, ptr noundef %1046, i32 noundef %1047) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1049:                                             ; preds = %1021
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = add nsw i32 %1050, 1
  store i32 %1051, ptr @test_count, align 4, !tbaa !5
  %1052 = getelementptr inbounds i8, ptr %28, i64 8
  %1053 = load i32, ptr %1052, align 8, !tbaa !42
  %1054 = getelementptr inbounds i8, ptr %26, i64 8
  %1055 = load i32, ptr %1054, align 8, !tbaa !42
  %1056 = icmp eq i32 %1053, %1055
  br i1 %1056, label %1079, label %1057

1057:                                             ; preds = %1049
  %1058 = load i32, ptr %450, align 4, !tbaa !5
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1060 = call i32 @s2n_print_stacktrace(ptr noundef %1059) #12
  %1061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1062 = trunc nuw i8 %1061 to i1
  br i1 %1062, label %1063, label %1067

1063:                                             ; preds = %1057
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = call i32 @fileno(ptr noundef %1064) #12
  %1066 = call i32 @isatty(i32 noundef %1065) #12
  %.not550 = icmp eq i32 %1066, 0
  br i1 %.not550, label %1067, label %1068

1067:                                             ; preds = %1063, %1057
  br label %1068

1068:                                             ; preds = %1063, %1067
  %.str.25.sink1062 = phi ptr [ @.str.25, %1067 ], [ @.str.22, %1063 ]
  store i32 %1058, ptr %450, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = load i32, ptr %396, align 4, !tbaa !5
  %1072 = call ptr @s2n_strerror(i32 noundef %1071, ptr noundef nonnull @.str.24) #12
  %1073 = load i32, ptr %396, align 4, !tbaa !5
  %1074 = call ptr @s2n_strerror_debug(i32 noundef %1073, ptr noundef nonnull @.str.24) #12
  %1075 = load i32, ptr %450, align 4, !tbaa !5
  %1076 = call ptr @strerror(i32 noundef %1075) #12
  %1077 = load i32, ptr %450, align 4, !tbaa !5
  %1078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1069, ptr noundef nonnull %.str.25.sink1062, i32 noundef %1070, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 147, ptr noundef %1072, ptr noundef %1074, ptr noundef %1076, i32 noundef %1077) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1079:                                             ; preds = %1049
  %.not551 = icmp eq i32 %1053, 0
  br i1 %.not551, label %1108, label %1080

1080:                                             ; preds = %1079
  %1081 = add nsw i32 %1050, 2
  store i32 %1081, ptr @test_count, align 4, !tbaa !5
  %1082 = load ptr, ptr %28, align 8, !tbaa !43
  %1083 = load ptr, ptr %26, align 8, !tbaa !43
  %1084 = zext i32 %1053 to i64
  %bcmp552 = call i32 @bcmp(ptr %1082, ptr %1083, i64 %1084)
  %1085 = icmp eq i32 %bcmp552, 0
  br i1 %1085, label %1108, label %1086

1086:                                             ; preds = %1080
  %1087 = load i32, ptr %450, align 4, !tbaa !5
  %1088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1089 = call i32 @s2n_print_stacktrace(ptr noundef %1088) #12
  %1090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1091 = trunc nuw i8 %1090 to i1
  br i1 %1091, label %1092, label %1096

1092:                                             ; preds = %1086
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = call i32 @fileno(ptr noundef %1093) #12
  %1095 = call i32 @isatty(i32 noundef %1094) #12
  %.not553 = icmp eq i32 %1095, 0
  br i1 %.not553, label %1096, label %1097

1096:                                             ; preds = %1092, %1086
  br label %1097

1097:                                             ; preds = %1092, %1096
  %.str.25.sink1071 = phi ptr [ @.str.25, %1096 ], [ @.str.22, %1092 ]
  store i32 %1087, ptr %450, align 4, !tbaa !5
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = load i32, ptr @test_count, align 4, !tbaa !5
  %1100 = load i32, ptr %396, align 4, !tbaa !5
  %1101 = call ptr @s2n_strerror(i32 noundef %1100, ptr noundef nonnull @.str.24) #12
  %1102 = load i32, ptr %396, align 4, !tbaa !5
  %1103 = call ptr @s2n_strerror_debug(i32 noundef %1102, ptr noundef nonnull @.str.24) #12
  %1104 = load i32, ptr %450, align 4, !tbaa !5
  %1105 = call ptr @strerror(i32 noundef %1104) #12
  %1106 = load i32, ptr %450, align 4, !tbaa !5
  %1107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1098, ptr noundef nonnull %.str.25.sink1071, i32 noundef %1099, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 148, ptr noundef %1101, ptr noundef %1103, ptr noundef %1105, i32 noundef %1106) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1108:                                             ; preds = %1079, %1080, %1018
  %.5476 = phi i32 [ 1, %1018 ], [ 0, %1080 ], [ 0, %1079 ]
  %.5 = phi i32 [ -1, %1018 ], [ %.4, %1080 ], [ %.4, %1079 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %27) #12
  br label %1109

1109:                                             ; preds = %1013, %1108
  %.7478 = phi i32 [ %.5476, %1108 ], [ 1, %1013 ]
  %.7 = phi i32 [ %.5, %1108 ], [ -1, %1013 ]
  %1110 = call i32 @s2n_free(ptr noundef nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #12
  %1111 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  %cond5 = icmp eq i32 %.7478, 0
  br i1 %cond5, label %1112, label %.thread730

1112:                                             ; preds = %1109
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  %1113 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1113, ptr %29, align 8, !tbaa !9
  %1114 = getelementptr inbounds i8, ptr %1113, i64 220
  store i8 32, ptr %1114, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %30) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %30, i8 0, i64 24, i1 false)
  %1115 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %30, ptr noundef nonnull @.str.58) #12
  %1116 = call zeroext i1 @s2n_result_is_ok(i32 %1115)
  br i1 %1116, label %1117, label %1208

1117:                                             ; preds = %1112
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %31) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %31, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %32, i8 0, i64 24, i1 false)
  %1118 = call i32 @s2n_blob_init(ptr noundef nonnull %32, ptr noundef nonnull %31, i32 noundef 64) #12
  %1119 = icmp sgt i32 %1118, -1
  br i1 %1119, label %1120, label %1207

1120:                                             ; preds = %1117
  %1121 = load i32, ptr @test_count, align 4, !tbaa !5
  %1122 = add nsw i32 %1121, 1
  store i32 %1122, ptr @test_count, align 4, !tbaa !5
  %1123 = load ptr, ptr %29, align 8, !tbaa !9
  %1124 = call i32 @s2n_prf(ptr noundef %1123, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef null, ptr noundef nonnull %32) #12
  %1125 = icmp eq i32 %1124, -1
  br i1 %1125, label %1126, label %1148

1126:                                             ; preds = %1120
  %1127 = load i32, ptr %450, align 4, !tbaa !5
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = call i32 @s2n_print_stacktrace(ptr noundef %1128) #12
  %1130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1131 = trunc nuw i8 %1130 to i1
  br i1 %1131, label %1132, label %1136

1132:                                             ; preds = %1126
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = call i32 @fileno(ptr noundef %1133) #12
  %1135 = call i32 @isatty(i32 noundef %1134) #12
  %.not706 = icmp eq i32 %1135, 0
  br i1 %.not706, label %1136, label %1137

1136:                                             ; preds = %1132, %1126
  br label %1137

1137:                                             ; preds = %1132, %1136
  %.str.25.sink1080 = phi ptr [ @.str.25, %1136 ], [ @.str.22, %1132 ]
  store i32 %1127, ptr %450, align 4, !tbaa !5
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = load i32, ptr %396, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror(i32 noundef %1140, ptr noundef nonnull @.str.24) #12
  %1142 = load i32, ptr %396, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror_debug(i32 noundef %1142, ptr noundef nonnull @.str.24) #12
  %1144 = load i32, ptr %450, align 4, !tbaa !5
  %1145 = call ptr @strerror(i32 noundef %1144) #12
  %1146 = load i32, ptr %450, align 4, !tbaa !5
  %1147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef nonnull %.str.25.sink1080, i32 noundef %1139, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.21, i32 noundef 165, ptr noundef %1141, ptr noundef %1143, ptr noundef %1145, i32 noundef %1146) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1148:                                             ; preds = %1120
  %1149 = load i32, ptr @test_count, align 4, !tbaa !5
  %1150 = add nsw i32 %1149, 1
  store i32 %1150, ptr @test_count, align 4, !tbaa !5
  %1151 = getelementptr inbounds i8, ptr %32, i64 8
  %1152 = load i32, ptr %1151, align 8, !tbaa !42
  %1153 = getelementptr inbounds i8, ptr %30, i64 8
  %1154 = load i32, ptr %1153, align 8, !tbaa !42
  %1155 = icmp eq i32 %1152, %1154
  br i1 %1155, label %1178, label %1156

1156:                                             ; preds = %1148
  %1157 = load i32, ptr %450, align 4, !tbaa !5
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = call i32 @s2n_print_stacktrace(ptr noundef %1158) #12
  %1160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1161 = trunc nuw i8 %1160 to i1
  br i1 %1161, label %1162, label %1166

1162:                                             ; preds = %1156
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = call i32 @fileno(ptr noundef %1163) #12
  %1165 = call i32 @isatty(i32 noundef %1164) #12
  %.not554 = icmp eq i32 %1165, 0
  br i1 %.not554, label %1166, label %1167

1166:                                             ; preds = %1162, %1156
  br label %1167

1167:                                             ; preds = %1162, %1166
  %.str.25.sink1089 = phi ptr [ @.str.25, %1166 ], [ @.str.22, %1162 ]
  store i32 %1157, ptr %450, align 4, !tbaa !5
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = load i32, ptr @test_count, align 4, !tbaa !5
  %1170 = load i32, ptr %396, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror(i32 noundef %1170, ptr noundef nonnull @.str.24) #12
  %1172 = load i32, ptr %396, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror_debug(i32 noundef %1172, ptr noundef nonnull @.str.24) #12
  %1174 = load i32, ptr %450, align 4, !tbaa !5
  %1175 = call ptr @strerror(i32 noundef %1174) #12
  %1176 = load i32, ptr %450, align 4, !tbaa !5
  %1177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1168, ptr noundef nonnull %.str.25.sink1089, i32 noundef %1169, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 166, ptr noundef %1171, ptr noundef %1173, ptr noundef %1175, i32 noundef %1176) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1178:                                             ; preds = %1148
  %.not555 = icmp eq i32 %1152, 0
  br i1 %.not555, label %1207, label %1179

1179:                                             ; preds = %1178
  %1180 = add nsw i32 %1149, 2
  store i32 %1180, ptr @test_count, align 4, !tbaa !5
  %1181 = load ptr, ptr %32, align 8, !tbaa !43
  %1182 = load ptr, ptr %30, align 8, !tbaa !43
  %1183 = zext i32 %1152 to i64
  %bcmp556 = call i32 @bcmp(ptr %1181, ptr %1182, i64 %1183)
  %1184 = icmp eq i32 %bcmp556, 0
  br i1 %1184, label %1207, label %1185

1185:                                             ; preds = %1179
  %1186 = load i32, ptr %450, align 4, !tbaa !5
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = call i32 @s2n_print_stacktrace(ptr noundef %1187) #12
  %1189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1190 = trunc nuw i8 %1189 to i1
  br i1 %1190, label %1191, label %1195

1191:                                             ; preds = %1185
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = call i32 @fileno(ptr noundef %1192) #12
  %1194 = call i32 @isatty(i32 noundef %1193) #12
  %.not557 = icmp eq i32 %1194, 0
  br i1 %.not557, label %1195, label %1196

1195:                                             ; preds = %1191, %1185
  br label %1196

1196:                                             ; preds = %1191, %1195
  %.str.25.sink1098 = phi ptr [ @.str.25, %1195 ], [ @.str.22, %1191 ]
  store i32 %1186, ptr %450, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = load i32, ptr @test_count, align 4, !tbaa !5
  %1199 = load i32, ptr %396, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror(i32 noundef %1199, ptr noundef nonnull @.str.24) #12
  %1201 = load i32, ptr %396, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror_debug(i32 noundef %1201, ptr noundef nonnull @.str.24) #12
  %1203 = load i32, ptr %450, align 4, !tbaa !5
  %1204 = call ptr @strerror(i32 noundef %1203) #12
  %1205 = load i32, ptr %450, align 4, !tbaa !5
  %1206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1197, ptr noundef nonnull %.str.25.sink1098, i32 noundef %1198, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 167, ptr noundef %1200, ptr noundef %1202, ptr noundef %1204, i32 noundef %1205) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1207:                                             ; preds = %1178, %1179, %1117
  %.8479 = phi i32 [ 1, %1117 ], [ 0, %1179 ], [ 0, %1178 ]
  %.8 = phi i32 [ -1, %1117 ], [ %.7, %1179 ], [ %.7, %1178 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %31) #12
  br label %1208

1208:                                             ; preds = %1112, %1207
  %.10481 = phi i32 [ %.8479, %1207 ], [ 1, %1112 ]
  %.10 = phi i32 [ %.8, %1207 ], [ -1, %1112 ]
  %1209 = call i32 @s2n_free(ptr noundef nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #12
  %1210 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  %cond6 = icmp eq i32 %.10481, 0
  br i1 %cond6, label %1211, label %.thread730

1211:                                             ; preds = %1208
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #12
  %1212 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1212, ptr %33, align 8, !tbaa !9
  %1213 = getelementptr inbounds i8, ptr %1212, i64 220
  store i8 32, ptr %1213, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %34, i8 0, i64 24, i1 false)
  %1214 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %34, ptr noundef nonnull @.str.61) #12
  %1215 = call zeroext i1 @s2n_result_is_ok(i32 %1214)
  br i1 %1215, label %1216, label %1307

1216:                                             ; preds = %1211
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %35) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %35, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %36, i8 0, i64 24, i1 false)
  %1217 = call i32 @s2n_blob_init(ptr noundef nonnull %36, ptr noundef nonnull %35, i32 noundef 64) #12
  %1218 = icmp sgt i32 %1217, -1
  br i1 %1218, label %1219, label %1306

1219:                                             ; preds = %1216
  %1220 = load i32, ptr @test_count, align 4, !tbaa !5
  %1221 = add nsw i32 %1220, 1
  store i32 %1221, ptr @test_count, align 4, !tbaa !5
  %1222 = load ptr, ptr %33, align 8, !tbaa !9
  %1223 = call i32 @s2n_prf(ptr noundef %1222, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %36) #12
  %1224 = icmp eq i32 %1223, -1
  br i1 %1224, label %1225, label %1247

1225:                                             ; preds = %1219
  %1226 = load i32, ptr %450, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = call i32 @s2n_print_stacktrace(ptr noundef %1227) #12
  %1229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1230 = trunc nuw i8 %1229 to i1
  br i1 %1230, label %1231, label %1235

1231:                                             ; preds = %1225
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = call i32 @fileno(ptr noundef %1232) #12
  %1234 = call i32 @isatty(i32 noundef %1233) #12
  %.not705 = icmp eq i32 %1234, 0
  br i1 %.not705, label %1235, label %1236

1235:                                             ; preds = %1231, %1225
  br label %1236

1236:                                             ; preds = %1231, %1235
  %.str.25.sink1107 = phi ptr [ @.str.25, %1235 ], [ @.str.22, %1231 ]
  store i32 %1226, ptr %450, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = load i32, ptr %396, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror(i32 noundef %1239, ptr noundef nonnull @.str.24) #12
  %1241 = load i32, ptr %396, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror_debug(i32 noundef %1241, ptr noundef nonnull @.str.24) #12
  %1243 = load i32, ptr %450, align 4, !tbaa !5
  %1244 = call ptr @strerror(i32 noundef %1243) #12
  %1245 = load i32, ptr %450, align 4, !tbaa !5
  %1246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1237, ptr noundef nonnull %.str.25.sink1107, i32 noundef %1238, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 184, ptr noundef %1240, ptr noundef %1242, ptr noundef %1244, i32 noundef %1245) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1247:                                             ; preds = %1219
  %1248 = load i32, ptr @test_count, align 4, !tbaa !5
  %1249 = add nsw i32 %1248, 1
  store i32 %1249, ptr @test_count, align 4, !tbaa !5
  %1250 = getelementptr inbounds i8, ptr %36, i64 8
  %1251 = load i32, ptr %1250, align 8, !tbaa !42
  %1252 = getelementptr inbounds i8, ptr %34, i64 8
  %1253 = load i32, ptr %1252, align 8, !tbaa !42
  %1254 = icmp eq i32 %1251, %1253
  br i1 %1254, label %1277, label %1255

1255:                                             ; preds = %1247
  %1256 = load i32, ptr %450, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @s2n_print_stacktrace(ptr noundef %1257) #12
  %1259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1260 = trunc nuw i8 %1259 to i1
  br i1 %1260, label %1261, label %1265

1261:                                             ; preds = %1255
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = call i32 @fileno(ptr noundef %1262) #12
  %1264 = call i32 @isatty(i32 noundef %1263) #12
  %.not558 = icmp eq i32 %1264, 0
  br i1 %.not558, label %1265, label %1266

1265:                                             ; preds = %1261, %1255
  br label %1266

1266:                                             ; preds = %1261, %1265
  %.str.25.sink1116 = phi ptr [ @.str.25, %1265 ], [ @.str.22, %1261 ]
  store i32 %1256, ptr %450, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = load i32, ptr %396, align 4, !tbaa !5
  %1270 = call ptr @s2n_strerror(i32 noundef %1269, ptr noundef nonnull @.str.24) #12
  %1271 = load i32, ptr %396, align 4, !tbaa !5
  %1272 = call ptr @s2n_strerror_debug(i32 noundef %1271, ptr noundef nonnull @.str.24) #12
  %1273 = load i32, ptr %450, align 4, !tbaa !5
  %1274 = call ptr @strerror(i32 noundef %1273) #12
  %1275 = load i32, ptr %450, align 4, !tbaa !5
  %1276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1267, ptr noundef nonnull %.str.25.sink1116, i32 noundef %1268, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 185, ptr noundef %1270, ptr noundef %1272, ptr noundef %1274, i32 noundef %1275) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1277:                                             ; preds = %1247
  %.not559 = icmp eq i32 %1251, 0
  br i1 %.not559, label %1306, label %1278

1278:                                             ; preds = %1277
  %1279 = add nsw i32 %1248, 2
  store i32 %1279, ptr @test_count, align 4, !tbaa !5
  %1280 = load ptr, ptr %36, align 8, !tbaa !43
  %1281 = load ptr, ptr %34, align 8, !tbaa !43
  %1282 = zext i32 %1251 to i64
  %bcmp560 = call i32 @bcmp(ptr %1280, ptr %1281, i64 %1282)
  %1283 = icmp eq i32 %bcmp560, 0
  br i1 %1283, label %1306, label %1284

1284:                                             ; preds = %1278
  %1285 = load i32, ptr %450, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = call i32 @s2n_print_stacktrace(ptr noundef %1286) #12
  %1288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1289 = trunc nuw i8 %1288 to i1
  br i1 %1289, label %1290, label %1294

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

1294:                                             ; preds = %1290, %1284
  br label %1295

1295:                                             ; preds = %1290, %1294
  %.str.25.sink1125 = phi ptr [ @.str.25, %1294 ], [ @.str.22, %1290 ]
  store i32 %1285, ptr %450, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = load i32, ptr %396, align 4, !tbaa !5
  %1299 = call ptr @s2n_strerror(i32 noundef %1298, ptr noundef nonnull @.str.24) #12
  %1300 = load i32, ptr %396, align 4, !tbaa !5
  %1301 = call ptr @s2n_strerror_debug(i32 noundef %1300, ptr noundef nonnull @.str.24) #12
  %1302 = load i32, ptr %450, align 4, !tbaa !5
  %1303 = call ptr @strerror(i32 noundef %1302) #12
  %1304 = load i32, ptr %450, align 4, !tbaa !5
  %1305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef nonnull %.str.25.sink1125, i32 noundef %1297, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 186, ptr noundef %1299, ptr noundef %1301, ptr noundef %1303, i32 noundef %1304) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1306:                                             ; preds = %1277, %1278, %1216
  %.11482 = phi i32 [ 1, %1216 ], [ 0, %1278 ], [ 0, %1277 ]
  %.11 = phi i32 [ -1, %1216 ], [ %.10, %1278 ], [ %.10, %1277 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %35) #12
  br label %1307

1307:                                             ; preds = %1211, %1306
  %.13484 = phi i32 [ %.11482, %1306 ], [ 1, %1211 ]
  %.13 = phi i32 [ %.11, %1306 ], [ -1, %1211 ]
  %1308 = call i32 @s2n_free(ptr noundef nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #12
  %1309 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  %cond7 = icmp eq i32 %.13484, 0
  br i1 %cond7, label %1310, label %.thread730

1310:                                             ; preds = %1307
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #12
  %1311 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1311, ptr %37, align 8, !tbaa !9
  %1312 = getelementptr inbounds i8, ptr %1311, i64 220
  store i8 33, ptr %1312, align 4, !tbaa !15
  %1313 = getelementptr inbounds i8, ptr %1311, i64 232
  %1314 = load ptr, ptr %1313, align 8, !tbaa !44
  store ptr @s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384, ptr %1314, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %38) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %38, i8 0, i64 24, i1 false)
  %1315 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %38, ptr noundef nonnull @.str.64) #12
  %1316 = call zeroext i1 @s2n_result_is_ok(i32 %1315)
  br i1 %1316, label %1317, label %1408

1317:                                             ; preds = %1310
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %39) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %39, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %40, i8 0, i64 24, i1 false)
  %1318 = call i32 @s2n_blob_init(ptr noundef nonnull %40, ptr noundef nonnull %39, i32 noundef 64) #12
  %1319 = icmp sgt i32 %1318, -1
  br i1 %1319, label %1320, label %1407

1320:                                             ; preds = %1317
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = add nsw i32 %1321, 1
  store i32 %1322, ptr @test_count, align 4, !tbaa !5
  %1323 = load ptr, ptr %37, align 8, !tbaa !9
  %1324 = call i32 @s2n_prf(ptr noundef %1323, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %40) #12
  %1325 = icmp eq i32 %1324, -1
  br i1 %1325, label %1326, label %1348

1326:                                             ; preds = %1320
  %1327 = load i32, ptr %450, align 4, !tbaa !5
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = call i32 @s2n_print_stacktrace(ptr noundef %1328) #12
  %1330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1331 = trunc nuw i8 %1330 to i1
  br i1 %1331, label %1332, label %1336

1332:                                             ; preds = %1326
  %1333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1334 = call i32 @fileno(ptr noundef %1333) #12
  %1335 = call i32 @isatty(i32 noundef %1334) #12
  %.not704 = icmp eq i32 %1335, 0
  br i1 %.not704, label %1336, label %1337

1336:                                             ; preds = %1332, %1326
  br label %1337

1337:                                             ; preds = %1332, %1336
  %.str.25.sink1134 = phi ptr [ @.str.25, %1336 ], [ @.str.22, %1332 ]
  store i32 %1327, ptr %450, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = load i32, ptr %396, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror(i32 noundef %1340, ptr noundef nonnull @.str.24) #12
  %1342 = load i32, ptr %396, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror_debug(i32 noundef %1342, ptr noundef nonnull @.str.24) #12
  %1344 = load i32, ptr %450, align 4, !tbaa !5
  %1345 = call ptr @strerror(i32 noundef %1344) #12
  %1346 = load i32, ptr %450, align 4, !tbaa !5
  %1347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1338, ptr noundef nonnull %.str.25.sink1134, i32 noundef %1339, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 204, ptr noundef %1341, ptr noundef %1343, ptr noundef %1345, i32 noundef %1346) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1348:                                             ; preds = %1320
  %1349 = load i32, ptr @test_count, align 4, !tbaa !5
  %1350 = add nsw i32 %1349, 1
  store i32 %1350, ptr @test_count, align 4, !tbaa !5
  %1351 = getelementptr inbounds i8, ptr %40, i64 8
  %1352 = load i32, ptr %1351, align 8, !tbaa !42
  %1353 = getelementptr inbounds i8, ptr %38, i64 8
  %1354 = load i32, ptr %1353, align 8, !tbaa !42
  %1355 = icmp eq i32 %1352, %1354
  br i1 %1355, label %1378, label %1356

1356:                                             ; preds = %1348
  %1357 = load i32, ptr %450, align 4, !tbaa !5
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @s2n_print_stacktrace(ptr noundef %1358) #12
  %1360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1361 = trunc nuw i8 %1360 to i1
  br i1 %1361, label %1362, label %1366

1362:                                             ; preds = %1356
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = call i32 @fileno(ptr noundef %1363) #12
  %1365 = call i32 @isatty(i32 noundef %1364) #12
  %.not562 = icmp eq i32 %1365, 0
  br i1 %.not562, label %1366, label %1367

1366:                                             ; preds = %1362, %1356
  br label %1367

1367:                                             ; preds = %1362, %1366
  %.str.25.sink1143 = phi ptr [ @.str.25, %1366 ], [ @.str.22, %1362 ]
  store i32 %1357, ptr %450, align 4, !tbaa !5
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = load i32, ptr @test_count, align 4, !tbaa !5
  %1370 = load i32, ptr %396, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror(i32 noundef %1370, ptr noundef nonnull @.str.24) #12
  %1372 = load i32, ptr %396, align 4, !tbaa !5
  %1373 = call ptr @s2n_strerror_debug(i32 noundef %1372, ptr noundef nonnull @.str.24) #12
  %1374 = load i32, ptr %450, align 4, !tbaa !5
  %1375 = call ptr @strerror(i32 noundef %1374) #12
  %1376 = load i32, ptr %450, align 4, !tbaa !5
  %1377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1368, ptr noundef nonnull %.str.25.sink1143, i32 noundef %1369, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 205, ptr noundef %1371, ptr noundef %1373, ptr noundef %1375, i32 noundef %1376) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1378:                                             ; preds = %1348
  %.not563 = icmp eq i32 %1352, 0
  br i1 %.not563, label %1407, label %1379

1379:                                             ; preds = %1378
  %1380 = add nsw i32 %1349, 2
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = load ptr, ptr %40, align 8, !tbaa !43
  %1382 = load ptr, ptr %38, align 8, !tbaa !43
  %1383 = zext i32 %1352 to i64
  %bcmp564 = call i32 @bcmp(ptr %1381, ptr %1382, i64 %1383)
  %1384 = icmp eq i32 %bcmp564, 0
  br i1 %1384, label %1407, label %1385

1385:                                             ; preds = %1379
  %1386 = load i32, ptr %450, align 4, !tbaa !5
  %1387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1388 = call i32 @s2n_print_stacktrace(ptr noundef %1387) #12
  %1389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1390 = trunc nuw i8 %1389 to i1
  br i1 %1390, label %1391, label %1395

1391:                                             ; preds = %1385
  %1392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1393 = call i32 @fileno(ptr noundef %1392) #12
  %1394 = call i32 @isatty(i32 noundef %1393) #12
  %.not565 = icmp eq i32 %1394, 0
  br i1 %.not565, label %1395, label %1396

1395:                                             ; preds = %1391, %1385
  br label %1396

1396:                                             ; preds = %1391, %1395
  %.str.25.sink1152 = phi ptr [ @.str.25, %1395 ], [ @.str.22, %1391 ]
  store i32 %1386, ptr %450, align 4, !tbaa !5
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = load i32, ptr @test_count, align 4, !tbaa !5
  %1399 = load i32, ptr %396, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror(i32 noundef %1399, ptr noundef nonnull @.str.24) #12
  %1401 = load i32, ptr %396, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror_debug(i32 noundef %1401, ptr noundef nonnull @.str.24) #12
  %1403 = load i32, ptr %450, align 4, !tbaa !5
  %1404 = call ptr @strerror(i32 noundef %1403) #12
  %1405 = load i32, ptr %450, align 4, !tbaa !5
  %1406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1397, ptr noundef nonnull %.str.25.sink1152, i32 noundef %1398, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 206, ptr noundef %1400, ptr noundef %1402, ptr noundef %1404, i32 noundef %1405) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1407:                                             ; preds = %1378, %1379, %1317
  %.14485 = phi i32 [ 1, %1317 ], [ 0, %1379 ], [ 0, %1378 ]
  %.14 = phi i32 [ -1, %1317 ], [ %.13, %1379 ], [ %.13, %1378 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %39) #12
  br label %1408

1408:                                             ; preds = %1310, %1407
  %.16487 = phi i32 [ %.14485, %1407 ], [ 1, %1310 ]
  %.16 = phi i32 [ %.14, %1407 ], [ -1, %1310 ]
  %1409 = call i32 @s2n_free(ptr noundef nonnull %38) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) #12
  %1410 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #12
  %cond8 = icmp eq i32 %.16487, 0
  br i1 %cond8, label %1411, label %.thread730

1411:                                             ; preds = %1408
  %1412 = call zeroext i1 @s2n_libcrypto_is_openssl_fips() #12
  br i1 %1412, label %1413, label %1694

1413:                                             ; preds = %1411
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #12
  %1414 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1414, ptr %41, align 8, !tbaa !9
  %1415 = getelementptr inbounds i8, ptr %1414, i64 220
  store i8 32, ptr %1415, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %42) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %42, i8 0, i64 24, i1 false)
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = add nsw i32 %1416, 1
  store i32 %1417, ptr @test_count, align 4, !tbaa !5
  %1418 = call i32 @s2n_alloc(ptr noundef nonnull %42, i32 noundef 30) #12
  %1419 = icmp eq i32 %1418, -1
  br i1 %1419, label %1420, label %1442

1420:                                             ; preds = %1413
  %1421 = load i32, ptr %450, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @s2n_print_stacktrace(ptr noundef %1422) #12
  %1424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1425 = trunc nuw i8 %1424 to i1
  br i1 %1425, label %1426, label %1430

1426:                                             ; preds = %1420
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = call i32 @fileno(ptr noundef %1427) #12
  %1429 = call i32 @isatty(i32 noundef %1428) #12
  %.not703 = icmp eq i32 %1429, 0
  br i1 %.not703, label %1430, label %1431

1430:                                             ; preds = %1426, %1420
  br label %1431

1431:                                             ; preds = %1426, %1430
  %.str.25.sink1161 = phi ptr [ @.str.25, %1430 ], [ @.str.22, %1426 ]
  store i32 %1421, ptr %450, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = load i32, ptr %396, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror(i32 noundef %1434, ptr noundef nonnull @.str.24) #12
  %1436 = load i32, ptr %396, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror_debug(i32 noundef %1436, ptr noundef nonnull @.str.24) #12
  %1438 = load i32, ptr %450, align 4, !tbaa !5
  %1439 = call ptr @strerror(i32 noundef %1438) #12
  %1440 = load i32, ptr %450, align 4, !tbaa !5
  %1441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1432, ptr noundef nonnull %.str.25.sink1161, i32 noundef %1433, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.21, i32 noundef 216, ptr noundef %1435, ptr noundef %1437, ptr noundef %1439, i32 noundef %1440) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1442:                                             ; preds = %1413
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %43) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %43, i8 0, i64 24, i1 false)
  %1443 = load i32, ptr @test_count, align 4, !tbaa !5
  %1444 = add nsw i32 %1443, 1
  store i32 %1444, ptr @test_count, align 4, !tbaa !5
  %1445 = call i32 @s2n_alloc(ptr noundef nonnull %43, i32 noundef 300) #12
  %1446 = icmp eq i32 %1445, -1
  br i1 %1446, label %1447, label %1469

1447:                                             ; preds = %1442
  %1448 = load i32, ptr %450, align 4, !tbaa !5
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @s2n_print_stacktrace(ptr noundef %1449) #12
  %1451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1452 = trunc nuw i8 %1451 to i1
  br i1 %1452, label %1453, label %1457

1453:                                             ; preds = %1447
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = call i32 @fileno(ptr noundef %1454) #12
  %1456 = call i32 @isatty(i32 noundef %1455) #12
  %.not702 = icmp eq i32 %1456, 0
  br i1 %.not702, label %1457, label %1458

1457:                                             ; preds = %1453, %1447
  br label %1458

1458:                                             ; preds = %1453, %1457
  %.str.25.sink1170 = phi ptr [ @.str.25, %1457 ], [ @.str.22, %1453 ]
  store i32 %1448, ptr %450, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = load i32, ptr %396, align 4, !tbaa !5
  %1462 = call ptr @s2n_strerror(i32 noundef %1461, ptr noundef nonnull @.str.24) #12
  %1463 = load i32, ptr %396, align 4, !tbaa !5
  %1464 = call ptr @s2n_strerror_debug(i32 noundef %1463, ptr noundef nonnull @.str.24) #12
  %1465 = load i32, ptr %450, align 4, !tbaa !5
  %1466 = call ptr @strerror(i32 noundef %1465) #12
  %1467 = load i32, ptr %450, align 4, !tbaa !5
  %1468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1459, ptr noundef nonnull %.str.25.sink1170, i32 noundef %1460, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.21, i32 noundef 219, ptr noundef %1462, ptr noundef %1464, ptr noundef %1466, i32 noundef %1467) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1469:                                             ; preds = %1442
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %44) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %44, i8 0, i64 24, i1 false)
  %1470 = load i32, ptr @test_count, align 4, !tbaa !5
  %1471 = add nsw i32 %1470, 1
  store i32 %1471, ptr @test_count, align 4, !tbaa !5
  %1472 = call i32 @s2n_alloc(ptr noundef nonnull %44, i32 noundef 3000) #12
  %1473 = icmp eq i32 %1472, -1
  br i1 %1473, label %1474, label %1496

1474:                                             ; preds = %1469
  %1475 = load i32, ptr %450, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @s2n_print_stacktrace(ptr noundef %1476) #12
  %1478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1479 = trunc nuw i8 %1478 to i1
  br i1 %1479, label %1480, label %1484

1480:                                             ; preds = %1474
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = call i32 @fileno(ptr noundef %1481) #12
  %1483 = call i32 @isatty(i32 noundef %1482) #12
  %.not701 = icmp eq i32 %1483, 0
  br i1 %.not701, label %1484, label %1485

1484:                                             ; preds = %1480, %1474
  br label %1485

1485:                                             ; preds = %1480, %1484
  %.str.25.sink1179 = phi ptr [ @.str.25, %1484 ], [ @.str.22, %1480 ]
  store i32 %1475, ptr %450, align 4, !tbaa !5
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = load i32, ptr %396, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror(i32 noundef %1488, ptr noundef nonnull @.str.24) #12
  %1490 = load i32, ptr %396, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef nonnull @.str.24) #12
  %1492 = load i32, ptr %450, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #12
  %1494 = load i32, ptr %450, align 4, !tbaa !5
  %1495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1486, ptr noundef nonnull %.str.25.sink1179, i32 noundef %1487, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.21, i32 noundef 222, ptr noundef %1489, ptr noundef %1491, ptr noundef %1493, i32 noundef %1494) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1496:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %45) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %45, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %46) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %46, i8 0, i64 24, i1 false)
  %1497 = call i32 @s2n_blob_init(ptr noundef nonnull %46, ptr noundef nonnull %45, i32 noundef 64) #12
  %1498 = icmp sgt i32 %1497, -1
  br i1 %1498, label %1499, label %1689

1499:                                             ; preds = %1496
  %1500 = load i32, ptr @test_count, align 4, !tbaa !5
  %1501 = add nsw i32 %1500, 1
  store i32 %1501, ptr @test_count, align 4, !tbaa !5
  %1502 = load ptr, ptr %41, align 8, !tbaa !9
  %1503 = call i32 @s2n_prf(ptr noundef %1502, ptr noundef nonnull %8, ptr noundef nonnull %42, ptr noundef nonnull %42, ptr noundef nonnull %42, ptr noundef nonnull %44, ptr noundef nonnull %46) #12
  %1504 = icmp eq i32 %1503, -1
  br i1 %1504, label %1527, label %1505

1505:                                             ; preds = %1499
  %1506 = load i32, ptr %450, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = call i32 @s2n_print_stacktrace(ptr noundef %1507) #12
  %1509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1510 = trunc nuw i8 %1509 to i1
  br i1 %1510, label %1511, label %1515

1511:                                             ; preds = %1505
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1513 = call i32 @fileno(ptr noundef %1512) #12
  %1514 = call i32 @isatty(i32 noundef %1513) #12
  %.not566 = icmp eq i32 %1514, 0
  br i1 %.not566, label %1515, label %1516

1515:                                             ; preds = %1511, %1505
  br label %1516

1516:                                             ; preds = %1511, %1515
  %.str.25.sink1188 = phi ptr [ @.str.25, %1515 ], [ @.str.22, %1511 ]
  store i32 %1506, ptr %450, align 4, !tbaa !5
  %1517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1518 = load i32, ptr @test_count, align 4, !tbaa !5
  %1519 = load i32, ptr %396, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef nonnull @.str.24) #12
  %1521 = load i32, ptr %396, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror_debug(i32 noundef %1521, ptr noundef nonnull @.str.24) #12
  %1523 = load i32, ptr %450, align 4, !tbaa !5
  %1524 = call ptr @strerror(i32 noundef %1523) #12
  %1525 = load i32, ptr %450, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1517, ptr noundef nonnull %.str.25.sink1188, i32 noundef %1518, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.21, i32 noundef 227, ptr noundef %1520, ptr noundef %1522, ptr noundef %1524, i32 noundef %1525) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1527:                                             ; preds = %1499
  %1528 = load i32, ptr @test_count, align 4, !tbaa !5
  %1529 = add nsw i32 %1528, 1
  store i32 %1529, ptr @test_count, align 4, !tbaa !5
  %1530 = load i32, ptr %396, align 4, !tbaa !5
  %1531 = icmp eq i32 %1530, 402653207
  br i1 %1531, label %1554, label %1532

1532:                                             ; preds = %1527
  %1533 = load i32, ptr %450, align 4, !tbaa !5
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @s2n_print_stacktrace(ptr noundef %1534) #12
  %1536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1537 = trunc nuw i8 %1536 to i1
  br i1 %1537, label %1538, label %1542

1538:                                             ; preds = %1532
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @fileno(ptr noundef %1539) #12
  %1541 = call i32 @isatty(i32 noundef %1540) #12
  %.not567 = icmp eq i32 %1541, 0
  br i1 %.not567, label %1542, label %1543

1542:                                             ; preds = %1538, %1532
  br label %1543

1543:                                             ; preds = %1538, %1542
  %.str.25.sink1197 = phi ptr [ @.str.25, %1542 ], [ @.str.22, %1538 ]
  store i32 %1533, ptr %450, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = load i32, ptr %396, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror(i32 noundef %1546, ptr noundef nonnull @.str.24) #12
  %1548 = load i32, ptr %396, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror_debug(i32 noundef %1548, ptr noundef nonnull @.str.24) #12
  %1550 = load i32, ptr %450, align 4, !tbaa !5
  %1551 = call ptr @strerror(i32 noundef %1550) #12
  %1552 = load i32, ptr %450, align 4, !tbaa !5
  %1553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef nonnull %.str.25.sink1197, i32 noundef %1545, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 227, ptr noundef %1547, ptr noundef %1549, ptr noundef %1551, i32 noundef %1552) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1554:                                             ; preds = %1527
  %1555 = add nsw i32 %1528, 2
  store i32 %1555, ptr @test_count, align 4, !tbaa !5
  %1556 = call ptr @s2n_strerror_debug(i32 noundef 402653207, ptr noundef nonnull @.str.24) #12
  %1557 = icmp eq ptr %1556, null
  br i1 %1557, label %1558, label %1580

1558:                                             ; preds = %1554
  %1559 = load i32, ptr %450, align 4, !tbaa !5
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @s2n_print_stacktrace(ptr noundef %1560) #12
  %1562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1563 = trunc nuw i8 %1562 to i1
  br i1 %1563, label %1564, label %1568

1564:                                             ; preds = %1558
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = call i32 @fileno(ptr noundef %1565) #12
  %1567 = call i32 @isatty(i32 noundef %1566) #12
  %.not700 = icmp eq i32 %1567, 0
  br i1 %.not700, label %1568, label %1569

1568:                                             ; preds = %1564, %1558
  br label %1569

1569:                                             ; preds = %1564, %1568
  %.str.25.sink1206 = phi ptr [ @.str.25, %1568 ], [ @.str.22, %1564 ]
  store i32 %1559, ptr %450, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = load i32, ptr %396, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror(i32 noundef %1572, ptr noundef nonnull @.str.24) #12
  %1574 = load i32, ptr %396, align 4, !tbaa !5
  %1575 = call ptr @s2n_strerror_debug(i32 noundef %1574, ptr noundef nonnull @.str.24) #12
  %1576 = load i32, ptr %450, align 4, !tbaa !5
  %1577 = call ptr @strerror(i32 noundef %1576) #12
  %1578 = load i32, ptr %450, align 4, !tbaa !5
  %1579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef nonnull %.str.25.sink1206, i32 noundef %1571, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 227, ptr noundef %1573, ptr noundef %1575, ptr noundef %1577, i32 noundef %1578) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1580:                                             ; preds = %1554
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %1581 = load i32, ptr @test_count, align 4, !tbaa !5
  %1582 = add nsw i32 %1581, 1
  store i32 %1582, ptr @test_count, align 4, !tbaa !5
  %1583 = load ptr, ptr %41, align 8, !tbaa !9
  %1584 = call i32 @s2n_prf(ptr noundef %1583, ptr noundef nonnull %8, ptr noundef nonnull %43, ptr noundef nonnull %43, ptr noundef nonnull %43, ptr noundef nonnull %43, ptr noundef nonnull %46) #12
  %1585 = icmp eq i32 %1584, -1
  br i1 %1585, label %1608, label %1586

1586:                                             ; preds = %1580
  %1587 = load i32, ptr %450, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @s2n_print_stacktrace(ptr noundef %1588) #12
  %1590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1591 = trunc nuw i8 %1590 to i1
  br i1 %1591, label %1592, label %1596

1592:                                             ; preds = %1586
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @fileno(ptr noundef %1593) #12
  %1595 = call i32 @isatty(i32 noundef %1594) #12
  %.not568 = icmp eq i32 %1595, 0
  br i1 %.not568, label %1596, label %1597

1596:                                             ; preds = %1592, %1586
  br label %1597

1597:                                             ; preds = %1592, %1596
  %.str.25.sink1215 = phi ptr [ @.str.25, %1596 ], [ @.str.22, %1592 ]
  store i32 %1587, ptr %450, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = load i32, ptr %396, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror(i32 noundef %1600, ptr noundef nonnull @.str.24) #12
  %1602 = load i32, ptr %396, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror_debug(i32 noundef %1602, ptr noundef nonnull @.str.24) #12
  %1604 = load i32, ptr %450, align 4, !tbaa !5
  %1605 = call ptr @strerror(i32 noundef %1604) #12
  %1606 = load i32, ptr %450, align 4, !tbaa !5
  %1607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1598, ptr noundef nonnull %.str.25.sink1215, i32 noundef %1599, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.21, i32 noundef 230, ptr noundef %1601, ptr noundef %1603, ptr noundef %1605, i32 noundef %1606) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1608:                                             ; preds = %1580
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = add nsw i32 %1609, 1
  store i32 %1610, ptr @test_count, align 4, !tbaa !5
  %1611 = load i32, ptr %396, align 4, !tbaa !5
  %1612 = icmp eq i32 %1611, 402653207
  br i1 %1612, label %1635, label %1613

1613:                                             ; preds = %1608
  %1614 = load i32, ptr %450, align 4, !tbaa !5
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = call i32 @s2n_print_stacktrace(ptr noundef %1615) #12
  %1617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1618 = trunc nuw i8 %1617 to i1
  br i1 %1618, label %1619, label %1623

1619:                                             ; preds = %1613
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @fileno(ptr noundef %1620) #12
  %1622 = call i32 @isatty(i32 noundef %1621) #12
  %.not569 = icmp eq i32 %1622, 0
  br i1 %.not569, label %1623, label %1624

1623:                                             ; preds = %1619, %1613
  br label %1624

1624:                                             ; preds = %1619, %1623
  %.str.25.sink1224 = phi ptr [ @.str.25, %1623 ], [ @.str.22, %1619 ]
  store i32 %1614, ptr %450, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = load i32, ptr %396, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef nonnull @.str.24) #12
  %1629 = load i32, ptr %396, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror_debug(i32 noundef %1629, ptr noundef nonnull @.str.24) #12
  %1631 = load i32, ptr %450, align 4, !tbaa !5
  %1632 = call ptr @strerror(i32 noundef %1631) #12
  %1633 = load i32, ptr %450, align 4, !tbaa !5
  %1634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1625, ptr noundef nonnull %.str.25.sink1224, i32 noundef %1626, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 230, ptr noundef %1628, ptr noundef %1630, ptr noundef %1632, i32 noundef %1633) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1635:                                             ; preds = %1608
  %1636 = add nsw i32 %1609, 2
  store i32 %1636, ptr @test_count, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror_debug(i32 noundef 402653207, ptr noundef nonnull @.str.24) #12
  %1638 = icmp eq ptr %1637, null
  br i1 %1638, label %1639, label %1661

1639:                                             ; preds = %1635
  %1640 = load i32, ptr %450, align 4, !tbaa !5
  %1641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1642 = call i32 @s2n_print_stacktrace(ptr noundef %1641) #12
  %1643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1644 = trunc nuw i8 %1643 to i1
  br i1 %1644, label %1645, label %1649

1645:                                             ; preds = %1639
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = call i32 @fileno(ptr noundef %1646) #12
  %1648 = call i32 @isatty(i32 noundef %1647) #12
  %.not699 = icmp eq i32 %1648, 0
  br i1 %.not699, label %1649, label %1650

1649:                                             ; preds = %1645, %1639
  br label %1650

1650:                                             ; preds = %1645, %1649
  %.str.25.sink1233 = phi ptr [ @.str.25, %1649 ], [ @.str.22, %1645 ]
  store i32 %1640, ptr %450, align 4, !tbaa !5
  %1651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1652 = load i32, ptr @test_count, align 4, !tbaa !5
  %1653 = load i32, ptr %396, align 4, !tbaa !5
  %1654 = call ptr @s2n_strerror(i32 noundef %1653, ptr noundef nonnull @.str.24) #12
  %1655 = load i32, ptr %396, align 4, !tbaa !5
  %1656 = call ptr @s2n_strerror_debug(i32 noundef %1655, ptr noundef nonnull @.str.24) #12
  %1657 = load i32, ptr %450, align 4, !tbaa !5
  %1658 = call ptr @strerror(i32 noundef %1657) #12
  %1659 = load i32, ptr %450, align 4, !tbaa !5
  %1660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1651, ptr noundef nonnull %.str.25.sink1233, i32 noundef %1652, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 230, ptr noundef %1654, ptr noundef %1656, ptr noundef %1658, i32 noundef %1659) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1661:                                             ; preds = %1635
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = add nsw i32 %1662, 1
  store i32 %1663, ptr @test_count, align 4, !tbaa !5
  %1664 = load ptr, ptr %41, align 8, !tbaa !9
  %1665 = call i32 @s2n_prf(ptr noundef %1664, ptr noundef nonnull %8, ptr noundef nonnull %42, ptr noundef nonnull %42, ptr noundef nonnull %42, ptr noundef nonnull %42, ptr noundef nonnull %46) #12
  %1666 = icmp eq i32 %1665, -1
  br i1 %1666, label %1667, label %1689

1667:                                             ; preds = %1661
  %1668 = load i32, ptr %450, align 4, !tbaa !5
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = call i32 @s2n_print_stacktrace(ptr noundef %1669) #12
  %1671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1672 = trunc nuw i8 %1671 to i1
  br i1 %1672, label %1673, label %1677

1673:                                             ; preds = %1667
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = call i32 @fileno(ptr noundef %1674) #12
  %1676 = call i32 @isatty(i32 noundef %1675) #12
  %.not698 = icmp eq i32 %1676, 0
  br i1 %.not698, label %1677, label %1678

1677:                                             ; preds = %1673, %1667
  br label %1678

1678:                                             ; preds = %1673, %1677
  %.str.25.sink1242 = phi ptr [ @.str.25, %1677 ], [ @.str.22, %1673 ]
  store i32 %1668, ptr %450, align 4, !tbaa !5
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = load i32, ptr @test_count, align 4, !tbaa !5
  %1681 = load i32, ptr %396, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror(i32 noundef %1681, ptr noundef nonnull @.str.24) #12
  %1683 = load i32, ptr %396, align 4, !tbaa !5
  %1684 = call ptr @s2n_strerror_debug(i32 noundef %1683, ptr noundef nonnull @.str.24) #12
  %1685 = load i32, ptr %450, align 4, !tbaa !5
  %1686 = call ptr @strerror(i32 noundef %1685) #12
  %1687 = load i32, ptr %450, align 4, !tbaa !5
  %1688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1679, ptr noundef nonnull %.str.25.sink1242, i32 noundef %1680, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.21, i32 noundef 232, ptr noundef %1682, ptr noundef %1684, ptr noundef %1686, i32 noundef %1687) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1689:                                             ; preds = %1661, %1496
  %.17 = phi i32 [ -1, %1496 ], [ %.16, %1661 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %45) #12
  %1690 = call i32 @s2n_free(ptr noundef nonnull %44) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #12
  %1691 = call i32 @s2n_free(ptr noundef nonnull %43) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #12
  %1692 = call i32 @s2n_free(ptr noundef nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %42) #12
  %1693 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %41) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #12
  br i1 %1498, label %1694, label %.thread730

1694:                                             ; preds = %1689, %1411
  %.19 = phi i32 [ %.17, %1689 ], [ %.16, %1411 ]
  %1695 = call zeroext i1 @s2n_is_in_fips_mode() #12
  br i1 %1695, label %1790, label %1696

1696:                                             ; preds = %1694
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #12
  %1697 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1697, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %48) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %48, i8 0, i64 64, i1 false)
  %1698 = load i32, ptr @test_count, align 4, !tbaa !5
  %1699 = add nsw i32 %1698, 1
  store i32 %1699, ptr @test_count, align 4, !tbaa !5
  %1700 = getelementptr inbounds i8, ptr %1697, i64 1752
  %1701 = load ptr, ptr %1700, align 8, !tbaa !50
  %1702 = getelementptr inbounds i8, ptr %1701, i64 432
  %bcmp570 = call i32 @bcmp(ptr noundef nonnull dereferenceable(64) %1702, ptr noundef nonnull dereferenceable(64) %48, i64 64)
  %1703 = icmp eq i32 %bcmp570, 0
  br i1 %1703, label %1726, label %1704

1704:                                             ; preds = %1696
  %1705 = load i32, ptr %450, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = call i32 @s2n_print_stacktrace(ptr noundef %1706) #12
  %1708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1709 = trunc nuw i8 %1708 to i1
  br i1 %1709, label %1710, label %1714

1710:                                             ; preds = %1704
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = call i32 @fileno(ptr noundef %1711) #12
  %1713 = call i32 @isatty(i32 noundef %1712) #12
  %.not571 = icmp eq i32 %1713, 0
  br i1 %.not571, label %1714, label %1715

1714:                                             ; preds = %1710, %1704
  br label %1715

1715:                                             ; preds = %1710, %1714
  %.str.25.sink1251 = phi ptr [ @.str.25, %1714 ], [ @.str.22, %1710 ]
  store i32 %1705, ptr %450, align 4, !tbaa !5
  %1716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1717 = load i32, ptr @test_count, align 4, !tbaa !5
  %1718 = load i32, ptr %396, align 4, !tbaa !5
  %1719 = call ptr @s2n_strerror(i32 noundef %1718, ptr noundef nonnull @.str.24) #12
  %1720 = load i32, ptr %396, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror_debug(i32 noundef %1720, ptr noundef nonnull @.str.24) #12
  %1722 = load i32, ptr %450, align 4, !tbaa !5
  %1723 = call ptr @strerror(i32 noundef %1722) #12
  %1724 = load i32, ptr %450, align 4, !tbaa !5
  %1725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1716, ptr noundef nonnull %.str.25.sink1251, i32 noundef %1717, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.21, i32 noundef 240, ptr noundef %1719, ptr noundef %1721, ptr noundef %1723, i32 noundef %1724) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1726:                                             ; preds = %1696
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %49) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %49, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %50) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %50, i8 0, i64 24, i1 false)
  %1727 = call i32 @s2n_blob_init(ptr noundef nonnull %50, ptr noundef nonnull %49, i32 noundef 64) #12
  %1728 = icmp sgt i32 %1727, -1
  br i1 %1728, label %1729, label %1788

1729:                                             ; preds = %1726
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = add nsw i32 %1730, 1
  store i32 %1731, ptr @test_count, align 4, !tbaa !5
  %1732 = load ptr, ptr %47, align 8, !tbaa !9
  %1733 = call i32 @s2n_prf(ptr noundef %1732, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %50) #12
  %1734 = icmp eq i32 %1733, -1
  br i1 %1734, label %1735, label %1757

1735:                                             ; preds = %1729
  %1736 = load i32, ptr %450, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = call i32 @s2n_print_stacktrace(ptr noundef %1737) #12
  %1739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1740 = trunc nuw i8 %1739 to i1
  br i1 %1740, label %1741, label %1745

1741:                                             ; preds = %1735
  %1742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1743 = call i32 @fileno(ptr noundef %1742) #12
  %1744 = call i32 @isatty(i32 noundef %1743) #12
  %.not574 = icmp eq i32 %1744, 0
  br i1 %.not574, label %1745, label %1746

1745:                                             ; preds = %1741, %1735
  br label %1746

1746:                                             ; preds = %1741, %1745
  %.str.25.sink1260 = phi ptr [ @.str.25, %1745 ], [ @.str.22, %1741 ]
  store i32 %1736, ptr %450, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = load i32, ptr %396, align 4, !tbaa !5
  %1750 = call ptr @s2n_strerror(i32 noundef %1749, ptr noundef nonnull @.str.24) #12
  %1751 = load i32, ptr %396, align 4, !tbaa !5
  %1752 = call ptr @s2n_strerror_debug(i32 noundef %1751, ptr noundef nonnull @.str.24) #12
  %1753 = load i32, ptr %450, align 4, !tbaa !5
  %1754 = call ptr @strerror(i32 noundef %1753) #12
  %1755 = load i32, ptr %450, align 4, !tbaa !5
  %1756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1747, ptr noundef nonnull %.str.25.sink1260, i32 noundef %1748, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.21, i32 noundef 243, ptr noundef %1750, ptr noundef %1752, ptr noundef %1754, i32 noundef %1755) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1757:                                             ; preds = %1729
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = add nsw i32 %1758, 1
  store i32 %1759, ptr @test_count, align 4, !tbaa !5
  %1760 = load ptr, ptr %47, align 8, !tbaa !9
  %1761 = getelementptr inbounds i8, ptr %1760, i64 1752
  %1762 = load ptr, ptr %1761, align 8, !tbaa !50
  %1763 = getelementptr inbounds i8, ptr %1762, i64 432
  %bcmp572 = call i32 @bcmp(ptr noundef nonnull dereferenceable(64) %1763, ptr noundef nonnull dereferenceable(64) %48, i64 64)
  %1764 = icmp eq i32 %bcmp572, 0
  br i1 %1764, label %1766, label %.thread728

.thread728:                                       ; preds = %1757
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %49) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %48) #12
  %1765 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  br label %1790

1766:                                             ; preds = %1757
  %1767 = load i32, ptr %450, align 4, !tbaa !5
  %1768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1769 = call i32 @s2n_print_stacktrace(ptr noundef %1768) #12
  %1770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1771 = trunc nuw i8 %1770 to i1
  br i1 %1771, label %1772, label %1776

1772:                                             ; preds = %1766
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = call i32 @fileno(ptr noundef %1773) #12
  %1775 = call i32 @isatty(i32 noundef %1774) #12
  %.not573 = icmp eq i32 %1775, 0
  br i1 %.not573, label %1776, label %1777

1776:                                             ; preds = %1772, %1766
  br label %1777

1777:                                             ; preds = %1772, %1776
  %.str.25.sink1269 = phi ptr [ @.str.25, %1776 ], [ @.str.22, %1772 ]
  store i32 %1767, ptr %450, align 4, !tbaa !5
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = load i32, ptr @test_count, align 4, !tbaa !5
  %1780 = load i32, ptr %396, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror(i32 noundef %1780, ptr noundef nonnull @.str.24) #12
  %1782 = load i32, ptr %396, align 4, !tbaa !5
  %1783 = call ptr @s2n_strerror_debug(i32 noundef %1782, ptr noundef nonnull @.str.24) #12
  %1784 = load i32, ptr %450, align 4, !tbaa !5
  %1785 = call ptr @strerror(i32 noundef %1784) #12
  %1786 = load i32, ptr %450, align 4, !tbaa !5
  %1787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1778, ptr noundef nonnull %.str.25.sink1269, i32 noundef %1779, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.21, i32 noundef 246, ptr noundef %1781, ptr noundef %1783, ptr noundef %1785, i32 noundef %1786) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1788:                                             ; preds = %1726
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %49) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %48) #12
  %1789 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  br label %.thread730

1790:                                             ; preds = %.thread728, %1694
  %1791 = call zeroext i1 @s2n_is_in_fips_mode() #12
  br i1 %1791, label %1792, label %.thread733

.thread733:                                       ; preds = %1790
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #12
  br label %1886

1792:                                             ; preds = %1790
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #12
  %1793 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1793, ptr %51, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %52) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %52, i8 0, i64 64, i1 false)
  %1794 = load i32, ptr @test_count, align 4, !tbaa !5
  %1795 = add nsw i32 %1794, 1
  store i32 %1795, ptr @test_count, align 4, !tbaa !5
  %1796 = getelementptr inbounds i8, ptr %1793, i64 1752
  %1797 = load ptr, ptr %1796, align 8, !tbaa !50
  %1798 = getelementptr inbounds i8, ptr %1797, i64 432
  %bcmp575 = call i32 @bcmp(ptr noundef nonnull dereferenceable(64) %1798, ptr noundef nonnull dereferenceable(64) %52, i64 64)
  %1799 = icmp eq i32 %bcmp575, 0
  br i1 %1799, label %1822, label %1800

1800:                                             ; preds = %1792
  %1801 = load i32, ptr %450, align 4, !tbaa !5
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = call i32 @s2n_print_stacktrace(ptr noundef %1802) #12
  %1804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1805 = trunc nuw i8 %1804 to i1
  br i1 %1805, label %1806, label %1810

1806:                                             ; preds = %1800
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @fileno(ptr noundef %1807) #12
  %1809 = call i32 @isatty(i32 noundef %1808) #12
  %.not576 = icmp eq i32 %1809, 0
  br i1 %.not576, label %1810, label %1811

1810:                                             ; preds = %1806, %1800
  br label %1811

1811:                                             ; preds = %1806, %1810
  %.str.25.sink1278 = phi ptr [ @.str.25, %1810 ], [ @.str.22, %1806 ]
  store i32 %1801, ptr %450, align 4, !tbaa !5
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = load i32, ptr @test_count, align 4, !tbaa !5
  %1814 = load i32, ptr %396, align 4, !tbaa !5
  %1815 = call ptr @s2n_strerror(i32 noundef %1814, ptr noundef nonnull @.str.24) #12
  %1816 = load i32, ptr %396, align 4, !tbaa !5
  %1817 = call ptr @s2n_strerror_debug(i32 noundef %1816, ptr noundef nonnull @.str.24) #12
  %1818 = load i32, ptr %450, align 4, !tbaa !5
  %1819 = call ptr @strerror(i32 noundef %1818) #12
  %1820 = load i32, ptr %450, align 4, !tbaa !5
  %1821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1812, ptr noundef nonnull %.str.25.sink1278, i32 noundef %1813, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.21, i32 noundef 254, ptr noundef %1815, ptr noundef %1817, ptr noundef %1819, i32 noundef %1820) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1822:                                             ; preds = %1792
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %53) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %53, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %54) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %54, i8 0, i64 24, i1 false)
  %1823 = call i32 @s2n_blob_init(ptr noundef nonnull %54, ptr noundef nonnull %53, i32 noundef 64) #12
  %1824 = icmp sgt i32 %1823, -1
  br i1 %1824, label %1825, label %1884

1825:                                             ; preds = %1822
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = add nsw i32 %1826, 1
  store i32 %1827, ptr @test_count, align 4, !tbaa !5
  %1828 = load ptr, ptr %51, align 8, !tbaa !9
  %1829 = call i32 @s2n_prf(ptr noundef %1828, ptr noundef nonnull %8, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %54) #12
  %1830 = icmp eq i32 %1829, -1
  br i1 %1830, label %1831, label %1853

1831:                                             ; preds = %1825
  %1832 = load i32, ptr %450, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = call i32 @s2n_print_stacktrace(ptr noundef %1833) #12
  %1835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1836 = trunc nuw i8 %1835 to i1
  br i1 %1836, label %1837, label %1841

1837:                                             ; preds = %1831
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @fileno(ptr noundef %1838) #12
  %1840 = call i32 @isatty(i32 noundef %1839) #12
  %.not697 = icmp eq i32 %1840, 0
  br i1 %.not697, label %1841, label %1842

1841:                                             ; preds = %1837, %1831
  br label %1842

1842:                                             ; preds = %1837, %1841
  %.str.25.sink1287 = phi ptr [ @.str.25, %1841 ], [ @.str.22, %1837 ]
  store i32 %1832, ptr %450, align 4, !tbaa !5
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = load i32, ptr %396, align 4, !tbaa !5
  %1846 = call ptr @s2n_strerror(i32 noundef %1845, ptr noundef nonnull @.str.24) #12
  %1847 = load i32, ptr %396, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror_debug(i32 noundef %1847, ptr noundef nonnull @.str.24) #12
  %1849 = load i32, ptr %450, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #12
  %1851 = load i32, ptr %450, align 4, !tbaa !5
  %1852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1843, ptr noundef nonnull %.str.25.sink1287, i32 noundef %1844, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.21, i32 noundef 257, ptr noundef %1846, ptr noundef %1848, ptr noundef %1850, i32 noundef %1851) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1853:                                             ; preds = %1825
  %1854 = load i32, ptr @test_count, align 4, !tbaa !5
  %1855 = add nsw i32 %1854, 1
  store i32 %1855, ptr @test_count, align 4, !tbaa !5
  %1856 = load ptr, ptr %51, align 8, !tbaa !9
  %1857 = getelementptr inbounds i8, ptr %1856, i64 1752
  %1858 = load ptr, ptr %1857, align 8, !tbaa !50
  %1859 = getelementptr inbounds i8, ptr %1858, i64 432
  %bcmp577 = call i32 @bcmp(ptr noundef nonnull dereferenceable(64) %1859, ptr noundef nonnull dereferenceable(64) %52, i64 64)
  %1860 = icmp eq i32 %bcmp577, 0
  br i1 %1860, label %.thread737, label %1862

.thread737:                                       ; preds = %1853
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %54) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %53) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %52) #12
  %1861 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %51) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #12
  br label %1886

1862:                                             ; preds = %1853
  %1863 = load i32, ptr %450, align 4, !tbaa !5
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @s2n_print_stacktrace(ptr noundef %1864) #12
  %1866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1867 = trunc nuw i8 %1866 to i1
  br i1 %1867, label %1868, label %1872

1868:                                             ; preds = %1862
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = call i32 @fileno(ptr noundef %1869) #12
  %1871 = call i32 @isatty(i32 noundef %1870) #12
  %.not578 = icmp eq i32 %1871, 0
  br i1 %.not578, label %1872, label %1873

1872:                                             ; preds = %1868, %1862
  br label %1873

1873:                                             ; preds = %1868, %1872
  %.str.25.sink1296 = phi ptr [ @.str.25, %1872 ], [ @.str.22, %1868 ]
  store i32 %1863, ptr %450, align 4, !tbaa !5
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1875 = load i32, ptr @test_count, align 4, !tbaa !5
  %1876 = load i32, ptr %396, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror(i32 noundef %1876, ptr noundef nonnull @.str.24) #12
  %1878 = load i32, ptr %396, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror_debug(i32 noundef %1878, ptr noundef nonnull @.str.24) #12
  %1880 = load i32, ptr %450, align 4, !tbaa !5
  %1881 = call ptr @strerror(i32 noundef %1880) #12
  %1882 = load i32, ptr %450, align 4, !tbaa !5
  %1883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1874, ptr noundef nonnull %.str.25.sink1296, i32 noundef %1875, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.21, i32 noundef 260, ptr noundef %1877, ptr noundef %1879, ptr noundef %1881, i32 noundef %1882) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.thread730:                                       ; preds = %1788, %1689, %1408, %1307, %1208, %1109, %1010, %911
  %.26.ph = phi i32 [ -1, %911 ], [ %.4, %1010 ], [ %.7, %1109 ], [ %.10, %1208 ], [ %.13, %1307 ], [ %.16, %1408 ], [ %.17, %1689 ], [ -1, %1788 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #12
  br label %4467

1884:                                             ; preds = %1822
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %54) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %53) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %52) #12
  %1885 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %51) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #12
  br label %4467

1886:                                             ; preds = %.thread737, %.thread733
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #12
  %1887 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1887, ptr %55, align 8, !tbaa !9
  %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 = icmp eq ptr %1887, null
  br i1 %1890, label %1891, label %1913

1891:                                             ; preds = %1886
  %1892 = load i32, ptr %450, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = call i32 @s2n_print_stacktrace(ptr noundef %1893) #12
  %1895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1896 = trunc nuw i8 %1895 to i1
  br i1 %1896, label %1897, label %1901

1897:                                             ; preds = %1891
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = call i32 @fileno(ptr noundef %1898) #12
  %1900 = call i32 @isatty(i32 noundef %1899) #12
  %.not696 = icmp eq i32 %1900, 0
  br i1 %.not696, label %1901, label %1902

1901:                                             ; preds = %1897, %1891
  br label %1902

1902:                                             ; preds = %1897, %1901
  %.str.25.sink1305 = phi ptr [ @.str.25, %1901 ], [ @.str.22, %1897 ]
  store i32 %1892, ptr %450, align 4, !tbaa !5
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = load i32, ptr @test_count, align 4, !tbaa !5
  %1905 = load i32, ptr %396, align 4, !tbaa !5
  %1906 = call ptr @s2n_strerror(i32 noundef %1905, ptr noundef nonnull @.str.24) #12
  %1907 = load i32, ptr %396, align 4, !tbaa !5
  %1908 = call ptr @s2n_strerror_debug(i32 noundef %1907, ptr noundef nonnull @.str.24) #12
  %1909 = load i32, ptr %450, align 4, !tbaa !5
  %1910 = call ptr @strerror(i32 noundef %1909) #12
  %1911 = load i32, ptr %450, align 4, !tbaa !5
  %1912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1903, ptr noundef nonnull %.str.25.sink1305, i32 noundef %1904, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.21, i32 noundef 268, ptr noundef %1906, ptr noundef %1908, ptr noundef %1910, i32 noundef %1911) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1913:                                             ; preds = %1886
  %1914 = getelementptr inbounds i8, ptr %1887, i64 220
  store i8 32, ptr %1914, align 4, !tbaa !15
  %1915 = getelementptr inbounds i8, ptr %3, i64 8
  %1916 = load i32, ptr %1915, align 8, !tbaa !42
  %.not579 = icmp eq i32 %1916, 0
  br i1 %.not579, label %1921, label %1917

1917:                                             ; preds = %1913
  %1918 = getelementptr inbounds i8, ptr %1887, i64 240
  %1919 = load ptr, ptr %3, align 8, !tbaa !43
  %1920 = zext i32 %1916 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %1918, ptr align 1 %1919, i64 %1920, i1 false)
  br label %1921

1921:                                             ; preds = %1917, %1913
  %1922 = getelementptr inbounds i8, ptr %4, i64 8
  %1923 = load i32, ptr %1922, align 8, !tbaa !42
  %.not580 = icmp eq i32 %1923, 0
  br i1 %.not580, label %1928, label %1924

1924:                                             ; preds = %1921
  %1925 = getelementptr inbounds i8, ptr %1887, i64 1618
  %1926 = load ptr, ptr %4, align 8, !tbaa !43
  %1927 = zext i32 %1923 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %1925, ptr align 1 %1926, i64 %1927, i1 false)
  br label %1928

1928:                                             ; preds = %1924, %1921
  %1929 = getelementptr inbounds i8, ptr %5, i64 8
  %1930 = load i32, ptr %1929, align 8, !tbaa !42
  %.not581 = icmp eq i32 %1930, 0
  br i1 %.not581, label %1935, label %1931

1931:                                             ; preds = %1928
  %1932 = getelementptr inbounds i8, ptr %1887, i64 1650
  %1933 = load ptr, ptr %5, align 8, !tbaa !43
  %1934 = zext i32 %1930 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %1932, ptr align 1 %1933, i64 %1934, i1 false)
  br label %1935

1935:                                             ; preds = %1931, %1928
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %56) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %56, i8 0, i64 24, i1 false)
  %1936 = add nsw i32 %1888, 2
  store i32 %1936, ptr @test_count, align 4, !tbaa !5
  %1937 = getelementptr inbounds i8, ptr %1887, i64 240
  %1938 = call i32 @s2n_blob_init(ptr noundef nonnull %56, ptr noundef nonnull %1937, i32 noundef 48) #12
  %1939 = icmp eq i32 %1938, -1
  br i1 %1939, label %1940, label %1962

1940:                                             ; preds = %1935
  %1941 = load i32, ptr %450, align 4, !tbaa !5
  %1942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1943 = call i32 @s2n_print_stacktrace(ptr noundef %1942) #12
  %1944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1945 = trunc nuw i8 %1944 to i1
  br i1 %1945, label %1946, label %1950

1946:                                             ; preds = %1940
  %1947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1948 = call i32 @fileno(ptr noundef %1947) #12
  %1949 = call i32 @isatty(i32 noundef %1948) #12
  %.not695 = icmp eq i32 %1949, 0
  br i1 %.not695, label %1950, label %1951

1950:                                             ; preds = %1946, %1940
  br label %1951

1951:                                             ; preds = %1946, %1950
  %.str.25.sink1314 = phi ptr [ @.str.25, %1950 ], [ @.str.22, %1946 ]
  store i32 %1941, ptr %450, align 4, !tbaa !5
  %1952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = load i32, ptr %396, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror(i32 noundef %1954, ptr noundef nonnull @.str.24) #12
  %1956 = load i32, ptr %396, align 4, !tbaa !5
  %1957 = call ptr @s2n_strerror_debug(i32 noundef %1956, ptr noundef nonnull @.str.24) #12
  %1958 = load i32, ptr %450, align 4, !tbaa !5
  %1959 = call ptr @strerror(i32 noundef %1958) #12
  %1960 = load i32, ptr %450, align 4, !tbaa !5
  %1961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1952, ptr noundef nonnull %.str.25.sink1314, i32 noundef %1953, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.21, i32 noundef 278, ptr noundef %1955, ptr noundef %1957, ptr noundef %1959, i32 noundef %1960) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1962:                                             ; preds = %1935
  %1963 = load i32, ptr @test_count, align 4, !tbaa !5
  %1964 = add nsw i32 %1963, 1
  store i32 %1964, ptr @test_count, align 4, !tbaa !5
  %1965 = load ptr, ptr %55, align 8, !tbaa !9
  %1966 = call i32 @s2n_prf_tls_master_secret(ptr noundef %1965, ptr noundef nonnull %56) #12
  %1967 = icmp eq i32 %1966, -1
  br i1 %1967, label %1968, label %1990

1968:                                             ; preds = %1962
  %1969 = load i32, ptr %450, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = call i32 @s2n_print_stacktrace(ptr noundef %1970) #12
  %1972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1973 = trunc nuw i8 %1972 to i1
  br i1 %1973, label %1974, label %1978

1974:                                             ; preds = %1968
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = call i32 @fileno(ptr noundef %1975) #12
  %1977 = call i32 @isatty(i32 noundef %1976) #12
  %.not694 = icmp eq i32 %1977, 0
  br i1 %.not694, label %1978, label %1979

1978:                                             ; preds = %1974, %1968
  br label %1979

1979:                                             ; preds = %1974, %1978
  %.str.25.sink1323 = phi ptr [ @.str.25, %1978 ], [ @.str.22, %1974 ]
  store i32 %1969, ptr %450, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = load i32, ptr %396, align 4, !tbaa !5
  %1983 = call ptr @s2n_strerror(i32 noundef %1982, ptr noundef nonnull @.str.24) #12
  %1984 = load i32, ptr %396, align 4, !tbaa !5
  %1985 = call ptr @s2n_strerror_debug(i32 noundef %1984, ptr noundef nonnull @.str.24) #12
  %1986 = load i32, ptr %450, align 4, !tbaa !5
  %1987 = call ptr @strerror(i32 noundef %1986) #12
  %1988 = load i32, ptr %450, align 4, !tbaa !5
  %1989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1980, ptr noundef nonnull %.str.25.sink1323, i32 noundef %1981, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.21, i32 noundef 279, ptr noundef %1983, ptr noundef %1985, ptr noundef %1987, i32 noundef %1988) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1990:                                             ; preds = %1962
  %1991 = load i32, ptr @test_count, align 4, !tbaa !5
  %1992 = add nsw i32 %1991, 1
  store i32 %1992, ptr @test_count, align 4, !tbaa !5
  %1993 = load ptr, ptr %55, align 8, !tbaa !9
  %1994 = getelementptr inbounds i8, ptr %1993, i64 288
  %1995 = load ptr, ptr %6, align 8, !tbaa !43
  %1996 = getelementptr inbounds i8, ptr %6, i64 8
  %1997 = load i32, ptr %1996, align 8, !tbaa !42
  %1998 = zext i32 %1997 to i64
  %bcmp582 = call i32 @bcmp(ptr nonnull %1994, ptr %1995, i64 %1998)
  %1999 = icmp eq i32 %bcmp582, 0
  br i1 %1999, label %2022, label %2000

2000:                                             ; preds = %1990
  %2001 = load i32, ptr %450, align 4, !tbaa !5
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = call i32 @s2n_print_stacktrace(ptr noundef %2002) #12
  %2004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2005 = trunc nuw i8 %2004 to i1
  br i1 %2005, label %2006, label %2010

2006:                                             ; preds = %2000
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = call i32 @fileno(ptr noundef %2007) #12
  %2009 = call i32 @isatty(i32 noundef %2008) #12
  %.not583 = icmp eq i32 %2009, 0
  br i1 %.not583, label %2010, label %2011

2010:                                             ; preds = %2006, %2000
  br label %2011

2011:                                             ; preds = %2006, %2010
  %.str.25.sink1332 = phi ptr [ @.str.25, %2010 ], [ @.str.22, %2006 ]
  store i32 %2001, ptr %450, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = load i32, ptr @test_count, align 4, !tbaa !5
  %2014 = load i32, ptr %396, align 4, !tbaa !5
  %2015 = call ptr @s2n_strerror(i32 noundef %2014, ptr noundef nonnull @.str.24) #12
  %2016 = load i32, ptr %396, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror_debug(i32 noundef %2016, ptr noundef nonnull @.str.24) #12
  %2018 = load i32, ptr %450, align 4, !tbaa !5
  %2019 = call ptr @strerror(i32 noundef %2018) #12
  %2020 = load i32, ptr %450, align 4, !tbaa !5
  %2021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2012, ptr noundef nonnull %.str.25.sink1332, i32 noundef %2013, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.21, i32 noundef 280, ptr noundef %2015, ptr noundef %2017, ptr noundef %2019, i32 noundef %2020) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2022:                                             ; preds = %1990
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %56) #12
  %2023 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %55) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %57) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %57, i8 0, i64 24, i1 false)
  %2024 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %57, ptr noundef nonnull @.str.85) #12
  %2025 = call zeroext i1 @s2n_result_is_ok(i32 %2024)
  br i1 %2025, label %2027, label %.thread739

.thread739:                                       ; preds = %2022
  %2026 = call i32 @s2n_free(ptr noundef nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #12
  br label %4467

2027:                                             ; preds = %2022
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %58) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %58, i8 0, i64 24, i1 false)
  %2028 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %58, ptr noundef nonnull @.str.86) #12
  %2029 = call zeroext i1 @s2n_result_is_ok(i32 %2028)
  br i1 %2029, label %2030, label %2123

2030:                                             ; preds = %2027
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %59) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %59, i8 0, i64 24, i1 false)
  %2031 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %59, ptr noundef nonnull @.str.87) #12
  %2032 = call zeroext i1 @s2n_result_is_ok(i32 %2031)
  br i1 %2032, label %2033, label %2121

2033:                                             ; preds = %2030
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #12
  %2034 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2034, ptr %60, align 8, !tbaa !9
  %2035 = load i32, ptr @test_count, align 4, !tbaa !5
  %2036 = add nsw i32 %2035, 1
  store i32 %2036, ptr @test_count, align 4, !tbaa !5
  %2037 = icmp eq ptr %2034, null
  br i1 %2037, label %2038, label %2060

2038:                                             ; preds = %2033
  %2039 = load i32, ptr %450, align 4, !tbaa !5
  %2040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2041 = call i32 @s2n_print_stacktrace(ptr noundef %2040) #12
  %2042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2043 = trunc nuw i8 %2042 to i1
  br i1 %2043, label %2044, label %2048

2044:                                             ; preds = %2038
  %2045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2046 = call i32 @fileno(ptr noundef %2045) #12
  %2047 = call i32 @isatty(i32 noundef %2046) #12
  %.not693 = icmp eq i32 %2047, 0
  br i1 %.not693, label %2048, label %2049

2048:                                             ; preds = %2044, %2038
  br label %2049

2049:                                             ; preds = %2044, %2048
  %.str.25.sink1341 = phi ptr [ @.str.25, %2048 ], [ @.str.22, %2044 ]
  store i32 %2039, ptr %450, align 4, !tbaa !5
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = load i32, ptr @test_count, align 4, !tbaa !5
  %2052 = load i32, ptr %396, align 4, !tbaa !5
  %2053 = call ptr @s2n_strerror(i32 noundef %2052, ptr noundef nonnull @.str.24) #12
  %2054 = load i32, ptr %396, align 4, !tbaa !5
  %2055 = call ptr @s2n_strerror_debug(i32 noundef %2054, ptr noundef nonnull @.str.24) #12
  %2056 = load i32, ptr %450, align 4, !tbaa !5
  %2057 = call ptr @strerror(i32 noundef %2056) #12
  %2058 = load i32, ptr %450, align 4, !tbaa !5
  %2059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2050, ptr noundef nonnull %.str.25.sink1341, i32 noundef %2051, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.21, i32 noundef 302, ptr noundef %2053, ptr noundef %2055, ptr noundef %2057, i32 noundef %2058) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2060:                                             ; preds = %2033
  %2061 = getelementptr inbounds i8, ptr %2034, i64 220
  store i8 33, ptr %2061, align 4, !tbaa !15
  %2062 = getelementptr inbounds i8, ptr %2034, i64 232
  %2063 = load ptr, ptr %2062, align 8, !tbaa !44
  store ptr @s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384, ptr %2063, align 8, !tbaa !45
  %2064 = add nsw i32 %2035, 2
  store i32 %2064, ptr @test_count, align 4, !tbaa !5
  %2065 = load ptr, ptr %60, align 8, !tbaa !9
  %2066 = call i32 @s2n_prf_tls_extended_master_secret(ptr noundef %2065, ptr noundef nonnull %57, ptr noundef nonnull %58, ptr noundef null) #12
  %2067 = call zeroext i1 @s2n_result_is_ok(i32 %2066)
  br i1 %2067, label %2090, label %2068

2068:                                             ; preds = %2060
  %2069 = load i32, ptr %450, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = call i32 @s2n_print_stacktrace(ptr noundef %2070) #12
  %2072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2073 = trunc nuw i8 %2072 to i1
  br i1 %2073, label %2074, label %2078

2074:                                             ; preds = %2068
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = call i32 @fileno(ptr noundef %2075) #12
  %2077 = call i32 @isatty(i32 noundef %2076) #12
  %.not584 = icmp eq i32 %2077, 0
  br i1 %.not584, label %2078, label %2079

2078:                                             ; preds = %2074, %2068
  br label %2079

2079:                                             ; preds = %2074, %2078
  %.str.25.sink1350 = phi ptr [ @.str.25, %2078 ], [ @.str.22, %2074 ]
  store i32 %2069, ptr %450, align 4, !tbaa !5
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = load i32, ptr %396, align 4, !tbaa !5
  %2083 = call ptr @s2n_strerror(i32 noundef %2082, ptr noundef nonnull @.str.24) #12
  %2084 = load i32, ptr %396, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror_debug(i32 noundef %2084, ptr noundef nonnull @.str.24) #12
  %2086 = load i32, ptr %450, align 4, !tbaa !5
  %2087 = call ptr @strerror(i32 noundef %2086) #12
  %2088 = load i32, ptr %450, align 4, !tbaa !5
  %2089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2080, ptr noundef nonnull %.str.25.sink1350, i32 noundef %2081, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.21, i32 noundef 316, ptr noundef %2083, ptr noundef %2085, ptr noundef %2087, i32 noundef %2088) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2090:                                             ; preds = %2060
  %2091 = load i32, ptr @test_count, align 4, !tbaa !5
  %2092 = add nsw i32 %2091, 1
  store i32 %2092, ptr @test_count, align 4, !tbaa !5
  %2093 = load ptr, ptr %59, align 8, !tbaa !43
  %2094 = load ptr, ptr %60, align 8, !tbaa !9
  %2095 = getelementptr inbounds i8, ptr %2094, i64 288
  %bcmp585 = call i32 @bcmp(ptr noundef nonnull dereferenceable(48) %2093, ptr noundef nonnull dereferenceable(48) %2095, i64 48)
  %2096 = icmp eq i32 %bcmp585, 0
  br i1 %2096, label %2119, label %2097

2097:                                             ; preds = %2090
  %2098 = load i32, ptr %450, align 4, !tbaa !5
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = call i32 @s2n_print_stacktrace(ptr noundef %2099) #12
  %2101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2102 = trunc nuw i8 %2101 to i1
  br i1 %2102, label %2103, label %2107

2103:                                             ; preds = %2097
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = call i32 @fileno(ptr noundef %2104) #12
  %2106 = call i32 @isatty(i32 noundef %2105) #12
  %.not586 = icmp eq i32 %2106, 0
  br i1 %.not586, label %2107, label %2108

2107:                                             ; preds = %2103, %2097
  br label %2108

2108:                                             ; preds = %2103, %2107
  %.str.25.sink1359 = phi ptr [ @.str.25, %2107 ], [ @.str.22, %2103 ]
  store i32 %2098, ptr %450, align 4, !tbaa !5
  %2109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2110 = load i32, ptr @test_count, align 4, !tbaa !5
  %2111 = load i32, ptr %396, align 4, !tbaa !5
  %2112 = call ptr @s2n_strerror(i32 noundef %2111, ptr noundef nonnull @.str.24) #12
  %2113 = load i32, ptr %396, align 4, !tbaa !5
  %2114 = call ptr @s2n_strerror_debug(i32 noundef %2113, ptr noundef nonnull @.str.24) #12
  %2115 = load i32, ptr %450, align 4, !tbaa !5
  %2116 = call ptr @strerror(i32 noundef %2115) #12
  %2117 = load i32, ptr %450, align 4, !tbaa !5
  %2118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2109, ptr noundef nonnull %.str.25.sink1359, i32 noundef %2110, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.21, i32 noundef 317, ptr noundef %2112, ptr noundef %2114, ptr noundef %2116, i32 noundef %2117) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2119:                                             ; preds = %2090
  %2120 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %60) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #12
  br label %2121

2121:                                             ; preds = %2030, %2119
  %.24495 = phi i32 [ 0, %2119 ], [ 1, %2030 ]
  %.27 = phi i32 [ %.19, %2119 ], [ -1, %2030 ]
  %2122 = call i32 @s2n_free(ptr noundef nonnull %59) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %59) #12
  br label %2123

2123:                                             ; preds = %2121, %2027
  %.25496 = phi i32 [ %.24495, %2121 ], [ 1, %2027 ]
  %.28 = phi i32 [ %.27, %2121 ], [ -1, %2027 ]
  %2124 = call i32 @s2n_free(ptr noundef nonnull %58) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %58) #12
  %2125 = call i32 @s2n_free(ptr noundef nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %57) #12
  %cond2 = icmp eq i32 %.25496, 0
  br i1 %cond2, label %2126, label %4467

2126:                                             ; preds = %2123
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #12
  %2127 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2127, ptr %61, align 8, !tbaa !9
  %2128 = load i32, ptr @test_count, align 4, !tbaa !5
  %2129 = add nsw i32 %2128, 1
  store i32 %2129, ptr @test_count, align 4, !tbaa !5
  %2130 = icmp eq ptr %2127, null
  br i1 %2130, label %2131, label %2153

2131:                                             ; preds = %2126
  %2132 = load i32, ptr %450, align 4, !tbaa !5
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = call i32 @s2n_print_stacktrace(ptr noundef %2133) #12
  %2135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2136 = trunc nuw i8 %2135 to i1
  br i1 %2136, label %2137, label %2141

2137:                                             ; preds = %2131
  %2138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2139 = call i32 @fileno(ptr noundef %2138) #12
  %2140 = call i32 @isatty(i32 noundef %2139) #12
  %.not692 = icmp eq i32 %2140, 0
  br i1 %.not692, label %2141, label %2142

2141:                                             ; preds = %2137, %2131
  br label %2142

2142:                                             ; preds = %2137, %2141
  %.str.25.sink1368 = phi ptr [ @.str.25, %2141 ], [ @.str.22, %2137 ]
  store i32 %2132, ptr %450, align 4, !tbaa !5
  %2143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2144 = load i32, ptr @test_count, align 4, !tbaa !5
  %2145 = load i32, ptr %396, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror(i32 noundef %2145, ptr noundef nonnull @.str.24) #12
  %2147 = load i32, ptr %396, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror_debug(i32 noundef %2147, ptr noundef nonnull @.str.24) #12
  %2149 = load i32, ptr %450, align 4, !tbaa !5
  %2150 = call ptr @strerror(i32 noundef %2149) #12
  %2151 = load i32, ptr %450, align 4, !tbaa !5
  %2152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2143, ptr noundef nonnull %.str.25.sink1368, i32 noundef %2144, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.21, i32 noundef 324, ptr noundef %2146, ptr noundef %2148, ptr noundef %2150, i32 noundef %2151) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2153:                                             ; preds = %2126
  %2154 = getelementptr inbounds i8, ptr %2127, i64 232
  %2155 = load ptr, ptr %2154, align 8, !tbaa !44
  store ptr @s2n_ecdhe_ecdsa_with_aes_256_gcm_sha384, ptr %2155, align 8, !tbaa !45
  %2156 = load i32, ptr %1915, align 8, !tbaa !42
  %.not587 = icmp eq i32 %2156, 0
  %.pre.pre.pre = load ptr, ptr %61, align 8, !tbaa !9
  br i1 %.not587, label %2161, label %2157

2157:                                             ; preds = %2153
  %2158 = getelementptr inbounds i8, ptr %.pre.pre.pre, i64 240
  %2159 = load ptr, ptr %3, align 8, !tbaa !43
  %2160 = zext i32 %2156 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %2158, ptr align 1 %2159, i64 %2160, i1 false)
  br label %2161

2161:                                             ; preds = %2157, %2153
  %2162 = load i32, ptr %1922, align 8, !tbaa !42
  %.not588 = icmp eq i32 %2162, 0
  br i1 %.not588, label %2167, label %2163

2163:                                             ; preds = %2161
  %2164 = getelementptr inbounds i8, ptr %.pre.pre.pre, i64 1618
  %2165 = load ptr, ptr %4, align 8, !tbaa !43
  %2166 = zext i32 %2162 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %2164, ptr align 1 %2165, i64 %2166, i1 false)
  br label %2167

2167:                                             ; preds = %2163, %2161
  %2168 = load i32, ptr %1929, align 8, !tbaa !42
  %.not589 = icmp eq i32 %2168, 0
  br i1 %.not589, label %2173, label %2169

2169:                                             ; preds = %2167
  %2170 = getelementptr inbounds i8, ptr %.pre.pre.pre, i64 1650
  %2171 = load ptr, ptr %5, align 8, !tbaa !43
  %2172 = zext i32 %2168 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %2170, ptr align 1 %2171, i64 %2172, i1 false)
  br label %2173

2173:                                             ; preds = %2169, %2167
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %62) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %62, i8 0, i64 24, i1 false)
  %2174 = add nsw i32 %2128, 2
  store i32 %2174, ptr @test_count, align 4, !tbaa !5
  %2175 = getelementptr inbounds i8, ptr %.pre.pre.pre, i64 240
  %2176 = call i32 @s2n_blob_init(ptr noundef nonnull %62, ptr noundef nonnull %2175, i32 noundef 48) #12
  %2177 = icmp eq i32 %2176, -1
  br i1 %2177, label %2178, label %2200

2178:                                             ; preds = %2173
  %2179 = load i32, ptr %450, align 4, !tbaa !5
  %2180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2181 = call i32 @s2n_print_stacktrace(ptr noundef %2180) #12
  %2182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2183 = trunc nuw i8 %2182 to i1
  br i1 %2183, label %2184, label %2188

2184:                                             ; preds = %2178
  %2185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2186 = call i32 @fileno(ptr noundef %2185) #12
  %2187 = call i32 @isatty(i32 noundef %2186) #12
  %.not691 = icmp eq i32 %2187, 0
  br i1 %.not691, label %2188, label %2189

2188:                                             ; preds = %2184, %2178
  br label %2189

2189:                                             ; preds = %2184, %2188
  %.str.25.sink1377 = phi ptr [ @.str.25, %2188 ], [ @.str.22, %2184 ]
  store i32 %2179, ptr %450, align 4, !tbaa !5
  %2190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2191 = load i32, ptr @test_count, align 4, !tbaa !5
  %2192 = load i32, ptr %396, align 4, !tbaa !5
  %2193 = call ptr @s2n_strerror(i32 noundef %2192, ptr noundef nonnull @.str.24) #12
  %2194 = load i32, ptr %396, align 4, !tbaa !5
  %2195 = call ptr @s2n_strerror_debug(i32 noundef %2194, ptr noundef nonnull @.str.24) #12
  %2196 = load i32, ptr %450, align 4, !tbaa !5
  %2197 = call ptr @strerror(i32 noundef %2196) #12
  %2198 = load i32, ptr %450, align 4, !tbaa !5
  %2199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2190, ptr noundef nonnull %.str.25.sink1377, i32 noundef %2191, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.21, i32 noundef 333, ptr noundef %2193, ptr noundef %2195, ptr noundef %2197, i32 noundef %2198) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2200:                                             ; preds = %2173
  %2201 = load i32, ptr @test_count, align 4, !tbaa !5
  %2202 = add nsw i32 %2201, 1
  store i32 %2202, ptr @test_count, align 4, !tbaa !5
  %2203 = load ptr, ptr %61, align 8, !tbaa !9
  %2204 = call i32 @s2n_prf_calculate_master_secret(ptr noundef %2203, ptr noundef nonnull %62) #12
  %2205 = icmp eq i32 %2204, -1
  br i1 %2205, label %2228, label %2206

2206:                                             ; preds = %2200
  %2207 = load i32, ptr %450, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = call i32 @s2n_print_stacktrace(ptr noundef %2208) #12
  %2210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2211 = trunc nuw i8 %2210 to i1
  br i1 %2211, label %2212, label %2216

2212:                                             ; preds = %2206
  %2213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2214 = call i32 @fileno(ptr noundef %2213) #12
  %2215 = call i32 @isatty(i32 noundef %2214) #12
  %.not590 = icmp eq i32 %2215, 0
  br i1 %.not590, label %2216, label %2217

2216:                                             ; preds = %2212, %2206
  br label %2217

2217:                                             ; preds = %2212, %2216
  %.str.25.sink1386 = phi ptr [ @.str.25, %2216 ], [ @.str.22, %2212 ]
  store i32 %2207, ptr %450, align 4, !tbaa !5
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = load i32, ptr %396, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror(i32 noundef %2220, ptr noundef nonnull @.str.24) #12
  %2222 = load i32, ptr %396, align 4, !tbaa !5
  %2223 = call ptr @s2n_strerror_debug(i32 noundef %2222, ptr noundef nonnull @.str.24) #12
  %2224 = load i32, ptr %450, align 4, !tbaa !5
  %2225 = call ptr @strerror(i32 noundef %2224) #12
  %2226 = load i32, ptr %450, align 4, !tbaa !5
  %2227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2218, ptr noundef nonnull %.str.25.sink1386, i32 noundef %2219, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.21, i32 noundef 336, ptr noundef %2221, ptr noundef %2223, ptr noundef %2225, i32 noundef %2226) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2228:                                             ; preds = %2200
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = add nsw i32 %2229, 1
  store i32 %2230, ptr @test_count, align 4, !tbaa !5
  %2231 = load i32, ptr %396, align 4, !tbaa !5
  %2232 = icmp eq i32 %2231, 402653194
  br i1 %2232, label %2255, label %2233

2233:                                             ; preds = %2228
  %2234 = load i32, ptr %450, align 4, !tbaa !5
  %2235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2236 = call i32 @s2n_print_stacktrace(ptr noundef %2235) #12
  %2237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2238 = trunc nuw i8 %2237 to i1
  br i1 %2238, label %2239, label %2243

2239:                                             ; preds = %2233
  %2240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2241 = call i32 @fileno(ptr noundef %2240) #12
  %2242 = call i32 @isatty(i32 noundef %2241) #12
  %.not591 = icmp eq i32 %2242, 0
  br i1 %.not591, label %2243, label %2244

2243:                                             ; preds = %2239, %2233
  br label %2244

2244:                                             ; preds = %2239, %2243
  %.str.25.sink1395 = phi ptr [ @.str.25, %2243 ], [ @.str.22, %2239 ]
  store i32 %2234, ptr %450, align 4, !tbaa !5
  %2245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2246 = load i32, ptr @test_count, align 4, !tbaa !5
  %2247 = load i32, ptr %396, align 4, !tbaa !5
  %2248 = call ptr @s2n_strerror(i32 noundef %2247, ptr noundef nonnull @.str.24) #12
  %2249 = load i32, ptr %396, align 4, !tbaa !5
  %2250 = call ptr @s2n_strerror_debug(i32 noundef %2249, ptr noundef nonnull @.str.24) #12
  %2251 = load i32, ptr %450, align 4, !tbaa !5
  %2252 = call ptr @strerror(i32 noundef %2251) #12
  %2253 = load i32, ptr %450, align 4, !tbaa !5
  %2254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2245, ptr noundef nonnull %.str.25.sink1395, i32 noundef %2246, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.21, i32 noundef 336, ptr noundef %2248, ptr noundef %2250, ptr noundef %2252, i32 noundef %2253) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2255:                                             ; preds = %2228
  %2256 = add nsw i32 %2229, 2
  store i32 %2256, ptr @test_count, align 4, !tbaa !5
  %2257 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.24) #12
  %2258 = icmp eq ptr %2257, null
  br i1 %2258, label %2259, label %2281

2259:                                             ; preds = %2255
  %2260 = load i32, ptr %450, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = call i32 @s2n_print_stacktrace(ptr noundef %2261) #12
  %2263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2264 = trunc nuw i8 %2263 to i1
  br i1 %2264, label %2265, label %2269

2265:                                             ; preds = %2259
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = call i32 @fileno(ptr noundef %2266) #12
  %2268 = call i32 @isatty(i32 noundef %2267) #12
  %.not690 = icmp eq i32 %2268, 0
  br i1 %.not690, label %2269, label %2270

2269:                                             ; preds = %2265, %2259
  br label %2270

2270:                                             ; preds = %2265, %2269
  %.str.25.sink1404 = phi ptr [ @.str.25, %2269 ], [ @.str.22, %2265 ]
  store i32 %2260, ptr %450, align 4, !tbaa !5
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = load i32, ptr @test_count, align 4, !tbaa !5
  %2273 = load i32, ptr %396, align 4, !tbaa !5
  %2274 = call ptr @s2n_strerror(i32 noundef %2273, ptr noundef nonnull @.str.24) #12
  %2275 = load i32, ptr %396, align 4, !tbaa !5
  %2276 = call ptr @s2n_strerror_debug(i32 noundef %2275, ptr noundef nonnull @.str.24) #12
  %2277 = load i32, ptr %450, align 4, !tbaa !5
  %2278 = call ptr @strerror(i32 noundef %2277) #12
  %2279 = load i32, ptr %450, align 4, !tbaa !5
  %2280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2271, ptr noundef nonnull %.str.25.sink1404, i32 noundef %2272, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 336, ptr noundef %2274, ptr noundef %2276, ptr noundef %2278, i32 noundef %2279) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2281:                                             ; preds = %2255
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %2282 = load ptr, ptr %61, align 8, !tbaa !9
  %2283 = getelementptr inbounds i8, ptr %2282, i64 2172
  store i32 3, ptr %2283, align 4, !tbaa !51
  %2284 = getelementptr inbounds i8, ptr %2282, i64 2204
  %2285 = load i32, ptr %2284, align 4, !tbaa !52
  %2286 = icmp eq i32 %2285, 2
  %2287 = select i1 %2286, ptr @tls13_handshakes, ptr @handshakes
  %2288 = getelementptr inbounds i8, ptr %2282, i64 2176
  %.promoted = load i32, ptr %2288, align 8, !tbaa !53
  %2289 = sext i32 %.promoted to i64
  %2290 = getelementptr inbounds [32 x i32], ptr %2287, i64 3, i64 %2289
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %.not592743 = icmp eq i32 %2291, 9
  br i1 %.not592743, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %2281, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %2289, %2281 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %2292 = trunc nsw i64 %indvars.iv.next to i32
  store i32 %2292, ptr %2288, align 8, !tbaa !53
  %2293 = getelementptr inbounds [32 x i32], ptr %2287, i64 3, i64 %indvars.iv.next
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %.not592 = icmp eq i32 %2294, 9
  br i1 %.not592, label %._crit_edge, label %.lr.ph, !llvm.loop !54

._crit_edge:                                      ; preds = %.lr.ph, %2281
  %2295 = load i32, ptr @test_count, align 4, !tbaa !5
  %2296 = add nsw i32 %2295, 1
  store i32 %2296, ptr @test_count, align 4, !tbaa !5
  %2297 = call i32 @s2n_prf_calculate_master_secret(ptr noundef nonnull %2282, ptr noundef nonnull %62) #12
  %2298 = icmp eq i32 %2297, -1
  br i1 %2298, label %2299, label %2321

2299:                                             ; preds = %._crit_edge
  %2300 = load i32, ptr %450, align 4, !tbaa !5
  %2301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2302 = call i32 @s2n_print_stacktrace(ptr noundef %2301) #12
  %2303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2304 = trunc nuw i8 %2303 to i1
  br i1 %2304, label %2305, label %2309

2305:                                             ; preds = %2299
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = call i32 @fileno(ptr noundef %2306) #12
  %2308 = call i32 @isatty(i32 noundef %2307) #12
  %.not689 = icmp eq i32 %2308, 0
  br i1 %.not689, label %2309, label %2310

2309:                                             ; preds = %2305, %2299
  br label %2310

2310:                                             ; preds = %2305, %2309
  %.str.25.sink1413 = phi ptr [ @.str.25, %2309 ], [ @.str.22, %2305 ]
  store i32 %2300, ptr %450, align 4, !tbaa !5
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2312 = load i32, ptr @test_count, align 4, !tbaa !5
  %2313 = load i32, ptr %396, align 4, !tbaa !5
  %2314 = call ptr @s2n_strerror(i32 noundef %2313, ptr noundef nonnull @.str.24) #12
  %2315 = load i32, ptr %396, align 4, !tbaa !5
  %2316 = call ptr @s2n_strerror_debug(i32 noundef %2315, ptr noundef nonnull @.str.24) #12
  %2317 = load i32, ptr %450, align 4, !tbaa !5
  %2318 = call ptr @strerror(i32 noundef %2317) #12
  %2319 = load i32, ptr %450, align 4, !tbaa !5
  %2320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2311, ptr noundef nonnull %.str.25.sink1413, i32 noundef %2312, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.21, i32 noundef 345, ptr noundef %2314, ptr noundef %2316, ptr noundef %2318, i32 noundef %2319) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2321:                                             ; preds = %._crit_edge
  %2322 = load i32, ptr @test_count, align 4, !tbaa !5
  %2323 = add nsw i32 %2322, 1
  store i32 %2323, ptr @test_count, align 4, !tbaa !5
  %2324 = load ptr, ptr %61, align 8, !tbaa !9
  %2325 = getelementptr inbounds i8, ptr %2324, i64 288
  %2326 = load ptr, ptr %6, align 8, !tbaa !43
  %2327 = load i32, ptr %1996, align 8, !tbaa !42
  %2328 = zext i32 %2327 to i64
  %bcmp593 = call i32 @bcmp(ptr nonnull %2325, ptr %2326, i64 %2328)
  %2329 = icmp eq i32 %bcmp593, 0
  br i1 %2329, label %2352, label %2330

2330:                                             ; preds = %2321
  %2331 = load i32, ptr %450, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = call i32 @s2n_print_stacktrace(ptr noundef %2332) #12
  %2334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2335 = trunc nuw i8 %2334 to i1
  br i1 %2335, label %2336, label %2340

2336:                                             ; preds = %2330
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = call i32 @fileno(ptr noundef %2337) #12
  %2339 = call i32 @isatty(i32 noundef %2338) #12
  %.not594 = icmp eq i32 %2339, 0
  br i1 %.not594, label %2340, label %2341

2340:                                             ; preds = %2336, %2330
  br label %2341

2341:                                             ; preds = %2336, %2340
  %.str.25.sink1422 = phi ptr [ @.str.25, %2340 ], [ @.str.22, %2336 ]
  store i32 %2331, ptr %450, align 4, !tbaa !5
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = load i32, ptr @test_count, align 4, !tbaa !5
  %2344 = load i32, ptr %396, align 4, !tbaa !5
  %2345 = call ptr @s2n_strerror(i32 noundef %2344, ptr noundef nonnull @.str.24) #12
  %2346 = load i32, ptr %396, align 4, !tbaa !5
  %2347 = call ptr @s2n_strerror_debug(i32 noundef %2346, ptr noundef nonnull @.str.24) #12
  %2348 = load i32, ptr %450, align 4, !tbaa !5
  %2349 = call ptr @strerror(i32 noundef %2348) #12
  %2350 = load i32, ptr %450, align 4, !tbaa !5
  %2351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2342, ptr noundef nonnull %.str.25.sink1422, i32 noundef %2343, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.21, i32 noundef 346, ptr noundef %2345, ptr noundef %2347, ptr noundef %2349, i32 noundef %2350) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2352:                                             ; preds = %2321
  %2353 = add nsw i32 %2322, 2
  store i32 %2353, ptr @test_count, align 4, !tbaa !5
  %2354 = call i32 @s2n_prf_calculate_master_secret(ptr noundef %2324, ptr noundef nonnull %62) #12
  %2355 = icmp eq i32 %2354, -1
  br i1 %2355, label %2356, label %2378

2356:                                             ; preds = %2352
  %2357 = load i32, ptr %450, align 4, !tbaa !5
  %2358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2359 = call i32 @s2n_print_stacktrace(ptr noundef %2358) #12
  %2360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2361 = trunc nuw i8 %2360 to i1
  br i1 %2361, label %2362, label %2366

2362:                                             ; preds = %2356
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = call i32 @fileno(ptr noundef %2363) #12
  %2365 = call i32 @isatty(i32 noundef %2364) #12
  %.not688 = icmp eq i32 %2365, 0
  br i1 %.not688, label %2366, label %2367

2366:                                             ; preds = %2362, %2356
  br label %2367

2367:                                             ; preds = %2362, %2366
  %.str.25.sink1431 = phi ptr [ @.str.25, %2366 ], [ @.str.22, %2362 ]
  store i32 %2357, ptr %450, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = load i32, ptr %396, align 4, !tbaa !5
  %2371 = call ptr @s2n_strerror(i32 noundef %2370, ptr noundef nonnull @.str.24) #12
  %2372 = load i32, ptr %396, align 4, !tbaa !5
  %2373 = call ptr @s2n_strerror_debug(i32 noundef %2372, ptr noundef nonnull @.str.24) #12
  %2374 = load i32, ptr %450, align 4, !tbaa !5
  %2375 = call ptr @strerror(i32 noundef %2374) #12
  %2376 = load i32, ptr %450, align 4, !tbaa !5
  %2377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2368, ptr noundef nonnull %.str.25.sink1431, i32 noundef %2369, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.21, i32 noundef 349, ptr noundef %2371, ptr noundef %2373, ptr noundef %2375, i32 noundef %2376) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2378:                                             ; preds = %2352
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = add nsw i32 %2379, 1
  store i32 %2380, ptr @test_count, align 4, !tbaa !5
  %2381 = load ptr, ptr %61, align 8, !tbaa !9
  %2382 = getelementptr inbounds i8, ptr %2381, i64 288
  %2383 = load ptr, ptr %6, align 8, !tbaa !43
  %2384 = load i32, ptr %1996, align 8, !tbaa !42
  %2385 = zext i32 %2384 to i64
  %bcmp595 = call i32 @bcmp(ptr nonnull %2382, ptr %2383, i64 %2385)
  %2386 = icmp eq i32 %bcmp595, 0
  br i1 %2386, label %2409, label %2387

2387:                                             ; preds = %2378
  %2388 = load i32, ptr %450, align 4, !tbaa !5
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = call i32 @s2n_print_stacktrace(ptr noundef %2389) #12
  %2391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2392 = trunc nuw i8 %2391 to i1
  br i1 %2392, label %2393, label %2397

2393:                                             ; preds = %2387
  %2394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2395 = call i32 @fileno(ptr noundef %2394) #12
  %2396 = call i32 @isatty(i32 noundef %2395) #12
  %.not596 = icmp eq i32 %2396, 0
  br i1 %.not596, label %2397, label %2398

2397:                                             ; preds = %2393, %2387
  br label %2398

2398:                                             ; preds = %2393, %2397
  %.str.25.sink1440 = phi ptr [ @.str.25, %2397 ], [ @.str.22, %2393 ]
  store i32 %2388, ptr %450, align 4, !tbaa !5
  %2399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2400 = load i32, ptr @test_count, align 4, !tbaa !5
  %2401 = load i32, ptr %396, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror(i32 noundef %2401, ptr noundef nonnull @.str.24) #12
  %2403 = load i32, ptr %396, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror_debug(i32 noundef %2403, ptr noundef nonnull @.str.24) #12
  %2405 = load i32, ptr %450, align 4, !tbaa !5
  %2406 = call ptr @strerror(i32 noundef %2405) #12
  %2407 = load i32, ptr %450, align 4, !tbaa !5
  %2408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2399, ptr noundef nonnull %.str.25.sink1440, i32 noundef %2400, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.21, i32 noundef 350, ptr noundef %2402, ptr noundef %2404, ptr noundef %2406, i32 noundef %2407) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2409:                                             ; preds = %2378
  %2410 = load i32, ptr %2381, align 8
  %2411 = or i32 %2410, 8192
  store i32 %2411, ptr %2381, align 8
  %2412 = load i32, ptr @test_count, align 4, !tbaa !5
  %2413 = add nsw i32 %2412, 1
  store i32 %2413, ptr @test_count, align 4, !tbaa !5
  %2414 = load ptr, ptr %61, align 8, !tbaa !9
  %2415 = call i32 @s2n_prf_calculate_master_secret(ptr noundef %2414, ptr noundef nonnull %62) #12
  %2416 = icmp eq i32 %2415, -1
  br i1 %2416, label %2417, label %2439

2417:                                             ; preds = %2409
  %2418 = load i32, ptr %450, align 4, !tbaa !5
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = call i32 @s2n_print_stacktrace(ptr noundef %2419) #12
  %2421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2422 = trunc nuw i8 %2421 to i1
  br i1 %2422, label %2423, label %2427

2423:                                             ; preds = %2417
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = call i32 @fileno(ptr noundef %2424) #12
  %2426 = call i32 @isatty(i32 noundef %2425) #12
  %.not687 = icmp eq i32 %2426, 0
  br i1 %.not687, label %2427, label %2428

2427:                                             ; preds = %2423, %2417
  br label %2428

2428:                                             ; preds = %2423, %2427
  %.str.25.sink1449 = phi ptr [ @.str.25, %2427 ], [ @.str.22, %2423 ]
  store i32 %2418, ptr %450, align 4, !tbaa !5
  %2429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2430 = load i32, ptr @test_count, align 4, !tbaa !5
  %2431 = load i32, ptr %396, align 4, !tbaa !5
  %2432 = call ptr @s2n_strerror(i32 noundef %2431, ptr noundef nonnull @.str.24) #12
  %2433 = load i32, ptr %396, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror_debug(i32 noundef %2433, ptr noundef nonnull @.str.24) #12
  %2435 = load i32, ptr %450, align 4, !tbaa !5
  %2436 = call ptr @strerror(i32 noundef %2435) #12
  %2437 = load i32, ptr %450, align 4, !tbaa !5
  %2438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2429, ptr noundef nonnull %.str.25.sink1449, i32 noundef %2430, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.21, i32 noundef 353, ptr noundef %2432, ptr noundef %2434, ptr noundef %2436, i32 noundef %2437) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2439:                                             ; preds = %2409
  %2440 = load i32, ptr @test_count, align 4, !tbaa !5
  %2441 = add nsw i32 %2440, 1
  store i32 %2441, ptr @test_count, align 4, !tbaa !5
  %2442 = load ptr, ptr %61, align 8, !tbaa !9
  %2443 = getelementptr inbounds i8, ptr %2442, i64 288
  %2444 = load ptr, ptr %6, align 8, !tbaa !43
  %2445 = load i32, ptr %1996, align 8, !tbaa !42
  %2446 = zext i32 %2445 to i64
  %bcmp597 = call i32 @bcmp(ptr nonnull %2443, ptr %2444, i64 %2446)
  %2447 = icmp eq i32 %bcmp597, 0
  br i1 %2447, label %2448, label %2470

2448:                                             ; preds = %2439
  %2449 = load i32, ptr %450, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = call i32 @s2n_print_stacktrace(ptr noundef %2450) #12
  %2452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2453 = trunc nuw i8 %2452 to i1
  br i1 %2453, label %2454, label %2458

2454:                                             ; preds = %2448
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = call i32 @fileno(ptr noundef %2455) #12
  %2457 = call i32 @isatty(i32 noundef %2456) #12
  %.not686 = icmp eq i32 %2457, 0
  br i1 %.not686, label %2458, label %2459

2458:                                             ; preds = %2454, %2448
  br label %2459

2459:                                             ; preds = %2454, %2458
  %.str.25.sink1458 = phi ptr [ @.str.25, %2458 ], [ @.str.22, %2454 ]
  store i32 %2449, ptr %450, align 4, !tbaa !5
  %2460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2461 = load i32, ptr @test_count, align 4, !tbaa !5
  %2462 = load i32, ptr %396, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror(i32 noundef %2462, ptr noundef nonnull @.str.24) #12
  %2464 = load i32, ptr %396, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror_debug(i32 noundef %2464, ptr noundef nonnull @.str.24) #12
  %2466 = load i32, ptr %450, align 4, !tbaa !5
  %2467 = call ptr @strerror(i32 noundef %2466) #12
  %2468 = load i32, ptr %450, align 4, !tbaa !5
  %2469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2460, ptr noundef nonnull %.str.25.sink1458, i32 noundef %2461, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.21, i32 noundef 356, ptr noundef %2463, ptr noundef %2465, ptr noundef %2467, i32 noundef %2468) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2470:                                             ; preds = %2439
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %62) #12
  %2471 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %61) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #12
  store ptr null, ptr %63, align 8, !tbaa !9
  %2472 = load i32, ptr @test_count, align 4, !tbaa !5
  %2473 = add nsw i32 %2472, 1
  store i32 %2473, ptr @test_count, align 4, !tbaa !5
  %2474 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %63, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.95) #12
  %2475 = icmp eq i32 %2474, -1
  br i1 %2475, label %2476, label %2498

2476:                                             ; preds = %2470
  %2477 = load i32, ptr %450, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = call i32 @s2n_print_stacktrace(ptr noundef %2478) #12
  %2480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2481 = trunc nuw i8 %2480 to i1
  br i1 %2481, label %2482, label %2486

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

2486:                                             ; preds = %2482, %2476
  br label %2487

2487:                                             ; preds = %2482, %2486
  %.str.25.sink1467 = phi ptr [ @.str.25, %2486 ], [ @.str.22, %2482 ]
  store i32 %2477, ptr %450, align 4, !tbaa !5
  %2488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2489 = load i32, ptr @test_count, align 4, !tbaa !5
  %2490 = load i32, ptr %396, align 4, !tbaa !5
  %2491 = call ptr @s2n_strerror(i32 noundef %2490, ptr noundef nonnull @.str.24) #12
  %2492 = load i32, ptr %396, align 4, !tbaa !5
  %2493 = call ptr @s2n_strerror_debug(i32 noundef %2492, ptr noundef nonnull @.str.24) #12
  %2494 = load i32, ptr %450, align 4, !tbaa !5
  %2495 = call ptr @strerror(i32 noundef %2494) #12
  %2496 = load i32, ptr %450, align 4, !tbaa !5
  %2497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2488, ptr noundef nonnull %.str.25.sink1467, i32 noundef %2489, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.21, i32 noundef 377, ptr noundef %2491, ptr noundef %2493, ptr noundef %2495, i32 noundef %2496) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2498:                                             ; preds = %2470
  %2499 = call ptr @s2n_config_new() #12
  %2500 = load i32, ptr @test_count, align 4, !tbaa !5
  %2501 = add nsw i32 %2500, 1
  store i32 %2501, ptr @test_count, align 4, !tbaa !5
  %2502 = load ptr, ptr %63, align 8, !tbaa !9
  %2503 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2499, ptr noundef %2502) #12
  %2504 = icmp eq i32 %2503, -1
  br i1 %2504, label %2505, label %2527

2505:                                             ; preds = %2498
  %2506 = load i32, ptr %450, align 4, !tbaa !5
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = call i32 @s2n_print_stacktrace(ptr noundef %2507) #12
  %2509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2510 = trunc nuw i8 %2509 to i1
  br i1 %2510, label %2511, label %2515

2511:                                             ; preds = %2505
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @fileno(ptr noundef %2512) #12
  %2514 = call i32 @isatty(i32 noundef %2513) #12
  %.not684 = icmp eq i32 %2514, 0
  br i1 %.not684, label %2515, label %2516

2515:                                             ; preds = %2511, %2505
  br label %2516

2516:                                             ; preds = %2511, %2515
  %.str.25.sink1476 = phi ptr [ @.str.25, %2515 ], [ @.str.22, %2511 ]
  store i32 %2506, ptr %450, align 4, !tbaa !5
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = load i32, ptr %396, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror(i32 noundef %2519, ptr noundef nonnull @.str.24) #12
  %2521 = load i32, ptr %396, align 4, !tbaa !5
  %2522 = call ptr @s2n_strerror_debug(i32 noundef %2521, ptr noundef nonnull @.str.24) #12
  %2523 = load i32, ptr %450, align 4, !tbaa !5
  %2524 = call ptr @strerror(i32 noundef %2523) #12
  %2525 = load i32, ptr %450, align 4, !tbaa !5
  %2526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2517, ptr noundef nonnull %.str.25.sink1476, i32 noundef %2518, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.21, i32 noundef 380, ptr noundef %2520, ptr noundef %2522, ptr noundef %2524, i32 noundef %2525) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2527:                                             ; preds = %2498
  %2528 = load i32, ptr @test_count, align 4, !tbaa !5
  %2529 = add nsw i32 %2528, 1
  store i32 %2529, ptr @test_count, align 4, !tbaa !5
  %2530 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %2499) #12
  %2531 = icmp eq i32 %2530, -1
  br i1 %2531, label %2532, label %2554

2532:                                             ; preds = %2527
  %2533 = load i32, ptr %450, align 4, !tbaa !5
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = call i32 @s2n_print_stacktrace(ptr noundef %2534) #12
  %2536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2537 = trunc nuw i8 %2536 to i1
  br i1 %2537, label %2538, label %2542

2538:                                             ; preds = %2532
  %2539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2540 = call i32 @fileno(ptr noundef %2539) #12
  %2541 = call i32 @isatty(i32 noundef %2540) #12
  %.not683 = icmp eq i32 %2541, 0
  br i1 %.not683, label %2542, label %2543

2542:                                             ; preds = %2538, %2532
  br label %2543

2543:                                             ; preds = %2538, %2542
  %.str.25.sink1485 = phi ptr [ @.str.25, %2542 ], [ @.str.22, %2538 ]
  store i32 %2533, ptr %450, align 4, !tbaa !5
  %2544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2545 = load i32, ptr @test_count, align 4, !tbaa !5
  %2546 = load i32, ptr %396, align 4, !tbaa !5
  %2547 = call ptr @s2n_strerror(i32 noundef %2546, ptr noundef nonnull @.str.24) #12
  %2548 = load i32, ptr %396, align 4, !tbaa !5
  %2549 = call ptr @s2n_strerror_debug(i32 noundef %2548, ptr noundef nonnull @.str.24) #12
  %2550 = load i32, ptr %450, align 4, !tbaa !5
  %2551 = call ptr @strerror(i32 noundef %2550) #12
  %2552 = load i32, ptr %450, align 4, !tbaa !5
  %2553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2544, ptr noundef nonnull %.str.25.sink1485, i32 noundef %2545, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.21, i32 noundef 381, ptr noundef %2547, ptr noundef %2549, ptr noundef %2551, i32 noundef %2552) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2554:                                             ; preds = %2527
  %2555 = load i32, ptr @test_count, align 4, !tbaa !5
  %2556 = add nsw i32 %2555, 1
  store i32 %2556, ptr @test_count, align 4, !tbaa !5
  %2557 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2499, ptr noundef nonnull @.str.99) #12
  %2558 = icmp eq i32 %2557, -1
  br i1 %2558, label %2559, label %2581

2559:                                             ; preds = %2554
  %2560 = load i32, ptr %450, align 4, !tbaa !5
  %2561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2562 = call i32 @s2n_print_stacktrace(ptr noundef %2561) #12
  %2563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2564 = trunc nuw i8 %2563 to i1
  br i1 %2564, label %2565, label %2569

2565:                                             ; preds = %2559
  %2566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2567 = call i32 @fileno(ptr noundef %2566) #12
  %2568 = call i32 @isatty(i32 noundef %2567) #12
  %.not682 = icmp eq i32 %2568, 0
  br i1 %.not682, label %2569, label %2570

2569:                                             ; preds = %2565, %2559
  br label %2570

2570:                                             ; preds = %2565, %2569
  %.str.25.sink1494 = phi ptr [ @.str.25, %2569 ], [ @.str.22, %2565 ]
  store i32 %2560, ptr %450, align 4, !tbaa !5
  %2571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2572 = load i32, ptr @test_count, align 4, !tbaa !5
  %2573 = load i32, ptr %396, align 4, !tbaa !5
  %2574 = call ptr @s2n_strerror(i32 noundef %2573, ptr noundef nonnull @.str.24) #12
  %2575 = load i32, ptr %396, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror_debug(i32 noundef %2575, ptr noundef nonnull @.str.24) #12
  %2577 = load i32, ptr %450, align 4, !tbaa !5
  %2578 = call ptr @strerror(i32 noundef %2577) #12
  %2579 = load i32, ptr %450, align 4, !tbaa !5
  %2580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2571, ptr noundef nonnull %.str.25.sink1494, i32 noundef %2572, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.21, i32 noundef 382, ptr noundef %2574, ptr noundef %2576, ptr noundef %2578, i32 noundef %2579) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2581:                                             ; preds = %2554
  %2582 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %2583 = load i32, ptr @test_count, align 4, !tbaa !5
  %2584 = add nsw i32 %2583, 1
  store i32 %2584, ptr @test_count, align 4, !tbaa !5
  %2585 = icmp eq ptr %2582, null
  br i1 %2585, label %2586, label %2608

2586:                                             ; preds = %2581
  %2587 = load i32, ptr %450, align 4, !tbaa !5
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @s2n_print_stacktrace(ptr noundef %2588) #12
  %2590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2591 = trunc nuw i8 %2590 to i1
  br i1 %2591, label %2592, label %2596

2592:                                             ; preds = %2586
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = call i32 @fileno(ptr noundef %2593) #12
  %2595 = call i32 @isatty(i32 noundef %2594) #12
  %.not681 = icmp eq i32 %2595, 0
  br i1 %.not681, label %2596, label %2597

2596:                                             ; preds = %2592, %2586
  br label %2597

2597:                                             ; preds = %2592, %2596
  %.str.25.sink1503 = phi ptr [ @.str.25, %2596 ], [ @.str.22, %2592 ]
  store i32 %2587, ptr %450, align 4, !tbaa !5
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = load i32, ptr @test_count, align 4, !tbaa !5
  %2600 = load i32, ptr %396, align 4, !tbaa !5
  %2601 = call ptr @s2n_strerror(i32 noundef %2600, ptr noundef nonnull @.str.24) #12
  %2602 = load i32, ptr %396, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror_debug(i32 noundef %2602, ptr noundef nonnull @.str.24) #12
  %2604 = load i32, ptr %450, align 4, !tbaa !5
  %2605 = call ptr @strerror(i32 noundef %2604) #12
  %2606 = load i32, ptr %450, align 4, !tbaa !5
  %2607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2598, ptr noundef nonnull %.str.25.sink1503, i32 noundef %2599, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.21, i32 noundef 385, ptr noundef %2601, ptr noundef %2603, ptr noundef %2605, i32 noundef %2606) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2608:                                             ; preds = %2581
  %2609 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %2610 = load i32, ptr @test_count, align 4, !tbaa !5
  %2611 = add nsw i32 %2610, 1
  store i32 %2611, ptr @test_count, align 4, !tbaa !5
  %2612 = icmp eq ptr %2609, null
  br i1 %2612, label %2613, label %2635

2613:                                             ; preds = %2608
  %2614 = load i32, ptr %450, align 4, !tbaa !5
  %2615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2616 = call i32 @s2n_print_stacktrace(ptr noundef %2615) #12
  %2617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2618 = trunc nuw i8 %2617 to i1
  br i1 %2618, label %2619, label %2623

2619:                                             ; preds = %2613
  %2620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2621 = call i32 @fileno(ptr noundef %2620) #12
  %2622 = call i32 @isatty(i32 noundef %2621) #12
  %.not680 = icmp eq i32 %2622, 0
  br i1 %.not680, label %2623, label %2624

2623:                                             ; preds = %2619, %2613
  br label %2624

2624:                                             ; preds = %2619, %2623
  %.str.25.sink1512 = phi ptr [ @.str.25, %2623 ], [ @.str.22, %2619 ]
  store i32 %2614, ptr %450, align 4, !tbaa !5
  %2625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2626 = load i32, ptr @test_count, align 4, !tbaa !5
  %2627 = load i32, ptr %396, align 4, !tbaa !5
  %2628 = call ptr @s2n_strerror(i32 noundef %2627, ptr noundef nonnull @.str.24) #12
  %2629 = load i32, ptr %396, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror_debug(i32 noundef %2629, ptr noundef nonnull @.str.24) #12
  %2631 = load i32, ptr %450, align 4, !tbaa !5
  %2632 = call ptr @strerror(i32 noundef %2631) #12
  %2633 = load i32, ptr %450, align 4, !tbaa !5
  %2634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2625, ptr noundef nonnull %.str.25.sink1512, i32 noundef %2626, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.21, i32 noundef 388, ptr noundef %2628, ptr noundef %2630, ptr noundef %2632, i32 noundef %2633) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2635:                                             ; preds = %2608
  %2636 = add nsw i32 %2610, 2
  store i32 %2636, ptr @test_count, align 4, !tbaa !5
  %2637 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2582, ptr noundef %2499) #12
  %2638 = icmp eq i32 %2637, -1
  br i1 %2638, label %2639, label %2661

2639:                                             ; preds = %2635
  %2640 = load i32, ptr %450, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @s2n_print_stacktrace(ptr noundef %2641) #12
  %2643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2644 = trunc nuw i8 %2643 to i1
  br i1 %2644, label %2645, label %2649

2645:                                             ; preds = %2639
  %2646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2647 = call i32 @fileno(ptr noundef %2646) #12
  %2648 = call i32 @isatty(i32 noundef %2647) #12
  %.not679 = icmp eq i32 %2648, 0
  br i1 %.not679, label %2649, label %2650

2649:                                             ; preds = %2645, %2639
  br label %2650

2650:                                             ; preds = %2645, %2649
  %.str.25.sink1521 = phi ptr [ @.str.25, %2649 ], [ @.str.22, %2645 ]
  store i32 %2640, ptr %450, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = load i32, ptr %396, align 4, !tbaa !5
  %2654 = call ptr @s2n_strerror(i32 noundef %2653, ptr noundef nonnull @.str.24) #12
  %2655 = load i32, ptr %396, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror_debug(i32 noundef %2655, ptr noundef nonnull @.str.24) #12
  %2657 = load i32, ptr %450, align 4, !tbaa !5
  %2658 = call ptr @strerror(i32 noundef %2657) #12
  %2659 = load i32, ptr %450, align 4, !tbaa !5
  %2660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2651, ptr noundef nonnull %.str.25.sink1521, i32 noundef %2652, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.21, i32 noundef 390, ptr noundef %2654, ptr noundef %2656, ptr noundef %2658, i32 noundef %2659) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2661:                                             ; preds = %2635
  %2662 = load i32, ptr @test_count, align 4, !tbaa !5
  %2663 = add nsw i32 %2662, 1
  store i32 %2663, ptr @test_count, align 4, !tbaa !5
  %2664 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2609, ptr noundef %2499) #12
  %2665 = icmp eq i32 %2664, -1
  br i1 %2665, label %2666, label %2688

2666:                                             ; preds = %2661
  %2667 = load i32, ptr %450, align 4, !tbaa !5
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = call i32 @s2n_print_stacktrace(ptr noundef %2668) #12
  %2670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2671 = trunc nuw i8 %2670 to i1
  br i1 %2671, label %2672, label %2676

2672:                                             ; preds = %2666
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = call i32 @fileno(ptr noundef %2673) #12
  %2675 = call i32 @isatty(i32 noundef %2674) #12
  %.not678 = icmp eq i32 %2675, 0
  br i1 %.not678, label %2676, label %2677

2676:                                             ; preds = %2672, %2666
  br label %2677

2677:                                             ; preds = %2672, %2676
  %.str.25.sink1530 = phi ptr [ @.str.25, %2676 ], [ @.str.22, %2672 ]
  store i32 %2667, ptr %450, align 4, !tbaa !5
  %2678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2679 = load i32, ptr @test_count, align 4, !tbaa !5
  %2680 = load i32, ptr %396, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror(i32 noundef %2680, ptr noundef nonnull @.str.24) #12
  %2682 = load i32, ptr %396, align 4, !tbaa !5
  %2683 = call ptr @s2n_strerror_debug(i32 noundef %2682, ptr noundef nonnull @.str.24) #12
  %2684 = load i32, ptr %450, align 4, !tbaa !5
  %2685 = call ptr @strerror(i32 noundef %2684) #12
  %2686 = load i32, ptr %450, align 4, !tbaa !5
  %2687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2678, ptr noundef nonnull %.str.25.sink1530, i32 noundef %2679, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.21, i32 noundef 391, ptr noundef %2681, ptr noundef %2683, ptr noundef %2685, i32 noundef %2686) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2688:                                             ; preds = %2661
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %64) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %64, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %65) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %65, i8 0, i64 40, i1 false)
  %2689 = load i32, ptr @test_count, align 4, !tbaa !5
  %2690 = add nsw i32 %2689, 1
  store i32 %2690, ptr @test_count, align 4, !tbaa !5
  %2691 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %64, i32 noundef 0) #12
  %2692 = icmp eq i32 %2691, -1
  br i1 %2692, label %2693, label %2715

2693:                                             ; preds = %2688
  %2694 = load i32, ptr %450, align 4, !tbaa !5
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = call i32 @s2n_print_stacktrace(ptr noundef %2695) #12
  %2697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2698 = trunc nuw i8 %2697 to i1
  br i1 %2698, label %2699, label %2703

2699:                                             ; preds = %2693
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = call i32 @fileno(ptr noundef %2700) #12
  %2702 = call i32 @isatty(i32 noundef %2701) #12
  %.not677 = icmp eq i32 %2702, 0
  br i1 %.not677, label %2703, label %2704

2703:                                             ; preds = %2699, %2693
  br label %2704

2704:                                             ; preds = %2699, %2703
  %.str.25.sink1539 = phi ptr [ @.str.25, %2703 ], [ @.str.22, %2699 ]
  store i32 %2694, ptr %450, align 4, !tbaa !5
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = load i32, ptr @test_count, align 4, !tbaa !5
  %2707 = load i32, ptr %396, align 4, !tbaa !5
  %2708 = call ptr @s2n_strerror(i32 noundef %2707, ptr noundef nonnull @.str.24) #12
  %2709 = load i32, ptr %396, align 4, !tbaa !5
  %2710 = call ptr @s2n_strerror_debug(i32 noundef %2709, ptr noundef nonnull @.str.24) #12
  %2711 = load i32, ptr %450, align 4, !tbaa !5
  %2712 = call ptr @strerror(i32 noundef %2711) #12
  %2713 = load i32, ptr %450, align 4, !tbaa !5
  %2714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2705, ptr noundef nonnull %.str.25.sink1539, i32 noundef %2706, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.21, i32 noundef 395, ptr noundef %2708, ptr noundef %2710, ptr noundef %2712, i32 noundef %2713) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2715:                                             ; preds = %2688
  %2716 = load i32, ptr @test_count, align 4, !tbaa !5
  %2717 = add nsw i32 %2716, 1
  store i32 %2717, ptr @test_count, align 4, !tbaa !5
  %2718 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %65, i32 noundef 0) #12
  %2719 = icmp eq i32 %2718, -1
  br i1 %2719, label %2720, label %2742

2720:                                             ; preds = %2715
  %2721 = load i32, ptr %450, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = call i32 @s2n_print_stacktrace(ptr noundef %2722) #12
  %2724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2725 = trunc nuw i8 %2724 to i1
  br i1 %2725, label %2726, label %2730

2726:                                             ; preds = %2720
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = call i32 @fileno(ptr noundef %2727) #12
  %2729 = call i32 @isatty(i32 noundef %2728) #12
  %.not676 = icmp eq i32 %2729, 0
  br i1 %.not676, label %2730, label %2731

2730:                                             ; preds = %2726, %2720
  br label %2731

2731:                                             ; preds = %2726, %2730
  %.str.25.sink1548 = phi ptr [ @.str.25, %2730 ], [ @.str.22, %2726 ]
  store i32 %2721, ptr %450, align 4, !tbaa !5
  %2732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2733 = load i32, ptr @test_count, align 4, !tbaa !5
  %2734 = load i32, ptr %396, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror(i32 noundef %2734, ptr noundef nonnull @.str.24) #12
  %2736 = load i32, ptr %396, align 4, !tbaa !5
  %2737 = call ptr @s2n_strerror_debug(i32 noundef %2736, ptr noundef nonnull @.str.24) #12
  %2738 = load i32, ptr %450, align 4, !tbaa !5
  %2739 = call ptr @strerror(i32 noundef %2738) #12
  %2740 = load i32, ptr %450, align 4, !tbaa !5
  %2741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2732, ptr noundef nonnull %.str.25.sink1548, i32 noundef %2733, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.21, i32 noundef 396, ptr noundef %2735, ptr noundef %2737, ptr noundef %2739, i32 noundef %2740) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2742:                                             ; preds = %2715
  %2743 = load i32, ptr @test_count, align 4, !tbaa !5
  %2744 = add nsw i32 %2743, 1
  store i32 %2744, ptr @test_count, align 4, !tbaa !5
  %2745 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %65, ptr noundef nonnull %64, ptr noundef nonnull %2582) #12
  %2746 = icmp eq i32 %2745, -1
  br i1 %2746, label %2747, label %2769

2747:                                             ; preds = %2742
  %2748 = load i32, ptr %450, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @s2n_print_stacktrace(ptr noundef %2749) #12
  %2751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2752 = trunc nuw i8 %2751 to i1
  br i1 %2752, label %2753, label %2757

2753:                                             ; preds = %2747
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = call i32 @fileno(ptr noundef %2754) #12
  %2756 = call i32 @isatty(i32 noundef %2755) #12
  %.not675 = icmp eq i32 %2756, 0
  br i1 %.not675, label %2757, label %2758

2757:                                             ; preds = %2753, %2747
  br label %2758

2758:                                             ; preds = %2753, %2757
  %.str.25.sink1557 = phi ptr [ @.str.25, %2757 ], [ @.str.22, %2753 ]
  store i32 %2748, ptr %450, align 4, !tbaa !5
  %2759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2760 = load i32, ptr @test_count, align 4, !tbaa !5
  %2761 = load i32, ptr %396, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror(i32 noundef %2761, ptr noundef nonnull @.str.24) #12
  %2763 = load i32, ptr %396, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror_debug(i32 noundef %2763, ptr noundef nonnull @.str.24) #12
  %2765 = load i32, ptr %450, align 4, !tbaa !5
  %2766 = call ptr @strerror(i32 noundef %2765) #12
  %2767 = load i32, ptr %450, align 4, !tbaa !5
  %2768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2759, ptr noundef nonnull %.str.25.sink1557, i32 noundef %2760, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.21, i32 noundef 397, ptr noundef %2762, ptr noundef %2764, ptr noundef %2766, i32 noundef %2767) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2769:                                             ; preds = %2742
  %2770 = load i32, ptr @test_count, align 4, !tbaa !5
  %2771 = add nsw i32 %2770, 1
  store i32 %2771, ptr @test_count, align 4, !tbaa !5
  %2772 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %2609) #12
  %2773 = icmp eq i32 %2772, -1
  br i1 %2773, label %2774, label %2796

2774:                                             ; preds = %2769
  %2775 = load i32, ptr %450, align 4, !tbaa !5
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = call i32 @s2n_print_stacktrace(ptr noundef %2776) #12
  %2778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2779 = trunc nuw i8 %2778 to i1
  br i1 %2779, label %2780, label %2784

2780:                                             ; preds = %2774
  %2781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2782 = call i32 @fileno(ptr noundef %2781) #12
  %2783 = call i32 @isatty(i32 noundef %2782) #12
  %.not674 = icmp eq i32 %2783, 0
  br i1 %.not674, label %2784, label %2785

2784:                                             ; preds = %2780, %2774
  br label %2785

2785:                                             ; preds = %2780, %2784
  %.str.25.sink1566 = phi ptr [ @.str.25, %2784 ], [ @.str.22, %2780 ]
  store i32 %2775, ptr %450, align 4, !tbaa !5
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = load i32, ptr @test_count, align 4, !tbaa !5
  %2788 = load i32, ptr %396, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror(i32 noundef %2788, ptr noundef nonnull @.str.24) #12
  %2790 = load i32, ptr %396, align 4, !tbaa !5
  %2791 = call ptr @s2n_strerror_debug(i32 noundef %2790, ptr noundef nonnull @.str.24) #12
  %2792 = load i32, ptr %450, align 4, !tbaa !5
  %2793 = call ptr @strerror(i32 noundef %2792) #12
  %2794 = load i32, ptr %450, align 4, !tbaa !5
  %2795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2786, ptr noundef nonnull %.str.25.sink1566, i32 noundef %2787, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.21, i32 noundef 398, ptr noundef %2789, ptr noundef %2791, ptr noundef %2793, i32 noundef %2794) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2796:                                             ; preds = %2769
  %2797 = load i32, ptr @test_count, align 4, !tbaa !5
  %2798 = add nsw i32 %2797, 1
  store i32 %2798, ptr @test_count, align 4, !tbaa !5
  %2799 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef nonnull %2609, ptr noundef nonnull %2582, i32 noundef 9) #12
  %2800 = call zeroext i1 @s2n_result_is_ok(i32 %2799)
  br i1 %2800, label %2823, label %2801

2801:                                             ; preds = %2796
  %2802 = load i32, ptr %450, align 4, !tbaa !5
  %2803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2804 = call i32 @s2n_print_stacktrace(ptr noundef %2803) #12
  %2805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2806 = trunc nuw i8 %2805 to i1
  br i1 %2806, label %2807, label %2811

2807:                                             ; preds = %2801
  %2808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2809 = call i32 @fileno(ptr noundef %2808) #12
  %2810 = call i32 @isatty(i32 noundef %2809) #12
  %.not598 = icmp eq i32 %2810, 0
  br i1 %.not598, label %2811, label %2812

2811:                                             ; preds = %2807, %2801
  br label %2812

2812:                                             ; preds = %2807, %2811
  %.str.25.sink1575 = phi ptr [ @.str.25, %2811 ], [ @.str.22, %2807 ]
  store i32 %2802, ptr %450, align 4, !tbaa !5
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = load i32, ptr @test_count, align 4, !tbaa !5
  %2815 = load i32, ptr %396, align 4, !tbaa !5
  %2816 = call ptr @s2n_strerror(i32 noundef %2815, ptr noundef nonnull @.str.24) #12
  %2817 = load i32, ptr %396, align 4, !tbaa !5
  %2818 = call ptr @s2n_strerror_debug(i32 noundef %2817, ptr noundef nonnull @.str.24) #12
  %2819 = load i32, ptr %450, align 4, !tbaa !5
  %2820 = call ptr @strerror(i32 noundef %2819) #12
  %2821 = load i32, ptr %450, align 4, !tbaa !5
  %2822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2813, ptr noundef nonnull %.str.25.sink1575, i32 noundef %2814, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.21, i32 noundef 400, ptr noundef %2816, ptr noundef %2818, ptr noundef %2820, i32 noundef %2821) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2823:                                             ; preds = %2796
  %2824 = load i32, ptr @test_count, align 4, !tbaa !5
  %2825 = add nsw i32 %2824, 1
  store i32 %2825, ptr @test_count, align 4, !tbaa !5
  %2826 = call i32 @s2n_handshake_write_io(ptr noundef nonnull %2582)
  %2827 = icmp eq i32 %2826, -1
  br i1 %2827, label %2828, label %2850

2828:                                             ; preds = %2823
  %2829 = load i32, ptr %450, align 4, !tbaa !5
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2831 = call i32 @s2n_print_stacktrace(ptr noundef %2830) #12
  %2832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2833 = trunc nuw i8 %2832 to i1
  br i1 %2833, label %2834, label %2838

2834:                                             ; preds = %2828
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2836 = call i32 @fileno(ptr noundef %2835) #12
  %2837 = call i32 @isatty(i32 noundef %2836) #12
  %.not673 = icmp eq i32 %2837, 0
  br i1 %.not673, label %2838, label %2839

2838:                                             ; preds = %2834, %2828
  br label %2839

2839:                                             ; preds = %2834, %2838
  %.str.25.sink1584 = phi ptr [ @.str.25, %2838 ], [ @.str.22, %2834 ]
  store i32 %2829, ptr %450, align 4, !tbaa !5
  %2840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2841 = load i32, ptr @test_count, align 4, !tbaa !5
  %2842 = load i32, ptr %396, align 4, !tbaa !5
  %2843 = call ptr @s2n_strerror(i32 noundef %2842, ptr noundef nonnull @.str.24) #12
  %2844 = load i32, ptr %396, align 4, !tbaa !5
  %2845 = call ptr @s2n_strerror_debug(i32 noundef %2844, ptr noundef nonnull @.str.24) #12
  %2846 = load i32, ptr %450, align 4, !tbaa !5
  %2847 = call ptr @strerror(i32 noundef %2846) #12
  %2848 = load i32, ptr %450, align 4, !tbaa !5
  %2849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2840, ptr noundef nonnull %.str.25.sink1584, i32 noundef %2841, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.21, i32 noundef 403, ptr noundef %2843, ptr noundef %2845, ptr noundef %2847, i32 noundef %2848) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2850:                                             ; preds = %2823
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %66) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %66, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %67) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %67, i8 0, i64 24, i1 false)
  %2851 = load i32, ptr @test_count, align 4, !tbaa !5
  %2852 = add nsw i32 %2851, 1
  store i32 %2852, ptr @test_count, align 4, !tbaa !5
  %2853 = call i32 @s2n_blob_init(ptr noundef nonnull %67, ptr noundef nonnull %66, i32 noundef 64) #12
  %2854 = icmp eq i32 %2853, -1
  br i1 %2854, label %2855, label %2877

2855:                                             ; preds = %2850
  %2856 = load i32, ptr %450, align 4, !tbaa !5
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = call i32 @s2n_print_stacktrace(ptr noundef %2857) #12
  %2859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2860 = trunc nuw i8 %2859 to i1
  br i1 %2860, label %2861, label %2865

2861:                                             ; preds = %2855
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = call i32 @fileno(ptr noundef %2862) #12
  %2864 = call i32 @isatty(i32 noundef %2863) #12
  %.not672 = icmp eq i32 %2864, 0
  br i1 %.not672, label %2865, label %2866

2865:                                             ; preds = %2861, %2855
  br label %2866

2866:                                             ; preds = %2861, %2865
  %.str.25.sink1593 = phi ptr [ @.str.25, %2865 ], [ @.str.22, %2861 ]
  store i32 %2856, ptr %450, align 4, !tbaa !5
  %2867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2868 = load i32, ptr @test_count, align 4, !tbaa !5
  %2869 = load i32, ptr %396, align 4, !tbaa !5
  %2870 = call ptr @s2n_strerror(i32 noundef %2869, ptr noundef nonnull @.str.24) #12
  %2871 = load i32, ptr %396, align 4, !tbaa !5
  %2872 = call ptr @s2n_strerror_debug(i32 noundef %2871, ptr noundef nonnull @.str.24) #12
  %2873 = load i32, ptr %450, align 4, !tbaa !5
  %2874 = call ptr @strerror(i32 noundef %2873) #12
  %2875 = load i32, ptr %450, align 4, !tbaa !5
  %2876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2867, ptr noundef nonnull %.str.25.sink1593, i32 noundef %2868, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.21, i32 noundef 407, ptr noundef %2870, ptr noundef %2872, ptr noundef %2874, i32 noundef %2875) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2877:                                             ; preds = %2850
  %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 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %64, i32 noundef 5) #12
  %2881 = icmp eq i32 %2880, -1
  br i1 %2881, label %2882, label %2904

2882:                                             ; preds = %2877
  %2883 = load i32, ptr %450, align 4, !tbaa !5
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = call i32 @s2n_print_stacktrace(ptr noundef %2884) #12
  %2886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2887 = trunc nuw i8 %2886 to i1
  br i1 %2887, label %2888, label %2892

2888:                                             ; preds = %2882
  %2889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2890 = call i32 @fileno(ptr noundef %2889) #12
  %2891 = call i32 @isatty(i32 noundef %2890) #12
  %.not671 = icmp eq i32 %2891, 0
  br i1 %.not671, label %2892, label %2893

2892:                                             ; preds = %2888, %2882
  br label %2893

2893:                                             ; preds = %2888, %2892
  %.str.25.sink1602 = phi ptr [ @.str.25, %2892 ], [ @.str.22, %2888 ]
  store i32 %2883, ptr %450, align 4, !tbaa !5
  %2894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2895 = load i32, ptr @test_count, align 4, !tbaa !5
  %2896 = load i32, ptr %396, align 4, !tbaa !5
  %2897 = call ptr @s2n_strerror(i32 noundef %2896, ptr noundef nonnull @.str.24) #12
  %2898 = load i32, ptr %396, align 4, !tbaa !5
  %2899 = call ptr @s2n_strerror_debug(i32 noundef %2898, ptr noundef nonnull @.str.24) #12
  %2900 = load i32, ptr %450, align 4, !tbaa !5
  %2901 = call ptr @strerror(i32 noundef %2900) #12
  %2902 = load i32, ptr %450, align 4, !tbaa !5
  %2903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2894, ptr noundef nonnull %.str.25.sink1602, i32 noundef %2895, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.21, i32 noundef 410, ptr noundef %2897, ptr noundef %2899, ptr noundef %2901, i32 noundef %2902) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2904:                                             ; preds = %2877
  %2905 = getelementptr inbounds i8, ptr %64, i64 28
  %2906 = load i32, ptr %2905, align 4, !tbaa !56
  %2907 = getelementptr inbounds i8, ptr %64, i64 24
  %2908 = load i32, ptr %2907, align 8, !tbaa !57
  %2909 = sub i32 %2906, %2908
  %2910 = and i32 %2909, 255
  %2911 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %64, i32 noundef %2910) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %68) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %68, i8 0, i64 24, i1 false)
  %2912 = load i32, ptr @test_count, align 4, !tbaa !5
  %2913 = add nsw i32 %2912, 1
  store i32 %2913, ptr @test_count, align 4, !tbaa !5
  %2914 = call i32 @s2n_blob_init(ptr noundef nonnull %68, ptr noundef %2911, i32 noundef %2910) #12
  %2915 = icmp eq i32 %2914, -1
  br i1 %2915, label %2916, label %2938

2916:                                             ; preds = %2904
  %2917 = load i32, ptr %450, align 4, !tbaa !5
  %2918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2919 = call i32 @s2n_print_stacktrace(ptr noundef %2918) #12
  %2920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2921 = trunc nuw i8 %2920 to i1
  br i1 %2921, label %2922, label %2926

2922:                                             ; preds = %2916
  %2923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2924 = call i32 @fileno(ptr noundef %2923) #12
  %2925 = call i32 @isatty(i32 noundef %2924) #12
  %.not670 = icmp eq i32 %2925, 0
  br i1 %.not670, label %2926, label %2927

2926:                                             ; preds = %2922, %2916
  br label %2927

2927:                                             ; preds = %2922, %2926
  %.str.25.sink1611 = phi ptr [ @.str.25, %2926 ], [ @.str.22, %2922 ]
  store i32 %2917, ptr %450, align 4, !tbaa !5
  %2928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2929 = load i32, ptr @test_count, align 4, !tbaa !5
  %2930 = load i32, ptr %396, align 4, !tbaa !5
  %2931 = call ptr @s2n_strerror(i32 noundef %2930, ptr noundef nonnull @.str.24) #12
  %2932 = load i32, ptr %396, align 4, !tbaa !5
  %2933 = call ptr @s2n_strerror_debug(i32 noundef %2932, ptr noundef nonnull @.str.24) #12
  %2934 = load i32, ptr %450, align 4, !tbaa !5
  %2935 = call ptr @strerror(i32 noundef %2934) #12
  %2936 = load i32, ptr %450, align 4, !tbaa !5
  %2937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2928, ptr noundef nonnull %.str.25.sink1611, i32 noundef %2929, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.21, i32 noundef 414, ptr noundef %2931, ptr noundef %2933, ptr noundef %2935, i32 noundef %2936) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2938:                                             ; preds = %2904
  %2939 = getelementptr inbounds i8, ptr %2609, i64 232
  %2940 = load ptr, ptr %2939, align 8, !tbaa !44
  %2941 = load ptr, ptr %2940, align 8, !tbaa !45
  %2942 = getelementptr inbounds i8, ptr %2941, i64 96
  %2943 = load i32, ptr %2942, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %69) #12
  store i32 0, ptr %69, align 4, !tbaa !5
  %2944 = call i32 @s2n_hmac_hash_alg(i32 noundef %2943, ptr noundef nonnull %69) #12
  %2945 = icmp sgt i32 %2944, -1
  br i1 %2945, label %2946, label %3281

2946:                                             ; preds = %2938
  %2947 = load i32, ptr @test_count, align 4, !tbaa !5
  %2948 = add nsw i32 %2947, 1
  store i32 %2948, ptr @test_count, align 4, !tbaa !5
  %2949 = load i32, ptr %69, align 4, !tbaa !5
  %2950 = call i32 @s2n_prf_get_digest_for_ems(ptr noundef nonnull %2609, ptr noundef nonnull %68, i32 noundef %2949, ptr noundef nonnull %67) #12
  %2951 = call zeroext i1 @s2n_result_is_ok(i32 %2950)
  br i1 %2951, label %2974, label %2952

2952:                                             ; preds = %2946
  %2953 = load i32, ptr %450, align 4, !tbaa !5
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = call i32 @s2n_print_stacktrace(ptr noundef %2954) #12
  %2956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2957 = trunc nuw i8 %2956 to i1
  br i1 %2957, label %2958, label %2962

2958:                                             ; preds = %2952
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = call i32 @fileno(ptr noundef %2959) #12
  %2961 = call i32 @isatty(i32 noundef %2960) #12
  %.not599 = icmp eq i32 %2961, 0
  br i1 %.not599, label %2962, label %2963

2962:                                             ; preds = %2958, %2952
  br label %2963

2963:                                             ; preds = %2958, %2962
  %.str.25.sink1620 = phi ptr [ @.str.25, %2962 ], [ @.str.22, %2958 ]
  store i32 %2953, ptr %450, align 4, !tbaa !5
  %2964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2965 = load i32, ptr @test_count, align 4, !tbaa !5
  %2966 = load i32, ptr %396, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror(i32 noundef %2966, ptr noundef nonnull @.str.24) #12
  %2968 = load i32, ptr %396, align 4, !tbaa !5
  %2969 = call ptr @s2n_strerror_debug(i32 noundef %2968, ptr noundef nonnull @.str.24) #12
  %2970 = load i32, ptr %450, align 4, !tbaa !5
  %2971 = call ptr @strerror(i32 noundef %2970) #12
  %2972 = load i32, ptr %450, align 4, !tbaa !5
  %2973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2964, ptr noundef nonnull %.str.25.sink1620, i32 noundef %2965, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.21, i32 noundef 419, ptr noundef %2967, ptr noundef %2969, ptr noundef %2971, i32 noundef %2972) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2974:                                             ; preds = %2946
  %2975 = load i32, ptr @test_count, align 4, !tbaa !5
  %2976 = add nsw i32 %2975, 1
  store i32 %2976, ptr @test_count, align 4, !tbaa !5
  %2977 = add nuw nsw i32 %2910, 5
  %2978 = call i32 @s2n_stuffer_rewind_read(ptr noundef nonnull %64, i32 noundef %2977) #12
  %2979 = icmp eq i32 %2978, -1
  br i1 %2979, label %2980, label %3002

2980:                                             ; preds = %2974
  %2981 = load i32, ptr %450, align 4, !tbaa !5
  %2982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2983 = call i32 @s2n_print_stacktrace(ptr noundef %2982) #12
  %2984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2985 = trunc nuw i8 %2984 to i1
  br i1 %2985, label %2986, label %2990

2986:                                             ; preds = %2980
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = call i32 @fileno(ptr noundef %2987) #12
  %2989 = call i32 @isatty(i32 noundef %2988) #12
  %.not669 = icmp eq i32 %2989, 0
  br i1 %.not669, label %2990, label %2991

2990:                                             ; preds = %2986, %2980
  br label %2991

2991:                                             ; preds = %2986, %2990
  %.str.25.sink1629 = phi ptr [ @.str.25, %2990 ], [ @.str.22, %2986 ]
  store i32 %2981, ptr %450, align 4, !tbaa !5
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = load i32, ptr @test_count, align 4, !tbaa !5
  %2994 = load i32, ptr %396, align 4, !tbaa !5
  %2995 = call ptr @s2n_strerror(i32 noundef %2994, ptr noundef nonnull @.str.24) #12
  %2996 = load i32, ptr %396, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror_debug(i32 noundef %2996, ptr noundef nonnull @.str.24) #12
  %2998 = load i32, ptr %450, align 4, !tbaa !5
  %2999 = call ptr @strerror(i32 noundef %2998) #12
  %3000 = load i32, ptr %450, align 4, !tbaa !5
  %3001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2992, ptr noundef nonnull %.str.25.sink1629, i32 noundef %2993, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.21, i32 noundef 422, ptr noundef %2995, ptr noundef %2997, ptr noundef %2999, i32 noundef %3000) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3002:                                             ; preds = %2974
  %3003 = load i32, ptr @test_count, align 4, !tbaa !5
  %3004 = add nsw i32 %3003, 1
  store i32 %3004, ptr @test_count, align 4, !tbaa !5
  %3005 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2609)
  %3006 = icmp eq i32 %3005, -1
  br i1 %3006, label %3007, label %3029

3007:                                             ; preds = %3002
  %3008 = load i32, ptr %450, align 4, !tbaa !5
  %3009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3010 = call i32 @s2n_print_stacktrace(ptr noundef %3009) #12
  %3011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3012 = trunc nuw i8 %3011 to i1
  br i1 %3012, label %3013, label %3017

3013:                                             ; preds = %3007
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = call i32 @fileno(ptr noundef %3014) #12
  %3016 = call i32 @isatty(i32 noundef %3015) #12
  %.not668 = icmp eq i32 %3016, 0
  br i1 %.not668, label %3017, label %3018

3017:                                             ; preds = %3013, %3007
  br label %3018

3018:                                             ; preds = %3013, %3017
  %.str.25.sink1638 = phi ptr [ @.str.25, %3017 ], [ @.str.22, %3013 ]
  store i32 %3008, ptr %450, align 4, !tbaa !5
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = load i32, ptr @test_count, align 4, !tbaa !5
  %3021 = load i32, ptr %396, align 4, !tbaa !5
  %3022 = call ptr @s2n_strerror(i32 noundef %3021, ptr noundef nonnull @.str.24) #12
  %3023 = load i32, ptr %396, align 4, !tbaa !5
  %3024 = call ptr @s2n_strerror_debug(i32 noundef %3023, ptr noundef nonnull @.str.24) #12
  %3025 = load i32, ptr %450, align 4, !tbaa !5
  %3026 = call ptr @strerror(i32 noundef %3025) #12
  %3027 = load i32, ptr %450, align 4, !tbaa !5
  %3028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3019, ptr noundef nonnull %.str.25.sink1638, i32 noundef %3020, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.21, i32 noundef 423, ptr noundef %3022, ptr noundef %3024, ptr noundef %3026, i32 noundef %3027) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3029:                                             ; preds = %3002
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %70) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %70, i8 0, i64 56, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %71) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %71, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #12
  store i8 0, ptr %72, align 1, !tbaa !60
  %3030 = load i32, ptr @test_count, align 4, !tbaa !5
  %3031 = add nsw i32 %3030, 1
  store i32 %3031, ptr @test_count, align 4, !tbaa !5
  %3032 = load i32, ptr %69, align 4, !tbaa !5
  %3033 = call i32 @s2n_hash_digest_size(i32 noundef %3032, ptr noundef nonnull %72) #12
  %3034 = icmp eq i32 %3033, -1
  br i1 %3034, label %3035, label %3057

3035:                                             ; preds = %3029
  %3036 = load i32, ptr %450, align 4, !tbaa !5
  %3037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3038 = call i32 @s2n_print_stacktrace(ptr noundef %3037) #12
  %3039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3040 = trunc nuw i8 %3039 to i1
  br i1 %3040, label %3041, label %3045

3041:                                             ; preds = %3035
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3043 = call i32 @fileno(ptr noundef %3042) #12
  %3044 = call i32 @isatty(i32 noundef %3043) #12
  %.not667 = icmp eq i32 %3044, 0
  br i1 %.not667, label %3045, label %3046

3045:                                             ; preds = %3041, %3035
  br label %3046

3046:                                             ; preds = %3041, %3045
  %.str.25.sink1647 = phi ptr [ @.str.25, %3045 ], [ @.str.22, %3041 ]
  store i32 %3036, ptr %450, align 4, !tbaa !5
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = load i32, ptr @test_count, align 4, !tbaa !5
  %3049 = load i32, ptr %396, align 4, !tbaa !5
  %3050 = call ptr @s2n_strerror(i32 noundef %3049, ptr noundef nonnull @.str.24) #12
  %3051 = load i32, ptr %396, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror_debug(i32 noundef %3051, ptr noundef nonnull @.str.24) #12
  %3053 = load i32, ptr %450, align 4, !tbaa !5
  %3054 = call ptr @strerror(i32 noundef %3053) #12
  %3055 = load i32, ptr %450, align 4, !tbaa !5
  %3056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3047, ptr noundef nonnull %.str.25.sink1647, i32 noundef %3048, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.21, i32 noundef 429, ptr noundef %3050, ptr noundef %3052, ptr noundef %3054, i32 noundef %3055) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3057:                                             ; preds = %3029
  %3058 = load i32, ptr @test_count, align 4, !tbaa !5
  %3059 = add nsw i32 %3058, 1
  store i32 %3059, ptr @test_count, align 4, !tbaa !5
  %3060 = call i32 @s2n_hash_new(ptr noundef nonnull %70) #12
  %3061 = icmp eq i32 %3060, -1
  br i1 %3061, label %3062, label %3084

3062:                                             ; preds = %3057
  %3063 = load i32, ptr %450, align 4, !tbaa !5
  %3064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3065 = call i32 @s2n_print_stacktrace(ptr noundef %3064) #12
  %3066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3067 = trunc nuw i8 %3066 to i1
  br i1 %3067, label %3068, label %3072

3068:                                             ; preds = %3062
  %3069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3070 = call i32 @fileno(ptr noundef %3069) #12
  %3071 = call i32 @isatty(i32 noundef %3070) #12
  %.not666 = icmp eq i32 %3071, 0
  br i1 %.not666, label %3072, label %3073

3072:                                             ; preds = %3068, %3062
  br label %3073

3073:                                             ; preds = %3068, %3072
  %.str.25.sink1656 = phi ptr [ @.str.25, %3072 ], [ @.str.22, %3068 ]
  store i32 %3063, ptr %450, align 4, !tbaa !5
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = load i32, ptr @test_count, align 4, !tbaa !5
  %3076 = load i32, ptr %396, align 4, !tbaa !5
  %3077 = call ptr @s2n_strerror(i32 noundef %3076, ptr noundef nonnull @.str.24) #12
  %3078 = load i32, ptr %396, align 4, !tbaa !5
  %3079 = call ptr @s2n_strerror_debug(i32 noundef %3078, ptr noundef nonnull @.str.24) #12
  %3080 = load i32, ptr %450, align 4, !tbaa !5
  %3081 = call ptr @strerror(i32 noundef %3080) #12
  %3082 = load i32, ptr %450, align 4, !tbaa !5
  %3083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3074, ptr noundef nonnull %.str.25.sink1656, i32 noundef %3075, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.21, i32 noundef 430, ptr noundef %3077, ptr noundef %3079, ptr noundef %3081, i32 noundef %3082) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3084:                                             ; preds = %3057
  %3085 = load i32, ptr @test_count, align 4, !tbaa !5
  %3086 = add nsw i32 %3085, 1
  store i32 %3086, ptr @test_count, align 4, !tbaa !5
  %3087 = load i32, ptr %69, align 4, !tbaa !5
  %3088 = call i32 @s2n_handshake_copy_hash_state(ptr noundef nonnull %2609, i32 noundef %3087, ptr noundef nonnull %70) #12
  %3089 = call zeroext i1 @s2n_result_is_ok(i32 %3088)
  br i1 %3089, label %3112, label %3090

3090:                                             ; preds = %3084
  %3091 = load i32, ptr %450, align 4, !tbaa !5
  %3092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3093 = call i32 @s2n_print_stacktrace(ptr noundef %3092) #12
  %3094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3095 = trunc nuw i8 %3094 to i1
  br i1 %3095, label %3096, label %3100

3096:                                             ; preds = %3090
  %3097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3098 = call i32 @fileno(ptr noundef %3097) #12
  %3099 = call i32 @isatty(i32 noundef %3098) #12
  %.not600 = icmp eq i32 %3099, 0
  br i1 %.not600, label %3100, label %3101

3100:                                             ; preds = %3096, %3090
  br label %3101

3101:                                             ; preds = %3096, %3100
  %.str.25.sink1665 = phi ptr [ @.str.25, %3100 ], [ @.str.22, %3096 ]
  store i32 %3091, ptr %450, align 4, !tbaa !5
  %3102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3103 = load i32, ptr @test_count, align 4, !tbaa !5
  %3104 = load i32, ptr %396, align 4, !tbaa !5
  %3105 = call ptr @s2n_strerror(i32 noundef %3104, ptr noundef nonnull @.str.24) #12
  %3106 = load i32, ptr %396, align 4, !tbaa !5
  %3107 = call ptr @s2n_strerror_debug(i32 noundef %3106, ptr noundef nonnull @.str.24) #12
  %3108 = load i32, ptr %450, align 4, !tbaa !5
  %3109 = call ptr @strerror(i32 noundef %3108) #12
  %3110 = load i32, ptr %450, align 4, !tbaa !5
  %3111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3102, ptr noundef nonnull %.str.25.sink1665, i32 noundef %3103, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.21, i32 noundef 431, ptr noundef %3105, ptr noundef %3107, ptr noundef %3109, i32 noundef %3110) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3112:                                             ; preds = %3084
  %3113 = load i32, ptr @test_count, align 4, !tbaa !5
  %3114 = add nsw i32 %3113, 1
  store i32 %3114, ptr @test_count, align 4, !tbaa !5
  %3115 = load i8, ptr %72, align 1, !tbaa !60
  %3116 = zext i8 %3115 to i32
  %3117 = call i32 @s2n_hash_digest(ptr noundef nonnull %70, ptr noundef nonnull %71, i32 noundef %3116) #12
  %3118 = icmp eq i32 %3117, -1
  br i1 %3118, label %3119, label %3141

3119:                                             ; preds = %3112
  %3120 = load i32, ptr %450, align 4, !tbaa !5
  %3121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3122 = call i32 @s2n_print_stacktrace(ptr noundef %3121) #12
  %3123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3124 = trunc nuw i8 %3123 to i1
  br i1 %3124, label %3125, label %3129

3125:                                             ; preds = %3119
  %3126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3127 = call i32 @fileno(ptr noundef %3126) #12
  %3128 = call i32 @isatty(i32 noundef %3127) #12
  %.not665 = icmp eq i32 %3128, 0
  br i1 %.not665, label %3129, label %3130

3129:                                             ; preds = %3125, %3119
  br label %3130

3130:                                             ; preds = %3125, %3129
  %.str.25.sink1674 = phi ptr [ @.str.25, %3129 ], [ @.str.22, %3125 ]
  store i32 %3120, ptr %450, align 4, !tbaa !5
  %3131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3132 = load i32, ptr @test_count, align 4, !tbaa !5
  %3133 = load i32, ptr %396, align 4, !tbaa !5
  %3134 = call ptr @s2n_strerror(i32 noundef %3133, ptr noundef nonnull @.str.24) #12
  %3135 = load i32, ptr %396, align 4, !tbaa !5
  %3136 = call ptr @s2n_strerror_debug(i32 noundef %3135, ptr noundef nonnull @.str.24) #12
  %3137 = load i32, ptr %450, align 4, !tbaa !5
  %3138 = call ptr @strerror(i32 noundef %3137) #12
  %3139 = load i32, ptr %450, align 4, !tbaa !5
  %3140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3131, ptr noundef nonnull %.str.25.sink1674, i32 noundef %3132, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.21, i32 noundef 432, ptr noundef %3134, ptr noundef %3136, ptr noundef %3138, i32 noundef %3139) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3141:                                             ; preds = %3112
  %3142 = load i8, ptr %72, align 1, !tbaa !60
  %.not601 = icmp eq i8 %3142, 0
  %.pre745 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not601, label %3170, label %3143

3143:                                             ; preds = %3141
  %3144 = add nsw i32 %.pre745, 1
  store i32 %3144, ptr @test_count, align 4, !tbaa !5
  %3145 = load ptr, ptr %67, align 8, !tbaa !43
  %3146 = zext i8 %3142 to i64
  %bcmp602 = call i32 @bcmp(ptr nonnull %71, ptr %3145, i64 %3146)
  %3147 = icmp eq i32 %bcmp602, 0
  br i1 %3147, label %3170, label %3148

3148:                                             ; preds = %3143
  %3149 = load i32, ptr %450, align 4, !tbaa !5
  %3150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3151 = call i32 @s2n_print_stacktrace(ptr noundef %3150) #12
  %3152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3153 = trunc nuw i8 %3152 to i1
  br i1 %3153, label %3154, label %3158

3154:                                             ; preds = %3148
  %3155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3156 = call i32 @fileno(ptr noundef %3155) #12
  %3157 = call i32 @isatty(i32 noundef %3156) #12
  %.not603 = icmp eq i32 %3157, 0
  br i1 %.not603, label %3158, label %3159

3158:                                             ; preds = %3154, %3148
  br label %3159

3159:                                             ; preds = %3154, %3158
  %.str.25.sink1683 = phi ptr [ @.str.25, %3158 ], [ @.str.22, %3154 ]
  store i32 %3149, ptr %450, align 4, !tbaa !5
  %3160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3161 = load i32, ptr @test_count, align 4, !tbaa !5
  %3162 = load i32, ptr %396, align 4, !tbaa !5
  %3163 = call ptr @s2n_strerror(i32 noundef %3162, ptr noundef nonnull @.str.24) #12
  %3164 = load i32, ptr %396, align 4, !tbaa !5
  %3165 = call ptr @s2n_strerror_debug(i32 noundef %3164, ptr noundef nonnull @.str.24) #12
  %3166 = load i32, ptr %450, align 4, !tbaa !5
  %3167 = call ptr @strerror(i32 noundef %3166) #12
  %3168 = load i32, ptr %450, align 4, !tbaa !5
  %3169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3160, ptr noundef nonnull %.str.25.sink1683, i32 noundef %3161, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.21, i32 noundef 436, ptr noundef %3163, ptr noundef %3165, ptr noundef %3167, i32 noundef %3168) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3170:                                             ; preds = %3141, %3143
  %3171 = phi i32 [ %.pre745, %3141 ], [ %3144, %3143 ]
  %3172 = add nsw i32 %3171, 1
  store i32 %3172, ptr @test_count, align 4, !tbaa !5
  %3173 = call i32 @s2n_connection_free(ptr noundef nonnull %2582) #12
  %3174 = icmp eq i32 %3173, -1
  br i1 %3174, label %3175, label %3197

3175:                                             ; preds = %3170
  %3176 = load i32, ptr %450, align 4, !tbaa !5
  %3177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3178 = call i32 @s2n_print_stacktrace(ptr noundef %3177) #12
  %3179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3180 = trunc nuw i8 %3179 to i1
  br i1 %3180, label %3181, label %3185

3181:                                             ; preds = %3175
  %3182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3183 = call i32 @fileno(ptr noundef %3182) #12
  %3184 = call i32 @isatty(i32 noundef %3183) #12
  %.not664 = icmp eq i32 %3184, 0
  br i1 %.not664, label %3185, label %3186

3185:                                             ; preds = %3181, %3175
  br label %3186

3186:                                             ; preds = %3181, %3185
  %.str.25.sink1692 = phi ptr [ @.str.25, %3185 ], [ @.str.22, %3181 ]
  store i32 %3176, ptr %450, align 4, !tbaa !5
  %3187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3188 = load i32, ptr @test_count, align 4, !tbaa !5
  %3189 = load i32, ptr %396, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror(i32 noundef %3189, ptr noundef nonnull @.str.24) #12
  %3191 = load i32, ptr %396, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror_debug(i32 noundef %3191, ptr noundef nonnull @.str.24) #12
  %3193 = load i32, ptr %450, align 4, !tbaa !5
  %3194 = call ptr @strerror(i32 noundef %3193) #12
  %3195 = load i32, ptr %450, align 4, !tbaa !5
  %3196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3187, ptr noundef nonnull %.str.25.sink1692, i32 noundef %3188, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.21, i32 noundef 438, ptr noundef %3190, ptr noundef %3192, ptr noundef %3194, i32 noundef %3195) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3197:                                             ; preds = %3170
  %3198 = load i32, ptr @test_count, align 4, !tbaa !5
  %3199 = add nsw i32 %3198, 1
  store i32 %3199, ptr @test_count, align 4, !tbaa !5
  %3200 = call i32 @s2n_connection_free(ptr noundef nonnull %2609) #12
  %3201 = icmp eq i32 %3200, -1
  br i1 %3201, label %3202, label %3224

3202:                                             ; preds = %3197
  %3203 = load i32, ptr %450, align 4, !tbaa !5
  %3204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3205 = call i32 @s2n_print_stacktrace(ptr noundef %3204) #12
  %3206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3207 = trunc nuw i8 %3206 to i1
  br i1 %3207, label %3208, label %3212

3208:                                             ; preds = %3202
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3210 = call i32 @fileno(ptr noundef %3209) #12
  %3211 = call i32 @isatty(i32 noundef %3210) #12
  %.not663 = icmp eq i32 %3211, 0
  br i1 %.not663, label %3212, label %3213

3212:                                             ; preds = %3208, %3202
  br label %3213

3213:                                             ; preds = %3208, %3212
  %.str.25.sink1701 = phi ptr [ @.str.25, %3212 ], [ @.str.22, %3208 ]
  store i32 %3203, ptr %450, align 4, !tbaa !5
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = load i32, ptr @test_count, align 4, !tbaa !5
  %3216 = load i32, ptr %396, align 4, !tbaa !5
  %3217 = call ptr @s2n_strerror(i32 noundef %3216, ptr noundef nonnull @.str.24) #12
  %3218 = load i32, ptr %396, align 4, !tbaa !5
  %3219 = call ptr @s2n_strerror_debug(i32 noundef %3218, ptr noundef nonnull @.str.24) #12
  %3220 = load i32, ptr %450, align 4, !tbaa !5
  %3221 = call ptr @strerror(i32 noundef %3220) #12
  %3222 = load i32, ptr %450, align 4, !tbaa !5
  %3223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3214, ptr noundef nonnull %.str.25.sink1701, i32 noundef %3215, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.21, i32 noundef 439, ptr noundef %3217, ptr noundef %3219, ptr noundef %3221, i32 noundef %3222) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3224:                                             ; preds = %3197
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = add nsw i32 %3225, 1
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = call i32 @s2n_config_free(ptr noundef %2499) #12
  %3228 = icmp eq i32 %3227, -1
  br i1 %3228, label %3229, label %3251

3229:                                             ; preds = %3224
  %3230 = load i32, ptr %450, align 4, !tbaa !5
  %3231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3232 = call i32 @s2n_print_stacktrace(ptr noundef %3231) #12
  %3233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3234 = trunc nuw i8 %3233 to i1
  br i1 %3234, label %3235, label %3239

3235:                                             ; preds = %3229
  %3236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3237 = call i32 @fileno(ptr noundef %3236) #12
  %3238 = call i32 @isatty(i32 noundef %3237) #12
  %.not662 = icmp eq i32 %3238, 0
  br i1 %.not662, label %3239, label %3240

3239:                                             ; preds = %3235, %3229
  br label %3240

3240:                                             ; preds = %3235, %3239
  %.str.25.sink1710 = phi ptr [ @.str.25, %3239 ], [ @.str.22, %3235 ]
  store i32 %3230, ptr %450, align 4, !tbaa !5
  %3241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3242 = load i32, ptr @test_count, align 4, !tbaa !5
  %3243 = load i32, ptr %396, align 4, !tbaa !5
  %3244 = call ptr @s2n_strerror(i32 noundef %3243, ptr noundef nonnull @.str.24) #12
  %3245 = load i32, ptr %396, align 4, !tbaa !5
  %3246 = call ptr @s2n_strerror_debug(i32 noundef %3245, ptr noundef nonnull @.str.24) #12
  %3247 = load i32, ptr %450, align 4, !tbaa !5
  %3248 = call ptr @strerror(i32 noundef %3247) #12
  %3249 = load i32, ptr %450, align 4, !tbaa !5
  %3250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3241, ptr noundef nonnull %.str.25.sink1710, i32 noundef %3242, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.21, i32 noundef 441, ptr noundef %3244, ptr noundef %3246, ptr noundef %3248, i32 noundef %3249) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3251:                                             ; preds = %3224
  %3252 = load i32, ptr @test_count, align 4, !tbaa !5
  %3253 = add nsw i32 %3252, 1
  store i32 %3253, ptr @test_count, align 4, !tbaa !5
  %3254 = load ptr, ptr %63, align 8, !tbaa !9
  %3255 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %3254) #12
  %3256 = icmp eq i32 %3255, -1
  br i1 %3256, label %3257, label %3279

3257:                                             ; preds = %3251
  %3258 = load i32, ptr %450, align 4, !tbaa !5
  %3259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3260 = call i32 @s2n_print_stacktrace(ptr noundef %3259) #12
  %3261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3262 = trunc nuw i8 %3261 to i1
  br i1 %3262, label %3263, label %3267

3263:                                             ; preds = %3257
  %3264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3265 = call i32 @fileno(ptr noundef %3264) #12
  %3266 = call i32 @isatty(i32 noundef %3265) #12
  %.not661 = icmp eq i32 %3266, 0
  br i1 %.not661, label %3267, label %3268

3267:                                             ; preds = %3263, %3257
  br label %3268

3268:                                             ; preds = %3263, %3267
  %.str.25.sink1719 = phi ptr [ @.str.25, %3267 ], [ @.str.22, %3263 ]
  store i32 %3258, ptr %450, align 4, !tbaa !5
  %3269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = load i32, ptr %396, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror(i32 noundef %3271, ptr noundef nonnull @.str.24) #12
  %3273 = load i32, ptr %396, align 4, !tbaa !5
  %3274 = call ptr @s2n_strerror_debug(i32 noundef %3273, ptr noundef nonnull @.str.24) #12
  %3275 = load i32, ptr %450, align 4, !tbaa !5
  %3276 = call ptr @strerror(i32 noundef %3275) #12
  %3277 = load i32, ptr %450, align 4, !tbaa !5
  %3278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3269, ptr noundef nonnull %.str.25.sink1719, i32 noundef %3270, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.21, i32 noundef 442, ptr noundef %3272, ptr noundef %3274, ptr noundef %3276, i32 noundef %3277) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3279:                                             ; preds = %3251
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %71) #12
  %3280 = call i32 @s2n_hash_free(ptr noundef nonnull %70) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %70) #12
  br label %3281

3281:                                             ; preds = %2938, %3279
  %.30 = phi i32 [ %.28, %3279 ], [ -1, %2938 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %69) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %68) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %67) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %66) #12
  %3282 = call i32 @s2n_stuffer_free(ptr noundef nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %65) #12
  %3283 = call i32 @s2n_stuffer_free(ptr noundef nonnull %64) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %64) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  br i1 %2945, label %3284, label %4467

3284:                                             ; preds = %3281
  %3285 = load i32, ptr @test_count, align 4, !tbaa !5
  %3286 = add nsw i32 %3285, 1
  store i32 %3286, ptr @test_count, align 4, !tbaa !5
  %3287 = call i32 @s2n_prf_new(ptr noundef null) #12
  %3288 = call zeroext i1 @s2n_result_is_error(i32 %3287)
  br i1 %3288, label %3311, label %3289

3289:                                             ; preds = %3284
  %3290 = load i32, ptr %450, align 4, !tbaa !5
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = call i32 @s2n_print_stacktrace(ptr noundef %3291) #12
  %3293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3294 = trunc nuw i8 %3293 to i1
  br i1 %3294, label %3295, label %3299

3295:                                             ; preds = %3289
  %3296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3297 = call i32 @fileno(ptr noundef %3296) #12
  %3298 = call i32 @isatty(i32 noundef %3297) #12
  %.not604 = icmp eq i32 %3298, 0
  br i1 %.not604, label %3299, label %3300

3299:                                             ; preds = %3295, %3289
  br label %3300

3300:                                             ; preds = %3295, %3299
  %.str.25.sink1728 = phi ptr [ @.str.25, %3299 ], [ @.str.22, %3295 ]
  store i32 %3290, ptr %450, align 4, !tbaa !5
  %3301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3302 = load i32, ptr @test_count, align 4, !tbaa !5
  %3303 = load i32, ptr %396, align 4, !tbaa !5
  %3304 = call ptr @s2n_strerror(i32 noundef %3303, ptr noundef nonnull @.str.24) #12
  %3305 = load i32, ptr %396, align 4, !tbaa !5
  %3306 = call ptr @s2n_strerror_debug(i32 noundef %3305, ptr noundef nonnull @.str.24) #12
  %3307 = load i32, ptr %450, align 4, !tbaa !5
  %3308 = call ptr @strerror(i32 noundef %3307) #12
  %3309 = load i32, ptr %450, align 4, !tbaa !5
  %3310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3301, ptr noundef nonnull %.str.25.sink1728, i32 noundef %3302, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.21, i32 noundef 449, ptr noundef %3304, ptr noundef %3306, ptr noundef %3308, i32 noundef %3309) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3311:                                             ; preds = %3284
  %3312 = load i32, ptr @test_count, align 4, !tbaa !5
  %3313 = add nsw i32 %3312, 1
  store i32 %3313, ptr @test_count, align 4, !tbaa !5
  %3314 = load i32, ptr %396, align 4, !tbaa !5
  %3315 = icmp eq i32 %3314, 402653193
  br i1 %3315, label %3338, label %3316

3316:                                             ; preds = %3311
  %3317 = load i32, ptr %450, align 4, !tbaa !5
  %3318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3319 = call i32 @s2n_print_stacktrace(ptr noundef %3318) #12
  %3320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3321 = trunc nuw i8 %3320 to i1
  br i1 %3321, label %3322, label %3326

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

3326:                                             ; preds = %3322, %3316
  br label %3327

3327:                                             ; preds = %3322, %3326
  %.str.25.sink1737 = phi ptr [ @.str.25, %3326 ], [ @.str.22, %3322 ]
  store i32 %3317, ptr %450, align 4, !tbaa !5
  %3328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3329 = load i32, ptr @test_count, align 4, !tbaa !5
  %3330 = load i32, ptr %396, align 4, !tbaa !5
  %3331 = call ptr @s2n_strerror(i32 noundef %3330, ptr noundef nonnull @.str.24) #12
  %3332 = load i32, ptr %396, align 4, !tbaa !5
  %3333 = call ptr @s2n_strerror_debug(i32 noundef %3332, ptr noundef nonnull @.str.24) #12
  %3334 = load i32, ptr %450, align 4, !tbaa !5
  %3335 = call ptr @strerror(i32 noundef %3334) #12
  %3336 = load i32, ptr %450, align 4, !tbaa !5
  %3337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3328, ptr noundef nonnull %.str.25.sink1737, i32 noundef %3329, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 449, ptr noundef %3331, ptr noundef %3333, ptr noundef %3335, i32 noundef %3336) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3338:                                             ; preds = %3311
  %3339 = add nsw i32 %3312, 2
  store i32 %3339, ptr @test_count, align 4, !tbaa !5
  %3340 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.24) #12
  %3341 = icmp eq ptr %3340, null
  br i1 %3341, label %3342, label %3364

3342:                                             ; preds = %3338
  %3343 = load i32, ptr %450, align 4, !tbaa !5
  %3344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3345 = call i32 @s2n_print_stacktrace(ptr noundef %3344) #12
  %3346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3347 = trunc nuw i8 %3346 to i1
  br i1 %3347, label %3348, label %3352

3348:                                             ; preds = %3342
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = call i32 @fileno(ptr noundef %3349) #12
  %3351 = call i32 @isatty(i32 noundef %3350) #12
  %.not660 = icmp eq i32 %3351, 0
  br i1 %.not660, label %3352, label %3353

3352:                                             ; preds = %3348, %3342
  br label %3353

3353:                                             ; preds = %3348, %3352
  %.str.25.sink1746 = phi ptr [ @.str.25, %3352 ], [ @.str.22, %3348 ]
  store i32 %3343, ptr %450, align 4, !tbaa !5
  %3354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3355 = load i32, ptr @test_count, align 4, !tbaa !5
  %3356 = load i32, ptr %396, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror(i32 noundef %3356, ptr noundef nonnull @.str.24) #12
  %3358 = load i32, ptr %396, align 4, !tbaa !5
  %3359 = call ptr @s2n_strerror_debug(i32 noundef %3358, ptr noundef nonnull @.str.24) #12
  %3360 = load i32, ptr %450, align 4, !tbaa !5
  %3361 = call ptr @strerror(i32 noundef %3360) #12
  %3362 = load i32, ptr %450, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3354, ptr noundef nonnull %.str.25.sink1746, i32 noundef %3355, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 449, ptr noundef %3357, ptr noundef %3359, ptr noundef %3361, i32 noundef %3362) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3364:                                             ; preds = %3338
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %3365 = load i32, ptr @test_count, align 4, !tbaa !5
  %3366 = add nsw i32 %3365, 1
  store i32 %3366, ptr @test_count, align 4, !tbaa !5
  %3367 = call i32 @s2n_prf_wipe(ptr noundef null) #12
  %3368 = call zeroext i1 @s2n_result_is_error(i32 %3367)
  br i1 %3368, label %3391, label %3369

3369:                                             ; preds = %3364
  %3370 = load i32, ptr %450, align 4, !tbaa !5
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3372 = call i32 @s2n_print_stacktrace(ptr noundef %3371) #12
  %3373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3374 = trunc nuw i8 %3373 to i1
  br i1 %3374, label %3375, label %3379

3375:                                             ; preds = %3369
  %3376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3377 = call i32 @fileno(ptr noundef %3376) #12
  %3378 = call i32 @isatty(i32 noundef %3377) #12
  %.not606 = icmp eq i32 %3378, 0
  br i1 %.not606, label %3379, label %3380

3379:                                             ; preds = %3375, %3369
  br label %3380

3380:                                             ; preds = %3375, %3379
  %.str.25.sink1755 = phi ptr [ @.str.25, %3379 ], [ @.str.22, %3375 ]
  store i32 %3370, ptr %450, align 4, !tbaa !5
  %3381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3382 = load i32, ptr @test_count, align 4, !tbaa !5
  %3383 = load i32, ptr %396, align 4, !tbaa !5
  %3384 = call ptr @s2n_strerror(i32 noundef %3383, ptr noundef nonnull @.str.24) #12
  %3385 = load i32, ptr %396, align 4, !tbaa !5
  %3386 = call ptr @s2n_strerror_debug(i32 noundef %3385, ptr noundef nonnull @.str.24) #12
  %3387 = load i32, ptr %450, align 4, !tbaa !5
  %3388 = call ptr @strerror(i32 noundef %3387) #12
  %3389 = load i32, ptr %450, align 4, !tbaa !5
  %3390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3381, ptr noundef nonnull %.str.25.sink1755, i32 noundef %3382, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.21, i32 noundef 450, ptr noundef %3384, ptr noundef %3386, ptr noundef %3388, i32 noundef %3389) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3391:                                             ; preds = %3364
  %3392 = load i32, ptr @test_count, align 4, !tbaa !5
  %3393 = add nsw i32 %3392, 1
  store i32 %3393, ptr @test_count, align 4, !tbaa !5
  %3394 = load i32, ptr %396, align 4, !tbaa !5
  %3395 = icmp eq i32 %3394, 402653193
  br i1 %3395, label %3418, label %3396

3396:                                             ; preds = %3391
  %3397 = load i32, ptr %450, align 4, !tbaa !5
  %3398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3399 = call i32 @s2n_print_stacktrace(ptr noundef %3398) #12
  %3400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3401 = trunc nuw i8 %3400 to i1
  br i1 %3401, label %3402, label %3406

3402:                                             ; preds = %3396
  %3403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3404 = call i32 @fileno(ptr noundef %3403) #12
  %3405 = call i32 @isatty(i32 noundef %3404) #12
  %.not607 = icmp eq i32 %3405, 0
  br i1 %.not607, label %3406, label %3407

3406:                                             ; preds = %3402, %3396
  br label %3407

3407:                                             ; preds = %3402, %3406
  %.str.25.sink1764 = phi ptr [ @.str.25, %3406 ], [ @.str.22, %3402 ]
  store i32 %3397, ptr %450, align 4, !tbaa !5
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = load i32, ptr @test_count, align 4, !tbaa !5
  %3410 = load i32, ptr %396, align 4, !tbaa !5
  %3411 = call ptr @s2n_strerror(i32 noundef %3410, ptr noundef nonnull @.str.24) #12
  %3412 = load i32, ptr %396, align 4, !tbaa !5
  %3413 = call ptr @s2n_strerror_debug(i32 noundef %3412, ptr noundef nonnull @.str.24) #12
  %3414 = load i32, ptr %450, align 4, !tbaa !5
  %3415 = call ptr @strerror(i32 noundef %3414) #12
  %3416 = load i32, ptr %450, align 4, !tbaa !5
  %3417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3408, ptr noundef nonnull %.str.25.sink1764, i32 noundef %3409, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 450, ptr noundef %3411, ptr noundef %3413, ptr noundef %3415, i32 noundef %3416) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3418:                                             ; preds = %3391
  %3419 = add nsw i32 %3392, 2
  store i32 %3419, ptr @test_count, align 4, !tbaa !5
  %3420 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.24) #12
  %3421 = icmp eq ptr %3420, null
  br i1 %3421, label %3422, label %3444

3422:                                             ; preds = %3418
  %3423 = load i32, ptr %450, align 4, !tbaa !5
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = call i32 @s2n_print_stacktrace(ptr noundef %3424) #12
  %3426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3427 = trunc nuw i8 %3426 to i1
  br i1 %3427, label %3428, label %3432

3428:                                             ; preds = %3422
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = call i32 @fileno(ptr noundef %3429) #12
  %3431 = call i32 @isatty(i32 noundef %3430) #12
  %.not659 = icmp eq i32 %3431, 0
  br i1 %.not659, label %3432, label %3433

3432:                                             ; preds = %3428, %3422
  br label %3433

3433:                                             ; preds = %3428, %3432
  %.str.25.sink1773 = phi ptr [ @.str.25, %3432 ], [ @.str.22, %3428 ]
  store i32 %3423, ptr %450, align 4, !tbaa !5
  %3434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3435 = load i32, ptr @test_count, align 4, !tbaa !5
  %3436 = load i32, ptr %396, align 4, !tbaa !5
  %3437 = call ptr @s2n_strerror(i32 noundef %3436, ptr noundef nonnull @.str.24) #12
  %3438 = load i32, ptr %396, align 4, !tbaa !5
  %3439 = call ptr @s2n_strerror_debug(i32 noundef %3438, ptr noundef nonnull @.str.24) #12
  %3440 = load i32, ptr %450, align 4, !tbaa !5
  %3441 = call ptr @strerror(i32 noundef %3440) #12
  %3442 = load i32, ptr %450, align 4, !tbaa !5
  %3443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3434, ptr noundef nonnull %.str.25.sink1773, i32 noundef %3435, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 450, ptr noundef %3437, ptr noundef %3439, ptr noundef %3441, i32 noundef %3442) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3444:                                             ; preds = %3418
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %3445 = load i32, ptr @test_count, align 4, !tbaa !5
  %3446 = add nsw i32 %3445, 1
  store i32 %3446, ptr @test_count, align 4, !tbaa !5
  %3447 = call i32 @s2n_prf_free(ptr noundef null) #12
  %3448 = call zeroext i1 @s2n_result_is_error(i32 %3447)
  br i1 %3448, label %3471, label %3449

3449:                                             ; preds = %3444
  %3450 = load i32, ptr %450, align 4, !tbaa !5
  %3451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3452 = call i32 @s2n_print_stacktrace(ptr noundef %3451) #12
  %3453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3454 = trunc nuw i8 %3453 to i1
  br i1 %3454, label %3455, label %3459

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

3459:                                             ; preds = %3455, %3449
  br label %3460

3460:                                             ; preds = %3455, %3459
  %.str.25.sink1782 = phi ptr [ @.str.25, %3459 ], [ @.str.22, %3455 ]
  store i32 %3450, ptr %450, align 4, !tbaa !5
  %3461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3462 = load i32, ptr @test_count, align 4, !tbaa !5
  %3463 = load i32, ptr %396, align 4, !tbaa !5
  %3464 = call ptr @s2n_strerror(i32 noundef %3463, ptr noundef nonnull @.str.24) #12
  %3465 = load i32, ptr %396, align 4, !tbaa !5
  %3466 = call ptr @s2n_strerror_debug(i32 noundef %3465, ptr noundef nonnull @.str.24) #12
  %3467 = load i32, ptr %450, align 4, !tbaa !5
  %3468 = call ptr @strerror(i32 noundef %3467) #12
  %3469 = load i32, ptr %450, align 4, !tbaa !5
  %3470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3461, ptr noundef nonnull %.str.25.sink1782, i32 noundef %3462, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.21, i32 noundef 451, ptr noundef %3464, ptr noundef %3466, ptr noundef %3468, i32 noundef %3469) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3471:                                             ; preds = %3444
  %3472 = load i32, ptr @test_count, align 4, !tbaa !5
  %3473 = add nsw i32 %3472, 1
  store i32 %3473, ptr @test_count, align 4, !tbaa !5
  %3474 = load i32, ptr %396, align 4, !tbaa !5
  %3475 = icmp eq i32 %3474, 402653193
  br i1 %3475, label %3498, label %3476

3476:                                             ; preds = %3471
  %3477 = load i32, ptr %450, align 4, !tbaa !5
  %3478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3479 = call i32 @s2n_print_stacktrace(ptr noundef %3478) #12
  %3480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3481 = trunc nuw i8 %3480 to i1
  br i1 %3481, label %3482, label %3486

3482:                                             ; preds = %3476
  %3483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3484 = call i32 @fileno(ptr noundef %3483) #12
  %3485 = call i32 @isatty(i32 noundef %3484) #12
  %.not609 = icmp eq i32 %3485, 0
  br i1 %.not609, label %3486, label %3487

3486:                                             ; preds = %3482, %3476
  br label %3487

3487:                                             ; preds = %3482, %3486
  %.str.25.sink1791 = phi ptr [ @.str.25, %3486 ], [ @.str.22, %3482 ]
  store i32 %3477, ptr %450, align 4, !tbaa !5
  %3488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3489 = load i32, ptr @test_count, align 4, !tbaa !5
  %3490 = load i32, ptr %396, align 4, !tbaa !5
  %3491 = call ptr @s2n_strerror(i32 noundef %3490, ptr noundef nonnull @.str.24) #12
  %3492 = load i32, ptr %396, align 4, !tbaa !5
  %3493 = call ptr @s2n_strerror_debug(i32 noundef %3492, ptr noundef nonnull @.str.24) #12
  %3494 = load i32, ptr %450, align 4, !tbaa !5
  %3495 = call ptr @strerror(i32 noundef %3494) #12
  %3496 = load i32, ptr %450, align 4, !tbaa !5
  %3497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3488, ptr noundef nonnull %.str.25.sink1791, i32 noundef %3489, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 451, ptr noundef %3491, ptr noundef %3493, ptr noundef %3495, i32 noundef %3496) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3498:                                             ; preds = %3471
  %3499 = add nsw i32 %3472, 2
  store i32 %3499, ptr @test_count, align 4, !tbaa !5
  %3500 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.24) #12
  %3501 = icmp eq ptr %3500, null
  br i1 %3501, label %3502, label %3524

3502:                                             ; preds = %3498
  %3503 = load i32, ptr %450, align 4, !tbaa !5
  %3504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3505 = call i32 @s2n_print_stacktrace(ptr noundef %3504) #12
  %3506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3507 = trunc nuw i8 %3506 to i1
  br i1 %3507, label %3508, label %3512

3508:                                             ; preds = %3502
  %3509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3510 = call i32 @fileno(ptr noundef %3509) #12
  %3511 = call i32 @isatty(i32 noundef %3510) #12
  %.not658 = icmp eq i32 %3511, 0
  br i1 %.not658, label %3512, label %3513

3512:                                             ; preds = %3508, %3502
  br label %3513

3513:                                             ; preds = %3508, %3512
  %.str.25.sink1800 = phi ptr [ @.str.25, %3512 ], [ @.str.22, %3508 ]
  store i32 %3503, ptr %450, align 4, !tbaa !5
  %3514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3515 = load i32, ptr @test_count, align 4, !tbaa !5
  %3516 = load i32, ptr %396, align 4, !tbaa !5
  %3517 = call ptr @s2n_strerror(i32 noundef %3516, ptr noundef nonnull @.str.24) #12
  %3518 = load i32, ptr %396, align 4, !tbaa !5
  %3519 = call ptr @s2n_strerror_debug(i32 noundef %3518, ptr noundef nonnull @.str.24) #12
  %3520 = load i32, ptr %450, align 4, !tbaa !5
  %3521 = call ptr @strerror(i32 noundef %3520) #12
  %3522 = load i32, ptr %450, align 4, !tbaa !5
  %3523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3514, ptr noundef nonnull %.str.25.sink1800, i32 noundef %3515, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 451, ptr noundef %3517, ptr noundef %3519, ptr noundef %3521, i32 noundef %3522) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3524:                                             ; preds = %3498
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %73) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %73, i8 0, i64 4184, i1 false)
  %3525 = load i32, ptr @test_count, align 4, !tbaa !5
  %3526 = add nsw i32 %3525, 2
  store i32 %3526, ptr @test_count, align 4, !tbaa !5
  %3527 = call i32 @s2n_prf_wipe(ptr noundef nonnull %73) #12
  %3528 = call zeroext i1 @s2n_result_is_error(i32 %3527)
  br i1 %3528, label %3551, label %3529

3529:                                             ; preds = %3524
  %3530 = load i32, ptr %450, align 4, !tbaa !5
  %3531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3532 = call i32 @s2n_print_stacktrace(ptr noundef %3531) #12
  %3533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3534 = trunc nuw i8 %3533 to i1
  br i1 %3534, label %3535, label %3539

3535:                                             ; preds = %3529
  %3536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3537 = call i32 @fileno(ptr noundef %3536) #12
  %3538 = call i32 @isatty(i32 noundef %3537) #12
  %.not611 = icmp eq i32 %3538, 0
  br i1 %.not611, label %3539, label %3540

3539:                                             ; preds = %3535, %3529
  br label %3540

3540:                                             ; preds = %3535, %3539
  %.str.25.sink1809 = phi ptr [ @.str.25, %3539 ], [ @.str.22, %3535 ]
  store i32 %3530, ptr %450, align 4, !tbaa !5
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = load i32, ptr @test_count, align 4, !tbaa !5
  %3543 = load i32, ptr %396, align 4, !tbaa !5
  %3544 = call ptr @s2n_strerror(i32 noundef %3543, ptr noundef nonnull @.str.24) #12
  %3545 = load i32, ptr %396, align 4, !tbaa !5
  %3546 = call ptr @s2n_strerror_debug(i32 noundef %3545, ptr noundef nonnull @.str.24) #12
  %3547 = load i32, ptr %450, align 4, !tbaa !5
  %3548 = call ptr @strerror(i32 noundef %3547) #12
  %3549 = load i32, ptr %450, align 4, !tbaa !5
  %3550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3541, ptr noundef nonnull %.str.25.sink1809, i32 noundef %3542, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.21, i32 noundef 456, ptr noundef %3544, ptr noundef %3546, ptr noundef %3548, i32 noundef %3549) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3551:                                             ; preds = %3524
  %3552 = load i32, ptr @test_count, align 4, !tbaa !5
  %3553 = add nsw i32 %3552, 1
  store i32 %3553, ptr @test_count, align 4, !tbaa !5
  %3554 = load i32, ptr %396, align 4, !tbaa !5
  %3555 = icmp eq i32 %3554, 402653193
  br i1 %3555, label %3578, label %3556

3556:                                             ; preds = %3551
  %3557 = load i32, ptr %450, align 4, !tbaa !5
  %3558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3559 = call i32 @s2n_print_stacktrace(ptr noundef %3558) #12
  %3560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3561 = trunc nuw i8 %3560 to i1
  br i1 %3561, label %3562, label %3566

3562:                                             ; preds = %3556
  %3563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3564 = call i32 @fileno(ptr noundef %3563) #12
  %3565 = call i32 @isatty(i32 noundef %3564) #12
  %.not612 = icmp eq i32 %3565, 0
  br i1 %.not612, label %3566, label %3567

3566:                                             ; preds = %3562, %3556
  br label %3567

3567:                                             ; preds = %3562, %3566
  %.str.25.sink1818 = phi ptr [ @.str.25, %3566 ], [ @.str.22, %3562 ]
  store i32 %3557, ptr %450, align 4, !tbaa !5
  %3568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3569 = load i32, ptr @test_count, align 4, !tbaa !5
  %3570 = load i32, ptr %396, align 4, !tbaa !5
  %3571 = call ptr @s2n_strerror(i32 noundef %3570, ptr noundef nonnull @.str.24) #12
  %3572 = load i32, ptr %396, align 4, !tbaa !5
  %3573 = call ptr @s2n_strerror_debug(i32 noundef %3572, ptr noundef nonnull @.str.24) #12
  %3574 = load i32, ptr %450, align 4, !tbaa !5
  %3575 = call ptr @strerror(i32 noundef %3574) #12
  %3576 = load i32, ptr %450, align 4, !tbaa !5
  %3577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3568, ptr noundef nonnull %.str.25.sink1818, i32 noundef %3569, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 456, ptr noundef %3571, ptr noundef %3573, ptr noundef %3575, i32 noundef %3576) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3578:                                             ; preds = %3551
  %3579 = add nsw i32 %3552, 2
  store i32 %3579, ptr @test_count, align 4, !tbaa !5
  %3580 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.24) #12
  %3581 = icmp eq ptr %3580, null
  br i1 %3581, label %3582, label %3604

3582:                                             ; preds = %3578
  %3583 = load i32, ptr %450, align 4, !tbaa !5
  %3584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3585 = call i32 @s2n_print_stacktrace(ptr noundef %3584) #12
  %3586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3587 = trunc nuw i8 %3586 to i1
  br i1 %3587, label %3588, label %3592

3588:                                             ; preds = %3582
  %3589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3590 = call i32 @fileno(ptr noundef %3589) #12
  %3591 = call i32 @isatty(i32 noundef %3590) #12
  %.not657 = icmp eq i32 %3591, 0
  br i1 %.not657, label %3592, label %3593

3592:                                             ; preds = %3588, %3582
  br label %3593

3593:                                             ; preds = %3588, %3592
  %.str.25.sink1827 = phi ptr [ @.str.25, %3592 ], [ @.str.22, %3588 ]
  store i32 %3583, ptr %450, align 4, !tbaa !5
  %3594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3595 = load i32, ptr @test_count, align 4, !tbaa !5
  %3596 = load i32, ptr %396, align 4, !tbaa !5
  %3597 = call ptr @s2n_strerror(i32 noundef %3596, ptr noundef nonnull @.str.24) #12
  %3598 = load i32, ptr %396, align 4, !tbaa !5
  %3599 = call ptr @s2n_strerror_debug(i32 noundef %3598, ptr noundef nonnull @.str.24) #12
  %3600 = load i32, ptr %450, align 4, !tbaa !5
  %3601 = call ptr @strerror(i32 noundef %3600) #12
  %3602 = load i32, ptr %450, align 4, !tbaa !5
  %3603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3594, ptr noundef nonnull %.str.25.sink1827, i32 noundef %3595, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 456, ptr noundef %3597, ptr noundef %3599, ptr noundef %3601, i32 noundef %3602) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3604:                                             ; preds = %3578
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %3605 = load i32, ptr @test_count, align 4, !tbaa !5
  %3606 = add nsw i32 %3605, 1
  store i32 %3606, ptr @test_count, align 4, !tbaa !5
  %3607 = call i32 @s2n_prf_free(ptr noundef nonnull %73) #12
  %3608 = call zeroext i1 @s2n_result_is_ok(i32 %3607)
  br i1 %3608, label %3631, label %3609

3609:                                             ; preds = %3604
  %3610 = load i32, ptr %450, align 4, !tbaa !5
  %3611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3612 = call i32 @s2n_print_stacktrace(ptr noundef %3611) #12
  %3613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3614 = trunc nuw i8 %3613 to i1
  br i1 %3614, label %3615, label %3619

3615:                                             ; preds = %3609
  %3616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3617 = call i32 @fileno(ptr noundef %3616) #12
  %3618 = call i32 @isatty(i32 noundef %3617) #12
  %.not613 = icmp eq i32 %3618, 0
  br i1 %.not613, label %3619, label %3620

3619:                                             ; preds = %3615, %3609
  br label %3620

3620:                                             ; preds = %3615, %3619
  %.str.25.sink1836 = phi ptr [ @.str.25, %3619 ], [ @.str.22, %3615 ]
  store i32 %3610, ptr %450, align 4, !tbaa !5
  %3621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3622 = load i32, ptr @test_count, align 4, !tbaa !5
  %3623 = load i32, ptr %396, align 4, !tbaa !5
  %3624 = call ptr @s2n_strerror(i32 noundef %3623, ptr noundef nonnull @.str.24) #12
  %3625 = load i32, ptr %396, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror_debug(i32 noundef %3625, ptr noundef nonnull @.str.24) #12
  %3627 = load i32, ptr %450, align 4, !tbaa !5
  %3628 = call ptr @strerror(i32 noundef %3627) #12
  %3629 = load i32, ptr %450, align 4, !tbaa !5
  %3630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3621, ptr noundef nonnull %.str.25.sink1836, i32 noundef %3622, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.21, i32 noundef 457, ptr noundef %3624, ptr noundef %3626, ptr noundef %3628, i32 noundef %3629) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3631:                                             ; preds = %3604
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %73) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %74) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %74, i8 0, i64 4184, i1 false)
  %3632 = load i32, ptr @test_count, align 4, !tbaa !5
  %3633 = getelementptr inbounds i8, ptr %74, i64 1752
  %3634 = add nsw i32 %3632, 2
  store i32 %3634, ptr @test_count, align 4, !tbaa !5
  %3635 = call i32 @s2n_prf_new(ptr noundef nonnull %74) #12
  %3636 = call zeroext i1 @s2n_result_is_ok(i32 %3635)
  br i1 %3636, label %3659, label %3637

3637:                                             ; preds = %3631
  %3638 = load i32, ptr %450, align 4, !tbaa !5
  %3639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3640 = call i32 @s2n_print_stacktrace(ptr noundef %3639) #12
  %3641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3642 = trunc nuw i8 %3641 to i1
  br i1 %3642, label %3643, label %3647

3643:                                             ; preds = %3637
  %3644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3645 = call i32 @fileno(ptr noundef %3644) #12
  %3646 = call i32 @isatty(i32 noundef %3645) #12
  %.not615 = icmp eq i32 %3646, 0
  br i1 %.not615, label %3647, label %3648

3647:                                             ; preds = %3643, %3637
  br label %3648

3648:                                             ; preds = %3643, %3647
  %.str.25.sink1845 = phi ptr [ @.str.25, %3647 ], [ @.str.22, %3643 ]
  store i32 %3638, ptr %450, align 4, !tbaa !5
  %3649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3650 = load i32, ptr @test_count, align 4, !tbaa !5
  %3651 = load i32, ptr %396, align 4, !tbaa !5
  %3652 = call ptr @s2n_strerror(i32 noundef %3651, ptr noundef nonnull @.str.24) #12
  %3653 = load i32, ptr %396, align 4, !tbaa !5
  %3654 = call ptr @s2n_strerror_debug(i32 noundef %3653, ptr noundef nonnull @.str.24) #12
  %3655 = load i32, ptr %450, align 4, !tbaa !5
  %3656 = call ptr @strerror(i32 noundef %3655) #12
  %3657 = load i32, ptr %450, align 4, !tbaa !5
  %3658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3649, ptr noundef nonnull %.str.25.sink1845, i32 noundef %3650, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.21, i32 noundef 465, ptr noundef %3652, ptr noundef %3654, ptr noundef %3656, i32 noundef %3657) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3659:                                             ; preds = %3631
  %3660 = load i32, ptr @test_count, align 4, !tbaa !5
  %3661 = add nsw i32 %3660, 1
  store i32 %3661, ptr @test_count, align 4, !tbaa !5
  %3662 = load ptr, ptr %3633, align 8, !tbaa !50
  %3663 = icmp eq ptr %3662, null
  br i1 %3663, label %3664, label %3686

3664:                                             ; preds = %3659
  %3665 = load i32, ptr %450, align 4, !tbaa !5
  %3666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3667 = call i32 @s2n_print_stacktrace(ptr noundef %3666) #12
  %3668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3669 = trunc nuw i8 %3668 to i1
  br i1 %3669, label %3670, label %3674

3670:                                             ; preds = %3664
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = call i32 @fileno(ptr noundef %3671) #12
  %3673 = call i32 @isatty(i32 noundef %3672) #12
  %.not656 = icmp eq i32 %3673, 0
  br i1 %.not656, label %3674, label %3675

3674:                                             ; preds = %3670, %3664
  br label %3675

3675:                                             ; preds = %3670, %3674
  %.str.25.sink1854 = phi ptr [ @.str.25, %3674 ], [ @.str.22, %3670 ]
  store i32 %3665, ptr %450, align 4, !tbaa !5
  %3676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3677 = load i32, ptr @test_count, align 4, !tbaa !5
  %3678 = load i32, ptr %396, align 4, !tbaa !5
  %3679 = call ptr @s2n_strerror(i32 noundef %3678, ptr noundef nonnull @.str.24) #12
  %3680 = load i32, ptr %396, align 4, !tbaa !5
  %3681 = call ptr @s2n_strerror_debug(i32 noundef %3680, ptr noundef nonnull @.str.24) #12
  %3682 = load i32, ptr %450, align 4, !tbaa !5
  %3683 = call ptr @strerror(i32 noundef %3682) #12
  %3684 = load i32, ptr %450, align 4, !tbaa !5
  %3685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3676, ptr noundef nonnull %.str.25.sink1854, i32 noundef %3677, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.21, i32 noundef 466, ptr noundef %3679, ptr noundef %3681, ptr noundef %3683, i32 noundef %3684) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3686:                                             ; preds = %3659
  %3687 = add nsw i32 %3660, 2
  store i32 %3687, ptr @test_count, align 4, !tbaa !5
  %3688 = call i32 @s2n_prf_wipe(ptr noundef nonnull %74) #12
  %3689 = call zeroext i1 @s2n_result_is_ok(i32 %3688)
  br i1 %3689, label %3712, label %3690

3690:                                             ; preds = %3686
  %3691 = load i32, ptr %450, align 4, !tbaa !5
  %3692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3693 = call i32 @s2n_print_stacktrace(ptr noundef %3692) #12
  %3694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3695 = trunc nuw i8 %3694 to i1
  br i1 %3695, label %3696, label %3700

3696:                                             ; preds = %3690
  %3697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3698 = call i32 @fileno(ptr noundef %3697) #12
  %3699 = call i32 @isatty(i32 noundef %3698) #12
  %.not616 = icmp eq i32 %3699, 0
  br i1 %.not616, label %3700, label %3701

3700:                                             ; preds = %3696, %3690
  br label %3701

3701:                                             ; preds = %3696, %3700
  %.str.25.sink1863 = phi ptr [ @.str.25, %3700 ], [ @.str.22, %3696 ]
  store i32 %3691, ptr %450, align 4, !tbaa !5
  %3702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3703 = load i32, ptr @test_count, align 4, !tbaa !5
  %3704 = load i32, ptr %396, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror(i32 noundef %3704, ptr noundef nonnull @.str.24) #12
  %3706 = load i32, ptr %396, align 4, !tbaa !5
  %3707 = call ptr @s2n_strerror_debug(i32 noundef %3706, ptr noundef nonnull @.str.24) #12
  %3708 = load i32, ptr %450, align 4, !tbaa !5
  %3709 = call ptr @strerror(i32 noundef %3708) #12
  %3710 = load i32, ptr %450, align 4, !tbaa !5
  %3711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3702, ptr noundef nonnull %.str.25.sink1863, i32 noundef %3703, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.21, i32 noundef 468, ptr noundef %3705, ptr noundef %3707, ptr noundef %3709, i32 noundef %3710) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3712:                                             ; preds = %3686
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = add nsw i32 %3713, 1
  store i32 %3714, ptr @test_count, align 4, !tbaa !5
  %3715 = load ptr, ptr %3633, align 8, !tbaa !50
  %3716 = icmp eq ptr %3715, null
  br i1 %3716, label %3717, label %3739

3717:                                             ; preds = %3712
  %3718 = load i32, ptr %450, align 4, !tbaa !5
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = call i32 @s2n_print_stacktrace(ptr noundef %3719) #12
  %3721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3722 = trunc nuw i8 %3721 to i1
  br i1 %3722, label %3723, label %3727

3723:                                             ; preds = %3717
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = call i32 @fileno(ptr noundef %3724) #12
  %3726 = call i32 @isatty(i32 noundef %3725) #12
  %.not655 = icmp eq i32 %3726, 0
  br i1 %.not655, label %3727, label %3728

3727:                                             ; preds = %3723, %3717
  br label %3728

3728:                                             ; preds = %3723, %3727
  %.str.25.sink1872 = phi ptr [ @.str.25, %3727 ], [ @.str.22, %3723 ]
  store i32 %3718, ptr %450, align 4, !tbaa !5
  %3729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3730 = load i32, ptr @test_count, align 4, !tbaa !5
  %3731 = load i32, ptr %396, align 4, !tbaa !5
  %3732 = call ptr @s2n_strerror(i32 noundef %3731, ptr noundef nonnull @.str.24) #12
  %3733 = load i32, ptr %396, align 4, !tbaa !5
  %3734 = call ptr @s2n_strerror_debug(i32 noundef %3733, ptr noundef nonnull @.str.24) #12
  %3735 = load i32, ptr %450, align 4, !tbaa !5
  %3736 = call ptr @strerror(i32 noundef %3735) #12
  %3737 = load i32, ptr %450, align 4, !tbaa !5
  %3738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3729, ptr noundef nonnull %.str.25.sink1872, i32 noundef %3730, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.21, i32 noundef 469, ptr noundef %3732, ptr noundef %3734, ptr noundef %3736, i32 noundef %3737) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3739:                                             ; preds = %3712
  %3740 = add nsw i32 %3713, 2
  store i32 %3740, ptr @test_count, align 4, !tbaa !5
  %3741 = call i32 @s2n_prf_free(ptr noundef nonnull %74) #12
  %3742 = call zeroext i1 @s2n_result_is_ok(i32 %3741)
  br i1 %3742, label %3765, label %3743

3743:                                             ; preds = %3739
  %3744 = load i32, ptr %450, align 4, !tbaa !5
  %3745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3746 = call i32 @s2n_print_stacktrace(ptr noundef %3745) #12
  %3747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3748 = trunc nuw i8 %3747 to i1
  br i1 %3748, label %3749, label %3753

3749:                                             ; preds = %3743
  %3750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3751 = call i32 @fileno(ptr noundef %3750) #12
  %3752 = call i32 @isatty(i32 noundef %3751) #12
  %.not617 = icmp eq i32 %3752, 0
  br i1 %.not617, label %3753, label %3754

3753:                                             ; preds = %3749, %3743
  br label %3754

3754:                                             ; preds = %3749, %3753
  %.str.25.sink1881 = phi ptr [ @.str.25, %3753 ], [ @.str.22, %3749 ]
  store i32 %3744, ptr %450, align 4, !tbaa !5
  %3755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3756 = load i32, ptr @test_count, align 4, !tbaa !5
  %3757 = load i32, ptr %396, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror(i32 noundef %3757, ptr noundef nonnull @.str.24) #12
  %3759 = load i32, ptr %396, align 4, !tbaa !5
  %3760 = call ptr @s2n_strerror_debug(i32 noundef %3759, ptr noundef nonnull @.str.24) #12
  %3761 = load i32, ptr %450, align 4, !tbaa !5
  %3762 = call ptr @strerror(i32 noundef %3761) #12
  %3763 = load i32, ptr %450, align 4, !tbaa !5
  %3764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3755, ptr noundef nonnull %.str.25.sink1881, i32 noundef %3756, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.21, i32 noundef 471, ptr noundef %3758, ptr noundef %3760, ptr noundef %3762, i32 noundef %3763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3765:                                             ; preds = %3739
  %3766 = load i32, ptr @test_count, align 4, !tbaa !5
  %3767 = add nsw i32 %3766, 1
  store i32 %3767, ptr @test_count, align 4, !tbaa !5
  %3768 = load ptr, ptr %3633, align 8, !tbaa !50
  %3769 = icmp eq ptr %3768, null
  br i1 %3769, label %3792, label %3770

3770:                                             ; preds = %3765
  %3771 = load i32, ptr %450, align 4, !tbaa !5
  %3772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3773 = call i32 @s2n_print_stacktrace(ptr noundef %3772) #12
  %3774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3775 = trunc nuw i8 %3774 to i1
  br i1 %3775, label %3776, label %3780

3776:                                             ; preds = %3770
  %3777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3778 = call i32 @fileno(ptr noundef %3777) #12
  %3779 = call i32 @isatty(i32 noundef %3778) #12
  %.not618 = icmp eq i32 %3779, 0
  br i1 %.not618, label %3780, label %3781

3780:                                             ; preds = %3776, %3770
  br label %3781

3781:                                             ; preds = %3776, %3780
  %.str.25.sink1890 = phi ptr [ @.str.25, %3780 ], [ @.str.22, %3776 ]
  store i32 %3771, ptr %450, align 4, !tbaa !5
  %3782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3783 = load i32, ptr @test_count, align 4, !tbaa !5
  %3784 = load i32, ptr %396, align 4, !tbaa !5
  %3785 = call ptr @s2n_strerror(i32 noundef %3784, ptr noundef nonnull @.str.24) #12
  %3786 = load i32, ptr %396, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror_debug(i32 noundef %3786, ptr noundef nonnull @.str.24) #12
  %3788 = load i32, ptr %450, align 4, !tbaa !5
  %3789 = call ptr @strerror(i32 noundef %3788) #12
  %3790 = load i32, ptr %450, align 4, !tbaa !5
  %3791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3782, ptr noundef nonnull %.str.25.sink1890, i32 noundef %3783, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.21, i32 noundef 472, ptr noundef %3785, ptr noundef %3787, ptr noundef %3789, i32 noundef %3790) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3792:                                             ; preds = %3765
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %74) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #12
  %3793 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %3793, ptr %75, align 8, !tbaa !9
  %3794 = load i32, ptr @test_count, align 4, !tbaa !5
  %3795 = add nsw i32 %3794, 1
  store i32 %3795, ptr @test_count, align 4, !tbaa !5
  %3796 = icmp eq ptr %3793, null
  br i1 %3796, label %3797, label %3819

3797:                                             ; preds = %3792
  %3798 = load i32, ptr %450, align 4, !tbaa !5
  %3799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3800 = call i32 @s2n_print_stacktrace(ptr noundef %3799) #12
  %3801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3802 = trunc nuw i8 %3801 to i1
  br i1 %3802, label %3803, label %3807

3803:                                             ; preds = %3797
  %3804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3805 = call i32 @fileno(ptr noundef %3804) #12
  %3806 = call i32 @isatty(i32 noundef %3805) #12
  %.not654 = icmp eq i32 %3806, 0
  br i1 %.not654, label %3807, label %3808

3807:                                             ; preds = %3803, %3797
  br label %3808

3808:                                             ; preds = %3803, %3807
  %.str.25.sink1899 = phi ptr [ @.str.25, %3807 ], [ @.str.22, %3803 ]
  store i32 %3798, ptr %450, align 4, !tbaa !5
  %3809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3810 = load i32, ptr @test_count, align 4, !tbaa !5
  %3811 = load i32, ptr %396, align 4, !tbaa !5
  %3812 = call ptr @s2n_strerror(i32 noundef %3811, ptr noundef nonnull @.str.24) #12
  %3813 = load i32, ptr %396, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror_debug(i32 noundef %3813, ptr noundef nonnull @.str.24) #12
  %3815 = load i32, ptr %450, align 4, !tbaa !5
  %3816 = call ptr @strerror(i32 noundef %3815) #12
  %3817 = load i32, ptr %450, align 4, !tbaa !5
  %3818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3809, ptr noundef nonnull %.str.25.sink1899, i32 noundef %3810, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.21, i32 noundef 479, ptr noundef %3812, ptr noundef %3814, ptr noundef %3816, i32 noundef %3817) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3819:                                             ; preds = %3792
  %3820 = add nsw i32 %3794, 2
  store i32 %3820, ptr @test_count, align 4, !tbaa !5
  %3821 = getelementptr inbounds i8, ptr %3793, i64 1752
  %3822 = load ptr, ptr %3821, align 8, !tbaa !50
  %3823 = icmp eq ptr %3822, null
  br i1 %3823, label %3824, label %3846

3824:                                             ; preds = %3819
  %3825 = load i32, ptr %450, align 4, !tbaa !5
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = call i32 @s2n_print_stacktrace(ptr noundef %3826) #12
  %3828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3829 = trunc nuw i8 %3828 to i1
  br i1 %3829, label %3830, label %3834

3830:                                             ; preds = %3824
  %3831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3832 = call i32 @fileno(ptr noundef %3831) #12
  %3833 = call i32 @isatty(i32 noundef %3832) #12
  %.not653 = icmp eq i32 %3833, 0
  br i1 %.not653, label %3834, label %3835

3834:                                             ; preds = %3830, %3824
  br label %3835

3835:                                             ; preds = %3830, %3834
  %.str.25.sink1908 = phi ptr [ @.str.25, %3834 ], [ @.str.22, %3830 ]
  store i32 %3825, ptr %450, align 4, !tbaa !5
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = load i32, ptr @test_count, align 4, !tbaa !5
  %3838 = load i32, ptr %396, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror(i32 noundef %3838, ptr noundef nonnull @.str.24) #12
  %3840 = load i32, ptr %396, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror_debug(i32 noundef %3840, ptr noundef nonnull @.str.24) #12
  %3842 = load i32, ptr %450, align 4, !tbaa !5
  %3843 = call ptr @strerror(i32 noundef %3842) #12
  %3844 = load i32, ptr %450, align 4, !tbaa !5
  %3845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3836, ptr noundef nonnull %.str.25.sink1908, i32 noundef %3837, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.21, i32 noundef 480, ptr noundef %3839, ptr noundef %3841, ptr noundef %3843, i32 noundef %3844) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3846:                                             ; preds = %3819
  %3847 = add nsw i32 %3794, 3
  store i32 %3847, ptr @test_count, align 4, !tbaa !5
  %3848 = call i32 @s2n_connection_free_handshake(ptr noundef nonnull %3793) #12
  %3849 = icmp eq i32 %3848, -1
  br i1 %3849, label %3850, label %3872

3850:                                             ; preds = %3846
  %3851 = load i32, ptr %450, align 4, !tbaa !5
  %3852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3853 = call i32 @s2n_print_stacktrace(ptr noundef %3852) #12
  %3854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3855 = trunc nuw i8 %3854 to i1
  br i1 %3855, label %3856, label %3860

3856:                                             ; preds = %3850
  %3857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3858 = call i32 @fileno(ptr noundef %3857) #12
  %3859 = call i32 @isatty(i32 noundef %3858) #12
  %.not652 = icmp eq i32 %3859, 0
  br i1 %.not652, label %3860, label %3861

3860:                                             ; preds = %3856, %3850
  br label %3861

3861:                                             ; preds = %3856, %3860
  %.str.25.sink1917 = phi ptr [ @.str.25, %3860 ], [ @.str.22, %3856 ]
  store i32 %3851, ptr %450, align 4, !tbaa !5
  %3862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = load i32, ptr %396, align 4, !tbaa !5
  %3865 = call ptr @s2n_strerror(i32 noundef %3864, ptr noundef nonnull @.str.24) #12
  %3866 = load i32, ptr %396, align 4, !tbaa !5
  %3867 = call ptr @s2n_strerror_debug(i32 noundef %3866, ptr noundef nonnull @.str.24) #12
  %3868 = load i32, ptr %450, align 4, !tbaa !5
  %3869 = call ptr @strerror(i32 noundef %3868) #12
  %3870 = load i32, ptr %450, align 4, !tbaa !5
  %3871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3862, ptr noundef nonnull %.str.25.sink1917, i32 noundef %3863, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.21, i32 noundef 482, ptr noundef %3865, ptr noundef %3867, ptr noundef %3869, i32 noundef %3870) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3872:                                             ; preds = %3846
  %3873 = load i32, ptr @test_count, align 4, !tbaa !5
  %3874 = add nsw i32 %3873, 1
  store i32 %3874, ptr @test_count, align 4, !tbaa !5
  %3875 = load ptr, ptr %75, align 8, !tbaa !9
  %3876 = getelementptr inbounds i8, ptr %3875, i64 1752
  %3877 = load ptr, ptr %3876, align 8, !tbaa !50
  %3878 = icmp eq ptr %3877, null
  br i1 %3878, label %3901, label %3879

3879:                                             ; preds = %3872
  %3880 = load i32, ptr %450, align 4, !tbaa !5
  %3881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3882 = call i32 @s2n_print_stacktrace(ptr noundef %3881) #12
  %3883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3884 = trunc nuw i8 %3883 to i1
  br i1 %3884, label %3885, label %3889

3885:                                             ; preds = %3879
  %3886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3887 = call i32 @fileno(ptr noundef %3886) #12
  %3888 = call i32 @isatty(i32 noundef %3887) #12
  %.not619 = icmp eq i32 %3888, 0
  br i1 %.not619, label %3889, label %3890

3889:                                             ; preds = %3885, %3879
  br label %3890

3890:                                             ; preds = %3885, %3889
  %.str.25.sink1926 = phi ptr [ @.str.25, %3889 ], [ @.str.22, %3885 ]
  store i32 %3880, ptr %450, align 4, !tbaa !5
  %3891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3892 = load i32, ptr @test_count, align 4, !tbaa !5
  %3893 = load i32, ptr %396, align 4, !tbaa !5
  %3894 = call ptr @s2n_strerror(i32 noundef %3893, ptr noundef nonnull @.str.24) #12
  %3895 = load i32, ptr %396, align 4, !tbaa !5
  %3896 = call ptr @s2n_strerror_debug(i32 noundef %3895, ptr noundef nonnull @.str.24) #12
  %3897 = load i32, ptr %450, align 4, !tbaa !5
  %3898 = call ptr @strerror(i32 noundef %3897) #12
  %3899 = load i32, ptr %450, align 4, !tbaa !5
  %3900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3891, ptr noundef nonnull %.str.25.sink1926, i32 noundef %3892, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.21, i32 noundef 483, ptr noundef %3894, ptr noundef %3896, ptr noundef %3898, i32 noundef %3899) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3901:                                             ; preds = %3872
  %3902 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %75) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #12
  %3903 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %3903, ptr %76, align 8, !tbaa !9
  %3904 = load i32, ptr @test_count, align 4, !tbaa !5
  %3905 = add nsw i32 %3904, 1
  store i32 %3905, ptr @test_count, align 4, !tbaa !5
  %3906 = icmp eq ptr %3903, null
  br i1 %3906, label %3907, label %3929

3907:                                             ; preds = %3901
  %3908 = load i32, ptr %450, align 4, !tbaa !5
  %3909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3910 = call i32 @s2n_print_stacktrace(ptr noundef %3909) #12
  %3911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3912 = trunc nuw i8 %3911 to i1
  br i1 %3912, label %3913, label %3917

3913:                                             ; preds = %3907
  %3914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3915 = call i32 @fileno(ptr noundef %3914) #12
  %3916 = call i32 @isatty(i32 noundef %3915) #12
  %.not651 = icmp eq i32 %3916, 0
  br i1 %.not651, label %3917, label %3918

3917:                                             ; preds = %3913, %3907
  br label %3918

3918:                                             ; preds = %3913, %3917
  %.str.25.sink1935 = phi ptr [ @.str.25, %3917 ], [ @.str.22, %3913 ]
  store i32 %3908, ptr %450, align 4, !tbaa !5
  %3919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3920 = load i32, ptr @test_count, align 4, !tbaa !5
  %3921 = load i32, ptr %396, align 4, !tbaa !5
  %3922 = call ptr @s2n_strerror(i32 noundef %3921, ptr noundef nonnull @.str.24) #12
  %3923 = load i32, ptr %396, align 4, !tbaa !5
  %3924 = call ptr @s2n_strerror_debug(i32 noundef %3923, ptr noundef nonnull @.str.24) #12
  %3925 = load i32, ptr %450, align 4, !tbaa !5
  %3926 = call ptr @strerror(i32 noundef %3925) #12
  %3927 = load i32, ptr %450, align 4, !tbaa !5
  %3928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3919, ptr noundef nonnull %.str.25.sink1935, i32 noundef %3920, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.21, i32 noundef 490, ptr noundef %3922, ptr noundef %3924, ptr noundef %3926, i32 noundef %3927) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3929:                                             ; preds = %3901
  %3930 = add nsw i32 %3904, 2
  store i32 %3930, ptr @test_count, align 4, !tbaa !5
  %3931 = call i32 @s2n_prf_free(ptr noundef nonnull %3903) #12
  %3932 = call zeroext i1 @s2n_result_is_ok(i32 %3931)
  br i1 %3932, label %3955, label %3933

3933:                                             ; preds = %3929
  %3934 = load i32, ptr %450, align 4, !tbaa !5
  %3935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3936 = call i32 @s2n_print_stacktrace(ptr noundef %3935) #12
  %3937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3938 = trunc nuw i8 %3937 to i1
  br i1 %3938, label %3939, label %3943

3939:                                             ; preds = %3933
  %3940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3941 = call i32 @fileno(ptr noundef %3940) #12
  %3942 = call i32 @isatty(i32 noundef %3941) #12
  %.not620 = icmp eq i32 %3942, 0
  br i1 %.not620, label %3943, label %3944

3943:                                             ; preds = %3939, %3933
  br label %3944

3944:                                             ; preds = %3939, %3943
  %.str.25.sink1944 = phi ptr [ @.str.25, %3943 ], [ @.str.22, %3939 ]
  store i32 %3934, ptr %450, align 4, !tbaa !5
  %3945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3946 = load i32, ptr @test_count, align 4, !tbaa !5
  %3947 = load i32, ptr %396, align 4, !tbaa !5
  %3948 = call ptr @s2n_strerror(i32 noundef %3947, ptr noundef nonnull @.str.24) #12
  %3949 = load i32, ptr %396, align 4, !tbaa !5
  %3950 = call ptr @s2n_strerror_debug(i32 noundef %3949, ptr noundef nonnull @.str.24) #12
  %3951 = load i32, ptr %450, align 4, !tbaa !5
  %3952 = call ptr @strerror(i32 noundef %3951) #12
  %3953 = load i32, ptr %450, align 4, !tbaa !5
  %3954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3945, ptr noundef nonnull %.str.25.sink1944, i32 noundef %3946, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.21, i32 noundef 491, ptr noundef %3948, ptr noundef %3950, ptr noundef %3952, i32 noundef %3953) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3955:                                             ; preds = %3929
  %3956 = load i32, ptr @test_count, align 4, !tbaa !5
  %3957 = add nsw i32 %3956, 1
  store i32 %3957, ptr @test_count, align 4, !tbaa !5
  %3958 = load ptr, ptr %76, align 8, !tbaa !9
  %3959 = getelementptr inbounds i8, ptr %3958, i64 1752
  %3960 = load ptr, ptr %3959, align 8, !tbaa !50
  %3961 = icmp eq ptr %3960, null
  br i1 %3961, label %3984, label %3962

3962:                                             ; preds = %3955
  %3963 = load i32, ptr %450, align 4, !tbaa !5
  %3964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3965 = call i32 @s2n_print_stacktrace(ptr noundef %3964) #12
  %3966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3967 = trunc nuw i8 %3966 to i1
  br i1 %3967, label %3968, label %3972

3968:                                             ; preds = %3962
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = call i32 @fileno(ptr noundef %3969) #12
  %3971 = call i32 @isatty(i32 noundef %3970) #12
  %.not621 = icmp eq i32 %3971, 0
  br i1 %.not621, label %3972, label %3973

3972:                                             ; preds = %3968, %3962
  br label %3973

3973:                                             ; preds = %3968, %3972
  %.str.25.sink1953 = phi ptr [ @.str.25, %3972 ], [ @.str.22, %3968 ]
  store i32 %3963, ptr %450, align 4, !tbaa !5
  %3974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3975 = load i32, ptr @test_count, align 4, !tbaa !5
  %3976 = load i32, ptr %396, align 4, !tbaa !5
  %3977 = call ptr @s2n_strerror(i32 noundef %3976, ptr noundef nonnull @.str.24) #12
  %3978 = load i32, ptr %396, align 4, !tbaa !5
  %3979 = call ptr @s2n_strerror_debug(i32 noundef %3978, ptr noundef nonnull @.str.24) #12
  %3980 = load i32, ptr %450, align 4, !tbaa !5
  %3981 = call ptr @strerror(i32 noundef %3980) #12
  %3982 = load i32, ptr %450, align 4, !tbaa !5
  %3983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3974, ptr noundef nonnull %.str.25.sink1953, i32 noundef %3975, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.21, i32 noundef 492, ptr noundef %3977, ptr noundef %3979, ptr noundef %3981, i32 noundef %3982) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3984:                                             ; preds = %3955
  %3985 = add nsw i32 %3956, 2
  store i32 %3985, ptr @test_count, align 4, !tbaa !5
  %3986 = call i32 @s2n_connection_wipe(ptr noundef nonnull %3958) #12
  %3987 = icmp eq i32 %3986, -1
  br i1 %3987, label %3988, label %4010

3988:                                             ; preds = %3984
  %3989 = load i32, ptr %450, align 4, !tbaa !5
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = call i32 @s2n_print_stacktrace(ptr noundef %3990) #12
  %3992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3993 = trunc nuw i8 %3992 to i1
  br i1 %3993, label %3994, label %3998

3994:                                             ; preds = %3988
  %3995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3996 = call i32 @fileno(ptr noundef %3995) #12
  %3997 = call i32 @isatty(i32 noundef %3996) #12
  %.not650 = icmp eq i32 %3997, 0
  br i1 %.not650, label %3998, label %3999

3998:                                             ; preds = %3994, %3988
  br label %3999

3999:                                             ; preds = %3994, %3998
  %.str.25.sink1962 = phi ptr [ @.str.25, %3998 ], [ @.str.22, %3994 ]
  store i32 %3989, ptr %450, align 4, !tbaa !5
  %4000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4001 = load i32, ptr @test_count, align 4, !tbaa !5
  %4002 = load i32, ptr %396, align 4, !tbaa !5
  %4003 = call ptr @s2n_strerror(i32 noundef %4002, ptr noundef nonnull @.str.24) #12
  %4004 = load i32, ptr %396, align 4, !tbaa !5
  %4005 = call ptr @s2n_strerror_debug(i32 noundef %4004, ptr noundef nonnull @.str.24) #12
  %4006 = load i32, ptr %450, align 4, !tbaa !5
  %4007 = call ptr @strerror(i32 noundef %4006) #12
  %4008 = load i32, ptr %450, align 4, !tbaa !5
  %4009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4000, ptr noundef nonnull %.str.25.sink1962, i32 noundef %4001, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.21, i32 noundef 494, ptr noundef %4003, ptr noundef %4005, ptr noundef %4007, i32 noundef %4008) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4010:                                             ; preds = %3984
  %4011 = load i32, ptr @test_count, align 4, !tbaa !5
  %4012 = add nsw i32 %4011, 1
  store i32 %4012, ptr @test_count, align 4, !tbaa !5
  %4013 = load ptr, ptr %76, align 8, !tbaa !9
  %4014 = getelementptr inbounds i8, ptr %4013, i64 1752
  %4015 = load ptr, ptr %4014, align 8, !tbaa !50
  %4016 = icmp eq ptr %4015, null
  br i1 %4016, label %4017, label %4039

4017:                                             ; preds = %4010
  %4018 = load i32, ptr %450, align 4, !tbaa !5
  %4019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4020 = call i32 @s2n_print_stacktrace(ptr noundef %4019) #12
  %4021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4022 = trunc nuw i8 %4021 to i1
  br i1 %4022, label %4023, label %4027

4023:                                             ; preds = %4017
  %4024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4025 = call i32 @fileno(ptr noundef %4024) #12
  %4026 = call i32 @isatty(i32 noundef %4025) #12
  %.not649 = icmp eq i32 %4026, 0
  br i1 %.not649, label %4027, label %4028

4027:                                             ; preds = %4023, %4017
  br label %4028

4028:                                             ; preds = %4023, %4027
  %.str.25.sink1971 = phi ptr [ @.str.25, %4027 ], [ @.str.22, %4023 ]
  store i32 %4018, ptr %450, align 4, !tbaa !5
  %4029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4030 = load i32, ptr @test_count, align 4, !tbaa !5
  %4031 = load i32, ptr %396, align 4, !tbaa !5
  %4032 = call ptr @s2n_strerror(i32 noundef %4031, ptr noundef nonnull @.str.24) #12
  %4033 = load i32, ptr %396, align 4, !tbaa !5
  %4034 = call ptr @s2n_strerror_debug(i32 noundef %4033, ptr noundef nonnull @.str.24) #12
  %4035 = load i32, ptr %450, align 4, !tbaa !5
  %4036 = call ptr @strerror(i32 noundef %4035) #12
  %4037 = load i32, ptr %450, align 4, !tbaa !5
  %4038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4029, ptr noundef nonnull %.str.25.sink1971, i32 noundef %4030, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.21, i32 noundef 495, ptr noundef %4032, ptr noundef %4034, ptr noundef %4036, i32 noundef %4037) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4039:                                             ; preds = %4010
  %4040 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %76) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %77) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %77, i8 0, i64 24, i1 false)
  %4041 = load i32, ptr @test_count, align 4, !tbaa !5
  %4042 = add nsw i32 %4041, 1
  store i32 %4042, ptr @test_count, align 4, !tbaa !5
  %4043 = load ptr, ptr %3, align 8, !tbaa !43
  %4044 = load i32, ptr %1915, align 8, !tbaa !42
  %4045 = call i32 @s2n_blob_init(ptr noundef nonnull %77, ptr noundef %4043, i32 noundef %4044) #12
  %4046 = icmp eq i32 %4045, -1
  br i1 %4046, label %4047, label %4069

4047:                                             ; preds = %4039
  %4048 = load i32, ptr %450, align 4, !tbaa !5
  %4049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4050 = call i32 @s2n_print_stacktrace(ptr noundef %4049) #12
  %4051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4052 = trunc nuw i8 %4051 to i1
  br i1 %4052, label %4053, label %4057

4053:                                             ; preds = %4047
  %4054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4055 = call i32 @fileno(ptr noundef %4054) #12
  %4056 = call i32 @isatty(i32 noundef %4055) #12
  %.not648 = icmp eq i32 %4056, 0
  br i1 %.not648, label %4057, label %4058

4057:                                             ; preds = %4053, %4047
  br label %4058

4058:                                             ; preds = %4053, %4057
  %.str.25.sink1980 = phi ptr [ @.str.25, %4057 ], [ @.str.22, %4053 ]
  store i32 %4048, ptr %450, align 4, !tbaa !5
  %4059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4060 = load i32, ptr @test_count, align 4, !tbaa !5
  %4061 = load i32, ptr %396, align 4, !tbaa !5
  %4062 = call ptr @s2n_strerror(i32 noundef %4061, ptr noundef nonnull @.str.24) #12
  %4063 = load i32, ptr %396, align 4, !tbaa !5
  %4064 = call ptr @s2n_strerror_debug(i32 noundef %4063, ptr noundef nonnull @.str.24) #12
  %4065 = load i32, ptr %450, align 4, !tbaa !5
  %4066 = call ptr @strerror(i32 noundef %4065) #12
  %4067 = load i32, ptr %450, align 4, !tbaa !5
  %4068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4059, ptr noundef nonnull %.str.25.sink1980, i32 noundef %4060, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.21, i32 noundef 501, ptr noundef %4062, ptr noundef %4064, ptr noundef %4066, i32 noundef %4067) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4069:                                             ; preds = %4039
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #12
  %4070 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %4070, ptr %78, align 8, !tbaa !9
  %4071 = load i32, ptr @test_count, align 4, !tbaa !5
  %4072 = add nsw i32 %4071, 1
  store i32 %4072, ptr @test_count, align 4, !tbaa !5
  %4073 = icmp eq ptr %4070, null
  br i1 %4073, label %4074, label %4096

4074:                                             ; preds = %4069
  %4075 = load i32, ptr %450, align 4, !tbaa !5
  %4076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4077 = call i32 @s2n_print_stacktrace(ptr noundef %4076) #12
  %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) #12
  %4083 = call i32 @isatty(i32 noundef %4082) #12
  %.not647 = icmp eq i32 %4083, 0
  br i1 %.not647, label %4084, label %4085

4084:                                             ; preds = %4080, %4074
  br label %4085

4085:                                             ; preds = %4080, %4084
  %.str.25.sink1989 = phi ptr [ @.str.25, %4084 ], [ @.str.22, %4080 ]
  store i32 %4075, ptr %450, 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 %396, align 4, !tbaa !5
  %4089 = call ptr @s2n_strerror(i32 noundef %4088, ptr noundef nonnull @.str.24) #12
  %4090 = load i32, ptr %396, align 4, !tbaa !5
  %4091 = call ptr @s2n_strerror_debug(i32 noundef %4090, ptr noundef nonnull @.str.24) #12
  %4092 = load i32, ptr %450, align 4, !tbaa !5
  %4093 = call ptr @strerror(i32 noundef %4092) #12
  %4094 = load i32, ptr %450, align 4, !tbaa !5
  %4095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4086, ptr noundef nonnull %.str.25.sink1989, i32 noundef %4087, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.21, i32 noundef 505, ptr noundef %4089, ptr noundef %4091, ptr noundef %4093, i32 noundef %4094) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4096:                                             ; preds = %4069
  %4097 = load i32, ptr %1915, align 8, !tbaa !42
  %.not622 = icmp eq i32 %4097, 0
  br i1 %.not622, label %4102, label %4098

4098:                                             ; preds = %4096
  %4099 = getelementptr inbounds i8, ptr %4070, i64 240
  %4100 = load ptr, ptr %3, align 8, !tbaa !43
  %4101 = zext i32 %4097 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %4099, ptr align 1 %4100, i64 %4101, i1 false)
  br label %4102

4102:                                             ; preds = %4098, %4096
  %4103 = load i32, ptr %1922, align 8, !tbaa !42
  %.not623 = icmp eq i32 %4103, 0
  br i1 %.not623, label %4108, label %4104

4104:                                             ; preds = %4102
  %4105 = getelementptr inbounds i8, ptr %4070, i64 1618
  %4106 = load ptr, ptr %4, align 8, !tbaa !43
  %4107 = zext i32 %4103 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %4105, ptr align 1 %4106, i64 %4107, i1 false)
  br label %4108

4108:                                             ; preds = %4104, %4102
  %4109 = load i32, ptr %1929, align 8, !tbaa !42
  %.not624 = icmp eq i32 %4109, 0
  br i1 %.not624, label %4114, label %4110

4110:                                             ; preds = %4108
  %4111 = getelementptr inbounds i8, ptr %4070, i64 1650
  %4112 = load ptr, ptr %5, align 8, !tbaa !43
  %4113 = zext i32 %4109 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %4111, ptr align 1 %4112, i64 %4113, i1 false)
  br label %4114

4114:                                             ; preds = %4110, %4108
  %4115 = add nsw i32 %4071, 2
  store i32 %4115, ptr @test_count, align 4, !tbaa !5
  %4116 = call i32 @s2n_prf_tls_master_secret(ptr noundef nonnull %4070, ptr noundef nonnull %77) #12
  %4117 = icmp eq i32 %4116, -1
  br i1 %4117, label %4118, label %4140

4118:                                             ; preds = %4114
  %4119 = load i32, ptr %450, align 4, !tbaa !5
  %4120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4121 = call i32 @s2n_print_stacktrace(ptr noundef %4120) #12
  %4122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4123 = trunc nuw i8 %4122 to i1
  br i1 %4123, label %4124, label %4128

4124:                                             ; preds = %4118
  %4125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4126 = call i32 @fileno(ptr noundef %4125) #12
  %4127 = call i32 @isatty(i32 noundef %4126) #12
  %.not646 = icmp eq i32 %4127, 0
  br i1 %.not646, label %4128, label %4129

4128:                                             ; preds = %4124, %4118
  br label %4129

4129:                                             ; preds = %4124, %4128
  %.str.25.sink1998 = phi ptr [ @.str.25, %4128 ], [ @.str.22, %4124 ]
  store i32 %4119, ptr %450, align 4, !tbaa !5
  %4130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4131 = load i32, ptr @test_count, align 4, !tbaa !5
  %4132 = load i32, ptr %396, align 4, !tbaa !5
  %4133 = call ptr @s2n_strerror(i32 noundef %4132, ptr noundef nonnull @.str.24) #12
  %4134 = load i32, ptr %396, align 4, !tbaa !5
  %4135 = call ptr @s2n_strerror_debug(i32 noundef %4134, ptr noundef nonnull @.str.24) #12
  %4136 = load i32, ptr %450, align 4, !tbaa !5
  %4137 = call ptr @strerror(i32 noundef %4136) #12
  %4138 = load i32, ptr %450, align 4, !tbaa !5
  %4139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4130, ptr noundef nonnull %.str.25.sink1998, i32 noundef %4131, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.21, i32 noundef 509, ptr noundef %4133, ptr noundef %4135, ptr noundef %4137, i32 noundef %4138) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4140:                                             ; preds = %4114
  %4141 = load i32, ptr @test_count, align 4, !tbaa !5
  %4142 = add nsw i32 %4141, 1
  store i32 %4142, ptr @test_count, align 4, !tbaa !5
  %4143 = getelementptr inbounds i8, ptr %4070, i64 288
  %4144 = load ptr, ptr %6, align 8, !tbaa !43
  %4145 = load i32, ptr %1996, align 8, !tbaa !42
  %4146 = zext i32 %4145 to i64
  %bcmp625 = call i32 @bcmp(ptr nonnull %4143, ptr %4144, i64 %4146)
  %4147 = icmp eq i32 %bcmp625, 0
  br i1 %4147, label %4170, label %4148

4148:                                             ; preds = %4140
  %4149 = load i32, ptr %450, align 4, !tbaa !5
  %4150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4151 = call i32 @s2n_print_stacktrace(ptr noundef %4150) #12
  %4152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4153 = trunc nuw i8 %4152 to i1
  br i1 %4153, label %4154, label %4158

4154:                                             ; preds = %4148
  %4155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4156 = call i32 @fileno(ptr noundef %4155) #12
  %4157 = call i32 @isatty(i32 noundef %4156) #12
  %.not626 = icmp eq i32 %4157, 0
  br i1 %.not626, label %4158, label %4159

4158:                                             ; preds = %4154, %4148
  br label %4159

4159:                                             ; preds = %4154, %4158
  %.str.25.sink2007 = phi ptr [ @.str.25, %4158 ], [ @.str.22, %4154 ]
  store i32 %4149, ptr %450, align 4, !tbaa !5
  %4160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4161 = load i32, ptr @test_count, align 4, !tbaa !5
  %4162 = load i32, ptr %396, align 4, !tbaa !5
  %4163 = call ptr @s2n_strerror(i32 noundef %4162, ptr noundef nonnull @.str.24) #12
  %4164 = load i32, ptr %396, align 4, !tbaa !5
  %4165 = call ptr @s2n_strerror_debug(i32 noundef %4164, ptr noundef nonnull @.str.24) #12
  %4166 = load i32, ptr %450, align 4, !tbaa !5
  %4167 = call ptr @strerror(i32 noundef %4166) #12
  %4168 = load i32, ptr %450, align 4, !tbaa !5
  %4169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4160, ptr noundef nonnull %.str.25.sink2007, i32 noundef %4161, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.21, i32 noundef 510, ptr noundef %4163, ptr noundef %4165, ptr noundef %4167, i32 noundef %4168) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4170:                                             ; preds = %4140
  %4171 = add nsw i32 %4141, 2
  store i32 %4171, ptr @test_count, align 4, !tbaa !5
  %4172 = call i32 @s2n_connection_free_handshake(ptr noundef nonnull %4070) #12
  %4173 = icmp eq i32 %4172, -1
  br i1 %4173, label %4174, label %4196

4174:                                             ; preds = %4170
  %4175 = load i32, ptr %450, align 4, !tbaa !5
  %4176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4177 = call i32 @s2n_print_stacktrace(ptr noundef %4176) #12
  %4178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4179 = trunc nuw i8 %4178 to i1
  br i1 %4179, label %4180, label %4184

4180:                                             ; preds = %4174
  %4181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4182 = call i32 @fileno(ptr noundef %4181) #12
  %4183 = call i32 @isatty(i32 noundef %4182) #12
  %.not645 = icmp eq i32 %4183, 0
  br i1 %.not645, label %4184, label %4185

4184:                                             ; preds = %4180, %4174
  br label %4185

4185:                                             ; preds = %4180, %4184
  %.str.25.sink2016 = phi ptr [ @.str.25, %4184 ], [ @.str.22, %4180 ]
  store i32 %4175, ptr %450, align 4, !tbaa !5
  %4186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4187 = load i32, ptr @test_count, align 4, !tbaa !5
  %4188 = load i32, ptr %396, align 4, !tbaa !5
  %4189 = call ptr @s2n_strerror(i32 noundef %4188, ptr noundef nonnull @.str.24) #12
  %4190 = load i32, ptr %396, align 4, !tbaa !5
  %4191 = call ptr @s2n_strerror_debug(i32 noundef %4190, ptr noundef nonnull @.str.24) #12
  %4192 = load i32, ptr %450, align 4, !tbaa !5
  %4193 = call ptr @strerror(i32 noundef %4192) #12
  %4194 = load i32, ptr %450, align 4, !tbaa !5
  %4195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4186, ptr noundef nonnull %.str.25.sink2016, i32 noundef %4187, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.21, i32 noundef 512, ptr noundef %4189, ptr noundef %4191, ptr noundef %4193, i32 noundef %4194) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4196:                                             ; preds = %4170
  %4197 = load i32, ptr %1915, align 8, !tbaa !42
  %.not627 = icmp eq i32 %4197, 0
  br i1 %.not627, label %4202, label %4198

4198:                                             ; preds = %4196
  %4199 = getelementptr inbounds i8, ptr %4070, i64 240
  %4200 = load ptr, ptr %3, align 8, !tbaa !43
  %4201 = zext i32 %4197 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %4199, ptr align 1 %4200, i64 %4201, i1 false)
  br label %4202

4202:                                             ; preds = %4198, %4196
  %4203 = load i32, ptr %1922, align 8, !tbaa !42
  %.not628 = icmp eq i32 %4203, 0
  br i1 %.not628, label %4208, label %4204

4204:                                             ; preds = %4202
  %4205 = getelementptr inbounds i8, ptr %4070, i64 1618
  %4206 = load ptr, ptr %4, align 8, !tbaa !43
  %4207 = zext i32 %4203 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %4205, ptr align 1 %4206, i64 %4207, i1 false)
  br label %4208

4208:                                             ; preds = %4204, %4202
  %4209 = load i32, ptr %1929, align 8, !tbaa !42
  %.not629 = icmp eq i32 %4209, 0
  br i1 %.not629, label %4214, label %4210

4210:                                             ; preds = %4208
  %4211 = getelementptr inbounds i8, ptr %4070, i64 1650
  %4212 = load ptr, ptr %5, align 8, !tbaa !43
  %4213 = zext i32 %4209 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %4211, ptr align 1 %4212, i64 %4213, i1 false)
  br label %4214

4214:                                             ; preds = %4210, %4208
  %4215 = load i32, ptr @test_count, align 4, !tbaa !5
  %4216 = add nsw i32 %4215, 1
  store i32 %4216, ptr @test_count, align 4, !tbaa !5
  %4217 = call i32 @s2n_prf_tls_master_secret(ptr noundef nonnull %4070, ptr noundef nonnull %77) #12
  %4218 = icmp eq i32 %4217, -1
  br i1 %4218, label %4241, label %4219

4219:                                             ; preds = %4214
  %4220 = load i32, ptr %450, align 4, !tbaa !5
  %4221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4222 = call i32 @s2n_print_stacktrace(ptr noundef %4221) #12
  %4223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4224 = trunc nuw i8 %4223 to i1
  br i1 %4224, label %4225, label %4229

4225:                                             ; preds = %4219
  %4226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4227 = call i32 @fileno(ptr noundef %4226) #12
  %4228 = call i32 @isatty(i32 noundef %4227) #12
  %.not630 = icmp eq i32 %4228, 0
  br i1 %.not630, label %4229, label %4230

4229:                                             ; preds = %4225, %4219
  br label %4230

4230:                                             ; preds = %4225, %4229
  %.str.25.sink2025 = phi ptr [ @.str.25, %4229 ], [ @.str.22, %4225 ]
  store i32 %4220, ptr %450, align 4, !tbaa !5
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = load i32, ptr @test_count, align 4, !tbaa !5
  %4233 = load i32, ptr %396, align 4, !tbaa !5
  %4234 = call ptr @s2n_strerror(i32 noundef %4233, ptr noundef nonnull @.str.24) #12
  %4235 = load i32, ptr %396, align 4, !tbaa !5
  %4236 = call ptr @s2n_strerror_debug(i32 noundef %4235, ptr noundef nonnull @.str.24) #12
  %4237 = load i32, ptr %450, align 4, !tbaa !5
  %4238 = call ptr @strerror(i32 noundef %4237) #12
  %4239 = load i32, ptr %450, align 4, !tbaa !5
  %4240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4231, ptr noundef nonnull %.str.25.sink2025, i32 noundef %4232, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.21, i32 noundef 516, ptr noundef %4234, ptr noundef %4236, ptr noundef %4238, i32 noundef %4239) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4241:                                             ; preds = %4214
  %4242 = load i32, ptr @test_count, align 4, !tbaa !5
  %4243 = add nsw i32 %4242, 1
  store i32 %4243, ptr @test_count, align 4, !tbaa !5
  %4244 = load i32, ptr %396, align 4, !tbaa !5
  %4245 = icmp eq i32 %4244, 402653193
  br i1 %4245, label %4268, label %4246

4246:                                             ; preds = %4241
  %4247 = load i32, ptr %450, align 4, !tbaa !5
  %4248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4249 = call i32 @s2n_print_stacktrace(ptr noundef %4248) #12
  %4250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4251 = trunc nuw i8 %4250 to i1
  br i1 %4251, label %4252, label %4256

4252:                                             ; preds = %4246
  %4253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4254 = call i32 @fileno(ptr noundef %4253) #12
  %4255 = call i32 @isatty(i32 noundef %4254) #12
  %.not631 = icmp eq i32 %4255, 0
  br i1 %.not631, label %4256, label %4257

4256:                                             ; preds = %4252, %4246
  br label %4257

4257:                                             ; preds = %4252, %4256
  %.str.25.sink2034 = phi ptr [ @.str.25, %4256 ], [ @.str.22, %4252 ]
  store i32 %4247, ptr %450, align 4, !tbaa !5
  %4258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4259 = load i32, ptr @test_count, align 4, !tbaa !5
  %4260 = load i32, ptr %396, align 4, !tbaa !5
  %4261 = call ptr @s2n_strerror(i32 noundef %4260, ptr noundef nonnull @.str.24) #12
  %4262 = load i32, ptr %396, align 4, !tbaa !5
  %4263 = call ptr @s2n_strerror_debug(i32 noundef %4262, ptr noundef nonnull @.str.24) #12
  %4264 = load i32, ptr %450, align 4, !tbaa !5
  %4265 = call ptr @strerror(i32 noundef %4264) #12
  %4266 = load i32, ptr %450, align 4, !tbaa !5
  %4267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4258, ptr noundef nonnull %.str.25.sink2034, i32 noundef %4259, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 516, ptr noundef %4261, ptr noundef %4263, ptr noundef %4265, i32 noundef %4266) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4268:                                             ; preds = %4241
  %4269 = add nsw i32 %4242, 2
  store i32 %4269, ptr @test_count, align 4, !tbaa !5
  %4270 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.24) #12
  %4271 = icmp eq ptr %4270, null
  br i1 %4271, label %4272, label %4294

4272:                                             ; preds = %4268
  %4273 = load i32, ptr %450, align 4, !tbaa !5
  %4274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4275 = call i32 @s2n_print_stacktrace(ptr noundef %4274) #12
  %4276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4277 = trunc nuw i8 %4276 to i1
  br i1 %4277, label %4278, label %4282

4278:                                             ; preds = %4272
  %4279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4280 = call i32 @fileno(ptr noundef %4279) #12
  %4281 = call i32 @isatty(i32 noundef %4280) #12
  %.not644 = icmp eq i32 %4281, 0
  br i1 %.not644, label %4282, label %4283

4282:                                             ; preds = %4278, %4272
  br label %4283

4283:                                             ; preds = %4278, %4282
  %.str.25.sink2043 = phi ptr [ @.str.25, %4282 ], [ @.str.22, %4278 ]
  store i32 %4273, ptr %450, align 4, !tbaa !5
  %4284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4285 = load i32, ptr @test_count, align 4, !tbaa !5
  %4286 = load i32, ptr %396, align 4, !tbaa !5
  %4287 = call ptr @s2n_strerror(i32 noundef %4286, ptr noundef nonnull @.str.24) #12
  %4288 = load i32, ptr %396, align 4, !tbaa !5
  %4289 = call ptr @s2n_strerror_debug(i32 noundef %4288, ptr noundef nonnull @.str.24) #12
  %4290 = load i32, ptr %450, align 4, !tbaa !5
  %4291 = call ptr @strerror(i32 noundef %4290) #12
  %4292 = load i32, ptr %450, align 4, !tbaa !5
  %4293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4284, ptr noundef nonnull %.str.25.sink2043, i32 noundef %4285, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 516, ptr noundef %4287, ptr noundef %4289, ptr noundef %4291, i32 noundef %4292) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4294:                                             ; preds = %4268
  store i32 0, ptr %396, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %450, align 4, !tbaa !5
  %4295 = load i32, ptr @test_count, align 4, !tbaa !5
  %4296 = add nsw i32 %4295, 1
  store i32 %4296, ptr @test_count, align 4, !tbaa !5
  %4297 = call i32 @s2n_connection_wipe(ptr noundef nonnull %4070) #12
  %4298 = icmp eq i32 %4297, -1
  br i1 %4298, label %4299, label %4321

4299:                                             ; preds = %4294
  %4300 = load i32, ptr %450, align 4, !tbaa !5
  %4301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4302 = call i32 @s2n_print_stacktrace(ptr noundef %4301) #12
  %4303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4304 = trunc nuw i8 %4303 to i1
  br i1 %4304, label %4305, label %4309

4305:                                             ; preds = %4299
  %4306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4307 = call i32 @fileno(ptr noundef %4306) #12
  %4308 = call i32 @isatty(i32 noundef %4307) #12
  %.not643 = icmp eq i32 %4308, 0
  br i1 %.not643, label %4309, label %4310

4309:                                             ; preds = %4305, %4299
  br label %4310

4310:                                             ; preds = %4305, %4309
  %.str.25.sink2052 = phi ptr [ @.str.25, %4309 ], [ @.str.22, %4305 ]
  store i32 %4300, ptr %450, align 4, !tbaa !5
  %4311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4312 = load i32, ptr @test_count, align 4, !tbaa !5
  %4313 = load i32, ptr %396, align 4, !tbaa !5
  %4314 = call ptr @s2n_strerror(i32 noundef %4313, ptr noundef nonnull @.str.24) #12
  %4315 = load i32, ptr %396, align 4, !tbaa !5
  %4316 = call ptr @s2n_strerror_debug(i32 noundef %4315, ptr noundef nonnull @.str.24) #12
  %4317 = load i32, ptr %450, align 4, !tbaa !5
  %4318 = call ptr @strerror(i32 noundef %4317) #12
  %4319 = load i32, ptr %450, align 4, !tbaa !5
  %4320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4311, ptr noundef nonnull %.str.25.sink2052, i32 noundef %4312, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.21, i32 noundef 518, ptr noundef %4314, ptr noundef %4316, ptr noundef %4318, i32 noundef %4319) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4321:                                             ; preds = %4294
  %4322 = load i32, ptr %1915, align 8, !tbaa !42
  %.not632 = icmp eq i32 %4322, 0
  br i1 %.not632, label %4327, label %4323

4323:                                             ; preds = %4321
  %4324 = getelementptr inbounds i8, ptr %4070, i64 240
  %4325 = load ptr, ptr %3, align 8, !tbaa !43
  %4326 = zext i32 %4322 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %4324, ptr align 1 %4325, i64 %4326, i1 false)
  br label %4327

4327:                                             ; preds = %4323, %4321
  %4328 = load i32, ptr %1922, align 8, !tbaa !42
  %.not633 = icmp eq i32 %4328, 0
  br i1 %.not633, label %4333, label %4329

4329:                                             ; preds = %4327
  %4330 = getelementptr inbounds i8, ptr %4070, i64 1618
  %4331 = load ptr, ptr %4, align 8, !tbaa !43
  %4332 = zext i32 %4328 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %4330, ptr align 1 %4331, i64 %4332, i1 false)
  br label %4333

4333:                                             ; preds = %4329, %4327
  %4334 = load i32, ptr %1929, align 8, !tbaa !42
  %.not634 = icmp eq i32 %4334, 0
  br i1 %.not634, label %4339, label %4335

4335:                                             ; preds = %4333
  %4336 = getelementptr inbounds i8, ptr %4070, i64 1650
  %4337 = load ptr, ptr %5, align 8, !tbaa !43
  %4338 = zext i32 %4334 to i64
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %4336, ptr align 1 %4337, i64 %4338, i1 false)
  br label %4339

4339:                                             ; preds = %4335, %4333
  %4340 = load i32, ptr @test_count, align 4, !tbaa !5
  %4341 = add nsw i32 %4340, 1
  store i32 %4341, ptr @test_count, align 4, !tbaa !5
  %4342 = call i32 @s2n_prf_tls_master_secret(ptr noundef nonnull %4070, ptr noundef nonnull %77) #12
  %4343 = icmp eq i32 %4342, -1
  br i1 %4343, label %4344, label %4366

4344:                                             ; preds = %4339
  %4345 = load i32, ptr %450, align 4, !tbaa !5
  %4346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4347 = call i32 @s2n_print_stacktrace(ptr noundef %4346) #12
  %4348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4349 = trunc nuw i8 %4348 to i1
  br i1 %4349, label %4350, label %4354

4350:                                             ; preds = %4344
  %4351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4352 = call i32 @fileno(ptr noundef %4351) #12
  %4353 = call i32 @isatty(i32 noundef %4352) #12
  %.not642 = icmp eq i32 %4353, 0
  br i1 %.not642, label %4354, label %4355

4354:                                             ; preds = %4350, %4344
  br label %4355

4355:                                             ; preds = %4350, %4354
  %.str.25.sink2061 = phi ptr [ @.str.25, %4354 ], [ @.str.22, %4350 ]
  store i32 %4345, ptr %450, align 4, !tbaa !5
  %4356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4357 = load i32, ptr @test_count, align 4, !tbaa !5
  %4358 = load i32, ptr %396, align 4, !tbaa !5
  %4359 = call ptr @s2n_strerror(i32 noundef %4358, ptr noundef nonnull @.str.24) #12
  %4360 = load i32, ptr %396, align 4, !tbaa !5
  %4361 = call ptr @s2n_strerror_debug(i32 noundef %4360, ptr noundef nonnull @.str.24) #12
  %4362 = load i32, ptr %450, align 4, !tbaa !5
  %4363 = call ptr @strerror(i32 noundef %4362) #12
  %4364 = load i32, ptr %450, align 4, !tbaa !5
  %4365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4356, ptr noundef nonnull %.str.25.sink2061, i32 noundef %4357, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.21, i32 noundef 522, ptr noundef %4359, ptr noundef %4361, ptr noundef %4363, i32 noundef %4364) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4366:                                             ; preds = %4339
  %4367 = load i32, ptr @test_count, align 4, !tbaa !5
  %4368 = add nsw i32 %4367, 1
  store i32 %4368, ptr @test_count, align 4, !tbaa !5
  %4369 = load ptr, ptr %6, align 8, !tbaa !43
  %4370 = load i32, ptr %1996, align 8, !tbaa !42
  %4371 = zext i32 %4370 to i64
  %bcmp635 = call i32 @bcmp(ptr nonnull %4143, ptr %4369, i64 %4371)
  %4372 = icmp eq i32 %bcmp635, 0
  br i1 %4372, label %4395, label %4373

4373:                                             ; preds = %4366
  %4374 = load i32, ptr %450, align 4, !tbaa !5
  %4375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4376 = call i32 @s2n_print_stacktrace(ptr noundef %4375) #12
  %4377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4378 = trunc nuw i8 %4377 to i1
  br i1 %4378, label %4379, label %4383

4379:                                             ; preds = %4373
  %4380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4381 = call i32 @fileno(ptr noundef %4380) #12
  %4382 = call i32 @isatty(i32 noundef %4381) #12
  %.not636 = icmp eq i32 %4382, 0
  br i1 %.not636, label %4383, label %4384

4383:                                             ; preds = %4379, %4373
  br label %4384

4384:                                             ; preds = %4379, %4383
  %.str.25.sink2070 = phi ptr [ @.str.25, %4383 ], [ @.str.22, %4379 ]
  store i32 %4374, ptr %450, align 4, !tbaa !5
  %4385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4386 = load i32, ptr @test_count, align 4, !tbaa !5
  %4387 = load i32, ptr %396, align 4, !tbaa !5
  %4388 = call ptr @s2n_strerror(i32 noundef %4387, ptr noundef nonnull @.str.24) #12
  %4389 = load i32, ptr %396, align 4, !tbaa !5
  %4390 = call ptr @s2n_strerror_debug(i32 noundef %4389, ptr noundef nonnull @.str.24) #12
  %4391 = load i32, ptr %450, align 4, !tbaa !5
  %4392 = call ptr @strerror(i32 noundef %4391) #12
  %4393 = load i32, ptr %450, align 4, !tbaa !5
  %4394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4385, ptr noundef nonnull %.str.25.sink2070, i32 noundef %4386, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.21, i32 noundef 523, ptr noundef %4388, ptr noundef %4390, ptr noundef %4392, i32 noundef %4393) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4395:                                             ; preds = %4366
  %4396 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %78) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %77) #12
  %4397 = call i32 @s2n_cleanup() #12
  %4398 = icmp eq i32 %4397, -1
  br i1 %4398, label %4399, label %4421

4399:                                             ; preds = %4395
  %4400 = load i32, ptr %450, align 4, !tbaa !5
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = call i32 @s2n_print_stacktrace(ptr noundef %4401) #12
  %4403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4404 = trunc nuw i8 %4403 to i1
  br i1 %4404, label %4405, label %4409

4405:                                             ; preds = %4399
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4407 = call i32 @fileno(ptr noundef %4406) #12
  %4408 = call i32 @isatty(i32 noundef %4407) #12
  %.not641 = icmp eq i32 %4408, 0
  br i1 %.not641, label %4409, label %4410

4409:                                             ; preds = %4405, %4399
  br label %4410

4410:                                             ; preds = %4405, %4409
  %.str.25.sink2079 = phi ptr [ @.str.25, %4409 ], [ @.str.22, %4405 ]
  store i32 %4400, ptr %450, align 4, !tbaa !5
  %4411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4412 = load i32, ptr @test_count, align 4, !tbaa !5
  %4413 = load i32, ptr %396, align 4, !tbaa !5
  %4414 = call ptr @s2n_strerror(i32 noundef %4413, ptr noundef nonnull @.str.24) #12
  %4415 = load i32, ptr %396, align 4, !tbaa !5
  %4416 = call ptr @s2n_strerror_debug(i32 noundef %4415, ptr noundef nonnull @.str.24) #12
  %4417 = load i32, ptr %450, align 4, !tbaa !5
  %4418 = call ptr @strerror(i32 noundef %4417) #12
  %4419 = load i32, ptr %450, align 4, !tbaa !5
  %4420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4411, ptr noundef nonnull %.str.25.sink2079, i32 noundef %4412, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.21, i32 noundef 527, ptr noundef %4414, ptr noundef %4416, ptr noundef %4418, i32 noundef %4419) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4421:                                             ; preds = %4395
  %4422 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %4423 = icmp eq i32 %4422, -1
  br i1 %4423, label %4424, label %4446

4424:                                             ; preds = %4421
  %4425 = load i32, ptr %450, align 4, !tbaa !5
  %4426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4427 = call i32 @s2n_print_stacktrace(ptr noundef %4426) #12
  %4428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4429 = trunc nuw i8 %4428 to i1
  br i1 %4429, label %4430, label %4434

4430:                                             ; preds = %4424
  %4431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4432 = call i32 @fileno(ptr noundef %4431) #12
  %4433 = call i32 @isatty(i32 noundef %4432) #12
  %.not640 = icmp eq i32 %4433, 0
  br i1 %.not640, label %4434, label %4435

4434:                                             ; preds = %4430, %4424
  br label %4435

4435:                                             ; preds = %4430, %4434
  %.str.25.sink2088 = phi ptr [ @.str.25, %4434 ], [ @.str.22, %4430 ]
  store i32 %4425, ptr %450, align 4, !tbaa !5
  %4436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4437 = load i32, ptr @test_count, align 4, !tbaa !5
  %4438 = load i32, ptr %396, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror(i32 noundef %4438, ptr noundef nonnull @.str.24) #12
  %4440 = load i32, ptr %396, align 4, !tbaa !5
  %4441 = call ptr @s2n_strerror_debug(i32 noundef %4440, ptr noundef nonnull @.str.24) #12
  %4442 = load i32, ptr %450, align 4, !tbaa !5
  %4443 = call ptr @strerror(i32 noundef %4442) #12
  %4444 = load i32, ptr %450, align 4, !tbaa !5
  %4445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4436, ptr noundef nonnull %.str.25.sink2088, i32 noundef %4437, ptr noundef nonnull @.str.145, ptr noundef nonnull @.str.21, i32 noundef 527, ptr noundef %4439, ptr noundef %4441, ptr noundef %4443, i32 noundef %4444) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4446:                                             ; preds = %4421
  %4447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4448 = trunc nuw i8 %4447 to i1
  br i1 %4448, label %4449, label %4460

4449:                                             ; preds = %4446
  %4450 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4451 = call i32 @fileno(ptr noundef %4450) #12
  %4452 = call i32 @isatty(i32 noundef %4451) #12
  %.not637 = icmp eq i32 %4452, 0
  br i1 %.not637, label %4460, label %4453

4453:                                             ; preds = %4449
  %4454 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not639 = icmp eq i32 %4454, 0
  %4455 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not639, label %4458, label %4456

4456:                                             ; preds = %4453
  %4457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4455, ptr noundef nonnull @.str.146, i32 noundef %4454) #12
  br label %4467

4458:                                             ; preds = %4453
  %4459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4455, ptr noundef nonnull @.str.147) #12
  br label %4467

4460:                                             ; preds = %4449, %4446
  %4461 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not638 = icmp eq i32 %4461, 0
  %4462 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not638, label %4465, label %4463

4463:                                             ; preds = %4460
  %4464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4462, ptr noundef nonnull @.str.148, i32 noundef %4461) #12
  br label %4467

4465:                                             ; preds = %4460
  %4466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4462, ptr noundef nonnull @.str.149) #12
  br label %4467

4467:                                             ; preds = %.thread739, %1884, %.thread730, %4458, %4456, %4465, %4463, %203, %3281, %2123
  %.31 = phi i32 [ %.30, %3281 ], [ %.28, %2123 ], [ -1, %1884 ], [ -1, %203 ], [ 0, %4463 ], [ 0, %4465 ], [ 0, %4456 ], [ 0, %4458 ], [ %.26.ph, %.thread730 ], [ -1, %.thread739 ]
  %4468 = call i32 @s2n_free(ptr noundef nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #12
  br label %4469

4469:                                             ; preds = %200, %4467
  %.32 = phi i32 [ %.31, %4467 ], [ -1, %200 ]
  %4470 = call i32 @s2n_free(ptr noundef nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #12
  br label %4471

4471:                                             ; preds = %197, %4469
  %.33 = phi i32 [ %.32, %4469 ], [ -1, %197 ]
  %4472 = call i32 @s2n_free(ptr noundef nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #12
  br label %4473

4473:                                             ; preds = %194, %4471
  %.34 = phi i32 [ %.33, %4471 ], [ -1, %194 ]
  %4474 = call i32 @s2n_free(ptr noundef nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #12
  ret i32 %.34
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #7

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_prf(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare zeroext i1 @s2n_libcrypto_is_openssl_fips() local_unnamed_addr #2

declare i32 @s2n_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_in_fips_mode() local_unnamed_addr #2

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

declare i32 @s2n_prf_tls_master_secret(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_prf_tls_extended_master_secret(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_prf_calculate_master_secret(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_hmac_hash_alg(i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_prf_get_digest_for_ems(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_digest_size(i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_new(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_handshake_copy_hash_state(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_digest(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_prf_new(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_prf_wipe(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_prf_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free_handshake(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

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

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 220}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!25, !6, i64 8}
!43 = !{!25, !10, i64 0}
!44 = !{!16, !10, i64 232}
!45 = !{!46, !10, i64 0}
!46 = !{!"s2n_crypto_parameters", !10, i64 0, !47, i64 8, !47, i64 16, !48, i64 24, !48, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!47 = !{!"s2n_session_key", !10, i64 0}
!48 = !{!"s2n_hmac_state", !6, i64 0, !31, i64 4, !6, i64 8, !31, i64 12, !7, i64 14, !49, i64 16, !49, i64 72, !49, i64 128, !49, i64 184, !7, i64 240, !7, i64 368}
!49 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !18, i64 16, !7, i64 24}
!50 = !{!16, !10, i64 1752}
!51 = !{!16, !6, i64 2172}
!52 = !{!16, !6, i64 2204}
!53 = !{!16, !6, i64 2176}
!54 = distinct !{!54, !55}
!55 = !{!"llvm.loop.mustprogress"}
!56 = !{!32, !6, i64 28}
!57 = !{!32, !6, i64 24}
!58 = !{!59, !6, i64 96}
!59 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}
!60 = !{!7, !7, i64 0}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass