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

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

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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [89 x i8], align 1
@__const.main.valid_wire_ciphers = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [90 x i8], align 1
@__const.main.invalid_wire_ciphers = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [61 x i8], align 1
@__const.main.valid_tls13_wire_ciphers = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [82 x i8], align 1
@s2n_null_cipher_suite = external global %struct.s2n_cipher_suite, align 8
@.str.29 = external hidden unnamed_addr constant [70 x i8], align 1
@__const.main.valid_tls13_wire_ciphers.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [85 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.32 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [117 x i8], align 1
@__const.main.wire_ciphers = external hidden unnamed_addr constant [48 x i8], align 16
@__const.main.wire_ciphers_fallback = external hidden unnamed_addr constant [48 x i8], align 16
@__const.main.wire_ciphers_renegotiation = external hidden unnamed_addr constant [48 x i8], align 16
@__const.main.wire_ciphers_with_ecdsa = external hidden unnamed_addr constant [4 x i8], align 1
@__const.main.wire_ciphers_only_ecdsa = external hidden unnamed_addr constant [8 x i8], align 1
@__const.main.wire_ciphers_rsa_fallback = external hidden unnamed_addr constant [12 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [43 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.76 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [90 x i8], align 1
@s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.82 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_rsa_with_rc4_128_md5 = external global %struct.s2n_cipher_suite, align 8
@s2n_rsa_with_3des_ede_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@s2n_ecdhe_ecdsa_with_aes_256_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.87 = external hidden unnamed_addr constant [113 x i8], align 1
@s2n_rsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.88 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [114 x i8], align 1
@cipher_preferences_20170210 = external constant %struct.s2n_cipher_preferences, align 8
@.str.106 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [66 x i8], align 1
@__const.main.test_cases = external hidden unnamed_addr constant [3 x %struct.test_case], align 16
@.str.108 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [82 x i8], align 1
@__const.main.wire_ciphers2 = external hidden unnamed_addr constant [8 x i8], align 1
@s2n_chacha20_poly1305 = external constant %struct.s2n_cipher, align 8
@.str.110 = external hidden unnamed_addr constant [85 x i8], align 1
@s2n_tls13_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.111 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [82 x i8], align 1
@__const.main.test_wire_ciphers = external hidden unnamed_addr constant [4 x i8], align 1
@s2n_all_supported_curves_list = external constant [0 x ptr], align 8
@.str.113 = external hidden unnamed_addr constant [89 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.114 = external hidden unnamed_addr constant [86 x i8], align 1
@__const.main.test_wire_ciphers.115 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [85 x i8], align 1
@__const.main.test_wire_ciphers.119 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [82 x i8], align 1
@__const.main.test_wire_ciphers.121 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [55 x i8], align 1
@__const.main.invalid_cipher_pref = external hidden unnamed_addr constant [2 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [70 x i8], align 1
@__const.main.wire = external hidden unnamed_addr constant [2 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [74 x i8], align 1
@s2n_dhe_rsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.133 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [68 x i8], align 1
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@s2n_signature_preferences_20201021 = external constant %struct.s2n_signature_preferences, align 8
@s2n_ecc_preferences_test_all = external constant %struct.s2n_ecc_preferences, align 8
@.str.136 = external hidden unnamed_addr constant [195 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [83 x i8], align 1
@main.test_cipher_suite_list = external hidden global [3 x ptr], align 16
@s2n_ecdhe_ecdsa_with_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_ecdhe_rsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@s2n_ecdhe_rsa_with_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@__const.main.wire.146 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [81 x i8], align 1
@main.test_cipher_suite_list.151 = external hidden global [3 x ptr], align 16
@s2n_ecdhe_rsa_with_aes_256_cbc_sha384 = external global %struct.s2n_cipher_suite, align 8
@__const.main.wire.152 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [92 x i8], align 1
@main.test_cipher_suite_list.155 = external hidden global [3 x ptr], align 16
@s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@__const.main.wire.156 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [94 x i8], align 1
@main.test_cipher_suite_list.158 = external hidden global [3 x ptr], align 16
@__const.main.wire.159 = external hidden unnamed_addr constant [6 x i8], align 1
@main.test_cipher_suite_list.160 = external hidden global [2 x ptr], align 16
@__const.main.wire.161 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [85 x i8], align 1
@main.test_cipher_suite_list.164 = external hidden global [3 x ptr], align 16
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@__const.main.test_wire_1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [83 x i8], align 1
@__const.main.test_wire_2 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [83 x i8], align 1
@main.test_cipher_suite_list.170 = external hidden global [1 x ptr], align 8
@__const.main.wire.171 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [85 x i8], align 1
@main.test_cipher_suite_list.173 = external hidden global [3 x ptr], align 16
@s2n_ecdhe_ecdsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@__const.main.wire.174 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [91 x i8], align 1
@main.test_cipher_suite_list.177 = external hidden global [2 x ptr], align 16
@__const.main.wire.178 = external hidden unnamed_addr constant [6 x i8], align 1
@main.test_cipher_suite_list.179 = external hidden global [3 x ptr], align 16
@__const.main.wire.180 = external hidden unnamed_addr constant [6 x i8], align 1
@main.test_cipher_suite_list.181 = external hidden global [3 x ptr], align 16
@__const.main.wire.182 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca [12000 x i8], align 16
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca [2 x i8], align 1
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca [2 x i8], align 1
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %struct.s2n_result, align 4
  %31 = alloca i32, align 4
  %32 = alloca [2 x i8], align 1
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %struct.s2n_result, align 4
  %39 = alloca i32, align 4
  %40 = alloca [2 x i8], align 1
  %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 ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca [48 x i8], align 16
  %69 = alloca i8, align 1
  %70 = alloca [48 x i8], align 16
  %71 = alloca i8, align 1
  %72 = alloca [48 x i8], align 16
  %73 = alloca i8, align 1
  %74 = alloca [4 x i8], align 1
  %75 = alloca i8, align 1
  %76 = alloca [8 x i8], align 1
  %77 = alloca i8, align 1
  %78 = alloca [12 x i8], align 1
  %79 = alloca i8, align 1
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca ptr, align 8
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca ptr, align 8
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca ptr, align 8
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %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 i32, align 4
  %133 = alloca ptr, align 8
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca ptr, align 8
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca ptr, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca ptr, align 8
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca ptr, align 8
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca ptr, align 8
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca ptr, align 8
  %176 = alloca i32, align 4
  %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 i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca ptr, align 8
  %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 i32, align 4
  %196 = alloca ptr, align 8
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca [2 x ptr], align 16
  %204 = alloca i32, align 4
  %205 = alloca ptr, align 8
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca i32, align 4
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca [2 x ptr], align 16
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca i32, align 4
  %225 = alloca ptr, align 8
  %226 = alloca i32, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca ptr, align 8
  %233 = alloca [8 x i8], align 1
  %234 = alloca i8, align 1
  %235 = alloca i32, align 4
  %236 = alloca i32, align 4
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca [3 x %struct.test_case], align 16
  %240 = alloca i64, align 8
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca [8 x i8], align 1
  %246 = alloca i8, align 1
  %247 = alloca i32, align 4
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca i32, align 4
  %254 = alloca [4 x i8], align 1
  %255 = alloca i8, align 1
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca i32, align 4
  %259 = alloca i32, align 4
  %260 = alloca i32, align 4
  %261 = alloca [6 x i8], align 1
  %262 = alloca i32, align 4
  %263 = alloca i32, align 4
  %264 = alloca i32, align 4
  %265 = alloca i32, align 4
  %266 = alloca i32, align 4
  %267 = alloca i32, align 4
  %268 = alloca [4 x i8], align 1
  %269 = alloca i32, align 4
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca i32, align 4
  %273 = alloca i32, align 4
  %274 = alloca i32, align 4
  %275 = alloca i32, align 4
  %276 = alloca [4 x i8], align 1
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca i32, align 4
  %281 = alloca i32, align 4
  %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 i32, align 4
  %289 = alloca i32, align 4
  %290 = alloca %struct.s2n_result, align 4
  %291 = alloca i32, align 4
  %292 = alloca i32, align 4
  %293 = alloca i32, align 4
  %294 = alloca i32, align 4
  %295 = alloca i32, align 4
  %296 = alloca i32, align 4
  %297 = alloca [2 x i8], align 1
  %298 = alloca i8, align 1
  %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 ptr, align 8
  %306 = alloca i32, align 4
  %307 = alloca i32, align 4
  %308 = alloca ptr, align 8
  %309 = alloca i32, align 4
  %310 = alloca i32, align 4
  %311 = alloca [2 x i8], align 1
  %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 %struct.s2n_result, align 4
  %319 = alloca %struct.s2n_result, align 4
  %320 = alloca i32, align 4
  %321 = alloca i32, align 4
  %322 = alloca i32, align 4
  %323 = alloca i32, align 4
  %324 = alloca %struct.s2n_cipher_preferences, align 8
  %325 = alloca %struct.s2n_security_policy, align 8
  %326 = alloca ptr, align 8
  %327 = alloca ptr, align 8
  %328 = alloca ptr, align 8
  %329 = alloca i32, align 4
  %330 = alloca i32, align 4
  %331 = alloca i32, align 4
  %332 = alloca i32, align 4
  %333 = alloca i32, align 4
  %334 = alloca i32, align 4
  %335 = alloca i32, align 4
  %336 = alloca i32, align 4
  %337 = alloca ptr, align 8
  %338 = alloca i32, align 4
  %339 = alloca i32, align 4
  %340 = alloca ptr, align 8
  %341 = alloca i32, align 4
  %342 = alloca i32, align 4
  %343 = alloca i32, align 4
  %344 = alloca %struct.s2n_cipher_preferences, align 8
  %345 = alloca [6 x i8], align 1
  %346 = alloca i8, align 1
  %347 = alloca i32, align 4
  %348 = alloca i32, align 4
  %349 = alloca i32, align 4
  %350 = alloca i32, align 4
  %351 = alloca %struct.s2n_result, align 4
  %352 = alloca %struct.s2n_result, align 4
  %353 = alloca ptr, align 8
  %354 = alloca i32, align 4
  %355 = alloca i32, align 4
  %356 = alloca i32, align 4
  %357 = alloca %struct.s2n_cipher_preferences, align 8
  %358 = alloca [6 x i8], align 1
  %359 = alloca i8, align 1
  %360 = alloca i32, align 4
  %361 = alloca i32, align 4
  %362 = alloca i32, align 4
  %363 = alloca i32, align 4
  %364 = alloca %struct.s2n_result, align 4
  %365 = alloca ptr, align 8
  %366 = alloca i32, align 4
  %367 = alloca i32, align 4
  %368 = alloca i32, align 4
  %369 = alloca [4 x i8], align 1
  %370 = alloca i8, align 1
  %371 = alloca %struct.s2n_cipher_preferences, align 8
  %372 = alloca i32, align 4
  %373 = alloca i32, align 4
  %374 = alloca i32, align 4
  %375 = alloca i32, align 4
  %376 = alloca %struct.s2n_result, align 4
  %377 = alloca ptr, align 8
  %378 = alloca i32, align 4
  %379 = alloca i32, align 4
  %380 = alloca i32, align 4
  %381 = alloca %struct.s2n_cipher_preferences, align 8
  %382 = alloca [6 x i8], align 1
  %383 = alloca i8, align 1
  %384 = alloca i32, align 4
  %385 = alloca i32, align 4
  %386 = alloca i32, align 4
  %387 = alloca i32, align 4
  %388 = alloca %struct.s2n_result, align 4
  %389 = alloca ptr, align 8
  %390 = alloca i32, align 4
  %391 = alloca i32, align 4
  %392 = alloca i32, align 4
  %393 = alloca %struct.s2n_cipher_preferences, align 8
  %394 = alloca [4 x i8], align 1
  %395 = alloca i8, align 1
  %396 = alloca i32, align 4
  %397 = alloca i32, align 4
  %398 = alloca %struct.s2n_result, align 4
  %399 = alloca ptr, align 8
  %400 = alloca i32, align 4
  %401 = alloca i32, align 4
  %402 = alloca %struct.s2n_cipher_preferences, align 8
  %403 = alloca [6 x i8], align 1
  %404 = alloca i8, align 1
  %405 = alloca i32, align 4
  %406 = alloca i32, align 4
  %407 = alloca i32, align 4
  %408 = alloca i32, align 4
  %409 = alloca [4 x i8], align 1
  %410 = alloca i32, align 4
  %411 = alloca i32, align 4
  %412 = alloca %struct.s2n_result, align 4
  %413 = alloca ptr, align 8
  %414 = alloca i32, align 4
  %415 = alloca i32, align 4
  %416 = alloca %struct.s2n_cipher_preferences, align 8
  %417 = alloca [2 x i8], align 1
  %418 = alloca i8, align 1
  %419 = alloca i32, align 4
  %420 = alloca i32, align 4
  %421 = alloca %struct.s2n_result, align 4
  %422 = alloca ptr, align 8
  %423 = alloca i32, align 4
  %424 = alloca i32, align 4
  %425 = alloca i32, align 4
  %426 = alloca %struct.s2n_cipher_preferences, align 8
  %427 = alloca [9 x i8], align 1
  %428 = alloca i8, align 1
  %429 = alloca i32, align 4
  %430 = alloca i32, align 4
  %431 = alloca %struct.s2n_result, align 4
  %432 = alloca ptr, align 8
  %433 = alloca i32, align 4
  %434 = alloca i32, align 4
  %435 = alloca i32, align 4
  %436 = alloca %struct.s2n_cipher_preferences, align 8
  %437 = alloca [6 x i8], align 1
  %438 = alloca i8, align 1
  %439 = alloca i32, align 4
  %440 = alloca i32, align 4
  %441 = alloca i32, align 4
  %442 = alloca %struct.s2n_result, align 4
  %443 = alloca ptr, align 8
  %444 = alloca i32, align 4
  %445 = alloca i32, align 4
  %446 = alloca i32, align 4
  %447 = alloca %struct.s2n_cipher_preferences, align 8
  %448 = alloca [6 x i8], align 1
  %449 = alloca i8, align 1
  %450 = alloca i32, align 4
  %451 = alloca i32, align 4
  %452 = alloca i32, align 4
  %453 = alloca i32, align 4
  %454 = alloca %struct.s2n_result, align 4
  %455 = alloca ptr, align 8
  %456 = alloca i32, align 4
  %457 = alloca i32, align 4
  %458 = alloca i32, align 4
  %459 = alloca %struct.s2n_cipher_preferences, align 8
  %460 = alloca [6 x i8], align 1
  %461 = alloca i8, align 1
  %462 = alloca i32, align 4
  %463 = alloca i32, align 4
  %464 = alloca %struct.s2n_result, align 4
  %465 = alloca i32, align 4
  %466 = alloca i32, align 4
  %467 = alloca %struct.s2n_result, align 4
  %468 = alloca i32, align 4
  %469 = alloca i32, align 4
  %470 = 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 %471

471:                                              ; preds = %2
  br label %472

472:                                              ; preds = %471
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %473 = load ptr, ptr @stdout, align 8, !tbaa !9
  %474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %473, ptr noundef @.str, ptr noundef @.str.1) #12
  %475 = load ptr, ptr @stdout, align 8, !tbaa !9
  %476 = call i32 @fflush(ptr noundef %475)
  br label %477

477:                                              ; preds = %472
  %478 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %479 = icmp eq i32 %478, -1
  br i1 %479, label %480, label %531

480:                                              ; preds = %477
  br label %481

481:                                              ; preds = %480
  br label %482

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

489:                                              ; preds = %482
  %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
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %494, label %511

494:                                              ; preds = %489
  %495 = load i32, ptr %6, align 4, !tbaa !5
  %496 = call ptr @__errno_location() #13
  store i32 %495, ptr %496, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror(i32 noundef %500, ptr noundef @.str.4)
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror_debug(i32 noundef %503, ptr noundef @.str.4)
  %505 = call ptr @__errno_location() #13
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call ptr @strerror(i32 noundef %506) #12
  %508 = call ptr @__errno_location() #13
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef @.str.2, i32 noundef %498, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 41, ptr noundef %501, ptr noundef %504, ptr noundef %507, i32 noundef %509) #12
  br label %528

511:                                              ; preds = %489, %482
  %512 = load i32, ptr %6, align 4, !tbaa !5
  %513 = call ptr @__errno_location() #13
  store i32 %512, ptr %513, align 4, !tbaa !5
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %517 = load i32, ptr %516, align 4, !tbaa !5
  %518 = call ptr @s2n_strerror(i32 noundef %517, ptr noundef @.str.4)
  %519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = call ptr @s2n_strerror_debug(i32 noundef %520, ptr noundef @.str.4)
  %522 = call ptr @__errno_location() #13
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = call ptr @strerror(i32 noundef %523) #12
  %525 = call ptr @__errno_location() #13
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %514, ptr noundef @.str.5, i32 noundef %515, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 41, ptr noundef %518, ptr noundef %521, ptr noundef %524, i32 noundef %526) #12
  br label %528

528:                                              ; preds = %511, %494
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #12
  br label %529

529:                                              ; preds = %528
  call void @exit(i32 noundef 1) #14
  unreachable

530:                                              ; No predecessors!
  br label %531

531:                                              ; preds = %530, %477
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr @test_count, align 4, !tbaa !5
  %536 = call i32 @s2n_enable_atexit()
  %537 = icmp eq i32 %536, -1
  br i1 %537, label %538, label %589

538:                                              ; preds = %533
  br label %539

539:                                              ; preds = %538
  br label %540

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

547:                                              ; preds = %540
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = call i32 @fileno(ptr noundef %548) #12
  %550 = call i32 @isatty(i32 noundef %549) #12
  %551 = icmp ne i32 %550, 0
  br i1 %551, label %552, label %569

552:                                              ; preds = %547
  %553 = load i32, ptr %7, align 4, !tbaa !5
  %554 = call ptr @__errno_location() #13
  store i32 %553, ptr %554, align 4, !tbaa !5
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = load i32, ptr @test_count, align 4, !tbaa !5
  %557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror(i32 noundef %558, ptr noundef @.str.4)
  %560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %561 = load i32, ptr %560, align 4, !tbaa !5
  %562 = call ptr @s2n_strerror_debug(i32 noundef %561, ptr noundef @.str.4)
  %563 = call ptr @__errno_location() #13
  %564 = load i32, ptr %563, align 4, !tbaa !5
  %565 = call ptr @strerror(i32 noundef %564) #12
  %566 = call ptr @__errno_location() #13
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %555, ptr noundef @.str.2, i32 noundef %556, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 41, ptr noundef %559, ptr noundef %562, ptr noundef %565, i32 noundef %567) #12
  br label %586

569:                                              ; preds = %547, %540
  %570 = load i32, ptr %7, align 4, !tbaa !5
  %571 = call ptr @__errno_location() #13
  store i32 %570, ptr %571, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror(i32 noundef %575, ptr noundef @.str.4)
  %577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %578 = load i32, ptr %577, align 4, !tbaa !5
  %579 = call ptr @s2n_strerror_debug(i32 noundef %578, ptr noundef @.str.4)
  %580 = call ptr @__errno_location() #13
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = call ptr @strerror(i32 noundef %581) #12
  %583 = call ptr @__errno_location() #13
  %584 = load i32, ptr %583, align 4, !tbaa !5
  %585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %572, ptr noundef @.str.5, i32 noundef %573, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 41, ptr noundef %576, ptr noundef %579, ptr noundef %582, i32 noundef %584) #12
  br label %586

586:                                              ; preds = %569, %552
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #12
  br label %587

587:                                              ; preds = %586
  call void @exit(i32 noundef 1) #14
  unreachable

588:                                              ; No predecessors!
  br label %589

589:                                              ; preds = %588, %533
  br label %590

590:                                              ; preds = %589
  br label %591

591:                                              ; preds = %590
  br label %592

592:                                              ; preds = %591
  %593 = call i32 @s2n_init()
  %594 = icmp eq i32 %593, -1
  br i1 %594, label %595, label %646

595:                                              ; preds = %592
  br label %596

596:                                              ; preds = %595
  br label %597

597:                                              ; preds = %596
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #12
  %598 = call ptr @__errno_location() #13
  %599 = load i32, ptr %598, align 4, !tbaa !5
  store i32 %599, ptr %8, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = call i32 @s2n_print_stacktrace(ptr noundef %600)
  %602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %603 = trunc i8 %602 to i1
  br i1 %603, label %604, label %626

604:                                              ; preds = %597
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = call i32 @fileno(ptr noundef %605) #12
  %607 = call i32 @isatty(i32 noundef %606) #12
  %608 = icmp ne i32 %607, 0
  br i1 %608, label %609, label %626

609:                                              ; preds = %604
  %610 = load i32, ptr %8, align 4, !tbaa !5
  %611 = call ptr @__errno_location() #13
  store i32 %610, ptr %611, align 4, !tbaa !5
  %612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror(i32 noundef %615, ptr noundef @.str.4)
  %617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef @.str.4)
  %620 = call ptr @__errno_location() #13
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call ptr @strerror(i32 noundef %621) #12
  %623 = call ptr @__errno_location() #13
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %612, ptr noundef @.str.2, i32 noundef %613, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 41, ptr noundef %616, ptr noundef %619, ptr noundef %622, i32 noundef %624) #12
  br label %643

626:                                              ; preds = %604, %597
  %627 = load i32, ptr %8, align 4, !tbaa !5
  %628 = call ptr @__errno_location() #13
  store i32 %627, ptr %628, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = load i32, ptr @test_count, align 4, !tbaa !5
  %631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror(i32 noundef %632, ptr noundef @.str.4)
  %634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @s2n_strerror_debug(i32 noundef %635, ptr noundef @.str.4)
  %637 = call ptr @__errno_location() #13
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @strerror(i32 noundef %638) #12
  %640 = call ptr @__errno_location() #13
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %629, ptr noundef @.str.5, i32 noundef %630, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 41, ptr noundef %633, ptr noundef %636, ptr noundef %639, i32 noundef %641) #12
  br label %643

643:                                              ; preds = %626, %609
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #12
  br label %644

644:                                              ; preds = %643
  call void @exit(i32 noundef 1) #14
  unreachable

645:                                              ; No predecessors!
  br label %646

646:                                              ; preds = %645, %592
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  br label %649

649:                                              ; preds = %648
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = add nsw i32 %650, 1
  store i32 %651, ptr @test_count, align 4, !tbaa !5
  %652 = call i32 (...) @s2n_disable_tls13_in_test()
  %653 = icmp eq i32 %652, -1
  br i1 %653, label %654, label %705

654:                                              ; preds = %649
  br label %655

655:                                              ; preds = %654
  br label %656

656:                                              ; preds = %655
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #12
  %657 = call ptr @__errno_location() #13
  %658 = load i32, ptr %657, align 4, !tbaa !5
  store i32 %658, ptr %9, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @s2n_print_stacktrace(ptr noundef %659)
  %661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %662 = trunc i8 %661 to i1
  br i1 %662, label %663, label %685

663:                                              ; preds = %656
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = call i32 @fileno(ptr noundef %664) #12
  %666 = call i32 @isatty(i32 noundef %665) #12
  %667 = icmp ne i32 %666, 0
  br i1 %667, label %668, label %685

668:                                              ; preds = %663
  %669 = load i32, ptr %9, align 4, !tbaa !5
  %670 = call ptr @__errno_location() #13
  store i32 %669, ptr %670, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror(i32 noundef %674, ptr noundef @.str.4)
  %676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror_debug(i32 noundef %677, ptr noundef @.str.4)
  %679 = call ptr @__errno_location() #13
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @strerror(i32 noundef %680) #12
  %682 = call ptr @__errno_location() #13
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %671, ptr noundef @.str.2, i32 noundef %672, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 42, ptr noundef %675, ptr noundef %678, ptr noundef %681, i32 noundef %683) #12
  br label %702

685:                                              ; preds = %663, %656
  %686 = load i32, ptr %9, align 4, !tbaa !5
  %687 = call ptr @__errno_location() #13
  store i32 %686, ptr %687, align 4, !tbaa !5
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = load i32, ptr @test_count, align 4, !tbaa !5
  %690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror(i32 noundef %691, ptr noundef @.str.4)
  %693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror_debug(i32 noundef %694, ptr noundef @.str.4)
  %696 = call ptr @__errno_location() #13
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @strerror(i32 noundef %697) #12
  %699 = call ptr @__errno_location() #13
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %688, ptr noundef @.str.5, i32 noundef %689, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 42, ptr noundef %692, ptr noundef %695, ptr noundef %698, i32 noundef %700) #12
  br label %702

702:                                              ; preds = %685, %668
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #12
  br label %703

703:                                              ; preds = %702
  call void @exit(i32 noundef 1) #14
  unreachable

704:                                              ; No predecessors!
  br label %705

705:                                              ; preds = %704, %649
  br label %706

706:                                              ; preds = %705
  call void @llvm.lifetime.start.p0(i64 12000, ptr %10) #12
  call void @llvm.memset.p0.i64(ptr align 16 %10, i8 0, i64 12000, i1 false)
  br label %707

707:                                              ; preds = %706
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %711 = call i32 @s2n_read_test_pem(ptr noundef @.str.9, ptr noundef %710, i64 noundef 12000)
  %712 = icmp eq i32 %711, -1
  br i1 %712, label %713, label %766

713:                                              ; preds = %707
  br label %714

714:                                              ; preds = %713
  br label %715

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

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

727:                                              ; preds = %722
  %728 = load i32, ptr %11, align 4, !tbaa !5
  %729 = call ptr @__errno_location() #13
  store i32 %728, ptr %729, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror(i32 noundef %733, ptr noundef @.str.4)
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror_debug(i32 noundef %736, ptr noundef @.str.4)
  %738 = call ptr @__errno_location() #13
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #12
  %741 = call ptr @__errno_location() #13
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef @.str.2, i32 noundef %731, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 46, ptr noundef %734, ptr noundef %737, ptr noundef %740, i32 noundef %742) #12
  br label %761

744:                                              ; preds = %722, %715
  %745 = load i32, ptr %11, align 4, !tbaa !5
  %746 = call ptr @__errno_location() #13
  store i32 %745, ptr %746, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror(i32 noundef %750, ptr noundef @.str.4)
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror_debug(i32 noundef %753, ptr noundef @.str.4)
  %755 = call ptr @__errno_location() #13
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @strerror(i32 noundef %756) #12
  %758 = call ptr @__errno_location() #13
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef @.str.5, i32 noundef %748, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 46, ptr noundef %751, ptr noundef %754, ptr noundef %757, i32 noundef %759) #12
  br label %761

761:                                              ; preds = %744, %727
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #12
  br label %762

762:                                              ; preds = %761
  br label %763

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

764:                                              ; No predecessors!
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765, %707
  br label %767

767:                                              ; preds = %766
  br label %768

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

769:                                              ; preds = %768
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr @test_count, align 4, !tbaa !5
  %772 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %772, ptr %12, align 8, !tbaa !9
  %773 = icmp eq ptr %772, null
  br i1 %773, label %774, label %827

774:                                              ; preds = %769
  br label %775

775:                                              ; preds = %774
  br label %776

776:                                              ; preds = %775
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #12
  %777 = call ptr @__errno_location() #13
  %778 = load i32, ptr %777, align 4, !tbaa !5
  store i32 %778, ptr %13, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @s2n_print_stacktrace(ptr noundef %779)
  %781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %782 = trunc i8 %781 to i1
  br i1 %782, label %783, label %805

783:                                              ; preds = %776
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @fileno(ptr noundef %784) #12
  %786 = call i32 @isatty(i32 noundef %785) #12
  %787 = icmp ne i32 %786, 0
  br i1 %787, label %788, label %805

788:                                              ; preds = %783
  %789 = load i32, ptr %13, align 4, !tbaa !5
  %790 = call ptr @__errno_location() #13
  store i32 %789, ptr %790, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror(i32 noundef %794, ptr noundef @.str.4)
  %796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call ptr @s2n_strerror_debug(i32 noundef %797, ptr noundef @.str.4)
  %799 = call ptr @__errno_location() #13
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call ptr @strerror(i32 noundef %800) #12
  %802 = call ptr @__errno_location() #13
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %791, ptr noundef @.str.2, i32 noundef %792, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 52, ptr noundef %795, ptr noundef %798, ptr noundef %801, i32 noundef %803) #12
  br label %822

805:                                              ; preds = %783, %776
  %806 = load i32, ptr %13, align 4, !tbaa !5
  %807 = call ptr @__errno_location() #13
  store i32 %806, ptr %807, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %811 = load i32, ptr %810, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror(i32 noundef %811, ptr noundef @.str.4)
  %813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %814 = load i32, ptr %813, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror_debug(i32 noundef %814, ptr noundef @.str.4)
  %816 = call ptr @__errno_location() #13
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = call ptr @strerror(i32 noundef %817) #12
  %819 = call ptr @__errno_location() #13
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %808, ptr noundef @.str.5, i32 noundef %809, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 52, ptr noundef %812, ptr noundef %815, ptr noundef %818, i32 noundef %820) #12
  br label %822

822:                                              ; preds = %805, %788
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #12
  br label %823

823:                                              ; preds = %822
  br label %824

824:                                              ; preds = %823
  call void @exit(i32 noundef 1) #14
  unreachable

825:                                              ; No predecessors!
  br label %826

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826, %769
  br label %828

828:                                              ; preds = %827
  br label %829

829:                                              ; preds = %828
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #12
  store ptr null, ptr %14, align 8, !tbaa !9
  br label %830

830:                                              ; preds = %829
  %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 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %14, ptr noundef @.str.12, ptr noundef @.str.13)
  %834 = icmp eq i32 %833, -1
  br i1 %834, label %835, label %888

835:                                              ; preds = %830
  br label %836

836:                                              ; preds = %835
  br label %837

837:                                              ; preds = %836
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #12
  %838 = call ptr @__errno_location() #13
  %839 = load i32, ptr %838, align 4, !tbaa !5
  store i32 %839, ptr %15, align 4, !tbaa !5
  %840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %841 = call i32 @s2n_print_stacktrace(ptr noundef %840)
  %842 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %843 = trunc i8 %842 to i1
  br i1 %843, label %844, label %866

844:                                              ; preds = %837
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = call i32 @fileno(ptr noundef %845) #12
  %847 = call i32 @isatty(i32 noundef %846) #12
  %848 = icmp ne i32 %847, 0
  br i1 %848, label %849, label %866

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

866:                                              ; preds = %844, %837
  %867 = load i32, ptr %15, align 4, !tbaa !5
  %868 = call ptr @__errno_location() #13
  store i32 %867, ptr %868, align 4, !tbaa !5
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = load i32, ptr @test_count, align 4, !tbaa !5
  %871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %872 = load i32, ptr %871, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror(i32 noundef %872, ptr noundef @.str.4)
  %874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = call ptr @s2n_strerror_debug(i32 noundef %875, ptr noundef @.str.4)
  %877 = call ptr @__errno_location() #13
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = call ptr @strerror(i32 noundef %878) #12
  %880 = call ptr @__errno_location() #13
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %869, ptr noundef @.str.5, i32 noundef %870, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 57, ptr noundef %873, ptr noundef %876, ptr noundef %879, i32 noundef %881) #12
  br label %883

883:                                              ; preds = %866, %849
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #12
  br label %884

884:                                              ; preds = %883
  br label %885

885:                                              ; preds = %884
  call void @exit(i32 noundef 1) #14
  unreachable

886:                                              ; No predecessors!
  br label %887

887:                                              ; preds = %886
  br label %888

888:                                              ; preds = %887, %830
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #12
  store ptr null, ptr %16, align 8, !tbaa !9
  br label %891

891:                                              ; preds = %890
  %892 = load i32, ptr @test_count, align 4, !tbaa !5
  %893 = add nsw i32 %892, 1
  store i32 %893, ptr @test_count, align 4, !tbaa !5
  %894 = call ptr @s2n_config_new()
  store ptr %894, ptr %16, align 8, !tbaa !9
  %895 = icmp eq ptr %894, null
  br i1 %895, label %896, label %949

896:                                              ; preds = %891
  br label %897

897:                                              ; preds = %896
  br label %898

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

905:                                              ; preds = %898
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @fileno(ptr noundef %906) #12
  %908 = call i32 @isatty(i32 noundef %907) #12
  %909 = icmp ne i32 %908, 0
  br i1 %909, label %910, label %927

910:                                              ; preds = %905
  %911 = load i32, ptr %17, align 4, !tbaa !5
  %912 = call ptr @__errno_location() #13
  store i32 %911, ptr %912, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef @.str.4)
  %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_debug(i32 noundef %919, ptr noundef @.str.4)
  %921 = call ptr @__errno_location() #13
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @strerror(i32 noundef %922) #12
  %924 = call ptr @__errno_location() #13
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef @.str.2, i32 noundef %914, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 59, ptr noundef %917, ptr noundef %920, ptr noundef %923, i32 noundef %925) #12
  br label %944

927:                                              ; preds = %905, %898
  %928 = load i32, ptr %17, align 4, !tbaa !5
  %929 = call ptr @__errno_location() #13
  store i32 %928, ptr %929, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror(i32 noundef %933, ptr noundef @.str.4)
  %935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror_debug(i32 noundef %936, ptr noundef @.str.4)
  %938 = call ptr @__errno_location() #13
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call ptr @strerror(i32 noundef %939) #12
  %941 = call ptr @__errno_location() #13
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %930, ptr noundef @.str.5, i32 noundef %931, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 59, ptr noundef %934, ptr noundef %937, ptr noundef %940, i32 noundef %942) #12
  br label %944

944:                                              ; preds = %927, %910
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #12
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945
  call void @exit(i32 noundef 1) #14
  unreachable

947:                                              ; No predecessors!
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948, %891
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = add nsw i32 %953, 1
  store i32 %954, ptr @test_count, align 4, !tbaa !5
  %955 = load ptr, ptr %16, align 8, !tbaa !9
  %956 = load ptr, ptr %14, align 8, !tbaa !9
  %957 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %955, ptr noundef %956)
  %958 = icmp eq i32 %957, -1
  br i1 %958, label %959, label %1012

959:                                              ; preds = %952
  br label %960

960:                                              ; preds = %959
  br label %961

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

968:                                              ; preds = %961
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = call i32 @fileno(ptr noundef %969) #12
  %971 = call i32 @isatty(i32 noundef %970) #12
  %972 = icmp ne i32 %971, 0
  br i1 %972, label %973, label %990

973:                                              ; preds = %968
  %974 = load i32, ptr %18, align 4, !tbaa !5
  %975 = call ptr @__errno_location() #13
  store i32 %974, ptr %975, align 4, !tbaa !5
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = load i32, ptr @test_count, align 4, !tbaa !5
  %978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call ptr @s2n_strerror(i32 noundef %979, ptr noundef @.str.4)
  %981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @s2n_strerror_debug(i32 noundef %982, ptr noundef @.str.4)
  %984 = call ptr @__errno_location() #13
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call ptr @strerror(i32 noundef %985) #12
  %987 = call ptr @__errno_location() #13
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %976, ptr noundef @.str.2, i32 noundef %977, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 60, ptr noundef %980, ptr noundef %983, ptr noundef %986, i32 noundef %988) #12
  br label %1007

990:                                              ; preds = %968, %961
  %991 = load i32, ptr %18, align 4, !tbaa !5
  %992 = call ptr @__errno_location() #13
  store i32 %991, ptr %992, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror(i32 noundef %996, ptr noundef @.str.4)
  %998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror_debug(i32 noundef %999, ptr noundef @.str.4)
  %1001 = call ptr @__errno_location() #13
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @strerror(i32 noundef %1002) #12
  %1004 = call ptr @__errno_location() #13
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %993, ptr noundef @.str.5, i32 noundef %994, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 60, ptr noundef %997, ptr noundef %1000, ptr noundef %1003, i32 noundef %1005) #12
  br label %1007

1007:                                             ; preds = %990, %973
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #12
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

1009:                                             ; preds = %1008
  call void @exit(i32 noundef 1) #14
  unreachable

1010:                                             ; No predecessors!
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

1012:                                             ; preds = %1011, %952
  br label %1013

1013:                                             ; preds = %1012
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  %1016 = load i32, ptr @test_count, align 4, !tbaa !5
  %1017 = add nsw i32 %1016, 1
  store i32 %1017, ptr @test_count, align 4, !tbaa !5
  %1018 = load ptr, ptr %12, align 8, !tbaa !9
  %1019 = load ptr, ptr %16, align 8, !tbaa !9
  %1020 = call i32 @s2n_connection_set_config(ptr noundef %1018, ptr noundef %1019)
  %1021 = icmp eq i32 %1020, -1
  br i1 %1021, label %1022, label %1075

1022:                                             ; preds = %1015
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

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

1031:                                             ; preds = %1024
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = call i32 @fileno(ptr noundef %1032) #12
  %1034 = call i32 @isatty(i32 noundef %1033) #12
  %1035 = icmp ne i32 %1034, 0
  br i1 %1035, label %1036, label %1053

1036:                                             ; preds = %1031
  %1037 = load i32, ptr %19, align 4, !tbaa !5
  %1038 = call ptr @__errno_location() #13
  store i32 %1037, ptr %1038, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = load i32, ptr @test_count, align 4, !tbaa !5
  %1041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror(i32 noundef %1042, ptr noundef @.str.4)
  %1044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror_debug(i32 noundef %1045, ptr noundef @.str.4)
  %1047 = call ptr @__errno_location() #13
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @strerror(i32 noundef %1048) #12
  %1050 = call ptr @__errno_location() #13
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1039, ptr noundef @.str.2, i32 noundef %1040, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1043, ptr noundef %1046, ptr noundef %1049, i32 noundef %1051) #12
  br label %1070

1053:                                             ; preds = %1031, %1024
  %1054 = load i32, ptr %19, align 4, !tbaa !5
  %1055 = call ptr @__errno_location() #13
  store i32 %1054, ptr %1055, align 4, !tbaa !5
  %1056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1057 = load i32, ptr @test_count, align 4, !tbaa !5
  %1058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror(i32 noundef %1059, ptr noundef @.str.4)
  %1061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call ptr @s2n_strerror_debug(i32 noundef %1062, ptr noundef @.str.4)
  %1064 = call ptr @__errno_location() #13
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @strerror(i32 noundef %1065) #12
  %1067 = call ptr @__errno_location() #13
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1056, ptr noundef @.str.5, i32 noundef %1057, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1060, ptr noundef %1063, ptr noundef %1066, i32 noundef %1068) #12
  br label %1070

1070:                                             ; preds = %1053, %1036
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #12
  br label %1071

1071:                                             ; preds = %1070
  br label %1072

1072:                                             ; preds = %1071
  call void @exit(i32 noundef 1) #14
  unreachable

1073:                                             ; No predecessors!
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074, %1015
  br label %1076

1076:                                             ; preds = %1075
  br label %1077

1077:                                             ; preds = %1076
  %1078 = load ptr, ptr %12, align 8, !tbaa !9
  %1079 = getelementptr inbounds %struct.s2n_connection, ptr %1078, i32 0, i32 21
  store i8 34, ptr %1079, align 2, !tbaa !15
  %1080 = load ptr, ptr %12, align 8, !tbaa !9
  %1081 = getelementptr inbounds %struct.s2n_connection, ptr %1080, i32 0, i32 23
  store i8 34, ptr %1081, align 4, !tbaa !42
  %1082 = load ptr, ptr %12, align 8, !tbaa !9
  %1083 = getelementptr inbounds %struct.s2n_connection, ptr %1082, i32 0, i32 22
  store i8 34, ptr %1083, align 1, !tbaa !43
  br label %1084

1084:                                             ; preds = %1077
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr @test_count, align 4, !tbaa !5
  %1087 = load ptr, ptr %12, align 8, !tbaa !9
  %1088 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1087, ptr noundef @.str.18)
  %1089 = icmp eq i32 %1088, -1
  br i1 %1089, label %1090, label %1143

1090:                                             ; preds = %1084
  br label %1091

1091:                                             ; preds = %1090
  br label %1092

1092:                                             ; preds = %1091
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #12
  %1093 = call ptr @__errno_location() #13
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  store i32 %1094, ptr %20, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = call i32 @s2n_print_stacktrace(ptr noundef %1095)
  %1097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1098 = trunc i8 %1097 to i1
  br i1 %1098, label %1099, label %1121

1099:                                             ; preds = %1092
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @fileno(ptr noundef %1100) #12
  %1102 = call i32 @isatty(i32 noundef %1101) #12
  %1103 = icmp ne i32 %1102, 0
  br i1 %1103, label %1104, label %1121

1104:                                             ; preds = %1099
  %1105 = load i32, ptr %20, align 4, !tbaa !5
  %1106 = call ptr @__errno_location() #13
  store i32 %1105, ptr %1106, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = load i32, ptr @test_count, align 4, !tbaa !5
  %1109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror(i32 noundef %1110, ptr noundef @.str.4)
  %1112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror_debug(i32 noundef %1113, ptr noundef @.str.4)
  %1115 = call ptr @__errno_location() #13
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @strerror(i32 noundef %1116) #12
  %1118 = call ptr @__errno_location() #13
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1107, ptr noundef @.str.2, i32 noundef %1108, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1111, ptr noundef %1114, ptr noundef %1117, i32 noundef %1119) #12
  br label %1138

1121:                                             ; preds = %1099, %1092
  %1122 = load i32, ptr %20, align 4, !tbaa !5
  %1123 = call ptr @__errno_location() #13
  store i32 %1122, ptr %1123, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = load i32, ptr @test_count, align 4, !tbaa !5
  %1126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1127 = load i32, ptr %1126, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror(i32 noundef %1127, ptr noundef @.str.4)
  %1129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror_debug(i32 noundef %1130, ptr noundef @.str.4)
  %1132 = call ptr @__errno_location() #13
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @strerror(i32 noundef %1133) #12
  %1135 = call ptr @__errno_location() #13
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1124, ptr noundef @.str.5, i32 noundef %1125, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1128, ptr noundef %1131, ptr noundef %1134, i32 noundef %1136) #12
  br label %1138

1138:                                             ; preds = %1121, %1104
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #12
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

1140:                                             ; preds = %1139
  call void @exit(i32 noundef 1) #14
  unreachable

1141:                                             ; No predecessors!
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142, %1084
  br label %1144

1144:                                             ; preds = %1143
  br label %1145

1145:                                             ; preds = %1144
  call void @llvm.lifetime.start.p0(i64 2, ptr %21) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %21, ptr align 1 @__const.main.valid_wire_ciphers, i64 2, i1 false)
  br label %1146

1146:                                             ; preds = %1145
  %1147 = load i32, ptr @test_count, align 4, !tbaa !5
  %1148 = add nsw i32 %1147, 1
  store i32 %1148, ptr @test_count, align 4, !tbaa !5
  %1149 = load ptr, ptr %12, align 8, !tbaa !9
  %1150 = getelementptr inbounds [2 x i8], ptr %21, i64 0, i64 0
  %1151 = call i32 @s2n_set_cipher_as_client(ptr noundef %1149, ptr noundef %1150)
  %1152 = icmp eq i32 %1151, -1
  br i1 %1152, label %1153, label %1206

1153:                                             ; preds = %1146
  br label %1154

1154:                                             ; preds = %1153
  br label %1155

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

1162:                                             ; preds = %1155
  %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
  %1166 = icmp ne i32 %1165, 0
  br i1 %1166, label %1167, label %1184

1167:                                             ; preds = %1162
  %1168 = load i32, ptr %22, align 4, !tbaa !5
  %1169 = call ptr @__errno_location() #13
  store i32 %1168, ptr %1169, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = load i32, ptr @test_count, align 4, !tbaa !5
  %1172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror(i32 noundef %1173, ptr noundef @.str.4)
  %1175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = call ptr @s2n_strerror_debug(i32 noundef %1176, ptr noundef @.str.4)
  %1178 = call ptr @__errno_location() #13
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call ptr @strerror(i32 noundef %1179) #12
  %1181 = call ptr @__errno_location() #13
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1170, ptr noundef @.str.2, i32 noundef %1171, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1174, ptr noundef %1177, ptr noundef %1180, i32 noundef %1182) #12
  br label %1201

1184:                                             ; preds = %1162, %1155
  %1185 = load i32, ptr %22, align 4, !tbaa !5
  %1186 = call ptr @__errno_location() #13
  store i32 %1185, ptr %1186, align 4, !tbaa !5
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = load i32, ptr @test_count, align 4, !tbaa !5
  %1189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call ptr @s2n_strerror(i32 noundef %1190, ptr noundef @.str.4)
  %1192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror_debug(i32 noundef %1193, ptr noundef @.str.4)
  %1195 = call ptr @__errno_location() #13
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call ptr @strerror(i32 noundef %1196) #12
  %1198 = call ptr @__errno_location() #13
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1187, ptr noundef @.str.5, i32 noundef %1188, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1191, ptr noundef %1194, ptr noundef %1197, i32 noundef %1199) #12
  br label %1201

1201:                                             ; preds = %1184, %1167
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #12
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

1203:                                             ; preds = %1202
  call void @exit(i32 noundef 1) #14
  unreachable

1204:                                             ; No predecessors!
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

1206:                                             ; preds = %1205, %1146
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = add nsw i32 %1210, 1
  store i32 %1211, ptr @test_count, align 4, !tbaa !5
  %1212 = load ptr, ptr %12, align 8, !tbaa !9
  %1213 = call i32 @s2n_connection_wipe(ptr noundef %1212)
  %1214 = icmp eq i32 %1213, -1
  br i1 %1214, label %1215, label %1268

1215:                                             ; preds = %1209
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

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

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

1229:                                             ; preds = %1224
  %1230 = load i32, ptr %23, align 4, !tbaa !5
  %1231 = call ptr @__errno_location() #13
  store i32 %1230, ptr %1231, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef @.str.4)
  %1237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = call ptr @s2n_strerror_debug(i32 noundef %1238, ptr noundef @.str.4)
  %1240 = call ptr @__errno_location() #13
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @strerror(i32 noundef %1241) #12
  %1243 = call ptr @__errno_location() #13
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1232, ptr noundef @.str.2, i32 noundef %1233, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1236, ptr noundef %1239, ptr noundef %1242, i32 noundef %1244) #12
  br label %1263

1246:                                             ; preds = %1224, %1217
  %1247 = load i32, ptr %23, align 4, !tbaa !5
  %1248 = call ptr @__errno_location() #13
  store i32 %1247, ptr %1248, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = call ptr @s2n_strerror(i32 noundef %1252, ptr noundef @.str.4)
  %1254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror_debug(i32 noundef %1255, ptr noundef @.str.4)
  %1257 = call ptr @__errno_location() #13
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call ptr @strerror(i32 noundef %1258) #12
  %1260 = call ptr @__errno_location() #13
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1249, ptr noundef @.str.5, i32 noundef %1250, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1253, ptr noundef %1256, ptr noundef %1259, i32 noundef %1261) #12
  br label %1263

1263:                                             ; preds = %1246, %1229
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #12
  br label %1264

1264:                                             ; preds = %1263
  br label %1265

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

1266:                                             ; No predecessors!
  br label %1267

1267:                                             ; preds = %1266
  br label %1268

1268:                                             ; preds = %1267, %1209
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

1270:                                             ; preds = %1269
  call void @llvm.lifetime.end.p0(i64 2, ptr %21) #12
  %1271 = load ptr, ptr %12, align 8, !tbaa !9
  %1272 = getelementptr inbounds %struct.s2n_connection, ptr %1271, i32 0, i32 21
  store i8 34, ptr %1272, align 2, !tbaa !15
  %1273 = load ptr, ptr %12, align 8, !tbaa !9
  %1274 = getelementptr inbounds %struct.s2n_connection, ptr %1273, i32 0, i32 23
  store i8 34, ptr %1274, align 4, !tbaa !42
  %1275 = load ptr, ptr %12, align 8, !tbaa !9
  %1276 = getelementptr inbounds %struct.s2n_connection, ptr %1275, i32 0, i32 22
  store i8 34, ptr %1276, align 1, !tbaa !43
  br label %1277

1277:                                             ; preds = %1270
  %1278 = load i32, ptr @test_count, align 4, !tbaa !5
  %1279 = add nsw i32 %1278, 1
  store i32 %1279, ptr @test_count, align 4, !tbaa !5
  %1280 = load ptr, ptr %12, align 8, !tbaa !9
  %1281 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1280, ptr noundef @.str.22)
  %1282 = icmp eq i32 %1281, -1
  br i1 %1282, label %1283, label %1336

1283:                                             ; preds = %1277
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

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

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

1297:                                             ; preds = %1292
  %1298 = load i32, ptr %24, align 4, !tbaa !5
  %1299 = call ptr @__errno_location() #13
  store i32 %1298, ptr %1299, align 4, !tbaa !5
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = load i32, ptr @test_count, align 4, !tbaa !5
  %1302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = call ptr @s2n_strerror(i32 noundef %1303, ptr noundef @.str.4)
  %1305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror_debug(i32 noundef %1306, ptr noundef @.str.4)
  %1308 = call ptr @__errno_location() #13
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @strerror(i32 noundef %1309) #12
  %1311 = call ptr @__errno_location() #13
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1300, ptr noundef @.str.2, i32 noundef %1301, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1304, ptr noundef %1307, ptr noundef %1310, i32 noundef %1312) #12
  br label %1331

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

1331:                                             ; preds = %1314, %1297
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #12
  br label %1332

1332:                                             ; preds = %1331
  br label %1333

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

1334:                                             ; No predecessors!
  br label %1335

1335:                                             ; preds = %1334
  br label %1336

1336:                                             ; preds = %1335, %1277
  br label %1337

1337:                                             ; preds = %1336
  br label %1338

1338:                                             ; preds = %1337
  call void @llvm.lifetime.start.p0(i64 2, ptr %25) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %25, ptr align 1 @__const.main.invalid_wire_ciphers, i64 2, i1 false)
  br label %1339

1339:                                             ; preds = %1338
  br label %1340

1340:                                             ; preds = %1339
  br label %1341

1341:                                             ; preds = %1340
  %1342 = load i32, ptr @test_count, align 4, !tbaa !5
  %1343 = add nsw i32 %1342, 1
  store i32 %1343, ptr @test_count, align 4, !tbaa !5
  %1344 = load ptr, ptr %12, align 8, !tbaa !9
  %1345 = getelementptr inbounds [2 x i8], ptr %25, i64 0, i64 0
  %1346 = call i32 @s2n_set_cipher_as_client(ptr noundef %1344, ptr noundef %1345)
  %1347 = icmp eq i32 %1346, -1
  br i1 %1347, label %1401, label %1348

1348:                                             ; preds = %1341
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

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

1357:                                             ; preds = %1350
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @fileno(ptr noundef %1358) #12
  %1360 = call i32 @isatty(i32 noundef %1359) #12
  %1361 = icmp ne i32 %1360, 0
  br i1 %1361, label %1362, label %1379

1362:                                             ; preds = %1357
  %1363 = load i32, ptr %26, align 4, !tbaa !5
  %1364 = call ptr @__errno_location() #13
  store i32 %1363, ptr %1364, align 4, !tbaa !5
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror(i32 noundef %1368, ptr noundef @.str.4)
  %1370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror_debug(i32 noundef %1371, ptr noundef @.str.4)
  %1373 = call ptr @__errno_location() #13
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call ptr @strerror(i32 noundef %1374) #12
  %1376 = call ptr @__errno_location() #13
  %1377 = load i32, ptr %1376, align 4, !tbaa !5
  %1378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1365, ptr noundef @.str.2, i32 noundef %1366, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1369, ptr noundef %1372, ptr noundef %1375, i32 noundef %1377) #12
  br label %1396

1379:                                             ; preds = %1357, %1350
  %1380 = load i32, ptr %26, align 4, !tbaa !5
  %1381 = call ptr @__errno_location() #13
  store i32 %1380, ptr %1381, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = load i32, ptr @test_count, align 4, !tbaa !5
  %1384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call ptr @s2n_strerror(i32 noundef %1385, ptr noundef @.str.4)
  %1387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror_debug(i32 noundef %1388, ptr noundef @.str.4)
  %1390 = call ptr @__errno_location() #13
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = call ptr @strerror(i32 noundef %1391) #12
  %1393 = call ptr @__errno_location() #13
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1382, ptr noundef @.str.5, i32 noundef %1383, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1386, ptr noundef %1389, ptr noundef %1392, i32 noundef %1394) #12
  br label %1396

1396:                                             ; preds = %1379, %1362
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #12
  br label %1397

1397:                                             ; preds = %1396
  br label %1398

1398:                                             ; preds = %1397
  call void @exit(i32 noundef 1) #14
  unreachable

1399:                                             ; No predecessors!
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

1401:                                             ; preds = %1400, %1341
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

1403:                                             ; preds = %1402
  br label %1404

1404:                                             ; preds = %1403
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = add nsw i32 %1405, 1
  store i32 %1406, ptr @test_count, align 4, !tbaa !5
  %1407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = icmp eq i32 %1408, 335544334
  br i1 %1409, label %1463, label %1410

1410:                                             ; preds = %1404
  br label %1411

1411:                                             ; preds = %1410
  br label %1412

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

1419:                                             ; preds = %1412
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = call i32 @fileno(ptr noundef %1420) #12
  %1422 = call i32 @isatty(i32 noundef %1421) #12
  %1423 = icmp ne i32 %1422, 0
  br i1 %1423, label %1424, label %1441

1424:                                             ; preds = %1419
  %1425 = load i32, ptr %27, align 4, !tbaa !5
  %1426 = call ptr @__errno_location() #13
  store i32 %1425, ptr %1426, align 4, !tbaa !5
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror(i32 noundef %1430, ptr noundef @.str.4)
  %1432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call ptr @s2n_strerror_debug(i32 noundef %1433, ptr noundef @.str.4)
  %1435 = call ptr @__errno_location() #13
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call ptr @strerror(i32 noundef %1436) #12
  %1438 = call ptr @__errno_location() #13
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef @.str.2, i32 noundef %1428, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1431, ptr noundef %1434, ptr noundef %1437, i32 noundef %1439) #12
  br label %1458

1441:                                             ; preds = %1419, %1412
  %1442 = load i32, ptr %27, align 4, !tbaa !5
  %1443 = call ptr @__errno_location() #13
  store i32 %1442, ptr %1443, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror(i32 noundef %1447, ptr noundef @.str.4)
  %1449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror_debug(i32 noundef %1450, ptr noundef @.str.4)
  %1452 = call ptr @__errno_location() #13
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call ptr @strerror(i32 noundef %1453) #12
  %1455 = call ptr @__errno_location() #13
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1444, ptr noundef @.str.5, i32 noundef %1445, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1448, ptr noundef %1451, ptr noundef %1454, i32 noundef %1456) #12
  br label %1458

1458:                                             ; preds = %1441, %1424
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #12
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

1460:                                             ; preds = %1459
  call void @exit(i32 noundef 1) #14
  unreachable

1461:                                             ; No predecessors!
  br label %1462

1462:                                             ; preds = %1461
  br label %1463

1463:                                             ; preds = %1462, %1404
  br label %1464

1464:                                             ; preds = %1463
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

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

1473:                                             ; preds = %1466
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

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

1482:                                             ; preds = %1475
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = call i32 @fileno(ptr noundef %1483) #12
  %1485 = call i32 @isatty(i32 noundef %1484) #12
  %1486 = icmp ne i32 %1485, 0
  br i1 %1486, label %1487, label %1504

1487:                                             ; preds = %1482
  %1488 = load i32, ptr %28, align 4, !tbaa !5
  %1489 = call ptr @__errno_location() #13
  store i32 %1488, ptr %1489, align 4, !tbaa !5
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1493, ptr noundef @.str.4)
  %1495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror_debug(i32 noundef %1496, ptr noundef @.str.4)
  %1498 = call ptr @__errno_location() #13
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call ptr @strerror(i32 noundef %1499) #12
  %1501 = call ptr @__errno_location() #13
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1490, ptr noundef @.str.2, i32 noundef %1491, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1494, ptr noundef %1497, ptr noundef %1500, i32 noundef %1502) #12
  br label %1521

1504:                                             ; preds = %1482, %1475
  %1505 = load i32, ptr %28, align 4, !tbaa !5
  %1506 = call ptr @__errno_location() #13
  store i32 %1505, ptr %1506, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror(i32 noundef %1510, ptr noundef @.str.4)
  %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.4)
  %1515 = call ptr @__errno_location() #13
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call ptr @strerror(i32 noundef %1516) #12
  %1518 = call ptr @__errno_location() #13
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1507, ptr noundef @.str.5, i32 noundef %1508, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1511, ptr noundef %1514, ptr noundef %1517, i32 noundef %1519) #12
  br label %1521

1521:                                             ; preds = %1504, %1487
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #12
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

1523:                                             ; preds = %1522
  call void @exit(i32 noundef 1) #14
  unreachable

1524:                                             ; No predecessors!
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525, %1466
  br label %1527

1527:                                             ; preds = %1526
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

1530:                                             ; preds = %1529
  br label %1531

1531:                                             ; preds = %1530
  %1532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1532, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1533 = call ptr @__errno_location() #13
  store i32 0, ptr %1533, align 4, !tbaa !5
  br label %1534

1534:                                             ; preds = %1531
  br label %1535

1535:                                             ; preds = %1534
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537
  %1539 = load i32, ptr @test_count, align 4, !tbaa !5
  %1540 = add nsw i32 %1539, 1
  store i32 %1540, ptr @test_count, align 4, !tbaa !5
  %1541 = load ptr, ptr %12, align 8, !tbaa !9
  %1542 = call i32 @s2n_connection_wipe(ptr noundef %1541)
  %1543 = icmp eq i32 %1542, -1
  br i1 %1543, label %1544, label %1597

1544:                                             ; preds = %1538
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

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

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

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

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

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

1593:                                             ; preds = %1592
  br label %1594

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

1595:                                             ; No predecessors!
  br label %1596

1596:                                             ; preds = %1595
  br label %1597

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

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598
  call void @llvm.lifetime.end.p0(i64 2, ptr %25) #12
  %1600 = load ptr, ptr %12, align 8, !tbaa !9
  %1601 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1600, ptr noundef @.str.18)
  br label %1602

1602:                                             ; preds = %1599
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = add nsw i32 %1603, 1
  store i32 %1604, ptr @test_count, align 4, !tbaa !5
  %1605 = load ptr, ptr %12, align 8, !tbaa !9
  %1606 = call i32 @s2n_conn_set_chosen_psk(ptr noundef %1605)
  %1607 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  store i32 %1606, ptr %1607, align 4
  %1608 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  %1609 = load i32, ptr %1608, align 4
  %1610 = call zeroext i1 @s2n_result_is_ok(i32 %1609)
  br i1 %1610, label %1664, label %1611

1611:                                             ; preds = %1602
  br label %1612

1612:                                             ; preds = %1611
  br label %1613

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

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

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

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

1659:                                             ; preds = %1642, %1625
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #12
  br label %1660

1660:                                             ; preds = %1659
  br label %1661

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

1662:                                             ; No predecessors!
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

1664:                                             ; preds = %1663, %1602
  br label %1665

1665:                                             ; preds = %1664
  br label %1666

1666:                                             ; preds = %1665
  call void @llvm.lifetime.start.p0(i64 2, ptr %32) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %32, ptr align 1 @__const.main.valid_tls13_wire_ciphers, i64 2, i1 false)
  %1667 = load ptr, ptr %12, align 8, !tbaa !9
  %1668 = getelementptr inbounds %struct.s2n_connection, ptr %1667, i32 0, i32 33
  %1669 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1668, i32 0, i32 4
  %1670 = load ptr, ptr %1669, align 8, !tbaa !44
  %1671 = getelementptr inbounds %struct.s2n_psk, ptr %1670, i32 0, i32 3
  store i32 2, ptr %1671, align 8, !tbaa !45
  br label %1672

1672:                                             ; preds = %1666
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

1674:                                             ; preds = %1673
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = add nsw i32 %1675, 1
  store i32 %1676, ptr @test_count, align 4, !tbaa !5
  %1677 = load ptr, ptr %12, align 8, !tbaa !9
  %1678 = getelementptr inbounds [2 x i8], ptr %32, i64 0, i64 0
  %1679 = call i32 @s2n_set_cipher_as_client(ptr noundef %1677, ptr noundef %1678)
  %1680 = icmp eq i32 %1679, -1
  br i1 %1680, label %1734, label %1681

1681:                                             ; preds = %1674
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #12
  %1684 = call ptr @__errno_location() #13
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  store i32 %1685, ptr %33, align 4, !tbaa !5
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = call i32 @s2n_print_stacktrace(ptr noundef %1686)
  %1688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1689 = trunc i8 %1688 to i1
  br i1 %1689, label %1690, label %1712

1690:                                             ; preds = %1683
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = call i32 @fileno(ptr noundef %1691) #12
  %1693 = call i32 @isatty(i32 noundef %1692) #12
  %1694 = icmp ne i32 %1693, 0
  br i1 %1694, label %1695, label %1712

1695:                                             ; preds = %1690
  %1696 = load i32, ptr %33, align 4, !tbaa !5
  %1697 = call ptr @__errno_location() #13
  store i32 %1696, ptr %1697, align 4, !tbaa !5
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = load i32, ptr @test_count, align 4, !tbaa !5
  %1700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror(i32 noundef %1701, ptr noundef @.str.4)
  %1703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror_debug(i32 noundef %1704, ptr noundef @.str.4)
  %1706 = call ptr @__errno_location() #13
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @strerror(i32 noundef %1707) #12
  %1709 = call ptr @__errno_location() #13
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1698, ptr noundef @.str.2, i32 noundef %1699, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1702, ptr noundef %1705, ptr noundef %1708, i32 noundef %1710) #12
  br label %1729

1712:                                             ; preds = %1690, %1683
  %1713 = load i32, ptr %33, align 4, !tbaa !5
  %1714 = call ptr @__errno_location() #13
  store i32 %1713, ptr %1714, align 4, !tbaa !5
  %1715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1716 = load i32, ptr @test_count, align 4, !tbaa !5
  %1717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call ptr @s2n_strerror(i32 noundef %1718, ptr noundef @.str.4)
  %1720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = call ptr @s2n_strerror_debug(i32 noundef %1721, ptr noundef @.str.4)
  %1723 = call ptr @__errno_location() #13
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call ptr @strerror(i32 noundef %1724) #12
  %1726 = call ptr @__errno_location() #13
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1715, ptr noundef @.str.5, i32 noundef %1716, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1719, ptr noundef %1722, ptr noundef %1725, i32 noundef %1727) #12
  br label %1729

1729:                                             ; preds = %1712, %1695
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #12
  br label %1730

1730:                                             ; preds = %1729
  br label %1731

1731:                                             ; preds = %1730
  call void @exit(i32 noundef 1) #14
  unreachable

1732:                                             ; No predecessors!
  br label %1733

1733:                                             ; preds = %1732
  br label %1734

1734:                                             ; preds = %1733, %1674
  br label %1735

1735:                                             ; preds = %1734
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

1737:                                             ; preds = %1736
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = add nsw i32 %1738, 1
  store i32 %1739, ptr @test_count, align 4, !tbaa !5
  %1740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1741 = load i32, ptr %1740, align 4, !tbaa !5
  %1742 = icmp eq i32 %1741, 335544334
  br i1 %1742, label %1796, label %1743

1743:                                             ; preds = %1737
  br label %1744

1744:                                             ; preds = %1743
  br label %1745

1745:                                             ; preds = %1744
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #12
  %1746 = call ptr @__errno_location() #13
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  store i32 %1747, ptr %34, align 4, !tbaa !5
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = call i32 @s2n_print_stacktrace(ptr noundef %1748)
  %1750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1751 = trunc i8 %1750 to i1
  br i1 %1751, label %1752, label %1774

1752:                                             ; preds = %1745
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @fileno(ptr noundef %1753) #12
  %1755 = call i32 @isatty(i32 noundef %1754) #12
  %1756 = icmp ne i32 %1755, 0
  br i1 %1756, label %1757, label %1774

1757:                                             ; preds = %1752
  %1758 = load i32, ptr %34, align 4, !tbaa !5
  %1759 = call ptr @__errno_location() #13
  store i32 %1758, ptr %1759, align 4, !tbaa !5
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror(i32 noundef %1763, ptr noundef @.str.4)
  %1765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @s2n_strerror_debug(i32 noundef %1766, ptr noundef @.str.4)
  %1768 = call ptr @__errno_location() #13
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @strerror(i32 noundef %1769) #12
  %1771 = call ptr @__errno_location() #13
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1760, ptr noundef @.str.2, i32 noundef %1761, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1764, ptr noundef %1767, ptr noundef %1770, i32 noundef %1772) #12
  br label %1791

1774:                                             ; preds = %1752, %1745
  %1775 = load i32, ptr %34, align 4, !tbaa !5
  %1776 = call ptr @__errno_location() #13
  store i32 %1775, ptr %1776, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = load i32, ptr @test_count, align 4, !tbaa !5
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror(i32 noundef %1780, ptr noundef @.str.4)
  %1782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror_debug(i32 noundef %1783, ptr noundef @.str.4)
  %1785 = call ptr @__errno_location() #13
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @strerror(i32 noundef %1786) #12
  %1788 = call ptr @__errno_location() #13
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1777, ptr noundef @.str.5, i32 noundef %1778, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1781, ptr noundef %1784, ptr noundef %1787, i32 noundef %1789) #12
  br label %1791

1791:                                             ; preds = %1774, %1757
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #12
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

1793:                                             ; preds = %1792
  call void @exit(i32 noundef 1) #14
  unreachable

1794:                                             ; No predecessors!
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

1796:                                             ; preds = %1795, %1737
  br label %1797

1797:                                             ; preds = %1796
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798
  %1800 = load i32, ptr @test_count, align 4, !tbaa !5
  %1801 = add nsw i32 %1800, 1
  store i32 %1801, ptr @test_count, align 4, !tbaa !5
  %1802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = call ptr @s2n_strerror_debug(i32 noundef %1803, ptr noundef @.str.4)
  %1805 = icmp eq ptr %1804, null
  br i1 %1805, label %1806, label %1859

1806:                                             ; preds = %1799
  br label %1807

1807:                                             ; preds = %1806
  br label %1808

1808:                                             ; preds = %1807
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #12
  %1809 = call ptr @__errno_location() #13
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  store i32 %1810, ptr %35, align 4, !tbaa !5
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @s2n_print_stacktrace(ptr noundef %1811)
  %1813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1814 = trunc i8 %1813 to i1
  br i1 %1814, label %1815, label %1837

1815:                                             ; preds = %1808
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = call i32 @fileno(ptr noundef %1816) #12
  %1818 = call i32 @isatty(i32 noundef %1817) #12
  %1819 = icmp ne i32 %1818, 0
  br i1 %1819, label %1820, label %1837

1820:                                             ; preds = %1815
  %1821 = load i32, ptr %35, align 4, !tbaa !5
  %1822 = call ptr @__errno_location() #13
  store i32 %1821, ptr %1822, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = load i32, ptr @test_count, align 4, !tbaa !5
  %1825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call ptr @s2n_strerror(i32 noundef %1826, ptr noundef @.str.4)
  %1828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror_debug(i32 noundef %1829, ptr noundef @.str.4)
  %1831 = call ptr @__errno_location() #13
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call ptr @strerror(i32 noundef %1832) #12
  %1834 = call ptr @__errno_location() #13
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1823, ptr noundef @.str.2, i32 noundef %1824, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1827, ptr noundef %1830, ptr noundef %1833, i32 noundef %1835) #12
  br label %1854

1837:                                             ; preds = %1815, %1808
  %1838 = load i32, ptr %35, align 4, !tbaa !5
  %1839 = call ptr @__errno_location() #13
  store i32 %1838, ptr %1839, align 4, !tbaa !5
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call ptr @s2n_strerror(i32 noundef %1843, ptr noundef @.str.4)
  %1845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror_debug(i32 noundef %1846, ptr noundef @.str.4)
  %1848 = call ptr @__errno_location() #13
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #12
  %1851 = call ptr @__errno_location() #13
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1840, ptr noundef @.str.5, i32 noundef %1841, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1844, ptr noundef %1847, ptr noundef %1850, i32 noundef %1852) #12
  br label %1854

1854:                                             ; preds = %1837, %1820
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #12
  br label %1855

1855:                                             ; preds = %1854
  br label %1856

1856:                                             ; preds = %1855
  call void @exit(i32 noundef 1) #14
  unreachable

1857:                                             ; No predecessors!
  br label %1858

1858:                                             ; preds = %1857
  br label %1859

1859:                                             ; preds = %1858, %1799
  br label %1860

1860:                                             ; preds = %1859
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

1862:                                             ; preds = %1861
  br label %1863

1863:                                             ; preds = %1862
  br label %1864

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

1867:                                             ; preds = %1864
  br label %1868

1868:                                             ; preds = %1867
  br label %1869

1869:                                             ; preds = %1868
  br label %1870

1870:                                             ; preds = %1869
  br label %1871

1871:                                             ; preds = %1870
  %1872 = load i32, ptr @test_count, align 4, !tbaa !5
  %1873 = add nsw i32 %1872, 1
  store i32 %1873, ptr @test_count, align 4, !tbaa !5
  %1874 = load ptr, ptr %12, align 8, !tbaa !9
  %1875 = getelementptr inbounds %struct.s2n_connection, ptr %1874, i32 0, i32 27
  %1876 = load ptr, ptr %1875, align 8, !tbaa !48
  %1877 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1876, i32 0, i32 0
  %1878 = load ptr, ptr %1877, align 8, !tbaa !49
  %1879 = icmp eq ptr %1878, @s2n_null_cipher_suite
  br i1 %1879, label %1933, label %1880

1880:                                             ; preds = %1871
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

1882:                                             ; preds = %1881
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #12
  %1883 = call ptr @__errno_location() #13
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  store i32 %1884, ptr %36, align 4, !tbaa !5
  %1885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1886 = call i32 @s2n_print_stacktrace(ptr noundef %1885)
  %1887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1888 = trunc i8 %1887 to i1
  br i1 %1888, label %1889, label %1911

1889:                                             ; preds = %1882
  %1890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1891 = call i32 @fileno(ptr noundef %1890) #12
  %1892 = call i32 @isatty(i32 noundef %1891) #12
  %1893 = icmp ne i32 %1892, 0
  br i1 %1893, label %1894, label %1911

1894:                                             ; preds = %1889
  %1895 = load i32, ptr %36, align 4, !tbaa !5
  %1896 = call ptr @__errno_location() #13
  store i32 %1895, ptr %1896, align 4, !tbaa !5
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = load i32, ptr @test_count, align 4, !tbaa !5
  %1899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror(i32 noundef %1900, ptr noundef @.str.4)
  %1902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call ptr @s2n_strerror_debug(i32 noundef %1903, ptr noundef @.str.4)
  %1905 = call ptr @__errno_location() #13
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call ptr @strerror(i32 noundef %1906) #12
  %1908 = call ptr @__errno_location() #13
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  %1910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1897, ptr noundef @.str.2, i32 noundef %1898, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 124, ptr noundef %1901, ptr noundef %1904, ptr noundef %1907, i32 noundef %1909) #12
  br label %1928

1911:                                             ; preds = %1889, %1882
  %1912 = load i32, ptr %36, align 4, !tbaa !5
  %1913 = call ptr @__errno_location() #13
  store i32 %1912, ptr %1913, align 4, !tbaa !5
  %1914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1915 = load i32, ptr @test_count, align 4, !tbaa !5
  %1916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = call ptr @s2n_strerror(i32 noundef %1917, ptr noundef @.str.4)
  %1919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  %1921 = call ptr @s2n_strerror_debug(i32 noundef %1920, ptr noundef @.str.4)
  %1922 = call ptr @__errno_location() #13
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = call ptr @strerror(i32 noundef %1923) #12
  %1925 = call ptr @__errno_location() #13
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1914, ptr noundef @.str.5, i32 noundef %1915, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 124, ptr noundef %1918, ptr noundef %1921, ptr noundef %1924, i32 noundef %1926) #12
  br label %1928

1928:                                             ; preds = %1911, %1894
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #12
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929
  call void @exit(i32 noundef 1) #14
  unreachable

1931:                                             ; No predecessors!
  br label %1932

1932:                                             ; preds = %1931
  br label %1933

1933:                                             ; preds = %1932, %1871
  br label %1934

1934:                                             ; preds = %1933
  br label %1935

1935:                                             ; preds = %1934
  br label %1936

1936:                                             ; preds = %1935
  %1937 = load i32, ptr @test_count, align 4, !tbaa !5
  %1938 = add nsw i32 %1937, 1
  store i32 %1938, ptr @test_count, align 4, !tbaa !5
  %1939 = load ptr, ptr %12, align 8, !tbaa !9
  %1940 = call i32 @s2n_connection_wipe(ptr noundef %1939)
  %1941 = icmp eq i32 %1940, -1
  br i1 %1941, label %1942, label %1995

1942:                                             ; preds = %1936
  br label %1943

1943:                                             ; preds = %1942
  br label %1944

1944:                                             ; preds = %1943
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #12
  %1945 = call ptr @__errno_location() #13
  %1946 = load i32, ptr %1945, align 4, !tbaa !5
  store i32 %1946, ptr %37, align 4, !tbaa !5
  %1947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1948 = call i32 @s2n_print_stacktrace(ptr noundef %1947)
  %1949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1950 = trunc i8 %1949 to i1
  br i1 %1950, label %1951, label %1973

1951:                                             ; preds = %1944
  %1952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1953 = call i32 @fileno(ptr noundef %1952) #12
  %1954 = call i32 @isatty(i32 noundef %1953) #12
  %1955 = icmp ne i32 %1954, 0
  br i1 %1955, label %1956, label %1973

1956:                                             ; preds = %1951
  %1957 = load i32, ptr %37, align 4, !tbaa !5
  %1958 = call ptr @__errno_location() #13
  store i32 %1957, ptr %1958, align 4, !tbaa !5
  %1959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1960 = load i32, ptr @test_count, align 4, !tbaa !5
  %1961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror(i32 noundef %1962, ptr noundef @.str.4)
  %1964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call ptr @s2n_strerror_debug(i32 noundef %1965, ptr noundef @.str.4)
  %1967 = call ptr @__errno_location() #13
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @strerror(i32 noundef %1968) #12
  %1970 = call ptr @__errno_location() #13
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1959, ptr noundef @.str.2, i32 noundef %1960, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1963, ptr noundef %1966, ptr noundef %1969, i32 noundef %1971) #12
  br label %1990

1973:                                             ; preds = %1951, %1944
  %1974 = load i32, ptr %37, align 4, !tbaa !5
  %1975 = call ptr @__errno_location() #13
  store i32 %1974, ptr %1975, align 4, !tbaa !5
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = load i32, ptr @test_count, align 4, !tbaa !5
  %1978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror(i32 noundef %1979, ptr noundef @.str.4)
  %1981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  %1983 = call ptr @s2n_strerror_debug(i32 noundef %1982, ptr noundef @.str.4)
  %1984 = call ptr @__errno_location() #13
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call ptr @strerror(i32 noundef %1985) #12
  %1987 = call ptr @__errno_location() #13
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1976, ptr noundef @.str.5, i32 noundef %1977, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1980, ptr noundef %1983, ptr noundef %1986, i32 noundef %1988) #12
  br label %1990

1990:                                             ; preds = %1973, %1956
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #12
  br label %1991

1991:                                             ; preds = %1990
  br label %1992

1992:                                             ; preds = %1991
  call void @exit(i32 noundef 1) #14
  unreachable

1993:                                             ; No predecessors!
  br label %1994

1994:                                             ; preds = %1993
  br label %1995

1995:                                             ; preds = %1994, %1936
  br label %1996

1996:                                             ; preds = %1995
  br label %1997

1997:                                             ; preds = %1996
  call void @llvm.lifetime.end.p0(i64 2, ptr %32) #12
  %1998 = load ptr, ptr %12, align 8, !tbaa !9
  %1999 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1998, ptr noundef @.str.18)
  br label %2000

2000:                                             ; preds = %1997
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = add nsw i32 %2001, 1
  store i32 %2002, ptr @test_count, align 4, !tbaa !5
  %2003 = load ptr, ptr %12, align 8, !tbaa !9
  %2004 = call i32 @s2n_conn_set_chosen_psk(ptr noundef %2003)
  %2005 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  store i32 %2004, ptr %2005, align 4
  %2006 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  %2007 = load i32, ptr %2006, align 4
  %2008 = call zeroext i1 @s2n_result_is_ok(i32 %2007)
  br i1 %2008, label %2062, label %2009

2009:                                             ; preds = %2000
  br label %2010

2010:                                             ; preds = %2009
  br label %2011

2011:                                             ; preds = %2010
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #12
  %2012 = call ptr @__errno_location() #13
  %2013 = load i32, ptr %2012, align 4, !tbaa !5
  store i32 %2013, ptr %39, align 4, !tbaa !5
  %2014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2015 = call i32 @s2n_print_stacktrace(ptr noundef %2014)
  %2016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2017 = trunc i8 %2016 to i1
  br i1 %2017, label %2018, label %2040

2018:                                             ; preds = %2011
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = call i32 @fileno(ptr noundef %2019) #12
  %2021 = call i32 @isatty(i32 noundef %2020) #12
  %2022 = icmp ne i32 %2021, 0
  br i1 %2022, label %2023, label %2040

2023:                                             ; preds = %2018
  %2024 = load i32, ptr %39, align 4, !tbaa !5
  %2025 = call ptr @__errno_location() #13
  store i32 %2024, ptr %2025, align 4, !tbaa !5
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = load i32, ptr @test_count, align 4, !tbaa !5
  %2028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror(i32 noundef %2029, ptr noundef @.str.4)
  %2031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror_debug(i32 noundef %2032, ptr noundef @.str.4)
  %2034 = call ptr @__errno_location() #13
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call ptr @strerror(i32 noundef %2035) #12
  %2037 = call ptr @__errno_location() #13
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2026, ptr noundef @.str.2, i32 noundef %2027, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2030, ptr noundef %2033, ptr noundef %2036, i32 noundef %2038) #12
  br label %2057

2040:                                             ; preds = %2018, %2011
  %2041 = load i32, ptr %39, align 4, !tbaa !5
  %2042 = call ptr @__errno_location() #13
  store i32 %2041, ptr %2042, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = load i32, ptr @test_count, align 4, !tbaa !5
  %2045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2046 = load i32, ptr %2045, align 4, !tbaa !5
  %2047 = call ptr @s2n_strerror(i32 noundef %2046, ptr noundef @.str.4)
  %2048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = call ptr @s2n_strerror_debug(i32 noundef %2049, ptr noundef @.str.4)
  %2051 = call ptr @__errno_location() #13
  %2052 = load i32, ptr %2051, align 4, !tbaa !5
  %2053 = call ptr @strerror(i32 noundef %2052) #12
  %2054 = call ptr @__errno_location() #13
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2043, ptr noundef @.str.5, i32 noundef %2044, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2047, ptr noundef %2050, ptr noundef %2053, i32 noundef %2055) #12
  br label %2057

2057:                                             ; preds = %2040, %2023
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #12
  br label %2058

2058:                                             ; preds = %2057
  br label %2059

2059:                                             ; preds = %2058
  call void @exit(i32 noundef 1) #14
  unreachable

2060:                                             ; No predecessors!
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

2062:                                             ; preds = %2061, %2000
  br label %2063

2063:                                             ; preds = %2062
  br label %2064

2064:                                             ; preds = %2063
  call void @llvm.lifetime.start.p0(i64 2, ptr %40) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %40, ptr align 1 @__const.main.valid_tls13_wire_ciphers.30, i64 2, i1 false)
  %2065 = load ptr, ptr %12, align 8, !tbaa !9
  %2066 = getelementptr inbounds %struct.s2n_connection, ptr %2065, i32 0, i32 33
  %2067 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %2066, i32 0, i32 4
  %2068 = load ptr, ptr %2067, align 8, !tbaa !44
  %2069 = getelementptr inbounds %struct.s2n_psk, ptr %2068, i32 0, i32 3
  store i32 4, ptr %2069, align 8, !tbaa !45
  br label %2070

2070:                                             ; preds = %2064
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = add nsw i32 %2071, 1
  store i32 %2072, ptr @test_count, align 4, !tbaa !5
  %2073 = load ptr, ptr %12, align 8, !tbaa !9
  %2074 = getelementptr inbounds [2 x i8], ptr %40, i64 0, i64 0
  %2075 = call i32 @s2n_set_cipher_as_client(ptr noundef %2073, ptr noundef %2074)
  %2076 = icmp eq i32 %2075, -1
  br i1 %2076, label %2077, label %2130

2077:                                             ; preds = %2070
  br label %2078

2078:                                             ; preds = %2077
  br label %2079

2079:                                             ; preds = %2078
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #12
  %2080 = call ptr @__errno_location() #13
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  store i32 %2081, ptr %41, align 4, !tbaa !5
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = call i32 @s2n_print_stacktrace(ptr noundef %2082)
  %2084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2085 = trunc i8 %2084 to i1
  br i1 %2085, label %2086, label %2108

2086:                                             ; preds = %2079
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = call i32 @fileno(ptr noundef %2087) #12
  %2089 = call i32 @isatty(i32 noundef %2088) #12
  %2090 = icmp ne i32 %2089, 0
  br i1 %2090, label %2091, label %2108

2091:                                             ; preds = %2086
  %2092 = load i32, ptr %41, align 4, !tbaa !5
  %2093 = call ptr @__errno_location() #13
  store i32 %2092, ptr %2093, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = load i32, ptr @test_count, align 4, !tbaa !5
  %2096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2097 = load i32, ptr %2096, align 4, !tbaa !5
  %2098 = call ptr @s2n_strerror(i32 noundef %2097, ptr noundef @.str.4)
  %2099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2100 = load i32, ptr %2099, align 4, !tbaa !5
  %2101 = call ptr @s2n_strerror_debug(i32 noundef %2100, ptr noundef @.str.4)
  %2102 = call ptr @__errno_location() #13
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @strerror(i32 noundef %2103) #12
  %2105 = call ptr @__errno_location() #13
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2094, ptr noundef @.str.2, i32 noundef %2095, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2098, ptr noundef %2101, ptr noundef %2104, i32 noundef %2106) #12
  br label %2125

2108:                                             ; preds = %2086, %2079
  %2109 = load i32, ptr %41, align 4, !tbaa !5
  %2110 = call ptr @__errno_location() #13
  store i32 %2109, ptr %2110, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = load i32, ptr @test_count, align 4, !tbaa !5
  %2113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  %2115 = call ptr @s2n_strerror(i32 noundef %2114, ptr noundef @.str.4)
  %2116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror_debug(i32 noundef %2117, ptr noundef @.str.4)
  %2119 = call ptr @__errno_location() #13
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  %2121 = call ptr @strerror(i32 noundef %2120) #12
  %2122 = call ptr @__errno_location() #13
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2111, ptr noundef @.str.5, i32 noundef %2112, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2115, ptr noundef %2118, ptr noundef %2121, i32 noundef %2123) #12
  br label %2125

2125:                                             ; preds = %2108, %2091
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #12
  br label %2126

2126:                                             ; preds = %2125
  br label %2127

2127:                                             ; preds = %2126
  call void @exit(i32 noundef 1) #14
  unreachable

2128:                                             ; No predecessors!
  br label %2129

2129:                                             ; preds = %2128
  br label %2130

2130:                                             ; preds = %2129, %2070
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131
  br label %2133

2133:                                             ; preds = %2132
  %2134 = load i32, ptr @test_count, align 4, !tbaa !5
  %2135 = add nsw i32 %2134, 1
  store i32 %2135, ptr @test_count, align 4, !tbaa !5
  %2136 = load ptr, ptr %12, align 8, !tbaa !9
  %2137 = getelementptr inbounds %struct.s2n_connection, ptr %2136, i32 0, i32 27
  %2138 = load ptr, ptr %2137, align 8, !tbaa !48
  %2139 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2138, i32 0, i32 0
  %2140 = load ptr, ptr %2139, align 8, !tbaa !49
  %2141 = icmp eq ptr %2140, @s2n_tls13_aes_128_gcm_sha256
  br i1 %2141, label %2195, label %2142

2142:                                             ; preds = %2133
  br label %2143

2143:                                             ; preds = %2142
  br label %2144

2144:                                             ; preds = %2143
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #12
  %2145 = call ptr @__errno_location() #13
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  store i32 %2146, ptr %42, align 4, !tbaa !5
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = call i32 @s2n_print_stacktrace(ptr noundef %2147)
  %2149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2150 = trunc i8 %2149 to i1
  br i1 %2150, label %2151, label %2173

2151:                                             ; preds = %2144
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = call i32 @fileno(ptr noundef %2152) #12
  %2154 = call i32 @isatty(i32 noundef %2153) #12
  %2155 = icmp ne i32 %2154, 0
  br i1 %2155, label %2156, label %2173

2156:                                             ; preds = %2151
  %2157 = load i32, ptr %42, align 4, !tbaa !5
  %2158 = call ptr @__errno_location() #13
  store i32 %2157, ptr %2158, align 4, !tbaa !5
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = load i32, ptr @test_count, align 4, !tbaa !5
  %2161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call ptr @s2n_strerror(i32 noundef %2162, ptr noundef @.str.4)
  %2164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call ptr @s2n_strerror_debug(i32 noundef %2165, ptr noundef @.str.4)
  %2167 = call ptr @__errno_location() #13
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call ptr @strerror(i32 noundef %2168) #12
  %2170 = call ptr @__errno_location() #13
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2159, ptr noundef @.str.2, i32 noundef %2160, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 142, ptr noundef %2163, ptr noundef %2166, ptr noundef %2169, i32 noundef %2171) #12
  br label %2190

2173:                                             ; preds = %2151, %2144
  %2174 = load i32, ptr %42, align 4, !tbaa !5
  %2175 = call ptr @__errno_location() #13
  store i32 %2174, ptr %2175, align 4, !tbaa !5
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = load i32, ptr @test_count, align 4, !tbaa !5
  %2178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  %2180 = call ptr @s2n_strerror(i32 noundef %2179, ptr noundef @.str.4)
  %2181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call ptr @s2n_strerror_debug(i32 noundef %2182, ptr noundef @.str.4)
  %2184 = call ptr @__errno_location() #13
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #12
  %2187 = call ptr @__errno_location() #13
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2176, ptr noundef @.str.5, i32 noundef %2177, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 142, ptr noundef %2180, ptr noundef %2183, ptr noundef %2186, i32 noundef %2188) #12
  br label %2190

2190:                                             ; preds = %2173, %2156
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #12
  br label %2191

2191:                                             ; preds = %2190
  br label %2192

2192:                                             ; preds = %2191
  call void @exit(i32 noundef 1) #14
  unreachable

2193:                                             ; No predecessors!
  br label %2194

2194:                                             ; preds = %2193
  br label %2195

2195:                                             ; preds = %2194, %2133
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

2197:                                             ; preds = %2196
  br label %2198

2198:                                             ; preds = %2197
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = add nsw i32 %2199, 1
  store i32 %2200, ptr @test_count, align 4, !tbaa !5
  %2201 = load ptr, ptr %12, align 8, !tbaa !9
  %2202 = call i32 @s2n_connection_wipe(ptr noundef %2201)
  %2203 = icmp eq i32 %2202, -1
  br i1 %2203, label %2204, label %2257

2204:                                             ; preds = %2198
  br label %2205

2205:                                             ; preds = %2204
  br label %2206

2206:                                             ; preds = %2205
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #12
  %2207 = call ptr @__errno_location() #13
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  store i32 %2208, ptr %43, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = call i32 @s2n_print_stacktrace(ptr noundef %2209)
  %2211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2212 = trunc i8 %2211 to i1
  br i1 %2212, label %2213, label %2235

2213:                                             ; preds = %2206
  %2214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2215 = call i32 @fileno(ptr noundef %2214) #12
  %2216 = call i32 @isatty(i32 noundef %2215) #12
  %2217 = icmp ne i32 %2216, 0
  br i1 %2217, label %2218, label %2235

2218:                                             ; preds = %2213
  %2219 = load i32, ptr %43, align 4, !tbaa !5
  %2220 = call ptr @__errno_location() #13
  store i32 %2219, ptr %2220, align 4, !tbaa !5
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @s2n_strerror(i32 noundef %2224, ptr noundef @.str.4)
  %2226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror_debug(i32 noundef %2227, ptr noundef @.str.4)
  %2229 = call ptr @__errno_location() #13
  %2230 = load i32, ptr %2229, align 4, !tbaa !5
  %2231 = call ptr @strerror(i32 noundef %2230) #12
  %2232 = call ptr @__errno_location() #13
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2221, ptr noundef @.str.2, i32 noundef %2222, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2225, ptr noundef %2228, ptr noundef %2231, i32 noundef %2233) #12
  br label %2252

2235:                                             ; preds = %2213, %2206
  %2236 = load i32, ptr %43, align 4, !tbaa !5
  %2237 = call ptr @__errno_location() #13
  store i32 %2236, ptr %2237, align 4, !tbaa !5
  %2238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2239 = load i32, ptr @test_count, align 4, !tbaa !5
  %2240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror(i32 noundef %2241, ptr noundef @.str.4)
  %2243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call ptr @s2n_strerror_debug(i32 noundef %2244, ptr noundef @.str.4)
  %2246 = call ptr @__errno_location() #13
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = call ptr @strerror(i32 noundef %2247) #12
  %2249 = call ptr @__errno_location() #13
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2238, ptr noundef @.str.5, i32 noundef %2239, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2242, ptr noundef %2245, ptr noundef %2248, i32 noundef %2250) #12
  br label %2252

2252:                                             ; preds = %2235, %2218
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #12
  br label %2253

2253:                                             ; preds = %2252
  br label %2254

2254:                                             ; preds = %2253
  call void @exit(i32 noundef 1) #14
  unreachable

2255:                                             ; No predecessors!
  br label %2256

2256:                                             ; preds = %2255
  br label %2257

2257:                                             ; preds = %2256, %2198
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

2259:                                             ; preds = %2258
  call void @llvm.lifetime.end.p0(i64 2, ptr %40) #12
  br label %2260

2260:                                             ; preds = %2259
  %2261 = load i32, ptr @test_count, align 4, !tbaa !5
  %2262 = add nsw i32 %2261, 1
  store i32 %2262, ptr @test_count, align 4, !tbaa !5
  %2263 = load ptr, ptr %12, align 8, !tbaa !9
  %2264 = call i32 @s2n_connection_free(ptr noundef %2263)
  %2265 = icmp eq i32 %2264, -1
  br i1 %2265, label %2266, label %2319

2266:                                             ; preds = %2260
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

2268:                                             ; preds = %2267
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #12
  %2269 = call ptr @__errno_location() #13
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  store i32 %2270, ptr %44, align 4, !tbaa !5
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = call i32 @s2n_print_stacktrace(ptr noundef %2271)
  %2273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2274 = trunc i8 %2273 to i1
  br i1 %2274, label %2275, label %2297

2275:                                             ; preds = %2268
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = call i32 @fileno(ptr noundef %2276) #12
  %2278 = call i32 @isatty(i32 noundef %2277) #12
  %2279 = icmp ne i32 %2278, 0
  br i1 %2279, label %2280, label %2297

2280:                                             ; preds = %2275
  %2281 = load i32, ptr %44, align 4, !tbaa !5
  %2282 = call ptr @__errno_location() #13
  store i32 %2281, ptr %2282, align 4, !tbaa !5
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror(i32 noundef %2286, ptr noundef @.str.4)
  %2288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror_debug(i32 noundef %2289, ptr noundef @.str.4)
  %2291 = call ptr @__errno_location() #13
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call ptr @strerror(i32 noundef %2292) #12
  %2294 = call ptr @__errno_location() #13
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2283, ptr noundef @.str.2, i32 noundef %2284, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2287, ptr noundef %2290, ptr noundef %2293, i32 noundef %2295) #12
  br label %2314

2297:                                             ; preds = %2275, %2268
  %2298 = load i32, ptr %44, align 4, !tbaa !5
  %2299 = call ptr @__errno_location() #13
  store i32 %2298, ptr %2299, align 4, !tbaa !5
  %2300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2301 = load i32, ptr @test_count, align 4, !tbaa !5
  %2302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @s2n_strerror(i32 noundef %2303, ptr noundef @.str.4)
  %2305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call ptr @s2n_strerror_debug(i32 noundef %2306, ptr noundef @.str.4)
  %2308 = call ptr @__errno_location() #13
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call ptr @strerror(i32 noundef %2309) #12
  %2311 = call ptr @__errno_location() #13
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2300, ptr noundef @.str.5, i32 noundef %2301, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2304, ptr noundef %2307, ptr noundef %2310, i32 noundef %2312) #12
  br label %2314

2314:                                             ; preds = %2297, %2280
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #12
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  call void @exit(i32 noundef 1) #14
  unreachable

2317:                                             ; No predecessors!
  br label %2318

2318:                                             ; preds = %2317
  br label %2319

2319:                                             ; preds = %2318, %2260
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320
  br label %2322

2322:                                             ; preds = %2321
  %2323 = load i32, ptr @test_count, align 4, !tbaa !5
  %2324 = add nsw i32 %2323, 1
  store i32 %2324, ptr @test_count, align 4, !tbaa !5
  %2325 = load ptr, ptr %14, align 8, !tbaa !9
  %2326 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2325)
  %2327 = icmp eq i32 %2326, -1
  br i1 %2327, label %2328, label %2381

2328:                                             ; preds = %2322
  br label %2329

2329:                                             ; preds = %2328
  br label %2330

2330:                                             ; preds = %2329
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #12
  %2331 = call ptr @__errno_location() #13
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  store i32 %2332, ptr %45, align 4, !tbaa !5
  %2333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2334 = call i32 @s2n_print_stacktrace(ptr noundef %2333)
  %2335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2336 = trunc i8 %2335 to i1
  br i1 %2336, label %2337, label %2359

2337:                                             ; preds = %2330
  %2338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2339 = call i32 @fileno(ptr noundef %2338) #12
  %2340 = call i32 @isatty(i32 noundef %2339) #12
  %2341 = icmp ne i32 %2340, 0
  br i1 %2341, label %2342, label %2359

2342:                                             ; preds = %2337
  %2343 = load i32, ptr %45, align 4, !tbaa !5
  %2344 = call ptr @__errno_location() #13
  store i32 %2343, ptr %2344, align 4, !tbaa !5
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = load i32, ptr @test_count, align 4, !tbaa !5
  %2347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call ptr @s2n_strerror(i32 noundef %2348, ptr noundef @.str.4)
  %2350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror_debug(i32 noundef %2351, ptr noundef @.str.4)
  %2353 = call ptr @__errno_location() #13
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call ptr @strerror(i32 noundef %2354) #12
  %2356 = call ptr @__errno_location() #13
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2345, ptr noundef @.str.2, i32 noundef %2346, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 149, ptr noundef %2349, ptr noundef %2352, ptr noundef %2355, i32 noundef %2357) #12
  br label %2376

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

2376:                                             ; preds = %2359, %2342
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #12
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377
  call void @exit(i32 noundef 1) #14
  unreachable

2379:                                             ; No predecessors!
  br label %2380

2380:                                             ; preds = %2379
  br label %2381

2381:                                             ; preds = %2380, %2322
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

2383:                                             ; preds = %2382
  br label %2384

2384:                                             ; preds = %2383
  %2385 = load i32, ptr @test_count, align 4, !tbaa !5
  %2386 = add nsw i32 %2385, 1
  store i32 %2386, ptr @test_count, align 4, !tbaa !5
  %2387 = load ptr, ptr %16, align 8, !tbaa !9
  %2388 = call i32 @s2n_config_free(ptr noundef %2387)
  %2389 = icmp eq i32 %2388, -1
  br i1 %2389, label %2390, label %2443

2390:                                             ; preds = %2384
  br label %2391

2391:                                             ; preds = %2390
  br label %2392

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

2399:                                             ; preds = %2392
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = call i32 @fileno(ptr noundef %2400) #12
  %2402 = call i32 @isatty(i32 noundef %2401) #12
  %2403 = icmp ne i32 %2402, 0
  br i1 %2403, label %2404, label %2421

2404:                                             ; preds = %2399
  %2405 = load i32, ptr %46, align 4, !tbaa !5
  %2406 = call ptr @__errno_location() #13
  store i32 %2405, ptr %2406, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror(i32 noundef %2410, ptr noundef @.str.4)
  %2412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror_debug(i32 noundef %2413, ptr noundef @.str.4)
  %2415 = call ptr @__errno_location() #13
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @strerror(i32 noundef %2416) #12
  %2418 = call ptr @__errno_location() #13
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2407, ptr noundef @.str.2, i32 noundef %2408, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 150, ptr noundef %2411, ptr noundef %2414, ptr noundef %2417, i32 noundef %2419) #12
  br label %2438

2421:                                             ; preds = %2399, %2392
  %2422 = load i32, ptr %46, align 4, !tbaa !5
  %2423 = call ptr @__errno_location() #13
  store i32 %2422, ptr %2423, align 4, !tbaa !5
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = load i32, ptr @test_count, align 4, !tbaa !5
  %2426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror(i32 noundef %2427, ptr noundef @.str.4)
  %2429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror_debug(i32 noundef %2430, ptr noundef @.str.4)
  %2432 = call ptr @__errno_location() #13
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @strerror(i32 noundef %2433) #12
  %2435 = call ptr @__errno_location() #13
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2424, ptr noundef @.str.5, i32 noundef %2425, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 150, ptr noundef %2428, ptr noundef %2431, ptr noundef %2434, i32 noundef %2436) #12
  br label %2438

2438:                                             ; preds = %2421, %2404
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

2440:                                             ; preds = %2439
  call void @exit(i32 noundef 1) #14
  unreachable

2441:                                             ; No predecessors!
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

2443:                                             ; preds = %2442, %2384
  br label %2444

2444:                                             ; preds = %2443
  br label %2445

2445:                                             ; preds = %2444
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #12
  store ptr null, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #12
  store ptr null, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #12
  store ptr null, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #12
  store ptr null, ptr %50, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #12
  store ptr null, ptr %51, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #12
  store ptr null, ptr %52, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #12
  store ptr null, ptr %53, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #12
  store ptr null, ptr %54, align 8, !tbaa !9
  br label %2446

2446:                                             ; preds = %2445
  %2447 = load i32, ptr @test_count, align 4, !tbaa !5
  %2448 = add nsw i32 %2447, 1
  store i32 %2448, ptr @test_count, align 4, !tbaa !5
  %2449 = call noalias ptr @malloc(i64 noundef 12000) #15
  store ptr %2449, ptr %49, align 8, !tbaa !9
  %2450 = icmp eq ptr %2449, null
  br i1 %2450, label %2451, label %2504

2451:                                             ; preds = %2446
  br label %2452

2452:                                             ; preds = %2451
  br label %2453

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

2460:                                             ; preds = %2453
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = call i32 @fileno(ptr noundef %2461) #12
  %2463 = call i32 @isatty(i32 noundef %2462) #12
  %2464 = icmp ne i32 %2463, 0
  br i1 %2464, label %2465, label %2482

2465:                                             ; preds = %2460
  %2466 = load i32, ptr %55, align 4, !tbaa !5
  %2467 = call ptr @__errno_location() #13
  store i32 %2466, ptr %2467, align 4, !tbaa !5
  %2468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2469 = load i32, ptr @test_count, align 4, !tbaa !5
  %2470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2471 = load i32, ptr %2470, align 4, !tbaa !5
  %2472 = call ptr @s2n_strerror(i32 noundef %2471, ptr noundef @.str.4)
  %2473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call ptr @s2n_strerror_debug(i32 noundef %2474, ptr noundef @.str.4)
  %2476 = call ptr @__errno_location() #13
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @strerror(i32 noundef %2477) #12
  %2479 = call ptr @__errno_location() #13
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2468, ptr noundef @.str.2, i32 noundef %2469, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2472, ptr noundef %2475, ptr noundef %2478, i32 noundef %2480) #12
  br label %2499

2482:                                             ; preds = %2460, %2453
  %2483 = load i32, ptr %55, align 4, !tbaa !5
  %2484 = call ptr @__errno_location() #13
  store i32 %2483, ptr %2484, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call ptr @s2n_strerror(i32 noundef %2488, ptr noundef @.str.4)
  %2490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call ptr @s2n_strerror_debug(i32 noundef %2491, ptr noundef @.str.4)
  %2493 = call ptr @__errno_location() #13
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @strerror(i32 noundef %2494) #12
  %2496 = call ptr @__errno_location() #13
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2485, ptr noundef @.str.5, i32 noundef %2486, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2489, ptr noundef %2492, ptr noundef %2495, i32 noundef %2497) #12
  br label %2499

2499:                                             ; preds = %2482, %2465
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #12
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500
  call void @exit(i32 noundef 1) #14
  unreachable

2502:                                             ; No predecessors!
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

2504:                                             ; preds = %2503, %2446
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

2506:                                             ; preds = %2505
  br label %2507

2507:                                             ; preds = %2506
  %2508 = load i32, ptr @test_count, align 4, !tbaa !5
  %2509 = add nsw i32 %2508, 1
  store i32 %2509, ptr @test_count, align 4, !tbaa !5
  %2510 = call noalias ptr @malloc(i64 noundef 12000) #15
  store ptr %2510, ptr %50, align 8, !tbaa !9
  %2511 = icmp eq ptr %2510, null
  br i1 %2511, label %2512, label %2565

2512:                                             ; preds = %2507
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

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

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

2526:                                             ; preds = %2521
  %2527 = load i32, ptr %56, align 4, !tbaa !5
  %2528 = call ptr @__errno_location() #13
  store i32 %2527, ptr %2528, align 4, !tbaa !5
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = load i32, ptr @test_count, align 4, !tbaa !5
  %2531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2532 = load i32, ptr %2531, align 4, !tbaa !5
  %2533 = call ptr @s2n_strerror(i32 noundef %2532, ptr noundef @.str.4)
  %2534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror_debug(i32 noundef %2535, ptr noundef @.str.4)
  %2537 = call ptr @__errno_location() #13
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call ptr @strerror(i32 noundef %2538) #12
  %2540 = call ptr @__errno_location() #13
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2529, ptr noundef @.str.2, i32 noundef %2530, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 161, ptr noundef %2533, ptr noundef %2536, ptr noundef %2539, i32 noundef %2541) #12
  br label %2560

2543:                                             ; preds = %2521, %2514
  %2544 = load i32, ptr %56, align 4, !tbaa !5
  %2545 = call ptr @__errno_location() #13
  store i32 %2544, ptr %2545, align 4, !tbaa !5
  %2546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2547 = load i32, ptr @test_count, align 4, !tbaa !5
  %2548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call ptr @s2n_strerror(i32 noundef %2549, ptr noundef @.str.4)
  %2551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call ptr @s2n_strerror_debug(i32 noundef %2552, ptr noundef @.str.4)
  %2554 = call ptr @__errno_location() #13
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call ptr @strerror(i32 noundef %2555) #12
  %2557 = call ptr @__errno_location() #13
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2546, ptr noundef @.str.5, i32 noundef %2547, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 161, ptr noundef %2550, ptr noundef %2553, ptr noundef %2556, i32 noundef %2558) #12
  br label %2560

2560:                                             ; preds = %2543, %2526
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #12
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

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

2563:                                             ; No predecessors!
  br label %2564

2564:                                             ; preds = %2563
  br label %2565

2565:                                             ; preds = %2564, %2507
  br label %2566

2566:                                             ; preds = %2565
  br label %2567

2567:                                             ; preds = %2566
  br label %2568

2568:                                             ; preds = %2567
  %2569 = load i32, ptr @test_count, align 4, !tbaa !5
  %2570 = add nsw i32 %2569, 1
  store i32 %2570, ptr @test_count, align 4, !tbaa !5
  %2571 = call noalias ptr @malloc(i64 noundef 12000) #15
  store ptr %2571, ptr %51, align 8, !tbaa !9
  %2572 = icmp eq ptr %2571, null
  br i1 %2572, label %2573, label %2626

2573:                                             ; preds = %2568
  br label %2574

2574:                                             ; preds = %2573
  br label %2575

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

2582:                                             ; preds = %2575
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @fileno(ptr noundef %2583) #12
  %2585 = call i32 @isatty(i32 noundef %2584) #12
  %2586 = icmp ne i32 %2585, 0
  br i1 %2586, label %2587, label %2604

2587:                                             ; preds = %2582
  %2588 = load i32, ptr %57, align 4, !tbaa !5
  %2589 = call ptr @__errno_location() #13
  store i32 %2588, ptr %2589, align 4, !tbaa !5
  %2590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2591 = load i32, ptr @test_count, align 4, !tbaa !5
  %2592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call ptr @s2n_strerror(i32 noundef %2593, ptr noundef @.str.4)
  %2595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror_debug(i32 noundef %2596, ptr noundef @.str.4)
  %2598 = call ptr @__errno_location() #13
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call ptr @strerror(i32 noundef %2599) #12
  %2601 = call ptr @__errno_location() #13
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2590, ptr noundef @.str.2, i32 noundef %2591, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2594, ptr noundef %2597, ptr noundef %2600, i32 noundef %2602) #12
  br label %2621

2604:                                             ; preds = %2582, %2575
  %2605 = load i32, ptr %57, align 4, !tbaa !5
  %2606 = call ptr @__errno_location() #13
  store i32 %2605, ptr %2606, align 4, !tbaa !5
  %2607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2608 = load i32, ptr @test_count, align 4, !tbaa !5
  %2609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @s2n_strerror(i32 noundef %2610, ptr noundef @.str.4)
  %2612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call ptr @s2n_strerror_debug(i32 noundef %2613, ptr noundef @.str.4)
  %2615 = call ptr @__errno_location() #13
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call ptr @strerror(i32 noundef %2616) #12
  %2618 = call ptr @__errno_location() #13
  %2619 = load i32, ptr %2618, align 4, !tbaa !5
  %2620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2607, ptr noundef @.str.5, i32 noundef %2608, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2611, ptr noundef %2614, ptr noundef %2617, i32 noundef %2619) #12
  br label %2621

2621:                                             ; preds = %2604, %2587
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #12
  br label %2622

2622:                                             ; preds = %2621
  br label %2623

2623:                                             ; preds = %2622
  call void @exit(i32 noundef 1) #14
  unreachable

2624:                                             ; No predecessors!
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625, %2568
  br label %2627

2627:                                             ; preds = %2626
  br label %2628

2628:                                             ; preds = %2627
  br label %2629

2629:                                             ; preds = %2628
  %2630 = load i32, ptr @test_count, align 4, !tbaa !5
  %2631 = add nsw i32 %2630, 1
  store i32 %2631, ptr @test_count, align 4, !tbaa !5
  %2632 = call noalias ptr @malloc(i64 noundef 12000) #15
  store ptr %2632, ptr %52, align 8, !tbaa !9
  %2633 = icmp eq ptr %2632, null
  br i1 %2633, label %2634, label %2687

2634:                                             ; preds = %2629
  br label %2635

2635:                                             ; preds = %2634
  br label %2636

2636:                                             ; preds = %2635
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #12
  %2637 = call ptr @__errno_location() #13
  %2638 = load i32, ptr %2637, align 4, !tbaa !5
  store i32 %2638, ptr %58, align 4, !tbaa !5
  %2639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2640 = call i32 @s2n_print_stacktrace(ptr noundef %2639)
  %2641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2642 = trunc i8 %2641 to i1
  br i1 %2642, label %2643, label %2665

2643:                                             ; preds = %2636
  %2644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2645 = call i32 @fileno(ptr noundef %2644) #12
  %2646 = call i32 @isatty(i32 noundef %2645) #12
  %2647 = icmp ne i32 %2646, 0
  br i1 %2647, label %2648, label %2665

2648:                                             ; preds = %2643
  %2649 = load i32, ptr %58, align 4, !tbaa !5
  %2650 = call ptr @__errno_location() #13
  store i32 %2649, ptr %2650, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror(i32 noundef %2654, ptr noundef @.str.4)
  %2656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror_debug(i32 noundef %2657, ptr noundef @.str.4)
  %2659 = call ptr @__errno_location() #13
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @strerror(i32 noundef %2660) #12
  %2662 = call ptr @__errno_location() #13
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2651, ptr noundef @.str.2, i32 noundef %2652, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 163, ptr noundef %2655, ptr noundef %2658, ptr noundef %2661, i32 noundef %2663) #12
  br label %2682

2665:                                             ; preds = %2643, %2636
  %2666 = load i32, ptr %58, align 4, !tbaa !5
  %2667 = call ptr @__errno_location() #13
  store i32 %2666, ptr %2667, align 4, !tbaa !5
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = load i32, ptr @test_count, align 4, !tbaa !5
  %2670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2671 = load i32, ptr %2670, align 4, !tbaa !5
  %2672 = call ptr @s2n_strerror(i32 noundef %2671, ptr noundef @.str.4)
  %2673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror_debug(i32 noundef %2674, ptr noundef @.str.4)
  %2676 = call ptr @__errno_location() #13
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @strerror(i32 noundef %2677) #12
  %2679 = call ptr @__errno_location() #13
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2668, ptr noundef @.str.5, i32 noundef %2669, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 163, ptr noundef %2672, ptr noundef %2675, ptr noundef %2678, i32 noundef %2680) #12
  br label %2682

2682:                                             ; preds = %2665, %2648
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #12
  br label %2683

2683:                                             ; preds = %2682
  br label %2684

2684:                                             ; preds = %2683
  call void @exit(i32 noundef 1) #14
  unreachable

2685:                                             ; No predecessors!
  br label %2686

2686:                                             ; preds = %2685
  br label %2687

2687:                                             ; preds = %2686, %2629
  br label %2688

2688:                                             ; preds = %2687
  br label %2689

2689:                                             ; preds = %2688
  br label %2690

2690:                                             ; preds = %2689
  %2691 = load i32, ptr @test_count, align 4, !tbaa !5
  %2692 = add nsw i32 %2691, 1
  store i32 %2692, ptr @test_count, align 4, !tbaa !5
  %2693 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2693, ptr %47, align 8, !tbaa !9
  %2694 = icmp eq ptr %2693, null
  br i1 %2694, label %2695, label %2748

2695:                                             ; preds = %2690
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #12
  %2698 = call ptr @__errno_location() #13
  %2699 = load i32, ptr %2698, align 4, !tbaa !5
  store i32 %2699, ptr %59, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = call i32 @s2n_print_stacktrace(ptr noundef %2700)
  %2702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2703 = trunc i8 %2702 to i1
  br i1 %2703, label %2704, label %2726

2704:                                             ; preds = %2697
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = call i32 @fileno(ptr noundef %2705) #12
  %2707 = call i32 @isatty(i32 noundef %2706) #12
  %2708 = icmp ne i32 %2707, 0
  br i1 %2708, label %2709, label %2726

2709:                                             ; preds = %2704
  %2710 = load i32, ptr %59, align 4, !tbaa !5
  %2711 = call ptr @__errno_location() #13
  store i32 %2710, ptr %2711, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  %2716 = call ptr @s2n_strerror(i32 noundef %2715, ptr noundef @.str.4)
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror_debug(i32 noundef %2718, ptr noundef @.str.4)
  %2720 = call ptr @__errno_location() #13
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @strerror(i32 noundef %2721) #12
  %2723 = call ptr @__errno_location() #13
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2712, ptr noundef @.str.2, i32 noundef %2713, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2716, ptr noundef %2719, ptr noundef %2722, i32 noundef %2724) #12
  br label %2743

2726:                                             ; preds = %2704, %2697
  %2727 = load i32, ptr %59, align 4, !tbaa !5
  %2728 = call ptr @__errno_location() #13
  store i32 %2727, ptr %2728, align 4, !tbaa !5
  %2729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2730 = load i32, ptr @test_count, align 4, !tbaa !5
  %2731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror(i32 noundef %2732, ptr noundef @.str.4)
  %2734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = call ptr @s2n_strerror_debug(i32 noundef %2735, ptr noundef @.str.4)
  %2737 = call ptr @__errno_location() #13
  %2738 = load i32, ptr %2737, align 4, !tbaa !5
  %2739 = call ptr @strerror(i32 noundef %2738) #12
  %2740 = call ptr @__errno_location() #13
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2729, ptr noundef @.str.5, i32 noundef %2730, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2733, ptr noundef %2736, ptr noundef %2739, i32 noundef %2741) #12
  br label %2743

2743:                                             ; preds = %2726, %2709
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #12
  br label %2744

2744:                                             ; preds = %2743
  br label %2745

2745:                                             ; preds = %2744
  call void @exit(i32 noundef 1) #14
  unreachable

2746:                                             ; No predecessors!
  br label %2747

2747:                                             ; preds = %2746
  br label %2748

2748:                                             ; preds = %2747, %2690
  br label %2749

2749:                                             ; preds = %2748
  br label %2750

2750:                                             ; preds = %2749
  br label %2751

2751:                                             ; preds = %2750
  %2752 = load i32, ptr @test_count, align 4, !tbaa !5
  %2753 = add nsw i32 %2752, 1
  store i32 %2753, ptr @test_count, align 4, !tbaa !5
  %2754 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %2754, ptr %53, align 8, !tbaa !9
  %2755 = icmp eq ptr %2754, null
  br i1 %2755, label %2756, label %2809

2756:                                             ; preds = %2751
  br label %2757

2757:                                             ; preds = %2756
  br label %2758

2758:                                             ; preds = %2757
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #12
  %2759 = call ptr @__errno_location() #13
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  store i32 %2760, ptr %60, align 4, !tbaa !5
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = call i32 @s2n_print_stacktrace(ptr noundef %2761)
  %2763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2764 = trunc i8 %2763 to i1
  br i1 %2764, label %2765, label %2787

2765:                                             ; preds = %2758
  %2766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2767 = call i32 @fileno(ptr noundef %2766) #12
  %2768 = call i32 @isatty(i32 noundef %2767) #12
  %2769 = icmp ne i32 %2768, 0
  br i1 %2769, label %2770, label %2787

2770:                                             ; preds = %2765
  %2771 = load i32, ptr %60, align 4, !tbaa !5
  %2772 = call ptr @__errno_location() #13
  store i32 %2771, ptr %2772, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = load i32, ptr @test_count, align 4, !tbaa !5
  %2775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  %2777 = call ptr @s2n_strerror(i32 noundef %2776, ptr noundef @.str.4)
  %2778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2779 = load i32, ptr %2778, align 4, !tbaa !5
  %2780 = call ptr @s2n_strerror_debug(i32 noundef %2779, ptr noundef @.str.4)
  %2781 = call ptr @__errno_location() #13
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  %2783 = call ptr @strerror(i32 noundef %2782) #12
  %2784 = call ptr @__errno_location() #13
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  %2786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2773, ptr noundef @.str.2, i32 noundef %2774, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2777, ptr noundef %2780, ptr noundef %2783, i32 noundef %2785) #12
  br label %2804

2787:                                             ; preds = %2765, %2758
  %2788 = load i32, ptr %60, align 4, !tbaa !5
  %2789 = call ptr @__errno_location() #13
  store i32 %2788, ptr %2789, align 4, !tbaa !5
  %2790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2791 = load i32, ptr @test_count, align 4, !tbaa !5
  %2792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror(i32 noundef %2793, ptr noundef @.str.4)
  %2795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @s2n_strerror_debug(i32 noundef %2796, ptr noundef @.str.4)
  %2798 = call ptr @__errno_location() #13
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call ptr @strerror(i32 noundef %2799) #12
  %2801 = call ptr @__errno_location() #13
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2790, ptr noundef @.str.5, i32 noundef %2791, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2794, ptr noundef %2797, ptr noundef %2800, i32 noundef %2802) #12
  br label %2804

2804:                                             ; preds = %2787, %2770
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #12
  br label %2805

2805:                                             ; preds = %2804
  br label %2806

2806:                                             ; preds = %2805
  call void @exit(i32 noundef 1) #14
  unreachable

2807:                                             ; No predecessors!
  br label %2808

2808:                                             ; preds = %2807
  br label %2809

2809:                                             ; preds = %2808, %2751
  br label %2810

2810:                                             ; preds = %2809
  br label %2811

2811:                                             ; preds = %2810
  br label %2812

2812:                                             ; preds = %2811
  %2813 = load i32, ptr @test_count, align 4, !tbaa !5
  %2814 = add nsw i32 %2813, 1
  store i32 %2814, ptr @test_count, align 4, !tbaa !5
  %2815 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %2815, ptr %54, align 8, !tbaa !9
  %2816 = icmp eq ptr %2815, null
  br i1 %2816, label %2817, label %2870

2817:                                             ; preds = %2812
  br label %2818

2818:                                             ; preds = %2817
  br label %2819

2819:                                             ; preds = %2818
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #12
  %2820 = call ptr @__errno_location() #13
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  store i32 %2821, ptr %61, align 4, !tbaa !5
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = call i32 @s2n_print_stacktrace(ptr noundef %2822)
  %2824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2825 = trunc i8 %2824 to i1
  br i1 %2825, label %2826, label %2848

2826:                                             ; preds = %2819
  %2827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2828 = call i32 @fileno(ptr noundef %2827) #12
  %2829 = call i32 @isatty(i32 noundef %2828) #12
  %2830 = icmp ne i32 %2829, 0
  br i1 %2830, label %2831, label %2848

2831:                                             ; preds = %2826
  %2832 = load i32, ptr %61, align 4, !tbaa !5
  %2833 = call ptr @__errno_location() #13
  store i32 %2832, ptr %2833, align 4, !tbaa !5
  %2834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2835 = load i32, ptr @test_count, align 4, !tbaa !5
  %2836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call ptr @s2n_strerror(i32 noundef %2837, ptr noundef @.str.4)
  %2839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call ptr @s2n_strerror_debug(i32 noundef %2840, ptr noundef @.str.4)
  %2842 = call ptr @__errno_location() #13
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call ptr @strerror(i32 noundef %2843) #12
  %2845 = call ptr @__errno_location() #13
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2834, ptr noundef @.str.2, i32 noundef %2835, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2838, ptr noundef %2841, ptr noundef %2844, i32 noundef %2846) #12
  br label %2865

2848:                                             ; preds = %2826, %2819
  %2849 = load i32, ptr %61, align 4, !tbaa !5
  %2850 = call ptr @__errno_location() #13
  store i32 %2849, ptr %2850, align 4, !tbaa !5
  %2851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2852 = load i32, ptr @test_count, align 4, !tbaa !5
  %2853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call ptr @s2n_strerror(i32 noundef %2854, ptr noundef @.str.4)
  %2856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  %2858 = call ptr @s2n_strerror_debug(i32 noundef %2857, ptr noundef @.str.4)
  %2859 = call ptr @__errno_location() #13
  %2860 = load i32, ptr %2859, align 4, !tbaa !5
  %2861 = call ptr @strerror(i32 noundef %2860) #12
  %2862 = call ptr @__errno_location() #13
  %2863 = load i32, ptr %2862, align 4, !tbaa !5
  %2864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2851, ptr noundef @.str.5, i32 noundef %2852, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2855, ptr noundef %2858, ptr noundef %2861, i32 noundef %2863) #12
  br label %2865

2865:                                             ; preds = %2848, %2831
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #12
  br label %2866

2866:                                             ; preds = %2865
  br label %2867

2867:                                             ; preds = %2866
  call void @exit(i32 noundef 1) #14
  unreachable

2868:                                             ; No predecessors!
  br label %2869

2869:                                             ; preds = %2868
  br label %2870

2870:                                             ; preds = %2869, %2812
  br label %2871

2871:                                             ; preds = %2870
  br label %2872

2872:                                             ; preds = %2871
  br label %2873

2873:                                             ; preds = %2872
  %2874 = load i32, ptr @test_count, align 4, !tbaa !5
  %2875 = add nsw i32 %2874, 1
  store i32 %2875, ptr @test_count, align 4, !tbaa !5
  %2876 = load ptr, ptr %49, align 8, !tbaa !9
  %2877 = call i32 @s2n_read_test_pem(ptr noundef @.str.12, ptr noundef %2876, i64 noundef 12000)
  %2878 = icmp eq i32 %2877, -1
  br i1 %2878, label %2879, label %2932

2879:                                             ; preds = %2873
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

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

2888:                                             ; preds = %2881
  %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
  %2892 = icmp ne i32 %2891, 0
  br i1 %2892, label %2893, label %2910

2893:                                             ; preds = %2888
  %2894 = load i32, ptr %62, align 4, !tbaa !5
  %2895 = call ptr @__errno_location() #13
  store i32 %2894, ptr %2895, align 4, !tbaa !5
  %2896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2897 = load i32, ptr @test_count, align 4, !tbaa !5
  %2898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2899 = load i32, ptr %2898, align 4, !tbaa !5
  %2900 = call ptr @s2n_strerror(i32 noundef %2899, ptr noundef @.str.4)
  %2901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2902 = load i32, ptr %2901, align 4, !tbaa !5
  %2903 = call ptr @s2n_strerror_debug(i32 noundef %2902, ptr noundef @.str.4)
  %2904 = call ptr @__errno_location() #13
  %2905 = load i32, ptr %2904, align 4, !tbaa !5
  %2906 = call ptr @strerror(i32 noundef %2905) #12
  %2907 = call ptr @__errno_location() #13
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  %2909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2896, ptr noundef @.str.2, i32 noundef %2897, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2900, ptr noundef %2903, ptr noundef %2906, i32 noundef %2908) #12
  br label %2927

2910:                                             ; preds = %2888, %2881
  %2911 = load i32, ptr %62, align 4, !tbaa !5
  %2912 = call ptr @__errno_location() #13
  store i32 %2911, ptr %2912, align 4, !tbaa !5
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = load i32, ptr @test_count, align 4, !tbaa !5
  %2915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror(i32 noundef %2916, ptr noundef @.str.4)
  %2918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @s2n_strerror_debug(i32 noundef %2919, ptr noundef @.str.4)
  %2921 = call ptr @__errno_location() #13
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call ptr @strerror(i32 noundef %2922) #12
  %2924 = call ptr @__errno_location() #13
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2913, ptr noundef @.str.5, i32 noundef %2914, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2917, ptr noundef %2920, ptr noundef %2923, i32 noundef %2925) #12
  br label %2927

2927:                                             ; preds = %2910, %2893
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #12
  br label %2928

2928:                                             ; preds = %2927
  br label %2929

2929:                                             ; preds = %2928
  call void @exit(i32 noundef 1) #14
  unreachable

2930:                                             ; No predecessors!
  br label %2931

2931:                                             ; preds = %2930
  br label %2932

2932:                                             ; preds = %2931, %2873
  br label %2933

2933:                                             ; preds = %2932
  br label %2934

2934:                                             ; preds = %2933
  br label %2935

2935:                                             ; preds = %2934
  %2936 = load i32, ptr @test_count, align 4, !tbaa !5
  %2937 = add nsw i32 %2936, 1
  store i32 %2937, ptr @test_count, align 4, !tbaa !5
  %2938 = load ptr, ptr %50, align 8, !tbaa !9
  %2939 = call i32 @s2n_read_test_pem(ptr noundef @.str.13, ptr noundef %2938, i64 noundef 12000)
  %2940 = icmp eq i32 %2939, -1
  br i1 %2940, label %2941, label %2994

2941:                                             ; preds = %2935
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #12
  %2944 = call ptr @__errno_location() #13
  %2945 = load i32, ptr %2944, align 4, !tbaa !5
  store i32 %2945, ptr %63, align 4, !tbaa !5
  %2946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2947 = call i32 @s2n_print_stacktrace(ptr noundef %2946)
  %2948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2949 = trunc i8 %2948 to i1
  br i1 %2949, label %2950, label %2972

2950:                                             ; preds = %2943
  %2951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2952 = call i32 @fileno(ptr noundef %2951) #12
  %2953 = call i32 @isatty(i32 noundef %2952) #12
  %2954 = icmp ne i32 %2953, 0
  br i1 %2954, label %2955, label %2972

2955:                                             ; preds = %2950
  %2956 = load i32, ptr %63, align 4, !tbaa !5
  %2957 = call ptr @__errno_location() #13
  store i32 %2956, ptr %2957, align 4, !tbaa !5
  %2958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2959 = load i32, ptr @test_count, align 4, !tbaa !5
  %2960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2961 = load i32, ptr %2960, align 4, !tbaa !5
  %2962 = call ptr @s2n_strerror(i32 noundef %2961, ptr noundef @.str.4)
  %2963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2964 = load i32, ptr %2963, align 4, !tbaa !5
  %2965 = call ptr @s2n_strerror_debug(i32 noundef %2964, ptr noundef @.str.4)
  %2966 = call ptr @__errno_location() #13
  %2967 = load i32, ptr %2966, align 4, !tbaa !5
  %2968 = call ptr @strerror(i32 noundef %2967) #12
  %2969 = call ptr @__errno_location() #13
  %2970 = load i32, ptr %2969, align 4, !tbaa !5
  %2971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2958, ptr noundef @.str.2, i32 noundef %2959, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2962, ptr noundef %2965, ptr noundef %2968, i32 noundef %2970) #12
  br label %2989

2972:                                             ; preds = %2950, %2943
  %2973 = load i32, ptr %63, align 4, !tbaa !5
  %2974 = call ptr @__errno_location() #13
  store i32 %2973, ptr %2974, align 4, !tbaa !5
  %2975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2976 = load i32, ptr @test_count, align 4, !tbaa !5
  %2977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = call ptr @s2n_strerror(i32 noundef %2978, ptr noundef @.str.4)
  %2980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  %2982 = call ptr @s2n_strerror_debug(i32 noundef %2981, ptr noundef @.str.4)
  %2983 = call ptr @__errno_location() #13
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call ptr @strerror(i32 noundef %2984) #12
  %2986 = call ptr @__errno_location() #13
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2975, ptr noundef @.str.5, i32 noundef %2976, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2979, ptr noundef %2982, ptr noundef %2985, i32 noundef %2987) #12
  br label %2989

2989:                                             ; preds = %2972, %2955
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #12
  br label %2990

2990:                                             ; preds = %2989
  br label %2991

2991:                                             ; preds = %2990
  call void @exit(i32 noundef 1) #14
  unreachable

2992:                                             ; No predecessors!
  br label %2993

2993:                                             ; preds = %2992
  br label %2994

2994:                                             ; preds = %2993, %2935
  br label %2995

2995:                                             ; preds = %2994
  br label %2996

2996:                                             ; preds = %2995
  br label %2997

2997:                                             ; preds = %2996
  %2998 = load i32, ptr @test_count, align 4, !tbaa !5
  %2999 = add nsw i32 %2998, 1
  store i32 %2999, ptr @test_count, align 4, !tbaa !5
  %3000 = load ptr, ptr %51, align 8, !tbaa !9
  %3001 = call i32 @s2n_read_test_pem(ptr noundef @.str.45, ptr noundef %3000, i64 noundef 12000)
  %3002 = icmp eq i32 %3001, -1
  br i1 %3002, label %3003, label %3056

3003:                                             ; preds = %2997
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

3005:                                             ; preds = %3004
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #12
  %3006 = call ptr @__errno_location() #13
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  store i32 %3007, ptr %64, align 4, !tbaa !5
  %3008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3009 = call i32 @s2n_print_stacktrace(ptr noundef %3008)
  %3010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3011 = trunc i8 %3010 to i1
  br i1 %3011, label %3012, label %3034

3012:                                             ; preds = %3005
  %3013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3014 = call i32 @fileno(ptr noundef %3013) #12
  %3015 = call i32 @isatty(i32 noundef %3014) #12
  %3016 = icmp ne i32 %3015, 0
  br i1 %3016, label %3017, label %3034

3017:                                             ; preds = %3012
  %3018 = load i32, ptr %64, align 4, !tbaa !5
  %3019 = call ptr @__errno_location() #13
  store i32 %3018, ptr %3019, align 4, !tbaa !5
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = load i32, ptr @test_count, align 4, !tbaa !5
  %3022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3023 = load i32, ptr %3022, align 4, !tbaa !5
  %3024 = call ptr @s2n_strerror(i32 noundef %3023, ptr noundef @.str.4)
  %3025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3026 = load i32, ptr %3025, align 4, !tbaa !5
  %3027 = call ptr @s2n_strerror_debug(i32 noundef %3026, ptr noundef @.str.4)
  %3028 = call ptr @__errno_location() #13
  %3029 = load i32, ptr %3028, align 4, !tbaa !5
  %3030 = call ptr @strerror(i32 noundef %3029) #12
  %3031 = call ptr @__errno_location() #13
  %3032 = load i32, ptr %3031, align 4, !tbaa !5
  %3033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3020, ptr noundef @.str.2, i32 noundef %3021, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3024, ptr noundef %3027, ptr noundef %3030, i32 noundef %3032) #12
  br label %3051

3034:                                             ; preds = %3012, %3005
  %3035 = load i32, ptr %64, align 4, !tbaa !5
  %3036 = call ptr @__errno_location() #13
  store i32 %3035, ptr %3036, align 4, !tbaa !5
  %3037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3038 = load i32, ptr @test_count, align 4, !tbaa !5
  %3039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3040 = load i32, ptr %3039, align 4, !tbaa !5
  %3041 = call ptr @s2n_strerror(i32 noundef %3040, ptr noundef @.str.4)
  %3042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3043 = load i32, ptr %3042, align 4, !tbaa !5
  %3044 = call ptr @s2n_strerror_debug(i32 noundef %3043, ptr noundef @.str.4)
  %3045 = call ptr @__errno_location() #13
  %3046 = load i32, ptr %3045, align 4, !tbaa !5
  %3047 = call ptr @strerror(i32 noundef %3046) #12
  %3048 = call ptr @__errno_location() #13
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  %3050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3037, ptr noundef @.str.5, i32 noundef %3038, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3041, ptr noundef %3044, ptr noundef %3047, i32 noundef %3049) #12
  br label %3051

3051:                                             ; preds = %3034, %3017
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #12
  br label %3052

3052:                                             ; preds = %3051
  br label %3053

3053:                                             ; preds = %3052
  call void @exit(i32 noundef 1) #14
  unreachable

3054:                                             ; No predecessors!
  br label %3055

3055:                                             ; preds = %3054
  br label %3056

3056:                                             ; preds = %3055, %2997
  br label %3057

3057:                                             ; preds = %3056
  br label %3058

3058:                                             ; preds = %3057
  br label %3059

3059:                                             ; preds = %3058
  %3060 = load i32, ptr @test_count, align 4, !tbaa !5
  %3061 = add nsw i32 %3060, 1
  store i32 %3061, ptr @test_count, align 4, !tbaa !5
  %3062 = load ptr, ptr %52, align 8, !tbaa !9
  %3063 = call i32 @s2n_read_test_pem(ptr noundef @.str.47, ptr noundef %3062, i64 noundef 12000)
  %3064 = icmp eq i32 %3063, -1
  br i1 %3064, label %3065, label %3118

3065:                                             ; preds = %3059
  br label %3066

3066:                                             ; preds = %3065
  br label %3067

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

3074:                                             ; preds = %3067
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = call i32 @fileno(ptr noundef %3075) #12
  %3077 = call i32 @isatty(i32 noundef %3076) #12
  %3078 = icmp ne i32 %3077, 0
  br i1 %3078, label %3079, label %3096

3079:                                             ; preds = %3074
  %3080 = load i32, ptr %65, align 4, !tbaa !5
  %3081 = call ptr @__errno_location() #13
  store i32 %3080, ptr %3081, align 4, !tbaa !5
  %3082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3083 = load i32, ptr @test_count, align 4, !tbaa !5
  %3084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3085 = load i32, ptr %3084, align 4, !tbaa !5
  %3086 = call ptr @s2n_strerror(i32 noundef %3085, ptr noundef @.str.4)
  %3087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror_debug(i32 noundef %3088, ptr noundef @.str.4)
  %3090 = call ptr @__errno_location() #13
  %3091 = load i32, ptr %3090, align 4, !tbaa !5
  %3092 = call ptr @strerror(i32 noundef %3091) #12
  %3093 = call ptr @__errno_location() #13
  %3094 = load i32, ptr %3093, align 4, !tbaa !5
  %3095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3082, ptr noundef @.str.2, i32 noundef %3083, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3086, ptr noundef %3089, ptr noundef %3092, i32 noundef %3094) #12
  br label %3113

3096:                                             ; preds = %3074, %3067
  %3097 = load i32, ptr %65, align 4, !tbaa !5
  %3098 = call ptr @__errno_location() #13
  store i32 %3097, ptr %3098, align 4, !tbaa !5
  %3099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3102 = load i32, ptr %3101, align 4, !tbaa !5
  %3103 = call ptr @s2n_strerror(i32 noundef %3102, ptr noundef @.str.4)
  %3104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3105 = load i32, ptr %3104, align 4, !tbaa !5
  %3106 = call ptr @s2n_strerror_debug(i32 noundef %3105, ptr noundef @.str.4)
  %3107 = call ptr @__errno_location() #13
  %3108 = load i32, ptr %3107, align 4, !tbaa !5
  %3109 = call ptr @strerror(i32 noundef %3108) #12
  %3110 = call ptr @__errno_location() #13
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  %3112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3099, ptr noundef @.str.5, i32 noundef %3100, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3103, ptr noundef %3106, ptr noundef %3109, i32 noundef %3111) #12
  br label %3113

3113:                                             ; preds = %3096, %3079
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #12
  br label %3114

3114:                                             ; preds = %3113
  br label %3115

3115:                                             ; preds = %3114
  call void @exit(i32 noundef 1) #14
  unreachable

3116:                                             ; No predecessors!
  br label %3117

3117:                                             ; preds = %3116
  br label %3118

3118:                                             ; preds = %3117, %3059
  br label %3119

3119:                                             ; preds = %3118
  br label %3120

3120:                                             ; preds = %3119
  br label %3121

3121:                                             ; preds = %3120
  %3122 = load i32, ptr @test_count, align 4, !tbaa !5
  %3123 = add nsw i32 %3122, 1
  store i32 %3123, ptr @test_count, align 4, !tbaa !5
  %3124 = load ptr, ptr %53, align 8, !tbaa !9
  %3125 = load ptr, ptr %49, align 8, !tbaa !9
  %3126 = load ptr, ptr %50, align 8, !tbaa !9
  %3127 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %3124, ptr noundef %3125, ptr noundef %3126)
  %3128 = icmp eq i32 %3127, -1
  br i1 %3128, label %3129, label %3182

3129:                                             ; preds = %3121
  br label %3130

3130:                                             ; preds = %3129
  br label %3131

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

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

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

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

3177:                                             ; preds = %3160, %3143
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #12
  br label %3178

3178:                                             ; preds = %3177
  br label %3179

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

3180:                                             ; No predecessors!
  br label %3181

3181:                                             ; preds = %3180
  br label %3182

3182:                                             ; preds = %3181, %3121
  br label %3183

3183:                                             ; preds = %3182
  br label %3184

3184:                                             ; preds = %3183
  br label %3185

3185:                                             ; preds = %3184
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = add nsw i32 %3186, 1
  store i32 %3187, ptr @test_count, align 4, !tbaa !5
  %3188 = load ptr, ptr %54, align 8, !tbaa !9
  %3189 = load ptr, ptr %51, align 8, !tbaa !9
  %3190 = load ptr, ptr %52, align 8, !tbaa !9
  %3191 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %3188, ptr noundef %3189, ptr noundef %3190)
  %3192 = icmp eq i32 %3191, -1
  br i1 %3192, label %3193, label %3246

3193:                                             ; preds = %3185
  br label %3194

3194:                                             ; preds = %3193
  br label %3195

3195:                                             ; preds = %3194
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #12
  %3196 = call ptr @__errno_location() #13
  %3197 = load i32, ptr %3196, align 4, !tbaa !5
  store i32 %3197, ptr %67, 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) #12
  %3205 = call i32 @isatty(i32 noundef %3204) #12
  %3206 = icmp ne i32 %3205, 0
  br i1 %3206, label %3207, label %3224

3207:                                             ; preds = %3202
  %3208 = load i32, ptr %67, align 4, !tbaa !5
  %3209 = call ptr @__errno_location() #13
  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.4)
  %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.4)
  %3218 = call ptr @__errno_location() #13
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  %3220 = call ptr @strerror(i32 noundef %3219) #12
  %3221 = call ptr @__errno_location() #13
  %3222 = load i32, ptr %3221, align 4, !tbaa !5
  %3223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3210, ptr noundef @.str.2, i32 noundef %3211, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3214, ptr noundef %3217, ptr noundef %3220, i32 noundef %3222) #12
  br label %3241

3224:                                             ; preds = %3202, %3195
  %3225 = load i32, ptr %67, align 4, !tbaa !5
  %3226 = call ptr @__errno_location() #13
  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.4)
  %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.4)
  %3235 = call ptr @__errno_location() #13
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  %3237 = call ptr @strerror(i32 noundef %3236) #12
  %3238 = call ptr @__errno_location() #13
  %3239 = load i32, ptr %3238, align 4, !tbaa !5
  %3240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3227, ptr noundef @.str.5, i32 noundef %3228, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3231, ptr noundef %3234, ptr noundef %3237, i32 noundef %3239) #12
  br label %3241

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

3242:                                             ; preds = %3241
  br label %3243

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

3244:                                             ; No predecessors!
  br label %3245

3245:                                             ; preds = %3244
  br label %3246

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

3247:                                             ; preds = %3246
  br label %3248

3248:                                             ; preds = %3247
  call void @llvm.lifetime.start.p0(i64 48, ptr %68) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %68, ptr align 16 @__const.main.wire_ciphers, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #12
  store i8 24, ptr %69, align 1, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 48, ptr %70) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %70, ptr align 16 @__const.main.wire_ciphers_fallback, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #12
  store i8 24, ptr %71, align 1, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 48, ptr %72) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %72, ptr align 16 @__const.main.wire_ciphers_renegotiation, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %73) #12
  store i8 24, ptr %73, align 1, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %74, ptr align 1 @__const.main.wire_ciphers_with_ecdsa, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #12
  store i8 2, ptr %75, align 1, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %76, ptr align 1 @__const.main.wire_ciphers_only_ecdsa, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #12
  store i8 4, ptr %77, align 1, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 12, ptr %78) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %78, ptr align 1 @__const.main.wire_ciphers_rsa_fallback, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #12
  store i8 6, ptr %79, align 1, !tbaa !54
  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 = call ptr @s2n_config_new()
  store ptr %3252, ptr %48, align 8, !tbaa !9
  %3253 = icmp eq ptr %3252, null
  br i1 %3253, label %3254, label %3307

3254:                                             ; preds = %3249
  br label %3255

3255:                                             ; preds = %3254
  br label %3256

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

3263:                                             ; preds = %3256
  %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
  %3267 = icmp ne i32 %3266, 0
  br i1 %3267, label %3268, label %3285

3268:                                             ; preds = %3263
  %3269 = load i32, ptr %80, align 4, !tbaa !5
  %3270 = call ptr @__errno_location() #13
  store i32 %3269, ptr %3270, align 4, !tbaa !5
  %3271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3272 = load i32, ptr @test_count, align 4, !tbaa !5
  %3273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3274 = load i32, ptr %3273, align 4, !tbaa !5
  %3275 = call ptr @s2n_strerror(i32 noundef %3274, ptr noundef @.str.4)
  %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_debug(i32 noundef %3277, ptr noundef @.str.4)
  %3279 = call ptr @__errno_location() #13
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  %3281 = call ptr @strerror(i32 noundef %3280) #12
  %3282 = call ptr @__errno_location() #13
  %3283 = load i32, ptr %3282, align 4, !tbaa !5
  %3284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3271, ptr noundef @.str.2, i32 noundef %3272, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 284, ptr noundef %3275, ptr noundef %3278, ptr noundef %3281, i32 noundef %3283) #12
  br label %3302

3285:                                             ; preds = %3263, %3256
  %3286 = load i32, ptr %80, align 4, !tbaa !5
  %3287 = call ptr @__errno_location() #13
  store i32 %3286, ptr %3287, align 4, !tbaa !5
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = load i32, ptr @test_count, align 4, !tbaa !5
  %3290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3291 = load i32, ptr %3290, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror(i32 noundef %3291, ptr noundef @.str.4)
  %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_debug(i32 noundef %3294, ptr noundef @.str.4)
  %3296 = call ptr @__errno_location() #13
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call ptr @strerror(i32 noundef %3297) #12
  %3299 = call ptr @__errno_location() #13
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  %3301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3288, ptr noundef @.str.5, i32 noundef %3289, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 284, ptr noundef %3292, ptr noundef %3295, ptr noundef %3298, i32 noundef %3300) #12
  br label %3302

3302:                                             ; preds = %3285, %3268
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #12
  br label %3303

3303:                                             ; preds = %3302
  br label %3304

3304:                                             ; preds = %3303
  call void @exit(i32 noundef 1) #14
  unreachable

3305:                                             ; No predecessors!
  br label %3306

3306:                                             ; preds = %3305
  br label %3307

3307:                                             ; preds = %3306, %3249
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  br label %3310

3310:                                             ; preds = %3309
  %3311 = load i32, ptr @test_count, align 4, !tbaa !5
  %3312 = add nsw i32 %3311, 1
  store i32 %3312, ptr @test_count, align 4, !tbaa !5
  %3313 = load ptr, ptr %48, align 8, !tbaa !9
  %3314 = load ptr, ptr %53, align 8, !tbaa !9
  %3315 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3313, ptr noundef %3314)
  %3316 = icmp eq i32 %3315, -1
  br i1 %3316, label %3317, label %3370

3317:                                             ; preds = %3310
  br label %3318

3318:                                             ; preds = %3317
  br label %3319

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

3326:                                             ; preds = %3319
  %3327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3328 = call i32 @fileno(ptr noundef %3327) #12
  %3329 = call i32 @isatty(i32 noundef %3328) #12
  %3330 = icmp ne i32 %3329, 0
  br i1 %3330, label %3331, label %3348

3331:                                             ; preds = %3326
  %3332 = load i32, ptr %81, align 4, !tbaa !5
  %3333 = call ptr @__errno_location() #13
  store i32 %3332, ptr %3333, align 4, !tbaa !5
  %3334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3335 = load i32, ptr @test_count, align 4, !tbaa !5
  %3336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  %3338 = call ptr @s2n_strerror(i32 noundef %3337, ptr noundef @.str.4)
  %3339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3340 = load i32, ptr %3339, align 4, !tbaa !5
  %3341 = call ptr @s2n_strerror_debug(i32 noundef %3340, ptr noundef @.str.4)
  %3342 = call ptr @__errno_location() #13
  %3343 = load i32, ptr %3342, align 4, !tbaa !5
  %3344 = call ptr @strerror(i32 noundef %3343) #12
  %3345 = call ptr @__errno_location() #13
  %3346 = load i32, ptr %3345, align 4, !tbaa !5
  %3347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3334, ptr noundef @.str.2, i32 noundef %3335, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 285, ptr noundef %3338, ptr noundef %3341, ptr noundef %3344, i32 noundef %3346) #12
  br label %3365

3348:                                             ; preds = %3326, %3319
  %3349 = load i32, ptr %81, align 4, !tbaa !5
  %3350 = call ptr @__errno_location() #13
  store i32 %3349, ptr %3350, align 4, !tbaa !5
  %3351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3352 = load i32, ptr @test_count, align 4, !tbaa !5
  %3353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3354 = load i32, ptr %3353, align 4, !tbaa !5
  %3355 = call ptr @s2n_strerror(i32 noundef %3354, ptr noundef @.str.4)
  %3356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3357 = load i32, ptr %3356, align 4, !tbaa !5
  %3358 = call ptr @s2n_strerror_debug(i32 noundef %3357, ptr noundef @.str.4)
  %3359 = call ptr @__errno_location() #13
  %3360 = load i32, ptr %3359, align 4, !tbaa !5
  %3361 = call ptr @strerror(i32 noundef %3360) #12
  %3362 = call ptr @__errno_location() #13
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  %3364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3351, ptr noundef @.str.5, i32 noundef %3352, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 285, ptr noundef %3355, ptr noundef %3358, ptr noundef %3361, i32 noundef %3363) #12
  br label %3365

3365:                                             ; preds = %3348, %3331
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #12
  br label %3366

3366:                                             ; preds = %3365
  br label %3367

3367:                                             ; preds = %3366
  call void @exit(i32 noundef 1) #14
  unreachable

3368:                                             ; No predecessors!
  br label %3369

3369:                                             ; preds = %3368
  br label %3370

3370:                                             ; preds = %3369, %3310
  br label %3371

3371:                                             ; preds = %3370
  br label %3372

3372:                                             ; preds = %3371
  br label %3373

3373:                                             ; preds = %3372
  %3374 = load i32, ptr @test_count, align 4, !tbaa !5
  %3375 = add nsw i32 %3374, 1
  store i32 %3375, ptr @test_count, align 4, !tbaa !5
  %3376 = load ptr, ptr %48, align 8, !tbaa !9
  %3377 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3376, ptr noundef @.str.53)
  %3378 = icmp eq i32 %3377, -1
  br i1 %3378, label %3379, label %3432

3379:                                             ; preds = %3373
  br label %3380

3380:                                             ; preds = %3379
  br label %3381

3381:                                             ; preds = %3380
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #12
  %3382 = call ptr @__errno_location() #13
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  store i32 %3383, ptr %82, align 4, !tbaa !5
  %3384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3385 = call i32 @s2n_print_stacktrace(ptr noundef %3384)
  %3386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3387 = trunc i8 %3386 to i1
  br i1 %3387, label %3388, label %3410

3388:                                             ; preds = %3381
  %3389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3390 = call i32 @fileno(ptr noundef %3389) #12
  %3391 = call i32 @isatty(i32 noundef %3390) #12
  %3392 = icmp ne i32 %3391, 0
  br i1 %3392, label %3393, label %3410

3393:                                             ; preds = %3388
  %3394 = load i32, ptr %82, align 4, !tbaa !5
  %3395 = call ptr @__errno_location() #13
  store i32 %3394, ptr %3395, align 4, !tbaa !5
  %3396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3397 = load i32, ptr @test_count, align 4, !tbaa !5
  %3398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  %3400 = call ptr @s2n_strerror(i32 noundef %3399, ptr noundef @.str.4)
  %3401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  %3403 = call ptr @s2n_strerror_debug(i32 noundef %3402, ptr noundef @.str.4)
  %3404 = call ptr @__errno_location() #13
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = call ptr @strerror(i32 noundef %3405) #12
  %3407 = call ptr @__errno_location() #13
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  %3409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3396, ptr noundef @.str.2, i32 noundef %3397, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 287, ptr noundef %3400, ptr noundef %3403, ptr noundef %3406, i32 noundef %3408) #12
  br label %3427

3410:                                             ; preds = %3388, %3381
  %3411 = load i32, ptr %82, align 4, !tbaa !5
  %3412 = call ptr @__errno_location() #13
  store i32 %3411, ptr %3412, align 4, !tbaa !5
  %3413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3416 = load i32, ptr %3415, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror(i32 noundef %3416, ptr noundef @.str.4)
  %3418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call ptr @s2n_strerror_debug(i32 noundef %3419, ptr noundef @.str.4)
  %3421 = call ptr @__errno_location() #13
  %3422 = load i32, ptr %3421, align 4, !tbaa !5
  %3423 = call ptr @strerror(i32 noundef %3422) #12
  %3424 = call ptr @__errno_location() #13
  %3425 = load i32, ptr %3424, align 4, !tbaa !5
  %3426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3413, ptr noundef @.str.5, i32 noundef %3414, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 287, ptr noundef %3417, ptr noundef %3420, ptr noundef %3423, i32 noundef %3425) #12
  br label %3427

3427:                                             ; preds = %3410, %3393
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #12
  br label %3428

3428:                                             ; preds = %3427
  br label %3429

3429:                                             ; preds = %3428
  call void @exit(i32 noundef 1) #14
  unreachable

3430:                                             ; No predecessors!
  br label %3431

3431:                                             ; preds = %3430
  br label %3432

3432:                                             ; preds = %3431, %3373
  br label %3433

3433:                                             ; preds = %3432
  br label %3434

3434:                                             ; preds = %3433
  br label %3435

3435:                                             ; preds = %3434
  %3436 = load i32, ptr @test_count, align 4, !tbaa !5
  %3437 = add nsw i32 %3436, 1
  store i32 %3437, ptr @test_count, align 4, !tbaa !5
  %3438 = load ptr, ptr %47, align 8, !tbaa !9
  %3439 = load ptr, ptr %48, align 8, !tbaa !9
  %3440 = call i32 @s2n_connection_set_config(ptr noundef %3438, ptr noundef %3439)
  %3441 = icmp eq i32 %3440, -1
  br i1 %3441, label %3442, label %3495

3442:                                             ; preds = %3435
  br label %3443

3443:                                             ; preds = %3442
  br label %3444

3444:                                             ; preds = %3443
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #12
  %3445 = call ptr @__errno_location() #13
  %3446 = load i32, ptr %3445, align 4, !tbaa !5
  store i32 %3446, ptr %83, align 4, !tbaa !5
  %3447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3448 = call i32 @s2n_print_stacktrace(ptr noundef %3447)
  %3449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3450 = trunc i8 %3449 to i1
  br i1 %3450, label %3451, label %3473

3451:                                             ; preds = %3444
  %3452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3453 = call i32 @fileno(ptr noundef %3452) #12
  %3454 = call i32 @isatty(i32 noundef %3453) #12
  %3455 = icmp ne i32 %3454, 0
  br i1 %3455, label %3456, label %3473

3456:                                             ; preds = %3451
  %3457 = load i32, ptr %83, align 4, !tbaa !5
  %3458 = call ptr @__errno_location() #13
  store i32 %3457, ptr %3458, align 4, !tbaa !5
  %3459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3460 = load i32, ptr @test_count, align 4, !tbaa !5
  %3461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call ptr @s2n_strerror(i32 noundef %3462, ptr noundef @.str.4)
  %3464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3465 = load i32, ptr %3464, align 4, !tbaa !5
  %3466 = call ptr @s2n_strerror_debug(i32 noundef %3465, ptr noundef @.str.4)
  %3467 = call ptr @__errno_location() #13
  %3468 = load i32, ptr %3467, align 4, !tbaa !5
  %3469 = call ptr @strerror(i32 noundef %3468) #12
  %3470 = call ptr @__errno_location() #13
  %3471 = load i32, ptr %3470, align 4, !tbaa !5
  %3472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3459, ptr noundef @.str.2, i32 noundef %3460, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 288, ptr noundef %3463, ptr noundef %3466, ptr noundef %3469, i32 noundef %3471) #12
  br label %3490

3473:                                             ; preds = %3451, %3444
  %3474 = load i32, ptr %83, align 4, !tbaa !5
  %3475 = call ptr @__errno_location() #13
  store i32 %3474, ptr %3475, align 4, !tbaa !5
  %3476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3477 = load i32, ptr @test_count, align 4, !tbaa !5
  %3478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3479 = load i32, ptr %3478, align 4, !tbaa !5
  %3480 = call ptr @s2n_strerror(i32 noundef %3479, ptr noundef @.str.4)
  %3481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3482 = load i32, ptr %3481, align 4, !tbaa !5
  %3483 = call ptr @s2n_strerror_debug(i32 noundef %3482, ptr noundef @.str.4)
  %3484 = call ptr @__errno_location() #13
  %3485 = load i32, ptr %3484, align 4, !tbaa !5
  %3486 = call ptr @strerror(i32 noundef %3485) #12
  %3487 = call ptr @__errno_location() #13
  %3488 = load i32, ptr %3487, align 4, !tbaa !5
  %3489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3476, ptr noundef @.str.5, i32 noundef %3477, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 288, ptr noundef %3480, ptr noundef %3483, ptr noundef %3486, i32 noundef %3488) #12
  br label %3490

3490:                                             ; preds = %3473, %3456
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #12
  br label %3491

3491:                                             ; preds = %3490
  br label %3492

3492:                                             ; preds = %3491
  call void @exit(i32 noundef 1) #14
  unreachable

3493:                                             ; No predecessors!
  br label %3494

3494:                                             ; preds = %3493
  br label %3495

3495:                                             ; preds = %3494, %3435
  br label %3496

3496:                                             ; preds = %3495
  br label %3497

3497:                                             ; preds = %3496
  %3498 = load ptr, ptr %47, align 8, !tbaa !9
  %3499 = getelementptr inbounds %struct.s2n_connection, ptr %3498, i32 0, i32 23
  store i8 31, ptr %3499, align 4, !tbaa !42
  br label %3500

3500:                                             ; preds = %3497
  %3501 = load i32, ptr @test_count, align 4, !tbaa !5
  %3502 = add nsw i32 %3501, 1
  store i32 %3502, ptr @test_count, align 4, !tbaa !5
  %3503 = load ptr, ptr %47, align 8, !tbaa !9
  %3504 = getelementptr inbounds [48 x i8], ptr %68, i64 0, i64 0
  %3505 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %3503, ptr noundef %3504, i16 noundef zeroext 24)
  %3506 = icmp eq i32 %3505, -1
  br i1 %3506, label %3507, label %3560

3507:                                             ; preds = %3500
  br label %3508

3508:                                             ; preds = %3507
  br label %3509

3509:                                             ; preds = %3508
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #12
  %3510 = call ptr @__errno_location() #13
  %3511 = load i32, ptr %3510, align 4, !tbaa !5
  store i32 %3511, ptr %84, align 4, !tbaa !5
  %3512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3513 = call i32 @s2n_print_stacktrace(ptr noundef %3512)
  %3514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3515 = trunc i8 %3514 to i1
  br i1 %3515, label %3516, label %3538

3516:                                             ; preds = %3509
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = call i32 @fileno(ptr noundef %3517) #12
  %3519 = call i32 @isatty(i32 noundef %3518) #12
  %3520 = icmp ne i32 %3519, 0
  br i1 %3520, label %3521, label %3538

3521:                                             ; preds = %3516
  %3522 = load i32, ptr %84, align 4, !tbaa !5
  %3523 = call ptr @__errno_location() #13
  store i32 %3522, ptr %3523, align 4, !tbaa !5
  %3524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3525 = load i32, ptr @test_count, align 4, !tbaa !5
  %3526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3527 = load i32, ptr %3526, align 4, !tbaa !5
  %3528 = call ptr @s2n_strerror(i32 noundef %3527, ptr noundef @.str.4)
  %3529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3530 = load i32, ptr %3529, align 4, !tbaa !5
  %3531 = call ptr @s2n_strerror_debug(i32 noundef %3530, ptr noundef @.str.4)
  %3532 = call ptr @__errno_location() #13
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call ptr @strerror(i32 noundef %3533) #12
  %3535 = call ptr @__errno_location() #13
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3524, ptr noundef @.str.2, i32 noundef %3525, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 292, ptr noundef %3528, ptr noundef %3531, ptr noundef %3534, i32 noundef %3536) #12
  br label %3555

3538:                                             ; preds = %3516, %3509
  %3539 = load i32, ptr %84, align 4, !tbaa !5
  %3540 = call ptr @__errno_location() #13
  store i32 %3539, ptr %3540, align 4, !tbaa !5
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = load i32, ptr @test_count, align 4, !tbaa !5
  %3543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3544 = load i32, ptr %3543, align 4, !tbaa !5
  %3545 = call ptr @s2n_strerror(i32 noundef %3544, ptr noundef @.str.4)
  %3546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3547 = load i32, ptr %3546, align 4, !tbaa !5
  %3548 = call ptr @s2n_strerror_debug(i32 noundef %3547, ptr noundef @.str.4)
  %3549 = call ptr @__errno_location() #13
  %3550 = load i32, ptr %3549, align 4, !tbaa !5
  %3551 = call ptr @strerror(i32 noundef %3550) #12
  %3552 = call ptr @__errno_location() #13
  %3553 = load i32, ptr %3552, align 4, !tbaa !5
  %3554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3541, ptr noundef @.str.5, i32 noundef %3542, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 292, ptr noundef %3545, ptr noundef %3548, ptr noundef %3551, i32 noundef %3553) #12
  br label %3555

3555:                                             ; preds = %3538, %3521
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #12
  br label %3556

3556:                                             ; preds = %3555
  br label %3557

3557:                                             ; preds = %3556
  call void @exit(i32 noundef 1) #14
  unreachable

3558:                                             ; No predecessors!
  br label %3559

3559:                                             ; preds = %3558
  br label %3560

3560:                                             ; preds = %3559, %3500
  br label %3561

3561:                                             ; preds = %3560
  br label %3562

3562:                                             ; preds = %3561
  br label %3563

3563:                                             ; preds = %3562
  %3564 = load i32, ptr @test_count, align 4, !tbaa !5
  %3565 = add nsw i32 %3564, 1
  store i32 %3565, ptr @test_count, align 4, !tbaa !5
  %3566 = load ptr, ptr %47, align 8, !tbaa !9
  %3567 = load i32, ptr %3566, align 8
  %3568 = lshr i32 %3567, 3
  %3569 = and i32 %3568, 1
  %3570 = icmp eq i32 %3569, 0
  br i1 %3570, label %3624, label %3571

3571:                                             ; preds = %3563
  br label %3572

3572:                                             ; preds = %3571
  br label %3573

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

3580:                                             ; preds = %3573
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = call i32 @fileno(ptr noundef %3581) #12
  %3583 = call i32 @isatty(i32 noundef %3582) #12
  %3584 = icmp ne i32 %3583, 0
  br i1 %3584, label %3585, label %3602

3585:                                             ; preds = %3580
  %3586 = load i32, ptr %85, align 4, !tbaa !5
  %3587 = call ptr @__errno_location() #13
  store i32 %3586, ptr %3587, align 4, !tbaa !5
  %3588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3589 = load i32, ptr @test_count, align 4, !tbaa !5
  %3590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3591 = load i32, ptr %3590, align 4, !tbaa !5
  %3592 = call ptr @s2n_strerror(i32 noundef %3591, ptr noundef @.str.4)
  %3593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3594 = load i32, ptr %3593, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror_debug(i32 noundef %3594, ptr noundef @.str.4)
  %3596 = call ptr @__errno_location() #13
  %3597 = load i32, ptr %3596, align 4, !tbaa !5
  %3598 = call ptr @strerror(i32 noundef %3597) #12
  %3599 = call ptr @__errno_location() #13
  %3600 = load i32, ptr %3599, align 4, !tbaa !5
  %3601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3588, ptr noundef @.str.2, i32 noundef %3589, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 293, ptr noundef %3592, ptr noundef %3595, ptr noundef %3598, i32 noundef %3600) #12
  br label %3619

3602:                                             ; preds = %3580, %3573
  %3603 = load i32, ptr %85, align 4, !tbaa !5
  %3604 = call ptr @__errno_location() #13
  store i32 %3603, ptr %3604, align 4, !tbaa !5
  %3605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3606 = load i32, ptr @test_count, align 4, !tbaa !5
  %3607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3608 = load i32, ptr %3607, align 4, !tbaa !5
  %3609 = call ptr @s2n_strerror(i32 noundef %3608, ptr noundef @.str.4)
  %3610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3611 = load i32, ptr %3610, align 4, !tbaa !5
  %3612 = call ptr @s2n_strerror_debug(i32 noundef %3611, ptr noundef @.str.4)
  %3613 = call ptr @__errno_location() #13
  %3614 = load i32, ptr %3613, align 4, !tbaa !5
  %3615 = call ptr @strerror(i32 noundef %3614) #12
  %3616 = call ptr @__errno_location() #13
  %3617 = load i32, ptr %3616, align 4, !tbaa !5
  %3618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3605, ptr noundef @.str.5, i32 noundef %3606, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 293, ptr noundef %3609, ptr noundef %3612, ptr noundef %3615, i32 noundef %3617) #12
  br label %3619

3619:                                             ; preds = %3602, %3585
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #12
  br label %3620

3620:                                             ; preds = %3619
  br label %3621

3621:                                             ; preds = %3620
  call void @exit(i32 noundef 1) #14
  unreachable

3622:                                             ; No predecessors!
  br label %3623

3623:                                             ; preds = %3622
  br label %3624

3624:                                             ; preds = %3623, %3563
  br label %3625

3625:                                             ; preds = %3624
  br label %3626

3626:                                             ; preds = %3625
  br label %3627

3627:                                             ; preds = %3626
  %3628 = load i32, ptr @test_count, align 4, !tbaa !5
  %3629 = add nsw i32 %3628, 1
  store i32 %3629, ptr @test_count, align 4, !tbaa !5
  %3630 = load ptr, ptr %47, align 8, !tbaa !9
  %3631 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef %3630, ptr noundef @.str.53)
  %3632 = icmp eq i32 1, %3631
  br i1 %3632, label %3686, label %3633

3633:                                             ; preds = %3627
  br label %3634

3634:                                             ; preds = %3633
  br label %3635

3635:                                             ; preds = %3634
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #12
  %3636 = call ptr @__errno_location() #13
  %3637 = load i32, ptr %3636, align 4, !tbaa !5
  store i32 %3637, ptr %86, align 4, !tbaa !5
  %3638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3639 = call i32 @s2n_print_stacktrace(ptr noundef %3638)
  %3640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3641 = trunc i8 %3640 to i1
  br i1 %3641, label %3642, label %3664

3642:                                             ; preds = %3635
  %3643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3644 = call i32 @fileno(ptr noundef %3643) #12
  %3645 = call i32 @isatty(i32 noundef %3644) #12
  %3646 = icmp ne i32 %3645, 0
  br i1 %3646, label %3647, label %3664

3647:                                             ; preds = %3642
  %3648 = load i32, ptr %86, align 4, !tbaa !5
  %3649 = call ptr @__errno_location() #13
  store i32 %3648, ptr %3649, align 4, !tbaa !5
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = load i32, ptr @test_count, align 4, !tbaa !5
  %3652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3653 = load i32, ptr %3652, align 4, !tbaa !5
  %3654 = call ptr @s2n_strerror(i32 noundef %3653, ptr noundef @.str.4)
  %3655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3656 = load i32, ptr %3655, align 4, !tbaa !5
  %3657 = call ptr @s2n_strerror_debug(i32 noundef %3656, ptr noundef @.str.4)
  %3658 = call ptr @__errno_location() #13
  %3659 = load i32, ptr %3658, align 4, !tbaa !5
  %3660 = call ptr @strerror(i32 noundef %3659) #12
  %3661 = call ptr @__errno_location() #13
  %3662 = load i32, ptr %3661, align 4, !tbaa !5
  %3663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3650, ptr noundef @.str.2, i32 noundef %3651, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 294, ptr noundef %3654, ptr noundef %3657, ptr noundef %3660, i32 noundef %3662) #12
  br label %3681

3664:                                             ; preds = %3642, %3635
  %3665 = load i32, ptr %86, align 4, !tbaa !5
  %3666 = call ptr @__errno_location() #13
  store i32 %3665, ptr %3666, align 4, !tbaa !5
  %3667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3668 = load i32, ptr @test_count, align 4, !tbaa !5
  %3669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3670 = load i32, ptr %3669, align 4, !tbaa !5
  %3671 = call ptr @s2n_strerror(i32 noundef %3670, ptr noundef @.str.4)
  %3672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3673 = load i32, ptr %3672, align 4, !tbaa !5
  %3674 = call ptr @s2n_strerror_debug(i32 noundef %3673, ptr noundef @.str.4)
  %3675 = call ptr @__errno_location() #13
  %3676 = load i32, ptr %3675, align 4, !tbaa !5
  %3677 = call ptr @strerror(i32 noundef %3676) #12
  %3678 = call ptr @__errno_location() #13
  %3679 = load i32, ptr %3678, align 4, !tbaa !5
  %3680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3667, ptr noundef @.str.5, i32 noundef %3668, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 294, ptr noundef %3671, ptr noundef %3674, ptr noundef %3677, i32 noundef %3679) #12
  br label %3681

3681:                                             ; preds = %3664, %3647
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #12
  br label %3682

3682:                                             ; preds = %3681
  br label %3683

3683:                                             ; preds = %3682
  call void @exit(i32 noundef 1) #14
  unreachable

3684:                                             ; No predecessors!
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

3686:                                             ; preds = %3685, %3627
  br label %3687

3687:                                             ; preds = %3686
  br label %3688

3688:                                             ; preds = %3687
  br label %3689

3689:                                             ; preds = %3688
  %3690 = load i32, ptr @test_count, align 4, !tbaa !5
  %3691 = add nsw i32 %3690, 1
  store i32 %3691, ptr @test_count, align 4, !tbaa !5
  %3692 = load ptr, ptr %47, align 8, !tbaa !9
  %3693 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef %3692, ptr noundef @.str.59)
  %3694 = icmp eq i32 0, %3693
  br i1 %3694, label %3748, label %3695

3695:                                             ; preds = %3689
  br label %3696

3696:                                             ; preds = %3695
  br label %3697

3697:                                             ; preds = %3696
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #12
  %3698 = call ptr @__errno_location() #13
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  store i32 %3699, ptr %87, align 4, !tbaa !5
  %3700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3701 = call i32 @s2n_print_stacktrace(ptr noundef %3700)
  %3702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3703 = trunc i8 %3702 to i1
  br i1 %3703, label %3704, label %3726

3704:                                             ; preds = %3697
  %3705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3706 = call i32 @fileno(ptr noundef %3705) #12
  %3707 = call i32 @isatty(i32 noundef %3706) #12
  %3708 = icmp ne i32 %3707, 0
  br i1 %3708, label %3709, label %3726

3709:                                             ; preds = %3704
  %3710 = load i32, ptr %87, align 4, !tbaa !5
  %3711 = call ptr @__errno_location() #13
  store i32 %3710, ptr %3711, align 4, !tbaa !5
  %3712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3715 = load i32, ptr %3714, align 4, !tbaa !5
  %3716 = call ptr @s2n_strerror(i32 noundef %3715, ptr noundef @.str.4)
  %3717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3718 = load i32, ptr %3717, align 4, !tbaa !5
  %3719 = call ptr @s2n_strerror_debug(i32 noundef %3718, ptr noundef @.str.4)
  %3720 = call ptr @__errno_location() #13
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @strerror(i32 noundef %3721) #12
  %3723 = call ptr @__errno_location() #13
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3712, ptr noundef @.str.2, i32 noundef %3713, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 295, ptr noundef %3716, ptr noundef %3719, ptr noundef %3722, i32 noundef %3724) #12
  br label %3743

3726:                                             ; preds = %3704, %3697
  %3727 = load i32, ptr %87, align 4, !tbaa !5
  %3728 = call ptr @__errno_location() #13
  store i32 %3727, ptr %3728, align 4, !tbaa !5
  %3729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3730 = load i32, ptr @test_count, align 4, !tbaa !5
  %3731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3732 = load i32, ptr %3731, align 4, !tbaa !5
  %3733 = call ptr @s2n_strerror(i32 noundef %3732, ptr noundef @.str.4)
  %3734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3735 = load i32, ptr %3734, align 4, !tbaa !5
  %3736 = call ptr @s2n_strerror_debug(i32 noundef %3735, ptr noundef @.str.4)
  %3737 = call ptr @__errno_location() #13
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  %3739 = call ptr @strerror(i32 noundef %3738) #12
  %3740 = call ptr @__errno_location() #13
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3729, ptr noundef @.str.5, i32 noundef %3730, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 295, ptr noundef %3733, ptr noundef %3736, ptr noundef %3739, i32 noundef %3741) #12
  br label %3743

3743:                                             ; preds = %3726, %3709
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #12
  br label %3744

3744:                                             ; preds = %3743
  br label %3745

3745:                                             ; preds = %3744
  call void @exit(i32 noundef 1) #14
  unreachable

3746:                                             ; No predecessors!
  br label %3747

3747:                                             ; preds = %3746
  br label %3748

3748:                                             ; preds = %3747, %3689
  br label %3749

3749:                                             ; preds = %3748
  br label %3750

3750:                                             ; preds = %3749
  br label %3751

3751:                                             ; preds = %3750
  %3752 = load i32, ptr @test_count, align 4, !tbaa !5
  %3753 = add nsw i32 %3752, 1
  store i32 %3753, ptr @test_count, align 4, !tbaa !5
  %3754 = load ptr, ptr %47, align 8, !tbaa !9
  %3755 = call i32 @s2n_connection_wipe(ptr noundef %3754)
  %3756 = icmp eq i32 %3755, -1
  br i1 %3756, label %3757, label %3810

3757:                                             ; preds = %3751
  br label %3758

3758:                                             ; preds = %3757
  br label %3759

3759:                                             ; preds = %3758
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #12
  %3760 = call ptr @__errno_location() #13
  %3761 = load i32, ptr %3760, align 4, !tbaa !5
  store i32 %3761, ptr %88, align 4, !tbaa !5
  %3762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3763 = call i32 @s2n_print_stacktrace(ptr noundef %3762)
  %3764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3765 = trunc i8 %3764 to i1
  br i1 %3765, label %3766, label %3788

3766:                                             ; preds = %3759
  %3767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3768 = call i32 @fileno(ptr noundef %3767) #12
  %3769 = call i32 @isatty(i32 noundef %3768) #12
  %3770 = icmp ne i32 %3769, 0
  br i1 %3770, label %3771, label %3788

3771:                                             ; preds = %3766
  %3772 = load i32, ptr %88, align 4, !tbaa !5
  %3773 = call ptr @__errno_location() #13
  store i32 %3772, ptr %3773, align 4, !tbaa !5
  %3774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3775 = load i32, ptr @test_count, align 4, !tbaa !5
  %3776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  %3778 = call ptr @s2n_strerror(i32 noundef %3777, ptr noundef @.str.4)
  %3779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3780 = load i32, ptr %3779, align 4, !tbaa !5
  %3781 = call ptr @s2n_strerror_debug(i32 noundef %3780, ptr noundef @.str.4)
  %3782 = call ptr @__errno_location() #13
  %3783 = load i32, ptr %3782, align 4, !tbaa !5
  %3784 = call ptr @strerror(i32 noundef %3783) #12
  %3785 = call ptr @__errno_location() #13
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3774, ptr noundef @.str.2, i32 noundef %3775, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 296, ptr noundef %3778, ptr noundef %3781, ptr noundef %3784, i32 noundef %3786) #12
  br label %3805

3788:                                             ; preds = %3766, %3759
  %3789 = load i32, ptr %88, align 4, !tbaa !5
  %3790 = call ptr @__errno_location() #13
  store i32 %3789, ptr %3790, align 4, !tbaa !5
  %3791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3792 = load i32, ptr @test_count, align 4, !tbaa !5
  %3793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3794 = load i32, ptr %3793, align 4, !tbaa !5
  %3795 = call ptr @s2n_strerror(i32 noundef %3794, ptr noundef @.str.4)
  %3796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3797 = load i32, ptr %3796, align 4, !tbaa !5
  %3798 = call ptr @s2n_strerror_debug(i32 noundef %3797, ptr noundef @.str.4)
  %3799 = call ptr @__errno_location() #13
  %3800 = load i32, ptr %3799, align 4, !tbaa !5
  %3801 = call ptr @strerror(i32 noundef %3800) #12
  %3802 = call ptr @__errno_location() #13
  %3803 = load i32, ptr %3802, align 4, !tbaa !5
  %3804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3791, ptr noundef @.str.5, i32 noundef %3792, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 296, ptr noundef %3795, ptr noundef %3798, ptr noundef %3801, i32 noundef %3803) #12
  br label %3805

3805:                                             ; preds = %3788, %3771
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #12
  br label %3806

3806:                                             ; preds = %3805
  br label %3807

3807:                                             ; preds = %3806
  call void @exit(i32 noundef 1) #14
  unreachable

3808:                                             ; No predecessors!
  br label %3809

3809:                                             ; preds = %3808
  br label %3810

3810:                                             ; preds = %3809, %3751
  br label %3811

3811:                                             ; preds = %3810
  br label %3812

3812:                                             ; preds = %3811
  %3813 = load ptr, ptr %47, align 8, !tbaa !9
  %3814 = getelementptr inbounds %struct.s2n_connection, ptr %3813, i32 0, i32 23
  store i8 33, ptr %3814, align 4, !tbaa !42
  br label %3815

3815:                                             ; preds = %3812
  %3816 = load i32, ptr @test_count, align 4, !tbaa !5
  %3817 = add nsw i32 %3816, 1
  store i32 %3817, ptr @test_count, align 4, !tbaa !5
  %3818 = load ptr, ptr %47, align 8, !tbaa !9
  %3819 = getelementptr inbounds [48 x i8], ptr %72, i64 0, i64 0
  %3820 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %3818, ptr noundef %3819, i16 noundef zeroext 24)
  %3821 = icmp eq i32 %3820, -1
  br i1 %3821, label %3822, label %3875

3822:                                             ; preds = %3815
  br label %3823

3823:                                             ; preds = %3822
  br label %3824

3824:                                             ; preds = %3823
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #12
  %3825 = call ptr @__errno_location() #13
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  store i32 %3826, ptr %89, align 4, !tbaa !5
  %3827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3828 = call i32 @s2n_print_stacktrace(ptr noundef %3827)
  %3829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3830 = trunc i8 %3829 to i1
  br i1 %3830, label %3831, label %3853

3831:                                             ; preds = %3824
  %3832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3833 = call i32 @fileno(ptr noundef %3832) #12
  %3834 = call i32 @isatty(i32 noundef %3833) #12
  %3835 = icmp ne i32 %3834, 0
  br i1 %3835, label %3836, label %3853

3836:                                             ; preds = %3831
  %3837 = load i32, ptr %89, align 4, !tbaa !5
  %3838 = call ptr @__errno_location() #13
  store i32 %3837, ptr %3838, align 4, !tbaa !5
  %3839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3840 = load i32, ptr @test_count, align 4, !tbaa !5
  %3841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3842 = load i32, ptr %3841, align 4, !tbaa !5
  %3843 = call ptr @s2n_strerror(i32 noundef %3842, ptr noundef @.str.4)
  %3844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  %3846 = call ptr @s2n_strerror_debug(i32 noundef %3845, ptr noundef @.str.4)
  %3847 = call ptr @__errno_location() #13
  %3848 = load i32, ptr %3847, align 4, !tbaa !5
  %3849 = call ptr @strerror(i32 noundef %3848) #12
  %3850 = call ptr @__errno_location() #13
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3839, ptr noundef @.str.2, i32 noundef %3840, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 307, ptr noundef %3843, ptr noundef %3846, ptr noundef %3849, i32 noundef %3851) #12
  br label %3870

3853:                                             ; preds = %3831, %3824
  %3854 = load i32, ptr %89, align 4, !tbaa !5
  %3855 = call ptr @__errno_location() #13
  store i32 %3854, ptr %3855, align 4, !tbaa !5
  %3856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3857 = load i32, ptr @test_count, align 4, !tbaa !5
  %3858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3859 = load i32, ptr %3858, align 4, !tbaa !5
  %3860 = call ptr @s2n_strerror(i32 noundef %3859, ptr noundef @.str.4)
  %3861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3862 = load i32, ptr %3861, align 4, !tbaa !5
  %3863 = call ptr @s2n_strerror_debug(i32 noundef %3862, ptr noundef @.str.4)
  %3864 = call ptr @__errno_location() #13
  %3865 = load i32, ptr %3864, align 4, !tbaa !5
  %3866 = call ptr @strerror(i32 noundef %3865) #12
  %3867 = call ptr @__errno_location() #13
  %3868 = load i32, ptr %3867, align 4, !tbaa !5
  %3869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3856, ptr noundef @.str.5, i32 noundef %3857, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 307, ptr noundef %3860, ptr noundef %3863, ptr noundef %3866, i32 noundef %3868) #12
  br label %3870

3870:                                             ; preds = %3853, %3836
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #12
  br label %3871

3871:                                             ; preds = %3870
  br label %3872

3872:                                             ; preds = %3871
  call void @exit(i32 noundef 1) #14
  unreachable

3873:                                             ; No predecessors!
  br label %3874

3874:                                             ; preds = %3873
  br label %3875

3875:                                             ; preds = %3874, %3815
  br label %3876

3876:                                             ; preds = %3875
  br label %3877

3877:                                             ; preds = %3876
  br label %3878

3878:                                             ; preds = %3877
  %3879 = load i32, ptr @test_count, align 4, !tbaa !5
  %3880 = add nsw i32 %3879, 1
  store i32 %3880, ptr @test_count, align 4, !tbaa !5
  %3881 = load ptr, ptr %47, align 8, !tbaa !9
  %3882 = load i32, ptr %3881, align 8
  %3883 = lshr i32 %3882, 3
  %3884 = and i32 %3883, 1
  %3885 = icmp eq i32 %3884, 1
  br i1 %3885, label %3939, label %3886

3886:                                             ; preds = %3878
  br label %3887

3887:                                             ; preds = %3886
  br label %3888

3888:                                             ; preds = %3887
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #12
  %3889 = call ptr @__errno_location() #13
  %3890 = load i32, ptr %3889, align 4, !tbaa !5
  store i32 %3890, ptr %90, align 4, !tbaa !5
  %3891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3892 = call i32 @s2n_print_stacktrace(ptr noundef %3891)
  %3893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3894 = trunc i8 %3893 to i1
  br i1 %3894, label %3895, label %3917

3895:                                             ; preds = %3888
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = call i32 @fileno(ptr noundef %3896) #12
  %3898 = call i32 @isatty(i32 noundef %3897) #12
  %3899 = icmp ne i32 %3898, 0
  br i1 %3899, label %3900, label %3917

3900:                                             ; preds = %3895
  %3901 = load i32, ptr %90, align 4, !tbaa !5
  %3902 = call ptr @__errno_location() #13
  store i32 %3901, ptr %3902, align 4, !tbaa !5
  %3903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3904 = load i32, ptr @test_count, align 4, !tbaa !5
  %3905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3906 = load i32, ptr %3905, align 4, !tbaa !5
  %3907 = call ptr @s2n_strerror(i32 noundef %3906, ptr noundef @.str.4)
  %3908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3909 = load i32, ptr %3908, align 4, !tbaa !5
  %3910 = call ptr @s2n_strerror_debug(i32 noundef %3909, ptr noundef @.str.4)
  %3911 = call ptr @__errno_location() #13
  %3912 = load i32, ptr %3911, align 4, !tbaa !5
  %3913 = call ptr @strerror(i32 noundef %3912) #12
  %3914 = call ptr @__errno_location() #13
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  %3916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3903, ptr noundef @.str.2, i32 noundef %3904, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 308, ptr noundef %3907, ptr noundef %3910, ptr noundef %3913, i32 noundef %3915) #12
  br label %3934

3917:                                             ; preds = %3895, %3888
  %3918 = load i32, ptr %90, align 4, !tbaa !5
  %3919 = call ptr @__errno_location() #13
  store i32 %3918, ptr %3919, align 4, !tbaa !5
  %3920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3921 = load i32, ptr @test_count, align 4, !tbaa !5
  %3922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3923 = load i32, ptr %3922, align 4, !tbaa !5
  %3924 = call ptr @s2n_strerror(i32 noundef %3923, ptr noundef @.str.4)
  %3925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3926 = load i32, ptr %3925, align 4, !tbaa !5
  %3927 = call ptr @s2n_strerror_debug(i32 noundef %3926, ptr noundef @.str.4)
  %3928 = call ptr @__errno_location() #13
  %3929 = load i32, ptr %3928, align 4, !tbaa !5
  %3930 = call ptr @strerror(i32 noundef %3929) #12
  %3931 = call ptr @__errno_location() #13
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3920, ptr noundef @.str.5, i32 noundef %3921, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 308, ptr noundef %3924, ptr noundef %3927, ptr noundef %3930, i32 noundef %3932) #12
  br label %3934

3934:                                             ; preds = %3917, %3900
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #12
  br label %3935

3935:                                             ; preds = %3934
  br label %3936

3936:                                             ; preds = %3935
  call void @exit(i32 noundef 1) #14
  unreachable

3937:                                             ; No predecessors!
  br label %3938

3938:                                             ; preds = %3937
  br label %3939

3939:                                             ; preds = %3938, %3878
  br label %3940

3940:                                             ; preds = %3939
  br label %3941

3941:                                             ; preds = %3940
  br label %3942

3942:                                             ; preds = %3941
  %3943 = load i32, ptr @test_count, align 4, !tbaa !5
  %3944 = add nsw i32 %3943, 1
  store i32 %3944, ptr @test_count, align 4, !tbaa !5
  %3945 = load ptr, ptr %47, align 8, !tbaa !9
  %3946 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef %3945, ptr noundef @.str.53)
  %3947 = icmp eq i32 1, %3946
  br i1 %3947, label %4001, label %3948

3948:                                             ; preds = %3942
  br label %3949

3949:                                             ; preds = %3948
  br label %3950

3950:                                             ; preds = %3949
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #12
  %3951 = call ptr @__errno_location() #13
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  store i32 %3952, ptr %91, align 4, !tbaa !5
  %3953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3954 = call i32 @s2n_print_stacktrace(ptr noundef %3953)
  %3955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3956 = trunc i8 %3955 to i1
  br i1 %3956, label %3957, label %3979

3957:                                             ; preds = %3950
  %3958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3959 = call i32 @fileno(ptr noundef %3958) #12
  %3960 = call i32 @isatty(i32 noundef %3959) #12
  %3961 = icmp ne i32 %3960, 0
  br i1 %3961, label %3962, label %3979

3962:                                             ; preds = %3957
  %3963 = load i32, ptr %91, align 4, !tbaa !5
  %3964 = call ptr @__errno_location() #13
  store i32 %3963, ptr %3964, align 4, !tbaa !5
  %3965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3966 = load i32, ptr @test_count, align 4, !tbaa !5
  %3967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3968 = load i32, ptr %3967, align 4, !tbaa !5
  %3969 = call ptr @s2n_strerror(i32 noundef %3968, ptr noundef @.str.4)
  %3970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3971 = load i32, ptr %3970, align 4, !tbaa !5
  %3972 = call ptr @s2n_strerror_debug(i32 noundef %3971, ptr noundef @.str.4)
  %3973 = call ptr @__errno_location() #13
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = call ptr @strerror(i32 noundef %3974) #12
  %3976 = call ptr @__errno_location() #13
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3965, ptr noundef @.str.2, i32 noundef %3966, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 309, ptr noundef %3969, ptr noundef %3972, ptr noundef %3975, i32 noundef %3977) #12
  br label %3996

3979:                                             ; preds = %3957, %3950
  %3980 = load i32, ptr %91, align 4, !tbaa !5
  %3981 = call ptr @__errno_location() #13
  store i32 %3980, ptr %3981, align 4, !tbaa !5
  %3982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3983 = load i32, ptr @test_count, align 4, !tbaa !5
  %3984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3985 = load i32, ptr %3984, align 4, !tbaa !5
  %3986 = call ptr @s2n_strerror(i32 noundef %3985, ptr noundef @.str.4)
  %3987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3988 = load i32, ptr %3987, align 4, !tbaa !5
  %3989 = call ptr @s2n_strerror_debug(i32 noundef %3988, ptr noundef @.str.4)
  %3990 = call ptr @__errno_location() #13
  %3991 = load i32, ptr %3990, align 4, !tbaa !5
  %3992 = call ptr @strerror(i32 noundef %3991) #12
  %3993 = call ptr @__errno_location() #13
  %3994 = load i32, ptr %3993, align 4, !tbaa !5
  %3995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3982, ptr noundef @.str.5, i32 noundef %3983, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 309, ptr noundef %3986, ptr noundef %3989, ptr noundef %3992, i32 noundef %3994) #12
  br label %3996

3996:                                             ; preds = %3979, %3962
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #12
  br label %3997

3997:                                             ; preds = %3996
  br label %3998

3998:                                             ; preds = %3997
  call void @exit(i32 noundef 1) #14
  unreachable

3999:                                             ; No predecessors!
  br label %4000

4000:                                             ; preds = %3999
  br label %4001

4001:                                             ; preds = %4000, %3942
  br label %4002

4002:                                             ; preds = %4001
  br label %4003

4003:                                             ; preds = %4002
  br label %4004

4004:                                             ; preds = %4003
  %4005 = load i32, ptr @test_count, align 4, !tbaa !5
  %4006 = add nsw i32 %4005, 1
  store i32 %4006, ptr @test_count, align 4, !tbaa !5
  %4007 = load ptr, ptr %47, align 8, !tbaa !9
  %4008 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef %4007, ptr noundef @.str.63)
  %4009 = icmp eq i32 -1, %4008
  br i1 %4009, label %4063, label %4010

4010:                                             ; preds = %4004
  br label %4011

4011:                                             ; preds = %4010
  br label %4012

4012:                                             ; preds = %4011
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #12
  %4013 = call ptr @__errno_location() #13
  %4014 = load i32, ptr %4013, align 4, !tbaa !5
  store i32 %4014, ptr %92, align 4, !tbaa !5
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = call i32 @s2n_print_stacktrace(ptr noundef %4015)
  %4017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4018 = trunc i8 %4017 to i1
  br i1 %4018, label %4019, label %4041

4019:                                             ; preds = %4012
  %4020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4021 = call i32 @fileno(ptr noundef %4020) #12
  %4022 = call i32 @isatty(i32 noundef %4021) #12
  %4023 = icmp ne i32 %4022, 0
  br i1 %4023, label %4024, label %4041

4024:                                             ; preds = %4019
  %4025 = load i32, ptr %92, align 4, !tbaa !5
  %4026 = call ptr @__errno_location() #13
  store i32 %4025, ptr %4026, align 4, !tbaa !5
  %4027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4028 = load i32, ptr @test_count, align 4, !tbaa !5
  %4029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call ptr @s2n_strerror(i32 noundef %4030, ptr noundef @.str.4)
  %4032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call ptr @s2n_strerror_debug(i32 noundef %4033, ptr noundef @.str.4)
  %4035 = call ptr @__errno_location() #13
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  %4037 = call ptr @strerror(i32 noundef %4036) #12
  %4038 = call ptr @__errno_location() #13
  %4039 = load i32, ptr %4038, align 4, !tbaa !5
  %4040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4027, ptr noundef @.str.2, i32 noundef %4028, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 310, ptr noundef %4031, ptr noundef %4034, ptr noundef %4037, i32 noundef %4039) #12
  br label %4058

4041:                                             ; preds = %4019, %4012
  %4042 = load i32, ptr %92, align 4, !tbaa !5
  %4043 = call ptr @__errno_location() #13
  store i32 %4042, ptr %4043, align 4, !tbaa !5
  %4044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4045 = load i32, ptr @test_count, align 4, !tbaa !5
  %4046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call ptr @s2n_strerror(i32 noundef %4047, ptr noundef @.str.4)
  %4049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror_debug(i32 noundef %4050, ptr noundef @.str.4)
  %4052 = call ptr @__errno_location() #13
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call ptr @strerror(i32 noundef %4053) #12
  %4055 = call ptr @__errno_location() #13
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4044, ptr noundef @.str.5, i32 noundef %4045, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 310, ptr noundef %4048, ptr noundef %4051, ptr noundef %4054, i32 noundef %4056) #12
  br label %4058

4058:                                             ; preds = %4041, %4024
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #12
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

4060:                                             ; preds = %4059
  call void @exit(i32 noundef 1) #14
  unreachable

4061:                                             ; No predecessors!
  br label %4062

4062:                                             ; preds = %4061
  br label %4063

4063:                                             ; preds = %4062, %4004
  br label %4064

4064:                                             ; preds = %4063
  br label %4065

4065:                                             ; preds = %4064
  br label %4066

4066:                                             ; preds = %4065
  %4067 = load i32, ptr @test_count, align 4, !tbaa !5
  %4068 = add nsw i32 %4067, 1
  store i32 %4068, ptr @test_count, align 4, !tbaa !5
  %4069 = load ptr, ptr %47, align 8, !tbaa !9
  %4070 = call i32 @s2n_connection_wipe(ptr noundef %4069)
  %4071 = icmp eq i32 %4070, -1
  br i1 %4071, label %4072, label %4125

4072:                                             ; preds = %4066
  br label %4073

4073:                                             ; preds = %4072
  br label %4074

4074:                                             ; preds = %4073
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #12
  %4075 = call ptr @__errno_location() #13
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  store i32 %4076, ptr %93, align 4, !tbaa !5
  %4077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4078 = call i32 @s2n_print_stacktrace(ptr noundef %4077)
  %4079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4080 = trunc i8 %4079 to i1
  br i1 %4080, label %4081, label %4103

4081:                                             ; preds = %4074
  %4082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4083 = call i32 @fileno(ptr noundef %4082) #12
  %4084 = call i32 @isatty(i32 noundef %4083) #12
  %4085 = icmp ne i32 %4084, 0
  br i1 %4085, label %4086, label %4103

4086:                                             ; preds = %4081
  %4087 = load i32, ptr %93, align 4, !tbaa !5
  %4088 = call ptr @__errno_location() #13
  store i32 %4087, ptr %4088, align 4, !tbaa !5
  %4089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4090 = load i32, ptr @test_count, align 4, !tbaa !5
  %4091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4092 = load i32, ptr %4091, align 4, !tbaa !5
  %4093 = call ptr @s2n_strerror(i32 noundef %4092, ptr noundef @.str.4)
  %4094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4095 = load i32, ptr %4094, align 4, !tbaa !5
  %4096 = call ptr @s2n_strerror_debug(i32 noundef %4095, ptr noundef @.str.4)
  %4097 = call ptr @__errno_location() #13
  %4098 = load i32, ptr %4097, align 4, !tbaa !5
  %4099 = call ptr @strerror(i32 noundef %4098) #12
  %4100 = call ptr @__errno_location() #13
  %4101 = load i32, ptr %4100, align 4, !tbaa !5
  %4102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4089, ptr noundef @.str.2, i32 noundef %4090, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 311, ptr noundef %4093, ptr noundef %4096, ptr noundef %4099, i32 noundef %4101) #12
  br label %4120

4103:                                             ; preds = %4081, %4074
  %4104 = load i32, ptr %93, align 4, !tbaa !5
  %4105 = call ptr @__errno_location() #13
  store i32 %4104, ptr %4105, align 4, !tbaa !5
  %4106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4107 = load i32, ptr @test_count, align 4, !tbaa !5
  %4108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4109 = load i32, ptr %4108, align 4, !tbaa !5
  %4110 = call ptr @s2n_strerror(i32 noundef %4109, ptr noundef @.str.4)
  %4111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4112 = load i32, ptr %4111, align 4, !tbaa !5
  %4113 = call ptr @s2n_strerror_debug(i32 noundef %4112, ptr noundef @.str.4)
  %4114 = call ptr @__errno_location() #13
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  %4116 = call ptr @strerror(i32 noundef %4115) #12
  %4117 = call ptr @__errno_location() #13
  %4118 = load i32, ptr %4117, align 4, !tbaa !5
  %4119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4106, ptr noundef @.str.5, i32 noundef %4107, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 311, ptr noundef %4110, ptr noundef %4113, ptr noundef %4116, i32 noundef %4118) #12
  br label %4120

4120:                                             ; preds = %4103, %4086
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #12
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121
  call void @exit(i32 noundef 1) #14
  unreachable

4123:                                             ; No predecessors!
  br label %4124

4124:                                             ; preds = %4123
  br label %4125

4125:                                             ; preds = %4124, %4066
  br label %4126

4126:                                             ; preds = %4125
  br label %4127

4127:                                             ; preds = %4126
  %4128 = load ptr, ptr %47, align 8, !tbaa !9
  %4129 = getelementptr inbounds %struct.s2n_connection, ptr %4128, i32 0, i32 23
  store i8 32, ptr %4129, align 4, !tbaa !42
  br label %4130

4130:                                             ; preds = %4127
  br label %4131

4131:                                             ; preds = %4130
  %4132 = load i32, ptr @test_count, align 4, !tbaa !5
  %4133 = add nsw i32 %4132, 1
  store i32 %4133, ptr @test_count, align 4, !tbaa !5
  %4134 = load ptr, ptr %47, align 8, !tbaa !9
  %4135 = getelementptr inbounds [48 x i8], ptr %70, i64 0, i64 0
  %4136 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %4134, ptr noundef %4135, i16 noundef zeroext 24)
  %4137 = icmp eq i32 %4136, -1
  br i1 %4137, label %4191, label %4138

4138:                                             ; preds = %4131
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #12
  %4141 = call ptr @__errno_location() #13
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  store i32 %4142, ptr %94, align 4, !tbaa !5
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = call i32 @s2n_print_stacktrace(ptr noundef %4143)
  %4145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4146 = trunc i8 %4145 to i1
  br i1 %4146, label %4147, label %4169

4147:                                             ; preds = %4140
  %4148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4149 = call i32 @fileno(ptr noundef %4148) #12
  %4150 = call i32 @isatty(i32 noundef %4149) #12
  %4151 = icmp ne i32 %4150, 0
  br i1 %4151, label %4152, label %4169

4152:                                             ; preds = %4147
  %4153 = load i32, ptr %94, align 4, !tbaa !5
  %4154 = call ptr @__errno_location() #13
  store i32 %4153, ptr %4154, align 4, !tbaa !5
  %4155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4156 = load i32, ptr @test_count, align 4, !tbaa !5
  %4157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4158 = load i32, ptr %4157, align 4, !tbaa !5
  %4159 = call ptr @s2n_strerror(i32 noundef %4158, ptr noundef @.str.4)
  %4160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4161 = load i32, ptr %4160, align 4, !tbaa !5
  %4162 = call ptr @s2n_strerror_debug(i32 noundef %4161, ptr noundef @.str.4)
  %4163 = call ptr @__errno_location() #13
  %4164 = load i32, ptr %4163, align 4, !tbaa !5
  %4165 = call ptr @strerror(i32 noundef %4164) #12
  %4166 = call ptr @__errno_location() #13
  %4167 = load i32, ptr %4166, align 4, !tbaa !5
  %4168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4155, ptr noundef @.str.2, i32 noundef %4156, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 315, ptr noundef %4159, ptr noundef %4162, ptr noundef %4165, i32 noundef %4167) #12
  br label %4186

4169:                                             ; preds = %4147, %4140
  %4170 = load i32, ptr %94, align 4, !tbaa !5
  %4171 = call ptr @__errno_location() #13
  store i32 %4170, ptr %4171, align 4, !tbaa !5
  %4172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4173 = load i32, ptr @test_count, align 4, !tbaa !5
  %4174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4175 = load i32, ptr %4174, align 4, !tbaa !5
  %4176 = call ptr @s2n_strerror(i32 noundef %4175, ptr noundef @.str.4)
  %4177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4178 = load i32, ptr %4177, align 4, !tbaa !5
  %4179 = call ptr @s2n_strerror_debug(i32 noundef %4178, ptr noundef @.str.4)
  %4180 = call ptr @__errno_location() #13
  %4181 = load i32, ptr %4180, align 4, !tbaa !5
  %4182 = call ptr @strerror(i32 noundef %4181) #12
  %4183 = call ptr @__errno_location() #13
  %4184 = load i32, ptr %4183, align 4, !tbaa !5
  %4185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4172, ptr noundef @.str.5, i32 noundef %4173, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 315, ptr noundef %4176, ptr noundef %4179, ptr noundef %4182, i32 noundef %4184) #12
  br label %4186

4186:                                             ; preds = %4169, %4152
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #12
  br label %4187

4187:                                             ; preds = %4186
  br label %4188

4188:                                             ; preds = %4187
  call void @exit(i32 noundef 1) #14
  unreachable

4189:                                             ; No predecessors!
  br label %4190

4190:                                             ; preds = %4189
  br label %4191

4191:                                             ; preds = %4190, %4131
  br label %4192

4192:                                             ; preds = %4191
  br label %4193

4193:                                             ; preds = %4192
  br label %4194

4194:                                             ; preds = %4193
  %4195 = load i32, ptr @test_count, align 4, !tbaa !5
  %4196 = add nsw i32 %4195, 1
  store i32 %4196, ptr @test_count, align 4, !tbaa !5
  %4197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4198 = load i32, ptr %4197, align 4, !tbaa !5
  %4199 = icmp eq i32 %4198, 0
  br i1 %4199, label %4200, label %4253

4200:                                             ; preds = %4194
  br label %4201

4201:                                             ; preds = %4200
  br label %4202

4202:                                             ; preds = %4201
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #12
  %4203 = call ptr @__errno_location() #13
  %4204 = load i32, ptr %4203, align 4, !tbaa !5
  store i32 %4204, ptr %95, align 4, !tbaa !5
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4206 = call i32 @s2n_print_stacktrace(ptr noundef %4205)
  %4207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4208 = trunc i8 %4207 to i1
  br i1 %4208, label %4209, label %4231

4209:                                             ; preds = %4202
  %4210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4211 = call i32 @fileno(ptr noundef %4210) #12
  %4212 = call i32 @isatty(i32 noundef %4211) #12
  %4213 = icmp ne i32 %4212, 0
  br i1 %4213, label %4214, label %4231

4214:                                             ; preds = %4209
  %4215 = load i32, ptr %95, align 4, !tbaa !5
  %4216 = call ptr @__errno_location() #13
  store i32 %4215, ptr %4216, align 4, !tbaa !5
  %4217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4218 = load i32, ptr @test_count, align 4, !tbaa !5
  %4219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4220 = load i32, ptr %4219, align 4, !tbaa !5
  %4221 = call ptr @s2n_strerror(i32 noundef %4220, ptr noundef @.str.4)
  %4222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4223 = load i32, ptr %4222, align 4, !tbaa !5
  %4224 = call ptr @s2n_strerror_debug(i32 noundef %4223, ptr noundef @.str.4)
  %4225 = call ptr @__errno_location() #13
  %4226 = load i32, ptr %4225, align 4, !tbaa !5
  %4227 = call ptr @strerror(i32 noundef %4226) #12
  %4228 = call ptr @__errno_location() #13
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4217, ptr noundef @.str.2, i32 noundef %4218, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 315, ptr noundef %4221, ptr noundef %4224, ptr noundef %4227, i32 noundef %4229) #12
  br label %4248

4231:                                             ; preds = %4209, %4202
  %4232 = load i32, ptr %95, align 4, !tbaa !5
  %4233 = call ptr @__errno_location() #13
  store i32 %4232, ptr %4233, align 4, !tbaa !5
  %4234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4235 = load i32, ptr @test_count, align 4, !tbaa !5
  %4236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4237 = load i32, ptr %4236, align 4, !tbaa !5
  %4238 = call ptr @s2n_strerror(i32 noundef %4237, ptr noundef @.str.4)
  %4239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4240 = load i32, ptr %4239, align 4, !tbaa !5
  %4241 = call ptr @s2n_strerror_debug(i32 noundef %4240, ptr noundef @.str.4)
  %4242 = call ptr @__errno_location() #13
  %4243 = load i32, ptr %4242, align 4, !tbaa !5
  %4244 = call ptr @strerror(i32 noundef %4243) #12
  %4245 = call ptr @__errno_location() #13
  %4246 = load i32, ptr %4245, align 4, !tbaa !5
  %4247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4234, ptr noundef @.str.5, i32 noundef %4235, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 315, ptr noundef %4238, ptr noundef %4241, ptr noundef %4244, i32 noundef %4246) #12
  br label %4248

4248:                                             ; preds = %4231, %4214
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #12
  br label %4249

4249:                                             ; preds = %4248
  br label %4250

4250:                                             ; preds = %4249
  call void @exit(i32 noundef 1) #14
  unreachable

4251:                                             ; No predecessors!
  br label %4252

4252:                                             ; preds = %4251
  br label %4253

4253:                                             ; preds = %4252, %4194
  br label %4254

4254:                                             ; preds = %4253
  br label %4255

4255:                                             ; preds = %4254
  br label %4256

4256:                                             ; preds = %4255
  %4257 = load i32, ptr @test_count, align 4, !tbaa !5
  %4258 = add nsw i32 %4257, 1
  store i32 %4258, ptr @test_count, align 4, !tbaa !5
  %4259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4260 = load i32, ptr %4259, align 4, !tbaa !5
  %4261 = call ptr @s2n_strerror_debug(i32 noundef %4260, ptr noundef @.str.4)
  %4262 = icmp eq ptr %4261, null
  br i1 %4262, label %4263, label %4316

4263:                                             ; preds = %4256
  br label %4264

4264:                                             ; preds = %4263
  br label %4265

4265:                                             ; preds = %4264
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #12
  %4266 = call ptr @__errno_location() #13
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  store i32 %4267, ptr %96, align 4, !tbaa !5
  %4268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4269 = call i32 @s2n_print_stacktrace(ptr noundef %4268)
  %4270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4271 = trunc i8 %4270 to i1
  br i1 %4271, label %4272, label %4294

4272:                                             ; preds = %4265
  %4273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4274 = call i32 @fileno(ptr noundef %4273) #12
  %4275 = call i32 @isatty(i32 noundef %4274) #12
  %4276 = icmp ne i32 %4275, 0
  br i1 %4276, label %4277, label %4294

4277:                                             ; preds = %4272
  %4278 = load i32, ptr %96, align 4, !tbaa !5
  %4279 = call ptr @__errno_location() #13
  store i32 %4278, ptr %4279, align 4, !tbaa !5
  %4280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4281 = load i32, ptr @test_count, align 4, !tbaa !5
  %4282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4283 = load i32, ptr %4282, align 4, !tbaa !5
  %4284 = call ptr @s2n_strerror(i32 noundef %4283, ptr noundef @.str.4)
  %4285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4286 = load i32, ptr %4285, align 4, !tbaa !5
  %4287 = call ptr @s2n_strerror_debug(i32 noundef %4286, ptr noundef @.str.4)
  %4288 = call ptr @__errno_location() #13
  %4289 = load i32, ptr %4288, align 4, !tbaa !5
  %4290 = call ptr @strerror(i32 noundef %4289) #12
  %4291 = call ptr @__errno_location() #13
  %4292 = load i32, ptr %4291, align 4, !tbaa !5
  %4293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4280, ptr noundef @.str.2, i32 noundef %4281, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 315, ptr noundef %4284, ptr noundef %4287, ptr noundef %4290, i32 noundef %4292) #12
  br label %4311

4294:                                             ; preds = %4272, %4265
  %4295 = load i32, ptr %96, align 4, !tbaa !5
  %4296 = call ptr @__errno_location() #13
  store i32 %4295, ptr %4296, align 4, !tbaa !5
  %4297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4298 = load i32, ptr @test_count, align 4, !tbaa !5
  %4299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4300 = load i32, ptr %4299, align 4, !tbaa !5
  %4301 = call ptr @s2n_strerror(i32 noundef %4300, ptr noundef @.str.4)
  %4302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4303 = load i32, ptr %4302, align 4, !tbaa !5
  %4304 = call ptr @s2n_strerror_debug(i32 noundef %4303, ptr noundef @.str.4)
  %4305 = call ptr @__errno_location() #13
  %4306 = load i32, ptr %4305, align 4, !tbaa !5
  %4307 = call ptr @strerror(i32 noundef %4306) #12
  %4308 = call ptr @__errno_location() #13
  %4309 = load i32, ptr %4308, align 4, !tbaa !5
  %4310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4297, ptr noundef @.str.5, i32 noundef %4298, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 315, ptr noundef %4301, ptr noundef %4304, ptr noundef %4307, i32 noundef %4309) #12
  br label %4311

4311:                                             ; preds = %4294, %4277
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #12
  br label %4312

4312:                                             ; preds = %4311
  br label %4313

4313:                                             ; preds = %4312
  call void @exit(i32 noundef 1) #14
  unreachable

4314:                                             ; No predecessors!
  br label %4315

4315:                                             ; preds = %4314
  br label %4316

4316:                                             ; preds = %4315, %4256
  br label %4317

4317:                                             ; preds = %4316
  br label %4318

4318:                                             ; preds = %4317
  br label %4319

4319:                                             ; preds = %4318
  %4320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4320, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4321 = call ptr @__errno_location() #13
  store i32 0, ptr %4321, align 4, !tbaa !5
  br label %4322

4322:                                             ; preds = %4319
  br label %4323

4323:                                             ; preds = %4322
  br label %4324

4324:                                             ; preds = %4323
  br label %4325

4325:                                             ; preds = %4324
  br label %4326

4326:                                             ; preds = %4325
  %4327 = load i32, ptr @test_count, align 4, !tbaa !5
  %4328 = add nsw i32 %4327, 1
  store i32 %4328, ptr @test_count, align 4, !tbaa !5
  %4329 = load ptr, ptr %47, align 8, !tbaa !9
  %4330 = load i32, ptr %4329, align 8
  %4331 = lshr i32 %4330, 3
  %4332 = and i32 %4331, 1
  %4333 = icmp eq i32 %4332, 0
  br i1 %4333, label %4387, label %4334

4334:                                             ; preds = %4326
  br label %4335

4335:                                             ; preds = %4334
  br label %4336

4336:                                             ; preds = %4335
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #12
  %4337 = call ptr @__errno_location() #13
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  store i32 %4338, ptr %97, align 4, !tbaa !5
  %4339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4340 = call i32 @s2n_print_stacktrace(ptr noundef %4339)
  %4341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4342 = trunc i8 %4341 to i1
  br i1 %4342, label %4343, label %4365

4343:                                             ; preds = %4336
  %4344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4345 = call i32 @fileno(ptr noundef %4344) #12
  %4346 = call i32 @isatty(i32 noundef %4345) #12
  %4347 = icmp ne i32 %4346, 0
  br i1 %4347, label %4348, label %4365

4348:                                             ; preds = %4343
  %4349 = load i32, ptr %97, align 4, !tbaa !5
  %4350 = call ptr @__errno_location() #13
  store i32 %4349, ptr %4350, align 4, !tbaa !5
  %4351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4352 = load i32, ptr @test_count, align 4, !tbaa !5
  %4353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @s2n_strerror(i32 noundef %4354, ptr noundef @.str.4)
  %4356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call ptr @s2n_strerror_debug(i32 noundef %4357, ptr noundef @.str.4)
  %4359 = call ptr @__errno_location() #13
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call ptr @strerror(i32 noundef %4360) #12
  %4362 = call ptr @__errno_location() #13
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4351, ptr noundef @.str.2, i32 noundef %4352, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 316, ptr noundef %4355, ptr noundef %4358, ptr noundef %4361, i32 noundef %4363) #12
  br label %4382

4365:                                             ; preds = %4343, %4336
  %4366 = load i32, ptr %97, align 4, !tbaa !5
  %4367 = call ptr @__errno_location() #13
  store i32 %4366, ptr %4367, align 4, !tbaa !5
  %4368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4369 = load i32, ptr @test_count, align 4, !tbaa !5
  %4370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call ptr @s2n_strerror(i32 noundef %4371, ptr noundef @.str.4)
  %4373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call ptr @s2n_strerror_debug(i32 noundef %4374, ptr noundef @.str.4)
  %4376 = call ptr @__errno_location() #13
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call ptr @strerror(i32 noundef %4377) #12
  %4379 = call ptr @__errno_location() #13
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4368, ptr noundef @.str.5, i32 noundef %4369, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 316, ptr noundef %4372, ptr noundef %4375, ptr noundef %4378, i32 noundef %4380) #12
  br label %4382

4382:                                             ; preds = %4365, %4348
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #12
  br label %4383

4383:                                             ; preds = %4382
  br label %4384

4384:                                             ; preds = %4383
  call void @exit(i32 noundef 1) #14
  unreachable

4385:                                             ; No predecessors!
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

4387:                                             ; preds = %4386, %4326
  br label %4388

4388:                                             ; preds = %4387
  br label %4389

4389:                                             ; preds = %4388
  br label %4390

4390:                                             ; preds = %4389
  %4391 = load i32, ptr @test_count, align 4, !tbaa !5
  %4392 = add nsw i32 %4391, 1
  store i32 %4392, ptr @test_count, align 4, !tbaa !5
  %4393 = load ptr, ptr %47, align 8, !tbaa !9
  %4394 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef %4393, ptr noundef @.str.59)
  %4395 = icmp eq i32 1, %4394
  br i1 %4395, label %4449, label %4396

4396:                                             ; preds = %4390
  br label %4397

4397:                                             ; preds = %4396
  br label %4398

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

4405:                                             ; preds = %4398
  %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
  %4409 = icmp ne i32 %4408, 0
  br i1 %4409, label %4410, label %4427

4410:                                             ; preds = %4405
  %4411 = load i32, ptr %98, align 4, !tbaa !5
  %4412 = call ptr @__errno_location() #13
  store i32 %4411, ptr %4412, align 4, !tbaa !5
  %4413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4414 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4416, ptr noundef @.str.4)
  %4418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  %4420 = call ptr @s2n_strerror_debug(i32 noundef %4419, ptr noundef @.str.4)
  %4421 = call ptr @__errno_location() #13
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  %4423 = call ptr @strerror(i32 noundef %4422) #12
  %4424 = call ptr @__errno_location() #13
  %4425 = load i32, ptr %4424, align 4, !tbaa !5
  %4426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4413, ptr noundef @.str.2, i32 noundef %4414, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 317, ptr noundef %4417, ptr noundef %4420, ptr noundef %4423, i32 noundef %4425) #12
  br label %4444

4427:                                             ; preds = %4405, %4398
  %4428 = load i32, ptr %98, align 4, !tbaa !5
  %4429 = call ptr @__errno_location() #13
  store i32 %4428, ptr %4429, align 4, !tbaa !5
  %4430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4431 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4433, ptr noundef @.str.4)
  %4435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  %4437 = call ptr @s2n_strerror_debug(i32 noundef %4436, ptr noundef @.str.4)
  %4438 = call ptr @__errno_location() #13
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call ptr @strerror(i32 noundef %4439) #12
  %4441 = call ptr @__errno_location() #13
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4430, ptr noundef @.str.5, i32 noundef %4431, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 317, ptr noundef %4434, ptr noundef %4437, ptr noundef %4440, i32 noundef %4442) #12
  br label %4444

4444:                                             ; preds = %4427, %4410
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #12
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

4446:                                             ; preds = %4445
  call void @exit(i32 noundef 1) #14
  unreachable

4447:                                             ; No predecessors!
  br label %4448

4448:                                             ; preds = %4447
  br label %4449

4449:                                             ; preds = %4448, %4390
  br label %4450

4450:                                             ; preds = %4449
  br label %4451

4451:                                             ; preds = %4450
  br label %4452

4452:                                             ; preds = %4451
  %4453 = load i32, ptr @test_count, align 4, !tbaa !5
  %4454 = add nsw i32 %4453, 1
  store i32 %4454, ptr @test_count, align 4, !tbaa !5
  %4455 = load ptr, ptr %47, align 8, !tbaa !9
  %4456 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef %4455, ptr noundef @.str.68)
  %4457 = icmp eq i32 0, %4456
  br i1 %4457, label %4511, label %4458

4458:                                             ; preds = %4452
  br label %4459

4459:                                             ; preds = %4458
  br label %4460

4460:                                             ; preds = %4459
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #12
  %4461 = call ptr @__errno_location() #13
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  store i32 %4462, ptr %99, align 4, !tbaa !5
  %4463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4464 = call i32 @s2n_print_stacktrace(ptr noundef %4463)
  %4465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4466 = trunc i8 %4465 to i1
  br i1 %4466, label %4467, label %4489

4467:                                             ; preds = %4460
  %4468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4469 = call i32 @fileno(ptr noundef %4468) #12
  %4470 = call i32 @isatty(i32 noundef %4469) #12
  %4471 = icmp ne i32 %4470, 0
  br i1 %4471, label %4472, label %4489

4472:                                             ; preds = %4467
  %4473 = load i32, ptr %99, align 4, !tbaa !5
  %4474 = call ptr @__errno_location() #13
  store i32 %4473, ptr %4474, align 4, !tbaa !5
  %4475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4476 = load i32, ptr @test_count, align 4, !tbaa !5
  %4477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4478 = load i32, ptr %4477, align 4, !tbaa !5
  %4479 = call ptr @s2n_strerror(i32 noundef %4478, ptr noundef @.str.4)
  %4480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  %4482 = call ptr @s2n_strerror_debug(i32 noundef %4481, ptr noundef @.str.4)
  %4483 = call ptr @__errno_location() #13
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @strerror(i32 noundef %4484) #12
  %4486 = call ptr @__errno_location() #13
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4475, ptr noundef @.str.2, i32 noundef %4476, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 318, ptr noundef %4479, ptr noundef %4482, ptr noundef %4485, i32 noundef %4487) #12
  br label %4506

4489:                                             ; preds = %4467, %4460
  %4490 = load i32, ptr %99, align 4, !tbaa !5
  %4491 = call ptr @__errno_location() #13
  store i32 %4490, ptr %4491, align 4, !tbaa !5
  %4492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4493 = load i32, ptr @test_count, align 4, !tbaa !5
  %4494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4495 = load i32, ptr %4494, align 4, !tbaa !5
  %4496 = call ptr @s2n_strerror(i32 noundef %4495, ptr noundef @.str.4)
  %4497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror_debug(i32 noundef %4498, ptr noundef @.str.4)
  %4500 = call ptr @__errno_location() #13
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @strerror(i32 noundef %4501) #12
  %4503 = call ptr @__errno_location() #13
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4492, ptr noundef @.str.5, i32 noundef %4493, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 318, ptr noundef %4496, ptr noundef %4499, ptr noundef %4502, i32 noundef %4504) #12
  br label %4506

4506:                                             ; preds = %4489, %4472
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #12
  br label %4507

4507:                                             ; preds = %4506
  br label %4508

4508:                                             ; preds = %4507
  call void @exit(i32 noundef 1) #14
  unreachable

4509:                                             ; No predecessors!
  br label %4510

4510:                                             ; preds = %4509
  br label %4511

4511:                                             ; preds = %4510, %4452
  br label %4512

4512:                                             ; preds = %4511
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

4514:                                             ; preds = %4513
  %4515 = load i32, ptr @test_count, align 4, !tbaa !5
  %4516 = add nsw i32 %4515, 1
  store i32 %4516, ptr @test_count, align 4, !tbaa !5
  %4517 = load ptr, ptr %47, align 8, !tbaa !9
  %4518 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef %4517, ptr noundef @.str.70)
  %4519 = icmp eq i32 0, %4518
  br i1 %4519, label %4573, label %4520

4520:                                             ; preds = %4514
  br label %4521

4521:                                             ; preds = %4520
  br label %4522

4522:                                             ; preds = %4521
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #12
  %4523 = call ptr @__errno_location() #13
  %4524 = load i32, ptr %4523, align 4, !tbaa !5
  store i32 %4524, ptr %100, align 4, !tbaa !5
  %4525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4526 = call i32 @s2n_print_stacktrace(ptr noundef %4525)
  %4527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4528 = trunc i8 %4527 to i1
  br i1 %4528, label %4529, label %4551

4529:                                             ; preds = %4522
  %4530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4531 = call i32 @fileno(ptr noundef %4530) #12
  %4532 = call i32 @isatty(i32 noundef %4531) #12
  %4533 = icmp ne i32 %4532, 0
  br i1 %4533, label %4534, label %4551

4534:                                             ; preds = %4529
  %4535 = load i32, ptr %100, align 4, !tbaa !5
  %4536 = call ptr @__errno_location() #13
  store i32 %4535, ptr %4536, align 4, !tbaa !5
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = load i32, ptr @test_count, align 4, !tbaa !5
  %4539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4540 = load i32, ptr %4539, align 4, !tbaa !5
  %4541 = call ptr @s2n_strerror(i32 noundef %4540, ptr noundef @.str.4)
  %4542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4543 = load i32, ptr %4542, align 4, !tbaa !5
  %4544 = call ptr @s2n_strerror_debug(i32 noundef %4543, ptr noundef @.str.4)
  %4545 = call ptr @__errno_location() #13
  %4546 = load i32, ptr %4545, align 4, !tbaa !5
  %4547 = call ptr @strerror(i32 noundef %4546) #12
  %4548 = call ptr @__errno_location() #13
  %4549 = load i32, ptr %4548, align 4, !tbaa !5
  %4550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4537, ptr noundef @.str.2, i32 noundef %4538, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 319, ptr noundef %4541, ptr noundef %4544, ptr noundef %4547, i32 noundef %4549) #12
  br label %4568

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

4568:                                             ; preds = %4551, %4534
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #12
  br label %4569

4569:                                             ; preds = %4568
  br label %4570

4570:                                             ; preds = %4569
  call void @exit(i32 noundef 1) #14
  unreachable

4571:                                             ; No predecessors!
  br label %4572

4572:                                             ; preds = %4571
  br label %4573

4573:                                             ; preds = %4572, %4514
  br label %4574

4574:                                             ; preds = %4573
  br label %4575

4575:                                             ; preds = %4574
  br label %4576

4576:                                             ; preds = %4575
  %4577 = load i32, ptr @test_count, align 4, !tbaa !5
  %4578 = add nsw i32 %4577, 1
  store i32 %4578, ptr @test_count, align 4, !tbaa !5
  %4579 = load ptr, ptr %47, align 8, !tbaa !9
  %4580 = call i32 @s2n_connection_wipe(ptr noundef %4579)
  %4581 = icmp eq i32 %4580, -1
  br i1 %4581, label %4582, label %4635

4582:                                             ; preds = %4576
  br label %4583

4583:                                             ; preds = %4582
  br label %4584

4584:                                             ; preds = %4583
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #12
  %4585 = call ptr @__errno_location() #13
  %4586 = load i32, ptr %4585, align 4, !tbaa !5
  store i32 %4586, ptr %101, align 4, !tbaa !5
  %4587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4588 = call i32 @s2n_print_stacktrace(ptr noundef %4587)
  %4589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4590 = trunc i8 %4589 to i1
  br i1 %4590, label %4591, label %4613

4591:                                             ; preds = %4584
  %4592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4593 = call i32 @fileno(ptr noundef %4592) #12
  %4594 = call i32 @isatty(i32 noundef %4593) #12
  %4595 = icmp ne i32 %4594, 0
  br i1 %4595, label %4596, label %4613

4596:                                             ; preds = %4591
  %4597 = load i32, ptr %101, align 4, !tbaa !5
  %4598 = call ptr @__errno_location() #13
  store i32 %4597, ptr %4598, align 4, !tbaa !5
  %4599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4600 = load i32, ptr @test_count, align 4, !tbaa !5
  %4601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4602 = load i32, ptr %4601, align 4, !tbaa !5
  %4603 = call ptr @s2n_strerror(i32 noundef %4602, ptr noundef @.str.4)
  %4604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4605 = load i32, ptr %4604, align 4, !tbaa !5
  %4606 = call ptr @s2n_strerror_debug(i32 noundef %4605, ptr noundef @.str.4)
  %4607 = call ptr @__errno_location() #13
  %4608 = load i32, ptr %4607, align 4, !tbaa !5
  %4609 = call ptr @strerror(i32 noundef %4608) #12
  %4610 = call ptr @__errno_location() #13
  %4611 = load i32, ptr %4610, align 4, !tbaa !5
  %4612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4599, ptr noundef @.str.2, i32 noundef %4600, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 320, ptr noundef %4603, ptr noundef %4606, ptr noundef %4609, i32 noundef %4611) #12
  br label %4630

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

4630:                                             ; preds = %4613, %4596
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #12
  br label %4631

4631:                                             ; preds = %4630
  br label %4632

4632:                                             ; preds = %4631
  call void @exit(i32 noundef 1) #14
  unreachable

4633:                                             ; No predecessors!
  br label %4634

4634:                                             ; preds = %4633
  br label %4635

4635:                                             ; preds = %4634, %4576
  br label %4636

4636:                                             ; preds = %4635
  br label %4637

4637:                                             ; preds = %4636
  br label %4638

4638:                                             ; preds = %4637
  %4639 = load i32, ptr @test_count, align 4, !tbaa !5
  %4640 = add nsw i32 %4639, 1
  store i32 %4640, ptr @test_count, align 4, !tbaa !5
  %4641 = load ptr, ptr %47, align 8, !tbaa !9
  %4642 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4641, ptr noundef @.str.72)
  %4643 = icmp eq i32 %4642, -1
  br i1 %4643, label %4644, label %4697

4644:                                             ; preds = %4638
  br label %4645

4645:                                             ; preds = %4644
  br label %4646

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

4653:                                             ; preds = %4646
  %4654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4655 = call i32 @fileno(ptr noundef %4654) #12
  %4656 = call i32 @isatty(i32 noundef %4655) #12
  %4657 = icmp ne i32 %4656, 0
  br i1 %4657, label %4658, label %4675

4658:                                             ; preds = %4653
  %4659 = load i32, ptr %102, align 4, !tbaa !5
  %4660 = call ptr @__errno_location() #13
  store i32 %4659, ptr %4660, align 4, !tbaa !5
  %4661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4662 = load i32, ptr @test_count, align 4, !tbaa !5
  %4663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4664 = load i32, ptr %4663, align 4, !tbaa !5
  %4665 = call ptr @s2n_strerror(i32 noundef %4664, ptr noundef @.str.4)
  %4666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4667 = load i32, ptr %4666, align 4, !tbaa !5
  %4668 = call ptr @s2n_strerror_debug(i32 noundef %4667, ptr noundef @.str.4)
  %4669 = call ptr @__errno_location() #13
  %4670 = load i32, ptr %4669, align 4, !tbaa !5
  %4671 = call ptr @strerror(i32 noundef %4670) #12
  %4672 = call ptr @__errno_location() #13
  %4673 = load i32, ptr %4672, align 4, !tbaa !5
  %4674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4661, ptr noundef @.str.2, i32 noundef %4662, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 323, ptr noundef %4665, ptr noundef %4668, ptr noundef %4671, i32 noundef %4673) #12
  br label %4692

4675:                                             ; preds = %4653, %4646
  %4676 = load i32, ptr %102, align 4, !tbaa !5
  %4677 = call ptr @__errno_location() #13
  store i32 %4676, ptr %4677, align 4, !tbaa !5
  %4678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4679 = load i32, ptr @test_count, align 4, !tbaa !5
  %4680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4681 = load i32, ptr %4680, align 4, !tbaa !5
  %4682 = call ptr @s2n_strerror(i32 noundef %4681, ptr noundef @.str.4)
  %4683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4684 = load i32, ptr %4683, align 4, !tbaa !5
  %4685 = call ptr @s2n_strerror_debug(i32 noundef %4684, ptr noundef @.str.4)
  %4686 = call ptr @__errno_location() #13
  %4687 = load i32, ptr %4686, align 4, !tbaa !5
  %4688 = call ptr @strerror(i32 noundef %4687) #12
  %4689 = call ptr @__errno_location() #13
  %4690 = load i32, ptr %4689, align 4, !tbaa !5
  %4691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4678, ptr noundef @.str.5, i32 noundef %4679, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 323, ptr noundef %4682, ptr noundef %4685, ptr noundef %4688, i32 noundef %4690) #12
  br label %4692

4692:                                             ; preds = %4675, %4658
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #12
  br label %4693

4693:                                             ; preds = %4692
  br label %4694

4694:                                             ; preds = %4693
  call void @exit(i32 noundef 1) #14
  unreachable

4695:                                             ; No predecessors!
  br label %4696

4696:                                             ; preds = %4695
  br label %4697

4697:                                             ; preds = %4696, %4638
  br label %4698

4698:                                             ; preds = %4697
  br label %4699

4699:                                             ; preds = %4698
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #12
  store ptr null, ptr %103, align 8, !tbaa !9
  br label %4700

4700:                                             ; preds = %4699
  %4701 = load i32, ptr @test_count, align 4, !tbaa !5
  %4702 = add nsw i32 %4701, 1
  store i32 %4702, ptr @test_count, align 4, !tbaa !5
  %4703 = load ptr, ptr %47, align 8, !tbaa !9
  %4704 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %4703, ptr noundef %103)
  %4705 = icmp eq i32 %4704, -1
  br i1 %4705, label %4706, label %4759

4706:                                             ; preds = %4700
  br label %4707

4707:                                             ; preds = %4706
  br label %4708

4708:                                             ; preds = %4707
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #12
  %4709 = call ptr @__errno_location() #13
  %4710 = load i32, ptr %4709, align 4, !tbaa !5
  store i32 %4710, ptr %104, align 4, !tbaa !5
  %4711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4712 = call i32 @s2n_print_stacktrace(ptr noundef %4711)
  %4713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4714 = trunc i8 %4713 to i1
  br i1 %4714, label %4715, label %4737

4715:                                             ; preds = %4708
  %4716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4717 = call i32 @fileno(ptr noundef %4716) #12
  %4718 = call i32 @isatty(i32 noundef %4717) #12
  %4719 = icmp ne i32 %4718, 0
  br i1 %4719, label %4720, label %4737

4720:                                             ; preds = %4715
  %4721 = load i32, ptr %104, align 4, !tbaa !5
  %4722 = call ptr @__errno_location() #13
  store i32 %4721, ptr %4722, align 4, !tbaa !5
  %4723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4724 = load i32, ptr @test_count, align 4, !tbaa !5
  %4725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4726 = load i32, ptr %4725, align 4, !tbaa !5
  %4727 = call ptr @s2n_strerror(i32 noundef %4726, ptr noundef @.str.4)
  %4728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4729 = load i32, ptr %4728, align 4, !tbaa !5
  %4730 = call ptr @s2n_strerror_debug(i32 noundef %4729, ptr noundef @.str.4)
  %4731 = call ptr @__errno_location() #13
  %4732 = load i32, ptr %4731, align 4, !tbaa !5
  %4733 = call ptr @strerror(i32 noundef %4732) #12
  %4734 = call ptr @__errno_location() #13
  %4735 = load i32, ptr %4734, align 4, !tbaa !5
  %4736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4723, ptr noundef @.str.2, i32 noundef %4724, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 326, ptr noundef %4727, ptr noundef %4730, ptr noundef %4733, i32 noundef %4735) #12
  br label %4754

4737:                                             ; preds = %4715, %4708
  %4738 = load i32, ptr %104, align 4, !tbaa !5
  %4739 = call ptr @__errno_location() #13
  store i32 %4738, ptr %4739, align 4, !tbaa !5
  %4740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4741 = load i32, ptr @test_count, align 4, !tbaa !5
  %4742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4743 = load i32, ptr %4742, align 4, !tbaa !5
  %4744 = call ptr @s2n_strerror(i32 noundef %4743, ptr noundef @.str.4)
  %4745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4746 = load i32, ptr %4745, align 4, !tbaa !5
  %4747 = call ptr @s2n_strerror_debug(i32 noundef %4746, ptr noundef @.str.4)
  %4748 = call ptr @__errno_location() #13
  %4749 = load i32, ptr %4748, align 4, !tbaa !5
  %4750 = call ptr @strerror(i32 noundef %4749) #12
  %4751 = call ptr @__errno_location() #13
  %4752 = load i32, ptr %4751, align 4, !tbaa !5
  %4753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4740, ptr noundef @.str.5, i32 noundef %4741, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 326, ptr noundef %4744, ptr noundef %4747, ptr noundef %4750, i32 noundef %4752) #12
  br label %4754

4754:                                             ; preds = %4737, %4720
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #12
  br label %4755

4755:                                             ; preds = %4754
  br label %4756

4756:                                             ; preds = %4755
  call void @exit(i32 noundef 1) #14
  unreachable

4757:                                             ; No predecessors!
  br label %4758

4758:                                             ; preds = %4757
  br label %4759

4759:                                             ; preds = %4758, %4700
  br label %4760

4760:                                             ; preds = %4759
  br label %4761

4761:                                             ; preds = %4760
  br label %4762

4762:                                             ; preds = %4761
  %4763 = load i32, ptr @test_count, align 4, !tbaa !5
  %4764 = add nsw i32 %4763, 1
  store i32 %4764, ptr @test_count, align 4, !tbaa !5
  %4765 = load ptr, ptr %103, align 8, !tbaa !9
  %4766 = icmp eq ptr %4765, null
  br i1 %4766, label %4767, label %4820

4767:                                             ; preds = %4762
  br label %4768

4768:                                             ; preds = %4767
  br label %4769

4769:                                             ; preds = %4768
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #12
  %4770 = call ptr @__errno_location() #13
  %4771 = load i32, ptr %4770, align 4, !tbaa !5
  store i32 %4771, ptr %105, align 4, !tbaa !5
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = call i32 @s2n_print_stacktrace(ptr noundef %4772)
  %4774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4775 = trunc i8 %4774 to i1
  br i1 %4775, label %4776, label %4798

4776:                                             ; preds = %4769
  %4777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4778 = call i32 @fileno(ptr noundef %4777) #12
  %4779 = call i32 @isatty(i32 noundef %4778) #12
  %4780 = icmp ne i32 %4779, 0
  br i1 %4780, label %4781, label %4798

4781:                                             ; preds = %4776
  %4782 = load i32, ptr %105, align 4, !tbaa !5
  %4783 = call ptr @__errno_location() #13
  store i32 %4782, ptr %4783, align 4, !tbaa !5
  %4784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4785 = load i32, ptr @test_count, align 4, !tbaa !5
  %4786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call ptr @s2n_strerror(i32 noundef %4787, ptr noundef @.str.4)
  %4789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4790 = load i32, ptr %4789, align 4, !tbaa !5
  %4791 = call ptr @s2n_strerror_debug(i32 noundef %4790, ptr noundef @.str.4)
  %4792 = call ptr @__errno_location() #13
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = call ptr @strerror(i32 noundef %4793) #12
  %4795 = call ptr @__errno_location() #13
  %4796 = load i32, ptr %4795, align 4, !tbaa !5
  %4797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4784, ptr noundef @.str.2, i32 noundef %4785, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 327, ptr noundef %4788, ptr noundef %4791, ptr noundef %4794, i32 noundef %4796) #12
  br label %4815

4798:                                             ; preds = %4776, %4769
  %4799 = load i32, ptr %105, align 4, !tbaa !5
  %4800 = call ptr @__errno_location() #13
  store i32 %4799, ptr %4800, align 4, !tbaa !5
  %4801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4802 = load i32, ptr @test_count, align 4, !tbaa !5
  %4803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4804 = load i32, ptr %4803, align 4, !tbaa !5
  %4805 = call ptr @s2n_strerror(i32 noundef %4804, ptr noundef @.str.4)
  %4806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4807 = load i32, ptr %4806, align 4, !tbaa !5
  %4808 = call ptr @s2n_strerror_debug(i32 noundef %4807, ptr noundef @.str.4)
  %4809 = call ptr @__errno_location() #13
  %4810 = load i32, ptr %4809, align 4, !tbaa !5
  %4811 = call ptr @strerror(i32 noundef %4810) #12
  %4812 = call ptr @__errno_location() #13
  %4813 = load i32, ptr %4812, align 4, !tbaa !5
  %4814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4801, ptr noundef @.str.5, i32 noundef %4802, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 327, ptr noundef %4805, ptr noundef %4808, ptr noundef %4811, i32 noundef %4813) #12
  br label %4815

4815:                                             ; preds = %4798, %4781
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #12
  br label %4816

4816:                                             ; preds = %4815
  br label %4817

4817:                                             ; preds = %4816
  call void @exit(i32 noundef 1) #14
  unreachable

4818:                                             ; No predecessors!
  br label %4819

4819:                                             ; preds = %4818
  br label %4820

4820:                                             ; preds = %4819, %4762
  br label %4821

4821:                                             ; preds = %4820
  br label %4822

4822:                                             ; preds = %4821
  %4823 = load ptr, ptr %103, align 8, !tbaa !9
  %4824 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %4823, i32 0, i32 1
  %4825 = load ptr, ptr %4824, align 8, !tbaa !55
  %4826 = getelementptr inbounds ptr, ptr %4825, i64 0
  %4827 = load ptr, ptr %4826, align 8, !tbaa !9
  %4828 = load ptr, ptr %47, align 8, !tbaa !9
  %4829 = getelementptr inbounds %struct.s2n_connection, ptr %4828, i32 0, i32 31
  %4830 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4829, i32 0, i32 1
  %4831 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4830, i32 0, i32 0
  store ptr %4827, ptr %4831, align 8, !tbaa !57
  %4832 = load ptr, ptr %47, align 8, !tbaa !9
  %4833 = getelementptr inbounds %struct.s2n_connection, ptr %4832, i32 0, i32 22
  %4834 = load i8, ptr %4833, align 1, !tbaa !43
  %4835 = load ptr, ptr %47, align 8, !tbaa !9
  %4836 = getelementptr inbounds %struct.s2n_connection, ptr %4835, i32 0, i32 23
  store i8 %4834, ptr %4836, align 4, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #12
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %106, align 8, !tbaa !9
  br label %4837

4837:                                             ; preds = %4822
  %4838 = load i32, ptr @test_count, align 4, !tbaa !5
  %4839 = add nsw i32 %4838, 1
  store i32 %4839, ptr @test_count, align 4, !tbaa !5
  %4840 = load ptr, ptr %47, align 8, !tbaa !9
  %4841 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %4842 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %4840, ptr noundef %4841, i16 noundef zeroext 2)
  %4843 = icmp eq i32 %4842, -1
  br i1 %4843, label %4844, label %4897

4844:                                             ; preds = %4837
  br label %4845

4845:                                             ; preds = %4844
  br label %4846

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

4853:                                             ; preds = %4846
  %4854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4855 = call i32 @fileno(ptr noundef %4854) #12
  %4856 = call i32 @isatty(i32 noundef %4855) #12
  %4857 = icmp ne i32 %4856, 0
  br i1 %4857, label %4858, label %4875

4858:                                             ; preds = %4853
  %4859 = load i32, ptr %107, align 4, !tbaa !5
  %4860 = call ptr @__errno_location() #13
  store i32 %4859, ptr %4860, align 4, !tbaa !5
  %4861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4862 = load i32, ptr @test_count, align 4, !tbaa !5
  %4863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4864 = load i32, ptr %4863, align 4, !tbaa !5
  %4865 = call ptr @s2n_strerror(i32 noundef %4864, ptr noundef @.str.4)
  %4866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4867 = load i32, ptr %4866, align 4, !tbaa !5
  %4868 = call ptr @s2n_strerror_debug(i32 noundef %4867, ptr noundef @.str.4)
  %4869 = call ptr @__errno_location() #13
  %4870 = load i32, ptr %4869, align 4, !tbaa !5
  %4871 = call ptr @strerror(i32 noundef %4870) #12
  %4872 = call ptr @__errno_location() #13
  %4873 = load i32, ptr %4872, align 4, !tbaa !5
  %4874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4861, ptr noundef @.str.2, i32 noundef %4862, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 334, ptr noundef %4865, ptr noundef %4868, ptr noundef %4871, i32 noundef %4873) #12
  br label %4892

4875:                                             ; preds = %4853, %4846
  %4876 = load i32, ptr %107, align 4, !tbaa !5
  %4877 = call ptr @__errno_location() #13
  store i32 %4876, ptr %4877, align 4, !tbaa !5
  %4878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4879 = load i32, ptr @test_count, align 4, !tbaa !5
  %4880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4881 = load i32, ptr %4880, align 4, !tbaa !5
  %4882 = call ptr @s2n_strerror(i32 noundef %4881, ptr noundef @.str.4)
  %4883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4884 = load i32, ptr %4883, align 4, !tbaa !5
  %4885 = call ptr @s2n_strerror_debug(i32 noundef %4884, ptr noundef @.str.4)
  %4886 = call ptr @__errno_location() #13
  %4887 = load i32, ptr %4886, align 4, !tbaa !5
  %4888 = call ptr @strerror(i32 noundef %4887) #12
  %4889 = call ptr @__errno_location() #13
  %4890 = load i32, ptr %4889, align 4, !tbaa !5
  %4891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4878, ptr noundef @.str.5, i32 noundef %4879, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 334, ptr noundef %4882, ptr noundef %4885, ptr noundef %4888, i32 noundef %4890) #12
  br label %4892

4892:                                             ; preds = %4875, %4858
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #12
  br label %4893

4893:                                             ; preds = %4892
  br label %4894

4894:                                             ; preds = %4893
  call void @exit(i32 noundef 1) #14
  unreachable

4895:                                             ; No predecessors!
  br label %4896

4896:                                             ; preds = %4895
  br label %4897

4897:                                             ; preds = %4896, %4837
  br label %4898

4898:                                             ; preds = %4897
  br label %4899

4899:                                             ; preds = %4898
  br label %4900

4900:                                             ; preds = %4899
  %4901 = load i32, ptr @test_count, align 4, !tbaa !5
  %4902 = add nsw i32 %4901, 1
  store i32 %4902, ptr @test_count, align 4, !tbaa !5
  %4903 = load ptr, ptr %47, align 8, !tbaa !9
  %4904 = load i32, ptr %4903, align 8
  %4905 = lshr i32 %4904, 3
  %4906 = and i32 %4905, 1
  %4907 = icmp eq i32 %4906, 0
  br i1 %4907, label %4961, label %4908

4908:                                             ; preds = %4900
  br label %4909

4909:                                             ; preds = %4908
  br label %4910

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

4917:                                             ; preds = %4910
  %4918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4919 = call i32 @fileno(ptr noundef %4918) #12
  %4920 = call i32 @isatty(i32 noundef %4919) #12
  %4921 = icmp ne i32 %4920, 0
  br i1 %4921, label %4922, label %4939

4922:                                             ; preds = %4917
  %4923 = load i32, ptr %108, align 4, !tbaa !5
  %4924 = call ptr @__errno_location() #13
  store i32 %4923, ptr %4924, align 4, !tbaa !5
  %4925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4926 = load i32, ptr @test_count, align 4, !tbaa !5
  %4927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4928 = load i32, ptr %4927, align 4, !tbaa !5
  %4929 = call ptr @s2n_strerror(i32 noundef %4928, ptr noundef @.str.4)
  %4930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4931 = load i32, ptr %4930, align 4, !tbaa !5
  %4932 = call ptr @s2n_strerror_debug(i32 noundef %4931, ptr noundef @.str.4)
  %4933 = call ptr @__errno_location() #13
  %4934 = load i32, ptr %4933, align 4, !tbaa !5
  %4935 = call ptr @strerror(i32 noundef %4934) #12
  %4936 = call ptr @__errno_location() #13
  %4937 = load i32, ptr %4936, align 4, !tbaa !5
  %4938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4925, ptr noundef @.str.2, i32 noundef %4926, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 335, ptr noundef %4929, ptr noundef %4932, ptr noundef %4935, i32 noundef %4937) #12
  br label %4956

4939:                                             ; preds = %4917, %4910
  %4940 = load i32, ptr %108, align 4, !tbaa !5
  %4941 = call ptr @__errno_location() #13
  store i32 %4940, ptr %4941, align 4, !tbaa !5
  %4942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4943 = load i32, ptr @test_count, align 4, !tbaa !5
  %4944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4945 = load i32, ptr %4944, align 4, !tbaa !5
  %4946 = call ptr @s2n_strerror(i32 noundef %4945, ptr noundef @.str.4)
  %4947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = call ptr @s2n_strerror_debug(i32 noundef %4948, ptr noundef @.str.4)
  %4950 = call ptr @__errno_location() #13
  %4951 = load i32, ptr %4950, align 4, !tbaa !5
  %4952 = call ptr @strerror(i32 noundef %4951) #12
  %4953 = call ptr @__errno_location() #13
  %4954 = load i32, ptr %4953, align 4, !tbaa !5
  %4955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4942, ptr noundef @.str.5, i32 noundef %4943, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 335, ptr noundef %4946, ptr noundef %4949, ptr noundef %4952, i32 noundef %4954) #12
  br label %4956

4956:                                             ; preds = %4939, %4922
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #12
  br label %4957

4957:                                             ; preds = %4956
  br label %4958

4958:                                             ; preds = %4957
  call void @exit(i32 noundef 1) #14
  unreachable

4959:                                             ; No predecessors!
  br label %4960

4960:                                             ; preds = %4959
  br label %4961

4961:                                             ; preds = %4960, %4900
  br label %4962

4962:                                             ; preds = %4961
  br label %4963

4963:                                             ; preds = %4962
  br label %4964

4964:                                             ; preds = %4963
  %4965 = load i32, ptr @test_count, align 4, !tbaa !5
  %4966 = add nsw i32 %4965, 1
  store i32 %4966, ptr @test_count, align 4, !tbaa !5
  %4967 = load ptr, ptr %47, align 8, !tbaa !9
  %4968 = getelementptr inbounds %struct.s2n_connection, ptr %4967, i32 0, i32 27
  %4969 = load ptr, ptr %4968, align 8, !tbaa !48
  %4970 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4969, i32 0, i32 0
  %4971 = load ptr, ptr %4970, align 8, !tbaa !49
  %4972 = load ptr, ptr %106, align 8, !tbaa !9
  %4973 = icmp eq ptr %4971, %4972
  br i1 %4973, label %5027, label %4974

4974:                                             ; preds = %4964
  br label %4975

4975:                                             ; preds = %4974
  br label %4976

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

4983:                                             ; preds = %4976
  %4984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4985 = call i32 @fileno(ptr noundef %4984) #12
  %4986 = call i32 @isatty(i32 noundef %4985) #12
  %4987 = icmp ne i32 %4986, 0
  br i1 %4987, label %4988, label %5005

4988:                                             ; preds = %4983
  %4989 = load i32, ptr %109, align 4, !tbaa !5
  %4990 = call ptr @__errno_location() #13
  store i32 %4989, ptr %4990, align 4, !tbaa !5
  %4991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4992 = load i32, ptr @test_count, align 4, !tbaa !5
  %4993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4994 = load i32, ptr %4993, align 4, !tbaa !5
  %4995 = call ptr @s2n_strerror(i32 noundef %4994, ptr noundef @.str.4)
  %4996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4997 = load i32, ptr %4996, align 4, !tbaa !5
  %4998 = call ptr @s2n_strerror_debug(i32 noundef %4997, ptr noundef @.str.4)
  %4999 = call ptr @__errno_location() #13
  %5000 = load i32, ptr %4999, align 4, !tbaa !5
  %5001 = call ptr @strerror(i32 noundef %5000) #12
  %5002 = call ptr @__errno_location() #13
  %5003 = load i32, ptr %5002, align 4, !tbaa !5
  %5004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4991, ptr noundef @.str.2, i32 noundef %4992, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 336, ptr noundef %4995, ptr noundef %4998, ptr noundef %5001, i32 noundef %5003) #12
  br label %5022

5005:                                             ; preds = %4983, %4976
  %5006 = load i32, ptr %109, align 4, !tbaa !5
  %5007 = call ptr @__errno_location() #13
  store i32 %5006, ptr %5007, align 4, !tbaa !5
  %5008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5009 = load i32, ptr @test_count, align 4, !tbaa !5
  %5010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  %5012 = call ptr @s2n_strerror(i32 noundef %5011, ptr noundef @.str.4)
  %5013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5014 = load i32, ptr %5013, align 4, !tbaa !5
  %5015 = call ptr @s2n_strerror_debug(i32 noundef %5014, ptr noundef @.str.4)
  %5016 = call ptr @__errno_location() #13
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call ptr @strerror(i32 noundef %5017) #12
  %5019 = call ptr @__errno_location() #13
  %5020 = load i32, ptr %5019, align 4, !tbaa !5
  %5021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5008, ptr noundef @.str.5, i32 noundef %5009, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 336, ptr noundef %5012, ptr noundef %5015, ptr noundef %5018, i32 noundef %5020) #12
  br label %5022

5022:                                             ; preds = %5005, %4988
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #12
  br label %5023

5023:                                             ; preds = %5022
  br label %5024

5024:                                             ; preds = %5023
  call void @exit(i32 noundef 1) #14
  unreachable

5025:                                             ; No predecessors!
  br label %5026

5026:                                             ; preds = %5025
  br label %5027

5027:                                             ; preds = %5026, %4964
  br label %5028

5028:                                             ; preds = %5027
  br label %5029

5029:                                             ; preds = %5028
  br label %5030

5030:                                             ; preds = %5029
  %5031 = load i32, ptr @test_count, align 4, !tbaa !5
  %5032 = add nsw i32 %5031, 1
  store i32 %5032, ptr @test_count, align 4, !tbaa !5
  %5033 = load ptr, ptr %47, align 8, !tbaa !9
  %5034 = call i32 @s2n_connection_wipe(ptr noundef %5033)
  %5035 = icmp eq i32 %5034, -1
  br i1 %5035, label %5036, label %5089

5036:                                             ; preds = %5030
  br label %5037

5037:                                             ; preds = %5036
  br label %5038

5038:                                             ; preds = %5037
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #12
  %5039 = call ptr @__errno_location() #13
  %5040 = load i32, ptr %5039, align 4, !tbaa !5
  store i32 %5040, ptr %110, align 4, !tbaa !5
  %5041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5042 = call i32 @s2n_print_stacktrace(ptr noundef %5041)
  %5043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5044 = trunc i8 %5043 to i1
  br i1 %5044, label %5045, label %5067

5045:                                             ; preds = %5038
  %5046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5047 = call i32 @fileno(ptr noundef %5046) #12
  %5048 = call i32 @isatty(i32 noundef %5047) #12
  %5049 = icmp ne i32 %5048, 0
  br i1 %5049, label %5050, label %5067

5050:                                             ; preds = %5045
  %5051 = load i32, ptr %110, align 4, !tbaa !5
  %5052 = call ptr @__errno_location() #13
  store i32 %5051, ptr %5052, align 4, !tbaa !5
  %5053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5054 = load i32, ptr @test_count, align 4, !tbaa !5
  %5055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5056 = load i32, ptr %5055, align 4, !tbaa !5
  %5057 = call ptr @s2n_strerror(i32 noundef %5056, ptr noundef @.str.4)
  %5058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5059 = load i32, ptr %5058, align 4, !tbaa !5
  %5060 = call ptr @s2n_strerror_debug(i32 noundef %5059, ptr noundef @.str.4)
  %5061 = call ptr @__errno_location() #13
  %5062 = load i32, ptr %5061, align 4, !tbaa !5
  %5063 = call ptr @strerror(i32 noundef %5062) #12
  %5064 = call ptr @__errno_location() #13
  %5065 = load i32, ptr %5064, align 4, !tbaa !5
  %5066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5053, ptr noundef @.str.2, i32 noundef %5054, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 337, ptr noundef %5057, ptr noundef %5060, ptr noundef %5063, i32 noundef %5065) #12
  br label %5084

5067:                                             ; preds = %5045, %5038
  %5068 = load i32, ptr %110, align 4, !tbaa !5
  %5069 = call ptr @__errno_location() #13
  store i32 %5068, ptr %5069, align 4, !tbaa !5
  %5070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5071 = load i32, ptr @test_count, align 4, !tbaa !5
  %5072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5073 = load i32, ptr %5072, align 4, !tbaa !5
  %5074 = call ptr @s2n_strerror(i32 noundef %5073, ptr noundef @.str.4)
  %5075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5076 = load i32, ptr %5075, align 4, !tbaa !5
  %5077 = call ptr @s2n_strerror_debug(i32 noundef %5076, ptr noundef @.str.4)
  %5078 = call ptr @__errno_location() #13
  %5079 = load i32, ptr %5078, align 4, !tbaa !5
  %5080 = call ptr @strerror(i32 noundef %5079) #12
  %5081 = call ptr @__errno_location() #13
  %5082 = load i32, ptr %5081, align 4, !tbaa !5
  %5083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5070, ptr noundef @.str.5, i32 noundef %5071, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 337, ptr noundef %5074, ptr noundef %5077, ptr noundef %5080, i32 noundef %5082) #12
  br label %5084

5084:                                             ; preds = %5067, %5050
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #12
  br label %5085

5085:                                             ; preds = %5084
  br label %5086

5086:                                             ; preds = %5085
  call void @exit(i32 noundef 1) #14
  unreachable

5087:                                             ; No predecessors!
  br label %5088

5088:                                             ; preds = %5087
  br label %5089

5089:                                             ; preds = %5088, %5030
  br label %5090

5090:                                             ; preds = %5089
  br label %5091

5091:                                             ; preds = %5090
  br label %5092

5092:                                             ; preds = %5091
  %5093 = load i32, ptr @test_count, align 4, !tbaa !5
  %5094 = add nsw i32 %5093, 1
  store i32 %5094, ptr @test_count, align 4, !tbaa !5
  %5095 = load ptr, ptr %48, align 8, !tbaa !9
  %5096 = call i32 @s2n_config_free(ptr noundef %5095)
  %5097 = icmp eq i32 %5096, -1
  br i1 %5097, label %5098, label %5151

5098:                                             ; preds = %5092
  br label %5099

5099:                                             ; preds = %5098
  br label %5100

5100:                                             ; preds = %5099
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #12
  %5101 = call ptr @__errno_location() #13
  %5102 = load i32, ptr %5101, align 4, !tbaa !5
  store i32 %5102, ptr %111, align 4, !tbaa !5
  %5103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5104 = call i32 @s2n_print_stacktrace(ptr noundef %5103)
  %5105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5106 = trunc i8 %5105 to i1
  br i1 %5106, label %5107, label %5129

5107:                                             ; preds = %5100
  %5108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5109 = call i32 @fileno(ptr noundef %5108) #12
  %5110 = call i32 @isatty(i32 noundef %5109) #12
  %5111 = icmp ne i32 %5110, 0
  br i1 %5111, label %5112, label %5129

5112:                                             ; preds = %5107
  %5113 = load i32, ptr %111, align 4, !tbaa !5
  %5114 = call ptr @__errno_location() #13
  store i32 %5113, ptr %5114, align 4, !tbaa !5
  %5115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5116 = load i32, ptr @test_count, align 4, !tbaa !5
  %5117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5118 = load i32, ptr %5117, align 4, !tbaa !5
  %5119 = call ptr @s2n_strerror(i32 noundef %5118, ptr noundef @.str.4)
  %5120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5121 = load i32, ptr %5120, align 4, !tbaa !5
  %5122 = call ptr @s2n_strerror_debug(i32 noundef %5121, ptr noundef @.str.4)
  %5123 = call ptr @__errno_location() #13
  %5124 = load i32, ptr %5123, align 4, !tbaa !5
  %5125 = call ptr @strerror(i32 noundef %5124) #12
  %5126 = call ptr @__errno_location() #13
  %5127 = load i32, ptr %5126, align 4, !tbaa !5
  %5128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5115, ptr noundef @.str.2, i32 noundef %5116, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 340, ptr noundef %5119, ptr noundef %5122, ptr noundef %5125, i32 noundef %5127) #12
  br label %5146

5129:                                             ; preds = %5107, %5100
  %5130 = load i32, ptr %111, align 4, !tbaa !5
  %5131 = call ptr @__errno_location() #13
  store i32 %5130, ptr %5131, align 4, !tbaa !5
  %5132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5133 = load i32, ptr @test_count, align 4, !tbaa !5
  %5134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5135 = load i32, ptr %5134, align 4, !tbaa !5
  %5136 = call ptr @s2n_strerror(i32 noundef %5135, ptr noundef @.str.4)
  %5137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5138 = load i32, ptr %5137, align 4, !tbaa !5
  %5139 = call ptr @s2n_strerror_debug(i32 noundef %5138, ptr noundef @.str.4)
  %5140 = call ptr @__errno_location() #13
  %5141 = load i32, ptr %5140, align 4, !tbaa !5
  %5142 = call ptr @strerror(i32 noundef %5141) #12
  %5143 = call ptr @__errno_location() #13
  %5144 = load i32, ptr %5143, align 4, !tbaa !5
  %5145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5132, ptr noundef @.str.5, i32 noundef %5133, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 340, ptr noundef %5136, ptr noundef %5139, ptr noundef %5142, i32 noundef %5144) #12
  br label %5146

5146:                                             ; preds = %5129, %5112
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #12
  br label %5147

5147:                                             ; preds = %5146
  br label %5148

5148:                                             ; preds = %5147
  call void @exit(i32 noundef 1) #14
  unreachable

5149:                                             ; No predecessors!
  br label %5150

5150:                                             ; preds = %5149
  br label %5151

5151:                                             ; preds = %5150, %5092
  br label %5152

5152:                                             ; preds = %5151
  br label %5153

5153:                                             ; preds = %5152
  br label %5154

5154:                                             ; preds = %5153
  %5155 = load i32, ptr @test_count, align 4, !tbaa !5
  %5156 = add nsw i32 %5155, 1
  store i32 %5156, ptr @test_count, align 4, !tbaa !5
  %5157 = call ptr @s2n_config_new()
  store ptr %5157, ptr %48, align 8, !tbaa !9
  %5158 = icmp eq ptr %5157, null
  br i1 %5158, label %5159, label %5212

5159:                                             ; preds = %5154
  br label %5160

5160:                                             ; preds = %5159
  br label %5161

5161:                                             ; preds = %5160
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #12
  %5162 = call ptr @__errno_location() #13
  %5163 = load i32, ptr %5162, align 4, !tbaa !5
  store i32 %5163, ptr %112, align 4, !tbaa !5
  %5164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5165 = call i32 @s2n_print_stacktrace(ptr noundef %5164)
  %5166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5167 = trunc i8 %5166 to i1
  br i1 %5167, label %5168, label %5190

5168:                                             ; preds = %5161
  %5169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5170 = call i32 @fileno(ptr noundef %5169) #12
  %5171 = call i32 @isatty(i32 noundef %5170) #12
  %5172 = icmp ne i32 %5171, 0
  br i1 %5172, label %5173, label %5190

5173:                                             ; preds = %5168
  %5174 = load i32, ptr %112, align 4, !tbaa !5
  %5175 = call ptr @__errno_location() #13
  store i32 %5174, ptr %5175, align 4, !tbaa !5
  %5176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5177 = load i32, ptr @test_count, align 4, !tbaa !5
  %5178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5179 = load i32, ptr %5178, align 4, !tbaa !5
  %5180 = call ptr @s2n_strerror(i32 noundef %5179, ptr noundef @.str.4)
  %5181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5182 = load i32, ptr %5181, align 4, !tbaa !5
  %5183 = call ptr @s2n_strerror_debug(i32 noundef %5182, ptr noundef @.str.4)
  %5184 = call ptr @__errno_location() #13
  %5185 = load i32, ptr %5184, align 4, !tbaa !5
  %5186 = call ptr @strerror(i32 noundef %5185) #12
  %5187 = call ptr @__errno_location() #13
  %5188 = load i32, ptr %5187, align 4, !tbaa !5
  %5189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5176, ptr noundef @.str.2, i32 noundef %5177, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 343, ptr noundef %5180, ptr noundef %5183, ptr noundef %5186, i32 noundef %5188) #12
  br label %5207

5190:                                             ; preds = %5168, %5161
  %5191 = load i32, ptr %112, align 4, !tbaa !5
  %5192 = call ptr @__errno_location() #13
  store i32 %5191, ptr %5192, align 4, !tbaa !5
  %5193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5194 = load i32, ptr @test_count, align 4, !tbaa !5
  %5195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5196 = load i32, ptr %5195, align 4, !tbaa !5
  %5197 = call ptr @s2n_strerror(i32 noundef %5196, ptr noundef @.str.4)
  %5198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5199 = load i32, ptr %5198, align 4, !tbaa !5
  %5200 = call ptr @s2n_strerror_debug(i32 noundef %5199, ptr noundef @.str.4)
  %5201 = call ptr @__errno_location() #13
  %5202 = load i32, ptr %5201, align 4, !tbaa !5
  %5203 = call ptr @strerror(i32 noundef %5202) #12
  %5204 = call ptr @__errno_location() #13
  %5205 = load i32, ptr %5204, align 4, !tbaa !5
  %5206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5193, ptr noundef @.str.5, i32 noundef %5194, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 343, ptr noundef %5197, ptr noundef %5200, ptr noundef %5203, i32 noundef %5205) #12
  br label %5207

5207:                                             ; preds = %5190, %5173
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #12
  br label %5208

5208:                                             ; preds = %5207
  br label %5209

5209:                                             ; preds = %5208
  call void @exit(i32 noundef 1) #14
  unreachable

5210:                                             ; No predecessors!
  br label %5211

5211:                                             ; preds = %5210
  br label %5212

5212:                                             ; preds = %5211, %5154
  br label %5213

5213:                                             ; preds = %5212
  br label %5214

5214:                                             ; preds = %5213
  br label %5215

5215:                                             ; preds = %5214
  %5216 = load i32, ptr @test_count, align 4, !tbaa !5
  %5217 = add nsw i32 %5216, 1
  store i32 %5217, ptr @test_count, align 4, !tbaa !5
  %5218 = load ptr, ptr %48, align 8, !tbaa !9
  %5219 = load ptr, ptr %54, align 8, !tbaa !9
  %5220 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %5218, ptr noundef %5219)
  %5221 = icmp eq i32 %5220, -1
  br i1 %5221, label %5222, label %5275

5222:                                             ; preds = %5215
  br label %5223

5223:                                             ; preds = %5222
  br label %5224

5224:                                             ; preds = %5223
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #12
  %5225 = call ptr @__errno_location() #13
  %5226 = load i32, ptr %5225, align 4, !tbaa !5
  store i32 %5226, ptr %113, align 4, !tbaa !5
  %5227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5228 = call i32 @s2n_print_stacktrace(ptr noundef %5227)
  %5229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5230 = trunc i8 %5229 to i1
  br i1 %5230, label %5231, label %5253

5231:                                             ; preds = %5224
  %5232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5233 = call i32 @fileno(ptr noundef %5232) #12
  %5234 = call i32 @isatty(i32 noundef %5233) #12
  %5235 = icmp ne i32 %5234, 0
  br i1 %5235, label %5236, label %5253

5236:                                             ; preds = %5231
  %5237 = load i32, ptr %113, align 4, !tbaa !5
  %5238 = call ptr @__errno_location() #13
  store i32 %5237, ptr %5238, align 4, !tbaa !5
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = load i32, ptr @test_count, align 4, !tbaa !5
  %5241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5242 = load i32, ptr %5241, align 4, !tbaa !5
  %5243 = call ptr @s2n_strerror(i32 noundef %5242, ptr noundef @.str.4)
  %5244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5245 = load i32, ptr %5244, align 4, !tbaa !5
  %5246 = call ptr @s2n_strerror_debug(i32 noundef %5245, ptr noundef @.str.4)
  %5247 = call ptr @__errno_location() #13
  %5248 = load i32, ptr %5247, align 4, !tbaa !5
  %5249 = call ptr @strerror(i32 noundef %5248) #12
  %5250 = call ptr @__errno_location() #13
  %5251 = load i32, ptr %5250, align 4, !tbaa !5
  %5252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5239, ptr noundef @.str.2, i32 noundef %5240, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 344, ptr noundef %5243, ptr noundef %5246, ptr noundef %5249, i32 noundef %5251) #12
  br label %5270

5253:                                             ; preds = %5231, %5224
  %5254 = load i32, ptr %113, align 4, !tbaa !5
  %5255 = call ptr @__errno_location() #13
  store i32 %5254, ptr %5255, align 4, !tbaa !5
  %5256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5257 = load i32, ptr @test_count, align 4, !tbaa !5
  %5258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5259 = load i32, ptr %5258, align 4, !tbaa !5
  %5260 = call ptr @s2n_strerror(i32 noundef %5259, ptr noundef @.str.4)
  %5261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5262 = load i32, ptr %5261, align 4, !tbaa !5
  %5263 = call ptr @s2n_strerror_debug(i32 noundef %5262, ptr noundef @.str.4)
  %5264 = call ptr @__errno_location() #13
  %5265 = load i32, ptr %5264, align 4, !tbaa !5
  %5266 = call ptr @strerror(i32 noundef %5265) #12
  %5267 = call ptr @__errno_location() #13
  %5268 = load i32, ptr %5267, align 4, !tbaa !5
  %5269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5256, ptr noundef @.str.5, i32 noundef %5257, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 344, ptr noundef %5260, ptr noundef %5263, ptr noundef %5266, i32 noundef %5268) #12
  br label %5270

5270:                                             ; preds = %5253, %5236
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #12
  br label %5271

5271:                                             ; preds = %5270
  br label %5272

5272:                                             ; preds = %5271
  call void @exit(i32 noundef 1) #14
  unreachable

5273:                                             ; No predecessors!
  br label %5274

5274:                                             ; preds = %5273
  br label %5275

5275:                                             ; preds = %5274, %5215
  br label %5276

5276:                                             ; preds = %5275
  br label %5277

5277:                                             ; preds = %5276
  br label %5278

5278:                                             ; preds = %5277
  %5279 = load i32, ptr @test_count, align 4, !tbaa !5
  %5280 = add nsw i32 %5279, 1
  store i32 %5280, ptr @test_count, align 4, !tbaa !5
  %5281 = load ptr, ptr %47, align 8, !tbaa !9
  %5282 = load ptr, ptr %48, align 8, !tbaa !9
  %5283 = call i32 @s2n_connection_set_config(ptr noundef %5281, ptr noundef %5282)
  %5284 = icmp eq i32 %5283, -1
  br i1 %5284, label %5285, label %5338

5285:                                             ; preds = %5278
  br label %5286

5286:                                             ; preds = %5285
  br label %5287

5287:                                             ; preds = %5286
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #12
  %5288 = call ptr @__errno_location() #13
  %5289 = load i32, ptr %5288, align 4, !tbaa !5
  store i32 %5289, ptr %114, align 4, !tbaa !5
  %5290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5291 = call i32 @s2n_print_stacktrace(ptr noundef %5290)
  %5292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5293 = trunc i8 %5292 to i1
  br i1 %5293, label %5294, label %5316

5294:                                             ; preds = %5287
  %5295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5296 = call i32 @fileno(ptr noundef %5295) #12
  %5297 = call i32 @isatty(i32 noundef %5296) #12
  %5298 = icmp ne i32 %5297, 0
  br i1 %5298, label %5299, label %5316

5299:                                             ; preds = %5294
  %5300 = load i32, ptr %114, align 4, !tbaa !5
  %5301 = call ptr @__errno_location() #13
  store i32 %5300, ptr %5301, align 4, !tbaa !5
  %5302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5303 = load i32, ptr @test_count, align 4, !tbaa !5
  %5304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5305 = load i32, ptr %5304, align 4, !tbaa !5
  %5306 = call ptr @s2n_strerror(i32 noundef %5305, ptr noundef @.str.4)
  %5307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5308 = load i32, ptr %5307, align 4, !tbaa !5
  %5309 = call ptr @s2n_strerror_debug(i32 noundef %5308, ptr noundef @.str.4)
  %5310 = call ptr @__errno_location() #13
  %5311 = load i32, ptr %5310, align 4, !tbaa !5
  %5312 = call ptr @strerror(i32 noundef %5311) #12
  %5313 = call ptr @__errno_location() #13
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  %5315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5302, ptr noundef @.str.2, i32 noundef %5303, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 345, ptr noundef %5306, ptr noundef %5309, ptr noundef %5312, i32 noundef %5314) #12
  br label %5333

5316:                                             ; preds = %5294, %5287
  %5317 = load i32, ptr %114, align 4, !tbaa !5
  %5318 = call ptr @__errno_location() #13
  store i32 %5317, ptr %5318, align 4, !tbaa !5
  %5319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5320 = load i32, ptr @test_count, align 4, !tbaa !5
  %5321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5322 = load i32, ptr %5321, align 4, !tbaa !5
  %5323 = call ptr @s2n_strerror(i32 noundef %5322, ptr noundef @.str.4)
  %5324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5325 = load i32, ptr %5324, align 4, !tbaa !5
  %5326 = call ptr @s2n_strerror_debug(i32 noundef %5325, ptr noundef @.str.4)
  %5327 = call ptr @__errno_location() #13
  %5328 = load i32, ptr %5327, align 4, !tbaa !5
  %5329 = call ptr @strerror(i32 noundef %5328) #12
  %5330 = call ptr @__errno_location() #13
  %5331 = load i32, ptr %5330, align 4, !tbaa !5
  %5332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5319, ptr noundef @.str.5, i32 noundef %5320, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 345, ptr noundef %5323, ptr noundef %5326, ptr noundef %5329, i32 noundef %5331) #12
  br label %5333

5333:                                             ; preds = %5316, %5299
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #12
  br label %5334

5334:                                             ; preds = %5333
  br label %5335

5335:                                             ; preds = %5334
  call void @exit(i32 noundef 1) #14
  unreachable

5336:                                             ; No predecessors!
  br label %5337

5337:                                             ; preds = %5336
  br label %5338

5338:                                             ; preds = %5337, %5278
  br label %5339

5339:                                             ; preds = %5338
  br label %5340

5340:                                             ; preds = %5339
  br label %5341

5341:                                             ; preds = %5340
  %5342 = load i32, ptr @test_count, align 4, !tbaa !5
  %5343 = add nsw i32 %5342, 1
  store i32 %5343, ptr @test_count, align 4, !tbaa !5
  %5344 = load ptr, ptr %47, align 8, !tbaa !9
  %5345 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %5344, ptr noundef %103)
  %5346 = icmp eq i32 %5345, -1
  br i1 %5346, label %5347, label %5400

5347:                                             ; preds = %5341
  br label %5348

5348:                                             ; preds = %5347
  br label %5349

5349:                                             ; preds = %5348
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #12
  %5350 = call ptr @__errno_location() #13
  %5351 = load i32, ptr %5350, align 4, !tbaa !5
  store i32 %5351, ptr %115, align 4, !tbaa !5
  %5352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5353 = call i32 @s2n_print_stacktrace(ptr noundef %5352)
  %5354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5355 = trunc i8 %5354 to i1
  br i1 %5355, label %5356, label %5378

5356:                                             ; preds = %5349
  %5357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5358 = call i32 @fileno(ptr noundef %5357) #12
  %5359 = call i32 @isatty(i32 noundef %5358) #12
  %5360 = icmp ne i32 %5359, 0
  br i1 %5360, label %5361, label %5378

5361:                                             ; preds = %5356
  %5362 = load i32, ptr %115, align 4, !tbaa !5
  %5363 = call ptr @__errno_location() #13
  store i32 %5362, ptr %5363, align 4, !tbaa !5
  %5364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5365 = load i32, ptr @test_count, align 4, !tbaa !5
  %5366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5367 = load i32, ptr %5366, align 4, !tbaa !5
  %5368 = call ptr @s2n_strerror(i32 noundef %5367, ptr noundef @.str.4)
  %5369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5370 = load i32, ptr %5369, align 4, !tbaa !5
  %5371 = call ptr @s2n_strerror_debug(i32 noundef %5370, ptr noundef @.str.4)
  %5372 = call ptr @__errno_location() #13
  %5373 = load i32, ptr %5372, align 4, !tbaa !5
  %5374 = call ptr @strerror(i32 noundef %5373) #12
  %5375 = call ptr @__errno_location() #13
  %5376 = load i32, ptr %5375, align 4, !tbaa !5
  %5377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5364, ptr noundef @.str.2, i32 noundef %5365, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 347, ptr noundef %5368, ptr noundef %5371, ptr noundef %5374, i32 noundef %5376) #12
  br label %5395

5378:                                             ; preds = %5356, %5349
  %5379 = load i32, ptr %115, align 4, !tbaa !5
  %5380 = call ptr @__errno_location() #13
  store i32 %5379, ptr %5380, align 4, !tbaa !5
  %5381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5382 = load i32, ptr @test_count, align 4, !tbaa !5
  %5383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5384 = load i32, ptr %5383, align 4, !tbaa !5
  %5385 = call ptr @s2n_strerror(i32 noundef %5384, ptr noundef @.str.4)
  %5386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5387 = load i32, ptr %5386, align 4, !tbaa !5
  %5388 = call ptr @s2n_strerror_debug(i32 noundef %5387, ptr noundef @.str.4)
  %5389 = call ptr @__errno_location() #13
  %5390 = load i32, ptr %5389, align 4, !tbaa !5
  %5391 = call ptr @strerror(i32 noundef %5390) #12
  %5392 = call ptr @__errno_location() #13
  %5393 = load i32, ptr %5392, align 4, !tbaa !5
  %5394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5381, ptr noundef @.str.5, i32 noundef %5382, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 347, ptr noundef %5385, ptr noundef %5388, ptr noundef %5391, i32 noundef %5393) #12
  br label %5395

5395:                                             ; preds = %5378, %5361
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #12
  br label %5396

5396:                                             ; preds = %5395
  br label %5397

5397:                                             ; preds = %5396
  call void @exit(i32 noundef 1) #14
  unreachable

5398:                                             ; No predecessors!
  br label %5399

5399:                                             ; preds = %5398
  br label %5400

5400:                                             ; preds = %5399, %5341
  br label %5401

5401:                                             ; preds = %5400
  br label %5402

5402:                                             ; preds = %5401
  br label %5403

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

5408:                                             ; preds = %5403
  br label %5409

5409:                                             ; preds = %5408
  br label %5410

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

5417:                                             ; preds = %5410
  %5418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5419 = call i32 @fileno(ptr noundef %5418) #12
  %5420 = call i32 @isatty(i32 noundef %5419) #12
  %5421 = icmp ne i32 %5420, 0
  br i1 %5421, label %5422, label %5439

5422:                                             ; preds = %5417
  %5423 = load i32, ptr %116, align 4, !tbaa !5
  %5424 = call ptr @__errno_location() #13
  store i32 %5423, ptr %5424, align 4, !tbaa !5
  %5425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5426 = load i32, ptr @test_count, align 4, !tbaa !5
  %5427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5428 = load i32, ptr %5427, align 4, !tbaa !5
  %5429 = call ptr @s2n_strerror(i32 noundef %5428, ptr noundef @.str.4)
  %5430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5431 = load i32, ptr %5430, align 4, !tbaa !5
  %5432 = call ptr @s2n_strerror_debug(i32 noundef %5431, ptr noundef @.str.4)
  %5433 = call ptr @__errno_location() #13
  %5434 = load i32, ptr %5433, align 4, !tbaa !5
  %5435 = call ptr @strerror(i32 noundef %5434) #12
  %5436 = call ptr @__errno_location() #13
  %5437 = load i32, ptr %5436, align 4, !tbaa !5
  %5438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5425, ptr noundef @.str.2, i32 noundef %5426, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 348, ptr noundef %5429, ptr noundef %5432, ptr noundef %5435, i32 noundef %5437) #12
  br label %5456

5439:                                             ; preds = %5417, %5410
  %5440 = load i32, ptr %116, align 4, !tbaa !5
  %5441 = call ptr @__errno_location() #13
  store i32 %5440, ptr %5441, align 4, !tbaa !5
  %5442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5443 = load i32, ptr @test_count, align 4, !tbaa !5
  %5444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5445 = load i32, ptr %5444, align 4, !tbaa !5
  %5446 = call ptr @s2n_strerror(i32 noundef %5445, ptr noundef @.str.4)
  %5447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @s2n_strerror_debug(i32 noundef %5448, ptr noundef @.str.4)
  %5450 = call ptr @__errno_location() #13
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call ptr @strerror(i32 noundef %5451) #12
  %5453 = call ptr @__errno_location() #13
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5442, ptr noundef @.str.5, i32 noundef %5443, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 348, ptr noundef %5446, ptr noundef %5449, ptr noundef %5452, i32 noundef %5454) #12
  br label %5456

5456:                                             ; preds = %5439, %5422
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #12
  br label %5457

5457:                                             ; preds = %5456
  br label %5458

5458:                                             ; preds = %5457
  call void @exit(i32 noundef 1) #14
  unreachable

5459:                                             ; No predecessors!
  br label %5460

5460:                                             ; preds = %5459
  br label %5461

5461:                                             ; preds = %5460, %5403
  br label %5462

5462:                                             ; preds = %5461
  br label %5463

5463:                                             ; preds = %5462
  br label %5464

5464:                                             ; preds = %5463
  %5465 = load i32, ptr @test_count, align 4, !tbaa !5
  %5466 = add nsw i32 %5465, 1
  store i32 %5466, ptr @test_count, align 4, !tbaa !5
  %5467 = load ptr, ptr %47, align 8, !tbaa !9
  %5468 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %5467, ptr noundef @.str.80)
  %5469 = icmp eq i32 %5468, -1
  br i1 %5469, label %5470, label %5523

5470:                                             ; preds = %5464
  br label %5471

5471:                                             ; preds = %5470
  br label %5472

5472:                                             ; preds = %5471
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #12
  %5473 = call ptr @__errno_location() #13
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  store i32 %5474, ptr %117, align 4, !tbaa !5
  %5475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5476 = call i32 @s2n_print_stacktrace(ptr noundef %5475)
  %5477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5478 = trunc i8 %5477 to i1
  br i1 %5478, label %5479, label %5501

5479:                                             ; preds = %5472
  %5480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5481 = call i32 @fileno(ptr noundef %5480) #12
  %5482 = call i32 @isatty(i32 noundef %5481) #12
  %5483 = icmp ne i32 %5482, 0
  br i1 %5483, label %5484, label %5501

5484:                                             ; preds = %5479
  %5485 = load i32, ptr %117, align 4, !tbaa !5
  %5486 = call ptr @__errno_location() #13
  store i32 %5485, ptr %5486, align 4, !tbaa !5
  %5487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5488 = load i32, ptr @test_count, align 4, !tbaa !5
  %5489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5490 = load i32, ptr %5489, align 4, !tbaa !5
  %5491 = call ptr @s2n_strerror(i32 noundef %5490, ptr noundef @.str.4)
  %5492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5493 = load i32, ptr %5492, align 4, !tbaa !5
  %5494 = call ptr @s2n_strerror_debug(i32 noundef %5493, ptr noundef @.str.4)
  %5495 = call ptr @__errno_location() #13
  %5496 = load i32, ptr %5495, align 4, !tbaa !5
  %5497 = call ptr @strerror(i32 noundef %5496) #12
  %5498 = call ptr @__errno_location() #13
  %5499 = load i32, ptr %5498, align 4, !tbaa !5
  %5500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5487, ptr noundef @.str.2, i32 noundef %5488, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 351, ptr noundef %5491, ptr noundef %5494, ptr noundef %5497, i32 noundef %5499) #12
  br label %5518

5501:                                             ; preds = %5479, %5472
  %5502 = load i32, ptr %117, align 4, !tbaa !5
  %5503 = call ptr @__errno_location() #13
  store i32 %5502, ptr %5503, align 4, !tbaa !5
  %5504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5505 = load i32, ptr @test_count, align 4, !tbaa !5
  %5506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5507 = load i32, ptr %5506, align 4, !tbaa !5
  %5508 = call ptr @s2n_strerror(i32 noundef %5507, ptr noundef @.str.4)
  %5509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5510 = load i32, ptr %5509, align 4, !tbaa !5
  %5511 = call ptr @s2n_strerror_debug(i32 noundef %5510, ptr noundef @.str.4)
  %5512 = call ptr @__errno_location() #13
  %5513 = load i32, ptr %5512, align 4, !tbaa !5
  %5514 = call ptr @strerror(i32 noundef %5513) #12
  %5515 = call ptr @__errno_location() #13
  %5516 = load i32, ptr %5515, align 4, !tbaa !5
  %5517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5504, ptr noundef @.str.5, i32 noundef %5505, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 351, ptr noundef %5508, ptr noundef %5511, ptr noundef %5514, i32 noundef %5516) #12
  br label %5518

5518:                                             ; preds = %5501, %5484
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #12
  br label %5519

5519:                                             ; preds = %5518
  br label %5520

5520:                                             ; preds = %5519
  call void @exit(i32 noundef 1) #14
  unreachable

5521:                                             ; No predecessors!
  br label %5522

5522:                                             ; preds = %5521
  br label %5523

5523:                                             ; preds = %5522, %5464
  br label %5524

5524:                                             ; preds = %5523
  br label %5525

5525:                                             ; preds = %5524
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #12
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256, ptr %118, align 8, !tbaa !9
  %5526 = load ptr, ptr %103, align 8, !tbaa !9
  %5527 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %5526, i32 0, i32 1
  %5528 = load ptr, ptr %5527, align 8, !tbaa !55
  %5529 = getelementptr inbounds ptr, ptr %5528, i64 0
  %5530 = load ptr, ptr %5529, align 8, !tbaa !9
  %5531 = load ptr, ptr %47, align 8, !tbaa !9
  %5532 = getelementptr inbounds %struct.s2n_connection, ptr %5531, i32 0, i32 31
  %5533 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5532, i32 0, i32 1
  %5534 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5533, i32 0, i32 0
  store ptr %5530, ptr %5534, align 8, !tbaa !57
  %5535 = load ptr, ptr %47, align 8, !tbaa !9
  %5536 = getelementptr inbounds %struct.s2n_connection, ptr %5535, i32 0, i32 22
  %5537 = load i8, ptr %5536, align 1, !tbaa !43
  %5538 = load ptr, ptr %47, align 8, !tbaa !9
  %5539 = getelementptr inbounds %struct.s2n_connection, ptr %5538, i32 0, i32 23
  store i8 %5537, ptr %5539, align 4, !tbaa !42
  br label %5540

5540:                                             ; preds = %5525
  %5541 = load i32, ptr @test_count, align 4, !tbaa !5
  %5542 = add nsw i32 %5541, 1
  store i32 %5542, ptr @test_count, align 4, !tbaa !5
  %5543 = load ptr, ptr %47, align 8, !tbaa !9
  %5544 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %5545 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %5543, ptr noundef %5544, i16 noundef zeroext 2)
  %5546 = icmp eq i32 %5545, -1
  br i1 %5546, label %5547, label %5600

5547:                                             ; preds = %5540
  br label %5548

5548:                                             ; preds = %5547
  br label %5549

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

5556:                                             ; preds = %5549
  %5557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5558 = call i32 @fileno(ptr noundef %5557) #12
  %5559 = call i32 @isatty(i32 noundef %5558) #12
  %5560 = icmp ne i32 %5559, 0
  br i1 %5560, label %5561, label %5578

5561:                                             ; preds = %5556
  %5562 = load i32, ptr %119, align 4, !tbaa !5
  %5563 = call ptr @__errno_location() #13
  store i32 %5562, ptr %5563, align 4, !tbaa !5
  %5564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5565 = load i32, ptr @test_count, align 4, !tbaa !5
  %5566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5567 = load i32, ptr %5566, align 4, !tbaa !5
  %5568 = call ptr @s2n_strerror(i32 noundef %5567, ptr noundef @.str.4)
  %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_debug(i32 noundef %5570, ptr noundef @.str.4)
  %5572 = call ptr @__errno_location() #13
  %5573 = load i32, ptr %5572, align 4, !tbaa !5
  %5574 = call ptr @strerror(i32 noundef %5573) #12
  %5575 = call ptr @__errno_location() #13
  %5576 = load i32, ptr %5575, align 4, !tbaa !5
  %5577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5564, ptr noundef @.str.2, i32 noundef %5565, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 356, ptr noundef %5568, ptr noundef %5571, ptr noundef %5574, i32 noundef %5576) #12
  br label %5595

5578:                                             ; preds = %5556, %5549
  %5579 = load i32, ptr %119, align 4, !tbaa !5
  %5580 = call ptr @__errno_location() #13
  store i32 %5579, ptr %5580, align 4, !tbaa !5
  %5581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5582 = load i32, ptr @test_count, align 4, !tbaa !5
  %5583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5584 = load i32, ptr %5583, align 4, !tbaa !5
  %5585 = call ptr @s2n_strerror(i32 noundef %5584, ptr noundef @.str.4)
  %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_debug(i32 noundef %5587, ptr noundef @.str.4)
  %5589 = call ptr @__errno_location() #13
  %5590 = load i32, ptr %5589, align 4, !tbaa !5
  %5591 = call ptr @strerror(i32 noundef %5590) #12
  %5592 = call ptr @__errno_location() #13
  %5593 = load i32, ptr %5592, align 4, !tbaa !5
  %5594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5581, ptr noundef @.str.5, i32 noundef %5582, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 356, ptr noundef %5585, ptr noundef %5588, ptr noundef %5591, i32 noundef %5593) #12
  br label %5595

5595:                                             ; preds = %5578, %5561
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #12
  br label %5596

5596:                                             ; preds = %5595
  br label %5597

5597:                                             ; preds = %5596
  call void @exit(i32 noundef 1) #14
  unreachable

5598:                                             ; No predecessors!
  br label %5599

5599:                                             ; preds = %5598
  br label %5600

5600:                                             ; preds = %5599, %5540
  br label %5601

5601:                                             ; preds = %5600
  br label %5602

5602:                                             ; preds = %5601
  br label %5603

5603:                                             ; preds = %5602
  %5604 = load i32, ptr @test_count, align 4, !tbaa !5
  %5605 = add nsw i32 %5604, 1
  store i32 %5605, ptr @test_count, align 4, !tbaa !5
  %5606 = load ptr, ptr %47, align 8, !tbaa !9
  %5607 = load i32, ptr %5606, align 8
  %5608 = lshr i32 %5607, 3
  %5609 = and i32 %5608, 1
  %5610 = icmp eq i32 %5609, 0
  br i1 %5610, label %5664, label %5611

5611:                                             ; preds = %5603
  br label %5612

5612:                                             ; preds = %5611
  br label %5613

5613:                                             ; preds = %5612
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #12
  %5614 = call ptr @__errno_location() #13
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  store i32 %5615, ptr %120, align 4, !tbaa !5
  %5616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5617 = call i32 @s2n_print_stacktrace(ptr noundef %5616)
  %5618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5619 = trunc i8 %5618 to i1
  br i1 %5619, label %5620, label %5642

5620:                                             ; preds = %5613
  %5621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5622 = call i32 @fileno(ptr noundef %5621) #12
  %5623 = call i32 @isatty(i32 noundef %5622) #12
  %5624 = icmp ne i32 %5623, 0
  br i1 %5624, label %5625, label %5642

5625:                                             ; preds = %5620
  %5626 = load i32, ptr %120, align 4, !tbaa !5
  %5627 = call ptr @__errno_location() #13
  store i32 %5626, ptr %5627, align 4, !tbaa !5
  %5628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5629 = load i32, ptr @test_count, align 4, !tbaa !5
  %5630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5631 = load i32, ptr %5630, align 4, !tbaa !5
  %5632 = call ptr @s2n_strerror(i32 noundef %5631, ptr noundef @.str.4)
  %5633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  %5635 = call ptr @s2n_strerror_debug(i32 noundef %5634, ptr noundef @.str.4)
  %5636 = call ptr @__errno_location() #13
  %5637 = load i32, ptr %5636, align 4, !tbaa !5
  %5638 = call ptr @strerror(i32 noundef %5637) #12
  %5639 = call ptr @__errno_location() #13
  %5640 = load i32, ptr %5639, align 4, !tbaa !5
  %5641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5628, ptr noundef @.str.2, i32 noundef %5629, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 357, ptr noundef %5632, ptr noundef %5635, ptr noundef %5638, i32 noundef %5640) #12
  br label %5659

5642:                                             ; preds = %5620, %5613
  %5643 = load i32, ptr %120, align 4, !tbaa !5
  %5644 = call ptr @__errno_location() #13
  store i32 %5643, ptr %5644, align 4, !tbaa !5
  %5645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5646 = load i32, ptr @test_count, align 4, !tbaa !5
  %5647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call ptr @s2n_strerror(i32 noundef %5648, ptr noundef @.str.4)
  %5650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call ptr @s2n_strerror_debug(i32 noundef %5651, ptr noundef @.str.4)
  %5653 = call ptr @__errno_location() #13
  %5654 = load i32, ptr %5653, align 4, !tbaa !5
  %5655 = call ptr @strerror(i32 noundef %5654) #12
  %5656 = call ptr @__errno_location() #13
  %5657 = load i32, ptr %5656, align 4, !tbaa !5
  %5658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5645, ptr noundef @.str.5, i32 noundef %5646, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 357, ptr noundef %5649, ptr noundef %5652, ptr noundef %5655, i32 noundef %5657) #12
  br label %5659

5659:                                             ; preds = %5642, %5625
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #12
  br label %5660

5660:                                             ; preds = %5659
  br label %5661

5661:                                             ; preds = %5660
  call void @exit(i32 noundef 1) #14
  unreachable

5662:                                             ; No predecessors!
  br label %5663

5663:                                             ; preds = %5662
  br label %5664

5664:                                             ; preds = %5663, %5603
  br label %5665

5665:                                             ; preds = %5664
  br label %5666

5666:                                             ; preds = %5665
  br label %5667

5667:                                             ; preds = %5666
  %5668 = load i32, ptr @test_count, align 4, !tbaa !5
  %5669 = add nsw i32 %5668, 1
  store i32 %5669, ptr @test_count, align 4, !tbaa !5
  %5670 = load ptr, ptr %47, align 8, !tbaa !9
  %5671 = getelementptr inbounds %struct.s2n_connection, ptr %5670, i32 0, i32 27
  %5672 = load ptr, ptr %5671, align 8, !tbaa !48
  %5673 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5672, i32 0, i32 0
  %5674 = load ptr, ptr %5673, align 8, !tbaa !49
  %5675 = load ptr, ptr %118, align 8, !tbaa !9
  %5676 = icmp eq ptr %5674, %5675
  br i1 %5676, label %5730, label %5677

5677:                                             ; preds = %5667
  br label %5678

5678:                                             ; preds = %5677
  br label %5679

5679:                                             ; preds = %5678
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #12
  %5680 = call ptr @__errno_location() #13
  %5681 = load i32, ptr %5680, align 4, !tbaa !5
  store i32 %5681, ptr %121, align 4, !tbaa !5
  %5682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5683 = call i32 @s2n_print_stacktrace(ptr noundef %5682)
  %5684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5685 = trunc i8 %5684 to i1
  br i1 %5685, label %5686, label %5708

5686:                                             ; preds = %5679
  %5687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5688 = call i32 @fileno(ptr noundef %5687) #12
  %5689 = call i32 @isatty(i32 noundef %5688) #12
  %5690 = icmp ne i32 %5689, 0
  br i1 %5690, label %5691, label %5708

5691:                                             ; preds = %5686
  %5692 = load i32, ptr %121, align 4, !tbaa !5
  %5693 = call ptr @__errno_location() #13
  store i32 %5692, ptr %5693, align 4, !tbaa !5
  %5694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5695 = load i32, ptr @test_count, align 4, !tbaa !5
  %5696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5697 = load i32, ptr %5696, align 4, !tbaa !5
  %5698 = call ptr @s2n_strerror(i32 noundef %5697, ptr noundef @.str.4)
  %5699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5700 = load i32, ptr %5699, align 4, !tbaa !5
  %5701 = call ptr @s2n_strerror_debug(i32 noundef %5700, ptr noundef @.str.4)
  %5702 = call ptr @__errno_location() #13
  %5703 = load i32, ptr %5702, align 4, !tbaa !5
  %5704 = call ptr @strerror(i32 noundef %5703) #12
  %5705 = call ptr @__errno_location() #13
  %5706 = load i32, ptr %5705, align 4, !tbaa !5
  %5707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5694, ptr noundef @.str.2, i32 noundef %5695, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 358, ptr noundef %5698, ptr noundef %5701, ptr noundef %5704, i32 noundef %5706) #12
  br label %5725

5708:                                             ; preds = %5686, %5679
  %5709 = load i32, ptr %121, align 4, !tbaa !5
  %5710 = call ptr @__errno_location() #13
  store i32 %5709, ptr %5710, align 4, !tbaa !5
  %5711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5712 = load i32, ptr @test_count, align 4, !tbaa !5
  %5713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5714 = load i32, ptr %5713, align 4, !tbaa !5
  %5715 = call ptr @s2n_strerror(i32 noundef %5714, ptr noundef @.str.4)
  %5716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  %5718 = call ptr @s2n_strerror_debug(i32 noundef %5717, ptr noundef @.str.4)
  %5719 = call ptr @__errno_location() #13
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call ptr @strerror(i32 noundef %5720) #12
  %5722 = call ptr @__errno_location() #13
  %5723 = load i32, ptr %5722, align 4, !tbaa !5
  %5724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5711, ptr noundef @.str.5, i32 noundef %5712, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 358, ptr noundef %5715, ptr noundef %5718, ptr noundef %5721, i32 noundef %5723) #12
  br label %5725

5725:                                             ; preds = %5708, %5691
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #12
  br label %5726

5726:                                             ; preds = %5725
  br label %5727

5727:                                             ; preds = %5726
  call void @exit(i32 noundef 1) #14
  unreachable

5728:                                             ; No predecessors!
  br label %5729

5729:                                             ; preds = %5728
  br label %5730

5730:                                             ; preds = %5729, %5667
  br label %5731

5731:                                             ; preds = %5730
  br label %5732

5732:                                             ; preds = %5731
  br label %5733

5733:                                             ; preds = %5732
  %5734 = load i32, ptr @test_count, align 4, !tbaa !5
  %5735 = add nsw i32 %5734, 1
  store i32 %5735, ptr @test_count, align 4, !tbaa !5
  %5736 = load ptr, ptr %47, align 8, !tbaa !9
  %5737 = call i32 @s2n_connection_wipe(ptr noundef %5736)
  %5738 = icmp eq i32 %5737, -1
  br i1 %5738, label %5739, label %5792

5739:                                             ; preds = %5733
  br label %5740

5740:                                             ; preds = %5739
  br label %5741

5741:                                             ; preds = %5740
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #12
  %5742 = call ptr @__errno_location() #13
  %5743 = load i32, ptr %5742, align 4, !tbaa !5
  store i32 %5743, ptr %122, align 4, !tbaa !5
  %5744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5745 = call i32 @s2n_print_stacktrace(ptr noundef %5744)
  %5746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5747 = trunc i8 %5746 to i1
  br i1 %5747, label %5748, label %5770

5748:                                             ; preds = %5741
  %5749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5750 = call i32 @fileno(ptr noundef %5749) #12
  %5751 = call i32 @isatty(i32 noundef %5750) #12
  %5752 = icmp ne i32 %5751, 0
  br i1 %5752, label %5753, label %5770

5753:                                             ; preds = %5748
  %5754 = load i32, ptr %122, align 4, !tbaa !5
  %5755 = call ptr @__errno_location() #13
  store i32 %5754, ptr %5755, align 4, !tbaa !5
  %5756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5757 = load i32, ptr @test_count, align 4, !tbaa !5
  %5758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5759 = load i32, ptr %5758, align 4, !tbaa !5
  %5760 = call ptr @s2n_strerror(i32 noundef %5759, ptr noundef @.str.4)
  %5761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5762 = load i32, ptr %5761, align 4, !tbaa !5
  %5763 = call ptr @s2n_strerror_debug(i32 noundef %5762, ptr noundef @.str.4)
  %5764 = call ptr @__errno_location() #13
  %5765 = load i32, ptr %5764, align 4, !tbaa !5
  %5766 = call ptr @strerror(i32 noundef %5765) #12
  %5767 = call ptr @__errno_location() #13
  %5768 = load i32, ptr %5767, align 4, !tbaa !5
  %5769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5756, ptr noundef @.str.2, i32 noundef %5757, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 359, ptr noundef %5760, ptr noundef %5763, ptr noundef %5766, i32 noundef %5768) #12
  br label %5787

5770:                                             ; preds = %5748, %5741
  %5771 = load i32, ptr %122, align 4, !tbaa !5
  %5772 = call ptr @__errno_location() #13
  store i32 %5771, ptr %5772, align 4, !tbaa !5
  %5773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5774 = load i32, ptr @test_count, align 4, !tbaa !5
  %5775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5776 = load i32, ptr %5775, align 4, !tbaa !5
  %5777 = call ptr @s2n_strerror(i32 noundef %5776, ptr noundef @.str.4)
  %5778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5779 = load i32, ptr %5778, align 4, !tbaa !5
  %5780 = call ptr @s2n_strerror_debug(i32 noundef %5779, ptr noundef @.str.4)
  %5781 = call ptr @__errno_location() #13
  %5782 = load i32, ptr %5781, align 4, !tbaa !5
  %5783 = call ptr @strerror(i32 noundef %5782) #12
  %5784 = call ptr @__errno_location() #13
  %5785 = load i32, ptr %5784, align 4, !tbaa !5
  %5786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5773, ptr noundef @.str.5, i32 noundef %5774, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 359, ptr noundef %5777, ptr noundef %5780, ptr noundef %5783, i32 noundef %5785) #12
  br label %5787

5787:                                             ; preds = %5770, %5753
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #12
  br label %5788

5788:                                             ; preds = %5787
  br label %5789

5789:                                             ; preds = %5788
  call void @exit(i32 noundef 1) #14
  unreachable

5790:                                             ; No predecessors!
  br label %5791

5791:                                             ; preds = %5790
  br label %5792

5792:                                             ; preds = %5791, %5733
  br label %5793

5793:                                             ; preds = %5792
  br label %5794

5794:                                             ; preds = %5793
  br label %5795

5795:                                             ; preds = %5794
  %5796 = load i32, ptr @test_count, align 4, !tbaa !5
  %5797 = add nsw i32 %5796, 1
  store i32 %5797, ptr @test_count, align 4, !tbaa !5
  %5798 = load ptr, ptr %47, align 8, !tbaa !9
  %5799 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %5798, ptr noundef @.str.53)
  %5800 = icmp eq i32 %5799, -1
  br i1 %5800, label %5801, label %5854

5801:                                             ; preds = %5795
  br label %5802

5802:                                             ; preds = %5801
  br label %5803

5803:                                             ; preds = %5802
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #12
  %5804 = call ptr @__errno_location() #13
  %5805 = load i32, ptr %5804, align 4, !tbaa !5
  store i32 %5805, ptr %123, align 4, !tbaa !5
  %5806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5807 = call i32 @s2n_print_stacktrace(ptr noundef %5806)
  %5808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5809 = trunc i8 %5808 to i1
  br i1 %5809, label %5810, label %5832

5810:                                             ; preds = %5803
  %5811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5812 = call i32 @fileno(ptr noundef %5811) #12
  %5813 = call i32 @isatty(i32 noundef %5812) #12
  %5814 = icmp ne i32 %5813, 0
  br i1 %5814, label %5815, label %5832

5815:                                             ; preds = %5810
  %5816 = load i32, ptr %123, align 4, !tbaa !5
  %5817 = call ptr @__errno_location() #13
  store i32 %5816, ptr %5817, align 4, !tbaa !5
  %5818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5819 = load i32, ptr @test_count, align 4, !tbaa !5
  %5820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5821 = load i32, ptr %5820, align 4, !tbaa !5
  %5822 = call ptr @s2n_strerror(i32 noundef %5821, ptr noundef @.str.4)
  %5823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5824 = load i32, ptr %5823, align 4, !tbaa !5
  %5825 = call ptr @s2n_strerror_debug(i32 noundef %5824, ptr noundef @.str.4)
  %5826 = call ptr @__errno_location() #13
  %5827 = load i32, ptr %5826, align 4, !tbaa !5
  %5828 = call ptr @strerror(i32 noundef %5827) #12
  %5829 = call ptr @__errno_location() #13
  %5830 = load i32, ptr %5829, align 4, !tbaa !5
  %5831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5818, ptr noundef @.str.2, i32 noundef %5819, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 362, ptr noundef %5822, ptr noundef %5825, ptr noundef %5828, i32 noundef %5830) #12
  br label %5849

5832:                                             ; preds = %5810, %5803
  %5833 = load i32, ptr %123, align 4, !tbaa !5
  %5834 = call ptr @__errno_location() #13
  store i32 %5833, ptr %5834, align 4, !tbaa !5
  %5835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5836 = load i32, ptr @test_count, align 4, !tbaa !5
  %5837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5838 = load i32, ptr %5837, align 4, !tbaa !5
  %5839 = call ptr @s2n_strerror(i32 noundef %5838, ptr noundef @.str.4)
  %5840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5841 = load i32, ptr %5840, align 4, !tbaa !5
  %5842 = call ptr @s2n_strerror_debug(i32 noundef %5841, ptr noundef @.str.4)
  %5843 = call ptr @__errno_location() #13
  %5844 = load i32, ptr %5843, align 4, !tbaa !5
  %5845 = call ptr @strerror(i32 noundef %5844) #12
  %5846 = call ptr @__errno_location() #13
  %5847 = load i32, ptr %5846, align 4, !tbaa !5
  %5848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5835, ptr noundef @.str.5, i32 noundef %5836, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 362, ptr noundef %5839, ptr noundef %5842, ptr noundef %5845, i32 noundef %5847) #12
  br label %5849

5849:                                             ; preds = %5832, %5815
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #12
  br label %5850

5850:                                             ; preds = %5849
  br label %5851

5851:                                             ; preds = %5850
  call void @exit(i32 noundef 1) #14
  unreachable

5852:                                             ; No predecessors!
  br label %5853

5853:                                             ; preds = %5852
  br label %5854

5854:                                             ; preds = %5853, %5795
  br label %5855

5855:                                             ; preds = %5854
  br label %5856

5856:                                             ; preds = %5855
  %5857 = load ptr, ptr %103, align 8, !tbaa !9
  %5858 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %5857, i32 0, i32 1
  %5859 = load ptr, ptr %5858, align 8, !tbaa !55
  %5860 = getelementptr inbounds ptr, ptr %5859, i64 0
  %5861 = load ptr, ptr %5860, align 8, !tbaa !9
  %5862 = load ptr, ptr %47, align 8, !tbaa !9
  %5863 = getelementptr inbounds %struct.s2n_connection, ptr %5862, i32 0, i32 31
  %5864 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5863, i32 0, i32 1
  %5865 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5864, i32 0, i32 0
  store ptr %5861, ptr %5865, align 8, !tbaa !57
  %5866 = load ptr, ptr %47, align 8, !tbaa !9
  %5867 = getelementptr inbounds %struct.s2n_connection, ptr %5866, i32 0, i32 22
  %5868 = load i8, ptr %5867, align 1, !tbaa !43
  %5869 = load ptr, ptr %47, align 8, !tbaa !9
  %5870 = getelementptr inbounds %struct.s2n_connection, ptr %5869, i32 0, i32 23
  store i8 %5868, ptr %5870, align 4, !tbaa !42
  br label %5871

5871:                                             ; preds = %5856
  %5872 = load i32, ptr @test_count, align 4, !tbaa !5
  %5873 = add nsw i32 %5872, 1
  store i32 %5873, ptr @test_count, align 4, !tbaa !5
  %5874 = load ptr, ptr %47, align 8, !tbaa !9
  %5875 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %5876 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %5874, ptr noundef %5875, i16 noundef zeroext 2)
  %5877 = icmp eq i32 %5876, -1
  br i1 %5877, label %5878, label %5931

5878:                                             ; preds = %5871
  br label %5879

5879:                                             ; preds = %5878
  br label %5880

5880:                                             ; preds = %5879
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #12
  %5881 = call ptr @__errno_location() #13
  %5882 = load i32, ptr %5881, align 4, !tbaa !5
  store i32 %5882, ptr %124, align 4, !tbaa !5
  %5883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5884 = call i32 @s2n_print_stacktrace(ptr noundef %5883)
  %5885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5886 = trunc i8 %5885 to i1
  br i1 %5886, label %5887, label %5909

5887:                                             ; preds = %5880
  %5888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5889 = call i32 @fileno(ptr noundef %5888) #12
  %5890 = call i32 @isatty(i32 noundef %5889) #12
  %5891 = icmp ne i32 %5890, 0
  br i1 %5891, label %5892, label %5909

5892:                                             ; preds = %5887
  %5893 = load i32, ptr %124, align 4, !tbaa !5
  %5894 = call ptr @__errno_location() #13
  store i32 %5893, ptr %5894, align 4, !tbaa !5
  %5895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5896 = load i32, ptr @test_count, align 4, !tbaa !5
  %5897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5898 = load i32, ptr %5897, align 4, !tbaa !5
  %5899 = call ptr @s2n_strerror(i32 noundef %5898, ptr noundef @.str.4)
  %5900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5901 = load i32, ptr %5900, align 4, !tbaa !5
  %5902 = call ptr @s2n_strerror_debug(i32 noundef %5901, ptr noundef @.str.4)
  %5903 = call ptr @__errno_location() #13
  %5904 = load i32, ptr %5903, align 4, !tbaa !5
  %5905 = call ptr @strerror(i32 noundef %5904) #12
  %5906 = call ptr @__errno_location() #13
  %5907 = load i32, ptr %5906, align 4, !tbaa !5
  %5908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5895, ptr noundef @.str.2, i32 noundef %5896, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 366, ptr noundef %5899, ptr noundef %5902, ptr noundef %5905, i32 noundef %5907) #12
  br label %5926

5909:                                             ; preds = %5887, %5880
  %5910 = load i32, ptr %124, align 4, !tbaa !5
  %5911 = call ptr @__errno_location() #13
  store i32 %5910, ptr %5911, align 4, !tbaa !5
  %5912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5913 = load i32, ptr @test_count, align 4, !tbaa !5
  %5914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5915 = load i32, ptr %5914, align 4, !tbaa !5
  %5916 = call ptr @s2n_strerror(i32 noundef %5915, ptr noundef @.str.4)
  %5917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5918 = load i32, ptr %5917, align 4, !tbaa !5
  %5919 = call ptr @s2n_strerror_debug(i32 noundef %5918, ptr noundef @.str.4)
  %5920 = call ptr @__errno_location() #13
  %5921 = load i32, ptr %5920, align 4, !tbaa !5
  %5922 = call ptr @strerror(i32 noundef %5921) #12
  %5923 = call ptr @__errno_location() #13
  %5924 = load i32, ptr %5923, align 4, !tbaa !5
  %5925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5912, ptr noundef @.str.5, i32 noundef %5913, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 366, ptr noundef %5916, ptr noundef %5919, ptr noundef %5922, i32 noundef %5924) #12
  br label %5926

5926:                                             ; preds = %5909, %5892
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #12
  br label %5927

5927:                                             ; preds = %5926
  br label %5928

5928:                                             ; preds = %5927
  call void @exit(i32 noundef 1) #14
  unreachable

5929:                                             ; No predecessors!
  br label %5930

5930:                                             ; preds = %5929
  br label %5931

5931:                                             ; preds = %5930, %5871
  br label %5932

5932:                                             ; preds = %5931
  br label %5933

5933:                                             ; preds = %5932
  br label %5934

5934:                                             ; preds = %5933
  %5935 = load i32, ptr @test_count, align 4, !tbaa !5
  %5936 = add nsw i32 %5935, 1
  store i32 %5936, ptr @test_count, align 4, !tbaa !5
  %5937 = load ptr, ptr %47, align 8, !tbaa !9
  %5938 = load i32, ptr %5937, align 8
  %5939 = lshr i32 %5938, 3
  %5940 = and i32 %5939, 1
  %5941 = icmp eq i32 %5940, 0
  br i1 %5941, label %5995, label %5942

5942:                                             ; preds = %5934
  br label %5943

5943:                                             ; preds = %5942
  br label %5944

5944:                                             ; preds = %5943
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #12
  %5945 = call ptr @__errno_location() #13
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  store i32 %5946, ptr %125, align 4, !tbaa !5
  %5947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5948 = call i32 @s2n_print_stacktrace(ptr noundef %5947)
  %5949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5950 = trunc i8 %5949 to i1
  br i1 %5950, label %5951, label %5973

5951:                                             ; preds = %5944
  %5952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5953 = call i32 @fileno(ptr noundef %5952) #12
  %5954 = call i32 @isatty(i32 noundef %5953) #12
  %5955 = icmp ne i32 %5954, 0
  br i1 %5955, label %5956, label %5973

5956:                                             ; preds = %5951
  %5957 = load i32, ptr %125, align 4, !tbaa !5
  %5958 = call ptr @__errno_location() #13
  store i32 %5957, ptr %5958, align 4, !tbaa !5
  %5959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5960 = load i32, ptr @test_count, align 4, !tbaa !5
  %5961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5962 = load i32, ptr %5961, align 4, !tbaa !5
  %5963 = call ptr @s2n_strerror(i32 noundef %5962, ptr noundef @.str.4)
  %5964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5965 = load i32, ptr %5964, align 4, !tbaa !5
  %5966 = call ptr @s2n_strerror_debug(i32 noundef %5965, ptr noundef @.str.4)
  %5967 = call ptr @__errno_location() #13
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  %5969 = call ptr @strerror(i32 noundef %5968) #12
  %5970 = call ptr @__errno_location() #13
  %5971 = load i32, ptr %5970, align 4, !tbaa !5
  %5972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5959, ptr noundef @.str.2, i32 noundef %5960, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 367, ptr noundef %5963, ptr noundef %5966, ptr noundef %5969, i32 noundef %5971) #12
  br label %5990

5973:                                             ; preds = %5951, %5944
  %5974 = load i32, ptr %125, align 4, !tbaa !5
  %5975 = call ptr @__errno_location() #13
  store i32 %5974, ptr %5975, align 4, !tbaa !5
  %5976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5977 = load i32, ptr @test_count, align 4, !tbaa !5
  %5978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  %5980 = call ptr @s2n_strerror(i32 noundef %5979, ptr noundef @.str.4)
  %5981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5982 = load i32, ptr %5981, align 4, !tbaa !5
  %5983 = call ptr @s2n_strerror_debug(i32 noundef %5982, ptr noundef @.str.4)
  %5984 = call ptr @__errno_location() #13
  %5985 = load i32, ptr %5984, align 4, !tbaa !5
  %5986 = call ptr @strerror(i32 noundef %5985) #12
  %5987 = call ptr @__errno_location() #13
  %5988 = load i32, ptr %5987, align 4, !tbaa !5
  %5989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5976, ptr noundef @.str.5, i32 noundef %5977, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 367, ptr noundef %5980, ptr noundef %5983, ptr noundef %5986, i32 noundef %5988) #12
  br label %5990

5990:                                             ; preds = %5973, %5956
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #12
  br label %5991

5991:                                             ; preds = %5990
  br label %5992

5992:                                             ; preds = %5991
  call void @exit(i32 noundef 1) #14
  unreachable

5993:                                             ; No predecessors!
  br label %5994

5994:                                             ; preds = %5993
  br label %5995

5995:                                             ; preds = %5994, %5934
  br label %5996

5996:                                             ; preds = %5995
  br label %5997

5997:                                             ; preds = %5996
  br label %5998

5998:                                             ; preds = %5997
  %5999 = load i32, ptr @test_count, align 4, !tbaa !5
  %6000 = add nsw i32 %5999, 1
  store i32 %6000, ptr @test_count, align 4, !tbaa !5
  %6001 = load ptr, ptr %47, align 8, !tbaa !9
  %6002 = getelementptr inbounds %struct.s2n_connection, ptr %6001, i32 0, i32 27
  %6003 = load ptr, ptr %6002, align 8, !tbaa !48
  %6004 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6003, i32 0, i32 0
  %6005 = load ptr, ptr %6004, align 8, !tbaa !49
  %6006 = load ptr, ptr %118, align 8, !tbaa !9
  %6007 = icmp eq ptr %6005, %6006
  br i1 %6007, label %6061, label %6008

6008:                                             ; preds = %5998
  br label %6009

6009:                                             ; preds = %6008
  br label %6010

6010:                                             ; preds = %6009
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #12
  %6011 = call ptr @__errno_location() #13
  %6012 = load i32, ptr %6011, align 4, !tbaa !5
  store i32 %6012, ptr %126, align 4, !tbaa !5
  %6013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6014 = call i32 @s2n_print_stacktrace(ptr noundef %6013)
  %6015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6016 = trunc i8 %6015 to i1
  br i1 %6016, label %6017, label %6039

6017:                                             ; preds = %6010
  %6018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6019 = call i32 @fileno(ptr noundef %6018) #12
  %6020 = call i32 @isatty(i32 noundef %6019) #12
  %6021 = icmp ne i32 %6020, 0
  br i1 %6021, label %6022, label %6039

6022:                                             ; preds = %6017
  %6023 = load i32, ptr %126, align 4, !tbaa !5
  %6024 = call ptr @__errno_location() #13
  store i32 %6023, ptr %6024, align 4, !tbaa !5
  %6025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6026 = load i32, ptr @test_count, align 4, !tbaa !5
  %6027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6028 = load i32, ptr %6027, align 4, !tbaa !5
  %6029 = call ptr @s2n_strerror(i32 noundef %6028, ptr noundef @.str.4)
  %6030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6031 = load i32, ptr %6030, align 4, !tbaa !5
  %6032 = call ptr @s2n_strerror_debug(i32 noundef %6031, ptr noundef @.str.4)
  %6033 = call ptr @__errno_location() #13
  %6034 = load i32, ptr %6033, align 4, !tbaa !5
  %6035 = call ptr @strerror(i32 noundef %6034) #12
  %6036 = call ptr @__errno_location() #13
  %6037 = load i32, ptr %6036, align 4, !tbaa !5
  %6038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6025, ptr noundef @.str.2, i32 noundef %6026, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 368, ptr noundef %6029, ptr noundef %6032, ptr noundef %6035, i32 noundef %6037) #12
  br label %6056

6039:                                             ; preds = %6017, %6010
  %6040 = load i32, ptr %126, align 4, !tbaa !5
  %6041 = call ptr @__errno_location() #13
  store i32 %6040, ptr %6041, align 4, !tbaa !5
  %6042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6043 = load i32, ptr @test_count, align 4, !tbaa !5
  %6044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6045 = load i32, ptr %6044, align 4, !tbaa !5
  %6046 = call ptr @s2n_strerror(i32 noundef %6045, ptr noundef @.str.4)
  %6047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6048 = load i32, ptr %6047, align 4, !tbaa !5
  %6049 = call ptr @s2n_strerror_debug(i32 noundef %6048, ptr noundef @.str.4)
  %6050 = call ptr @__errno_location() #13
  %6051 = load i32, ptr %6050, align 4, !tbaa !5
  %6052 = call ptr @strerror(i32 noundef %6051) #12
  %6053 = call ptr @__errno_location() #13
  %6054 = load i32, ptr %6053, align 4, !tbaa !5
  %6055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6042, ptr noundef @.str.5, i32 noundef %6043, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 368, ptr noundef %6046, ptr noundef %6049, ptr noundef %6052, i32 noundef %6054) #12
  br label %6056

6056:                                             ; preds = %6039, %6022
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #12
  br label %6057

6057:                                             ; preds = %6056
  br label %6058

6058:                                             ; preds = %6057
  call void @exit(i32 noundef 1) #14
  unreachable

6059:                                             ; No predecessors!
  br label %6060

6060:                                             ; preds = %6059
  br label %6061

6061:                                             ; preds = %6060, %5998
  br label %6062

6062:                                             ; preds = %6061
  br label %6063

6063:                                             ; preds = %6062
  br label %6064

6064:                                             ; preds = %6063
  %6065 = load i32, ptr @test_count, align 4, !tbaa !5
  %6066 = add nsw i32 %6065, 1
  store i32 %6066, ptr @test_count, align 4, !tbaa !5
  %6067 = load ptr, ptr %47, align 8, !tbaa !9
  %6068 = call i32 @s2n_connection_wipe(ptr noundef %6067)
  %6069 = icmp eq i32 %6068, -1
  br i1 %6069, label %6070, label %6123

6070:                                             ; preds = %6064
  br label %6071

6071:                                             ; preds = %6070
  br label %6072

6072:                                             ; preds = %6071
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #12
  %6073 = call ptr @__errno_location() #13
  %6074 = load i32, ptr %6073, align 4, !tbaa !5
  store i32 %6074, ptr %127, align 4, !tbaa !5
  %6075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6076 = call i32 @s2n_print_stacktrace(ptr noundef %6075)
  %6077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6078 = trunc i8 %6077 to i1
  br i1 %6078, label %6079, label %6101

6079:                                             ; preds = %6072
  %6080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6081 = call i32 @fileno(ptr noundef %6080) #12
  %6082 = call i32 @isatty(i32 noundef %6081) #12
  %6083 = icmp ne i32 %6082, 0
  br i1 %6083, label %6084, label %6101

6084:                                             ; preds = %6079
  %6085 = load i32, ptr %127, align 4, !tbaa !5
  %6086 = call ptr @__errno_location() #13
  store i32 %6085, ptr %6086, align 4, !tbaa !5
  %6087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6088 = load i32, ptr @test_count, align 4, !tbaa !5
  %6089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6090 = load i32, ptr %6089, align 4, !tbaa !5
  %6091 = call ptr @s2n_strerror(i32 noundef %6090, ptr noundef @.str.4)
  %6092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6093 = load i32, ptr %6092, align 4, !tbaa !5
  %6094 = call ptr @s2n_strerror_debug(i32 noundef %6093, ptr noundef @.str.4)
  %6095 = call ptr @__errno_location() #13
  %6096 = load i32, ptr %6095, align 4, !tbaa !5
  %6097 = call ptr @strerror(i32 noundef %6096) #12
  %6098 = call ptr @__errno_location() #13
  %6099 = load i32, ptr %6098, align 4, !tbaa !5
  %6100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6087, ptr noundef @.str.2, i32 noundef %6088, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 369, ptr noundef %6091, ptr noundef %6094, ptr noundef %6097, i32 noundef %6099) #12
  br label %6118

6101:                                             ; preds = %6079, %6072
  %6102 = load i32, ptr %127, align 4, !tbaa !5
  %6103 = call ptr @__errno_location() #13
  store i32 %6102, ptr %6103, align 4, !tbaa !5
  %6104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6105 = load i32, ptr @test_count, align 4, !tbaa !5
  %6106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6107 = load i32, ptr %6106, align 4, !tbaa !5
  %6108 = call ptr @s2n_strerror(i32 noundef %6107, ptr noundef @.str.4)
  %6109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6110 = load i32, ptr %6109, align 4, !tbaa !5
  %6111 = call ptr @s2n_strerror_debug(i32 noundef %6110, ptr noundef @.str.4)
  %6112 = call ptr @__errno_location() #13
  %6113 = load i32, ptr %6112, align 4, !tbaa !5
  %6114 = call ptr @strerror(i32 noundef %6113) #12
  %6115 = call ptr @__errno_location() #13
  %6116 = load i32, ptr %6115, align 4, !tbaa !5
  %6117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6104, ptr noundef @.str.5, i32 noundef %6105, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 369, ptr noundef %6108, ptr noundef %6111, ptr noundef %6114, i32 noundef %6116) #12
  br label %6118

6118:                                             ; preds = %6101, %6084
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #12
  br label %6119

6119:                                             ; preds = %6118
  br label %6120

6120:                                             ; preds = %6119
  call void @exit(i32 noundef 1) #14
  unreachable

6121:                                             ; No predecessors!
  br label %6122

6122:                                             ; preds = %6121
  br label %6123

6123:                                             ; preds = %6122, %6064
  br label %6124

6124:                                             ; preds = %6123
  br label %6125

6125:                                             ; preds = %6124
  br label %6126

6126:                                             ; preds = %6125
  %6127 = load i32, ptr @test_count, align 4, !tbaa !5
  %6128 = add nsw i32 %6127, 1
  store i32 %6128, ptr @test_count, align 4, !tbaa !5
  %6129 = load ptr, ptr %48, align 8, !tbaa !9
  %6130 = call i32 @s2n_config_free(ptr noundef %6129)
  %6131 = icmp eq i32 %6130, -1
  br i1 %6131, label %6132, label %6185

6132:                                             ; preds = %6126
  br label %6133

6133:                                             ; preds = %6132
  br label %6134

6134:                                             ; preds = %6133
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #12
  %6135 = call ptr @__errno_location() #13
  %6136 = load i32, ptr %6135, align 4, !tbaa !5
  store i32 %6136, ptr %128, align 4, !tbaa !5
  %6137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6138 = call i32 @s2n_print_stacktrace(ptr noundef %6137)
  %6139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6140 = trunc i8 %6139 to i1
  br i1 %6140, label %6141, label %6163

6141:                                             ; preds = %6134
  %6142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6143 = call i32 @fileno(ptr noundef %6142) #12
  %6144 = call i32 @isatty(i32 noundef %6143) #12
  %6145 = icmp ne i32 %6144, 0
  br i1 %6145, label %6146, label %6163

6146:                                             ; preds = %6141
  %6147 = load i32, ptr %128, align 4, !tbaa !5
  %6148 = call ptr @__errno_location() #13
  store i32 %6147, ptr %6148, align 4, !tbaa !5
  %6149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6150 = load i32, ptr @test_count, align 4, !tbaa !5
  %6151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6152 = load i32, ptr %6151, align 4, !tbaa !5
  %6153 = call ptr @s2n_strerror(i32 noundef %6152, ptr noundef @.str.4)
  %6154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6155 = load i32, ptr %6154, align 4, !tbaa !5
  %6156 = call ptr @s2n_strerror_debug(i32 noundef %6155, ptr noundef @.str.4)
  %6157 = call ptr @__errno_location() #13
  %6158 = load i32, ptr %6157, align 4, !tbaa !5
  %6159 = call ptr @strerror(i32 noundef %6158) #12
  %6160 = call ptr @__errno_location() #13
  %6161 = load i32, ptr %6160, align 4, !tbaa !5
  %6162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6149, ptr noundef @.str.2, i32 noundef %6150, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 370, ptr noundef %6153, ptr noundef %6156, ptr noundef %6159, i32 noundef %6161) #12
  br label %6180

6163:                                             ; preds = %6141, %6134
  %6164 = load i32, ptr %128, align 4, !tbaa !5
  %6165 = call ptr @__errno_location() #13
  store i32 %6164, ptr %6165, align 4, !tbaa !5
  %6166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6167 = load i32, ptr @test_count, align 4, !tbaa !5
  %6168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6169 = load i32, ptr %6168, align 4, !tbaa !5
  %6170 = call ptr @s2n_strerror(i32 noundef %6169, ptr noundef @.str.4)
  %6171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6172 = load i32, ptr %6171, align 4, !tbaa !5
  %6173 = call ptr @s2n_strerror_debug(i32 noundef %6172, ptr noundef @.str.4)
  %6174 = call ptr @__errno_location() #13
  %6175 = load i32, ptr %6174, align 4, !tbaa !5
  %6176 = call ptr @strerror(i32 noundef %6175) #12
  %6177 = call ptr @__errno_location() #13
  %6178 = load i32, ptr %6177, align 4, !tbaa !5
  %6179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6166, ptr noundef @.str.5, i32 noundef %6167, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 370, ptr noundef %6170, ptr noundef %6173, ptr noundef %6176, i32 noundef %6178) #12
  br label %6180

6180:                                             ; preds = %6163, %6146
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #12
  br label %6181

6181:                                             ; preds = %6180
  br label %6182

6182:                                             ; preds = %6181
  call void @exit(i32 noundef 1) #14
  unreachable

6183:                                             ; No predecessors!
  br label %6184

6184:                                             ; preds = %6183
  br label %6185

6185:                                             ; preds = %6184, %6126
  br label %6186

6186:                                             ; preds = %6185
  br label %6187

6187:                                             ; preds = %6186
  br label %6188

6188:                                             ; preds = %6187
  %6189 = load i32, ptr @test_count, align 4, !tbaa !5
  %6190 = add nsw i32 %6189, 1
  store i32 %6190, ptr @test_count, align 4, !tbaa !5
  %6191 = call ptr @s2n_config_new()
  store ptr %6191, ptr %48, align 8, !tbaa !9
  %6192 = icmp eq ptr %6191, null
  br i1 %6192, label %6193, label %6246

6193:                                             ; preds = %6188
  br label %6194

6194:                                             ; preds = %6193
  br label %6195

6195:                                             ; preds = %6194
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #12
  %6196 = call ptr @__errno_location() #13
  %6197 = load i32, ptr %6196, align 4, !tbaa !5
  store i32 %6197, ptr %129, align 4, !tbaa !5
  %6198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6199 = call i32 @s2n_print_stacktrace(ptr noundef %6198)
  %6200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6201 = trunc i8 %6200 to i1
  br i1 %6201, label %6202, label %6224

6202:                                             ; preds = %6195
  %6203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6204 = call i32 @fileno(ptr noundef %6203) #12
  %6205 = call i32 @isatty(i32 noundef %6204) #12
  %6206 = icmp ne i32 %6205, 0
  br i1 %6206, label %6207, label %6224

6207:                                             ; preds = %6202
  %6208 = load i32, ptr %129, align 4, !tbaa !5
  %6209 = call ptr @__errno_location() #13
  store i32 %6208, ptr %6209, align 4, !tbaa !5
  %6210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6211 = load i32, ptr @test_count, align 4, !tbaa !5
  %6212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6213 = load i32, ptr %6212, align 4, !tbaa !5
  %6214 = call ptr @s2n_strerror(i32 noundef %6213, ptr noundef @.str.4)
  %6215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6216 = load i32, ptr %6215, align 4, !tbaa !5
  %6217 = call ptr @s2n_strerror_debug(i32 noundef %6216, ptr noundef @.str.4)
  %6218 = call ptr @__errno_location() #13
  %6219 = load i32, ptr %6218, align 4, !tbaa !5
  %6220 = call ptr @strerror(i32 noundef %6219) #12
  %6221 = call ptr @__errno_location() #13
  %6222 = load i32, ptr %6221, align 4, !tbaa !5
  %6223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6210, ptr noundef @.str.2, i32 noundef %6211, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 375, ptr noundef %6214, ptr noundef %6217, ptr noundef %6220, i32 noundef %6222) #12
  br label %6241

6224:                                             ; preds = %6202, %6195
  %6225 = load i32, ptr %129, align 4, !tbaa !5
  %6226 = call ptr @__errno_location() #13
  store i32 %6225, ptr %6226, align 4, !tbaa !5
  %6227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6228 = load i32, ptr @test_count, align 4, !tbaa !5
  %6229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6230 = load i32, ptr %6229, align 4, !tbaa !5
  %6231 = call ptr @s2n_strerror(i32 noundef %6230, ptr noundef @.str.4)
  %6232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6233 = load i32, ptr %6232, align 4, !tbaa !5
  %6234 = call ptr @s2n_strerror_debug(i32 noundef %6233, ptr noundef @.str.4)
  %6235 = call ptr @__errno_location() #13
  %6236 = load i32, ptr %6235, align 4, !tbaa !5
  %6237 = call ptr @strerror(i32 noundef %6236) #12
  %6238 = call ptr @__errno_location() #13
  %6239 = load i32, ptr %6238, align 4, !tbaa !5
  %6240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6227, ptr noundef @.str.5, i32 noundef %6228, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 375, ptr noundef %6231, ptr noundef %6234, ptr noundef %6237, i32 noundef %6239) #12
  br label %6241

6241:                                             ; preds = %6224, %6207
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #12
  br label %6242

6242:                                             ; preds = %6241
  br label %6243

6243:                                             ; preds = %6242
  call void @exit(i32 noundef 1) #14
  unreachable

6244:                                             ; No predecessors!
  br label %6245

6245:                                             ; preds = %6244
  br label %6246

6246:                                             ; preds = %6245, %6188
  br label %6247

6247:                                             ; preds = %6246
  br label %6248

6248:                                             ; preds = %6247
  br label %6249

6249:                                             ; preds = %6248
  %6250 = load i32, ptr @test_count, align 4, !tbaa !5
  %6251 = add nsw i32 %6250, 1
  store i32 %6251, ptr @test_count, align 4, !tbaa !5
  %6252 = load ptr, ptr %48, align 8, !tbaa !9
  %6253 = load ptr, ptr %53, align 8, !tbaa !9
  %6254 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6252, ptr noundef %6253)
  %6255 = icmp eq i32 %6254, -1
  br i1 %6255, label %6256, label %6309

6256:                                             ; preds = %6249
  br label %6257

6257:                                             ; preds = %6256
  br label %6258

6258:                                             ; preds = %6257
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #12
  %6259 = call ptr @__errno_location() #13
  %6260 = load i32, ptr %6259, align 4, !tbaa !5
  store i32 %6260, ptr %130, align 4, !tbaa !5
  %6261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6262 = call i32 @s2n_print_stacktrace(ptr noundef %6261)
  %6263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6264 = trunc i8 %6263 to i1
  br i1 %6264, label %6265, label %6287

6265:                                             ; preds = %6258
  %6266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6267 = call i32 @fileno(ptr noundef %6266) #12
  %6268 = call i32 @isatty(i32 noundef %6267) #12
  %6269 = icmp ne i32 %6268, 0
  br i1 %6269, label %6270, label %6287

6270:                                             ; preds = %6265
  %6271 = load i32, ptr %130, align 4, !tbaa !5
  %6272 = call ptr @__errno_location() #13
  store i32 %6271, ptr %6272, align 4, !tbaa !5
  %6273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6274 = load i32, ptr @test_count, align 4, !tbaa !5
  %6275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6276 = load i32, ptr %6275, align 4, !tbaa !5
  %6277 = call ptr @s2n_strerror(i32 noundef %6276, ptr noundef @.str.4)
  %6278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6279 = load i32, ptr %6278, align 4, !tbaa !5
  %6280 = call ptr @s2n_strerror_debug(i32 noundef %6279, ptr noundef @.str.4)
  %6281 = call ptr @__errno_location() #13
  %6282 = load i32, ptr %6281, align 4, !tbaa !5
  %6283 = call ptr @strerror(i32 noundef %6282) #12
  %6284 = call ptr @__errno_location() #13
  %6285 = load i32, ptr %6284, align 4, !tbaa !5
  %6286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6273, ptr noundef @.str.2, i32 noundef %6274, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 376, ptr noundef %6277, ptr noundef %6280, ptr noundef %6283, i32 noundef %6285) #12
  br label %6304

6287:                                             ; preds = %6265, %6258
  %6288 = load i32, ptr %130, align 4, !tbaa !5
  %6289 = call ptr @__errno_location() #13
  store i32 %6288, ptr %6289, align 4, !tbaa !5
  %6290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6291 = load i32, ptr @test_count, align 4, !tbaa !5
  %6292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6293 = load i32, ptr %6292, align 4, !tbaa !5
  %6294 = call ptr @s2n_strerror(i32 noundef %6293, ptr noundef @.str.4)
  %6295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6296 = load i32, ptr %6295, align 4, !tbaa !5
  %6297 = call ptr @s2n_strerror_debug(i32 noundef %6296, ptr noundef @.str.4)
  %6298 = call ptr @__errno_location() #13
  %6299 = load i32, ptr %6298, align 4, !tbaa !5
  %6300 = call ptr @strerror(i32 noundef %6299) #12
  %6301 = call ptr @__errno_location() #13
  %6302 = load i32, ptr %6301, align 4, !tbaa !5
  %6303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6290, ptr noundef @.str.5, i32 noundef %6291, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 376, ptr noundef %6294, ptr noundef %6297, ptr noundef %6300, i32 noundef %6302) #12
  br label %6304

6304:                                             ; preds = %6287, %6270
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #12
  br label %6305

6305:                                             ; preds = %6304
  br label %6306

6306:                                             ; preds = %6305
  call void @exit(i32 noundef 1) #14
  unreachable

6307:                                             ; No predecessors!
  br label %6308

6308:                                             ; preds = %6307
  br label %6309

6309:                                             ; preds = %6308, %6249
  br label %6310

6310:                                             ; preds = %6309
  br label %6311

6311:                                             ; preds = %6310
  br label %6312

6312:                                             ; preds = %6311
  %6313 = load i32, ptr @test_count, align 4, !tbaa !5
  %6314 = add nsw i32 %6313, 1
  store i32 %6314, ptr @test_count, align 4, !tbaa !5
  %6315 = load ptr, ptr %48, align 8, !tbaa !9
  %6316 = load ptr, ptr %54, align 8, !tbaa !9
  %6317 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6315, ptr noundef %6316)
  %6318 = icmp eq i32 %6317, -1
  br i1 %6318, label %6319, label %6372

6319:                                             ; preds = %6312
  br label %6320

6320:                                             ; preds = %6319
  br label %6321

6321:                                             ; preds = %6320
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #12
  %6322 = call ptr @__errno_location() #13
  %6323 = load i32, ptr %6322, align 4, !tbaa !5
  store i32 %6323, ptr %131, align 4, !tbaa !5
  %6324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6325 = call i32 @s2n_print_stacktrace(ptr noundef %6324)
  %6326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6327 = trunc i8 %6326 to i1
  br i1 %6327, label %6328, label %6350

6328:                                             ; preds = %6321
  %6329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6330 = call i32 @fileno(ptr noundef %6329) #12
  %6331 = call i32 @isatty(i32 noundef %6330) #12
  %6332 = icmp ne i32 %6331, 0
  br i1 %6332, label %6333, label %6350

6333:                                             ; preds = %6328
  %6334 = load i32, ptr %131, align 4, !tbaa !5
  %6335 = call ptr @__errno_location() #13
  store i32 %6334, ptr %6335, align 4, !tbaa !5
  %6336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6337 = load i32, ptr @test_count, align 4, !tbaa !5
  %6338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6339 = load i32, ptr %6338, align 4, !tbaa !5
  %6340 = call ptr @s2n_strerror(i32 noundef %6339, ptr noundef @.str.4)
  %6341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6342 = load i32, ptr %6341, align 4, !tbaa !5
  %6343 = call ptr @s2n_strerror_debug(i32 noundef %6342, ptr noundef @.str.4)
  %6344 = call ptr @__errno_location() #13
  %6345 = load i32, ptr %6344, align 4, !tbaa !5
  %6346 = call ptr @strerror(i32 noundef %6345) #12
  %6347 = call ptr @__errno_location() #13
  %6348 = load i32, ptr %6347, align 4, !tbaa !5
  %6349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6336, ptr noundef @.str.2, i32 noundef %6337, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 377, ptr noundef %6340, ptr noundef %6343, ptr noundef %6346, i32 noundef %6348) #12
  br label %6367

6350:                                             ; preds = %6328, %6321
  %6351 = load i32, ptr %131, align 4, !tbaa !5
  %6352 = call ptr @__errno_location() #13
  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.4)
  %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.4)
  %6361 = call ptr @__errno_location() #13
  %6362 = load i32, ptr %6361, align 4, !tbaa !5
  %6363 = call ptr @strerror(i32 noundef %6362) #12
  %6364 = call ptr @__errno_location() #13
  %6365 = load i32, ptr %6364, align 4, !tbaa !5
  %6366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6353, ptr noundef @.str.5, i32 noundef %6354, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 377, ptr noundef %6357, ptr noundef %6360, ptr noundef %6363, i32 noundef %6365) #12
  br label %6367

6367:                                             ; preds = %6350, %6333
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #12
  br label %6368

6368:                                             ; preds = %6367
  br label %6369

6369:                                             ; preds = %6368
  call void @exit(i32 noundef 1) #14
  unreachable

6370:                                             ; No predecessors!
  br label %6371

6371:                                             ; preds = %6370
  br label %6372

6372:                                             ; preds = %6371, %6312
  br label %6373

6373:                                             ; preds = %6372
  br label %6374

6374:                                             ; preds = %6373
  br label %6375

6375:                                             ; preds = %6374
  %6376 = load i32, ptr @test_count, align 4, !tbaa !5
  %6377 = add nsw i32 %6376, 1
  store i32 %6377, ptr @test_count, align 4, !tbaa !5
  %6378 = load ptr, ptr %47, align 8, !tbaa !9
  %6379 = load ptr, ptr %48, align 8, !tbaa !9
  %6380 = call i32 @s2n_connection_set_config(ptr noundef %6378, ptr noundef %6379)
  %6381 = icmp eq i32 %6380, -1
  br i1 %6381, label %6382, label %6435

6382:                                             ; preds = %6375
  br label %6383

6383:                                             ; preds = %6382
  br label %6384

6384:                                             ; preds = %6383
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #12
  %6385 = call ptr @__errno_location() #13
  %6386 = load i32, ptr %6385, align 4, !tbaa !5
  store i32 %6386, ptr %132, align 4, !tbaa !5
  %6387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6388 = call i32 @s2n_print_stacktrace(ptr noundef %6387)
  %6389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6390 = trunc i8 %6389 to i1
  br i1 %6390, label %6391, label %6413

6391:                                             ; preds = %6384
  %6392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6393 = call i32 @fileno(ptr noundef %6392) #12
  %6394 = call i32 @isatty(i32 noundef %6393) #12
  %6395 = icmp ne i32 %6394, 0
  br i1 %6395, label %6396, label %6413

6396:                                             ; preds = %6391
  %6397 = load i32, ptr %132, align 4, !tbaa !5
  %6398 = call ptr @__errno_location() #13
  store i32 %6397, ptr %6398, align 4, !tbaa !5
  %6399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6400 = load i32, ptr @test_count, align 4, !tbaa !5
  %6401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6402 = load i32, ptr %6401, align 4, !tbaa !5
  %6403 = call ptr @s2n_strerror(i32 noundef %6402, ptr noundef @.str.4)
  %6404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6405 = load i32, ptr %6404, align 4, !tbaa !5
  %6406 = call ptr @s2n_strerror_debug(i32 noundef %6405, ptr noundef @.str.4)
  %6407 = call ptr @__errno_location() #13
  %6408 = load i32, ptr %6407, align 4, !tbaa !5
  %6409 = call ptr @strerror(i32 noundef %6408) #12
  %6410 = call ptr @__errno_location() #13
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  %6412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6399, ptr noundef @.str.2, i32 noundef %6400, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 378, ptr noundef %6403, ptr noundef %6406, ptr noundef %6409, i32 noundef %6411) #12
  br label %6430

6413:                                             ; preds = %6391, %6384
  %6414 = load i32, ptr %132, align 4, !tbaa !5
  %6415 = call ptr @__errno_location() #13
  store i32 %6414, ptr %6415, align 4, !tbaa !5
  %6416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6417 = load i32, ptr @test_count, align 4, !tbaa !5
  %6418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6419 = load i32, ptr %6418, align 4, !tbaa !5
  %6420 = call ptr @s2n_strerror(i32 noundef %6419, ptr noundef @.str.4)
  %6421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6422 = load i32, ptr %6421, align 4, !tbaa !5
  %6423 = call ptr @s2n_strerror_debug(i32 noundef %6422, ptr noundef @.str.4)
  %6424 = call ptr @__errno_location() #13
  %6425 = load i32, ptr %6424, align 4, !tbaa !5
  %6426 = call ptr @strerror(i32 noundef %6425) #12
  %6427 = call ptr @__errno_location() #13
  %6428 = load i32, ptr %6427, align 4, !tbaa !5
  %6429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6416, ptr noundef @.str.5, i32 noundef %6417, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 378, ptr noundef %6420, ptr noundef %6423, ptr noundef %6426, i32 noundef %6428) #12
  br label %6430

6430:                                             ; preds = %6413, %6396
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #12
  br label %6431

6431:                                             ; preds = %6430
  br label %6432

6432:                                             ; preds = %6431
  call void @exit(i32 noundef 1) #14
  unreachable

6433:                                             ; No predecessors!
  br label %6434

6434:                                             ; preds = %6433
  br label %6435

6435:                                             ; preds = %6434, %6375
  br label %6436

6436:                                             ; preds = %6435
  br label %6437

6437:                                             ; preds = %6436
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #12
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256, ptr %133, align 8, !tbaa !9
  br label %6438

6438:                                             ; preds = %6437
  %6439 = load i32, ptr @test_count, align 4, !tbaa !5
  %6440 = add nsw i32 %6439, 1
  store i32 %6440, ptr @test_count, align 4, !tbaa !5
  %6441 = load ptr, ptr %47, align 8, !tbaa !9
  %6442 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %6441, ptr noundef @.str.72)
  %6443 = icmp eq i32 %6442, -1
  br i1 %6443, label %6444, label %6497

6444:                                             ; preds = %6438
  br label %6445

6445:                                             ; preds = %6444
  br label %6446

6446:                                             ; preds = %6445
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #12
  %6447 = call ptr @__errno_location() #13
  %6448 = load i32, ptr %6447, align 4, !tbaa !5
  store i32 %6448, ptr %134, align 4, !tbaa !5
  %6449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6450 = call i32 @s2n_print_stacktrace(ptr noundef %6449)
  %6451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6452 = trunc i8 %6451 to i1
  br i1 %6452, label %6453, label %6475

6453:                                             ; preds = %6446
  %6454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6455 = call i32 @fileno(ptr noundef %6454) #12
  %6456 = call i32 @isatty(i32 noundef %6455) #12
  %6457 = icmp ne i32 %6456, 0
  br i1 %6457, label %6458, label %6475

6458:                                             ; preds = %6453
  %6459 = load i32, ptr %134, align 4, !tbaa !5
  %6460 = call ptr @__errno_location() #13
  store i32 %6459, ptr %6460, align 4, !tbaa !5
  %6461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6462 = load i32, ptr @test_count, align 4, !tbaa !5
  %6463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6464 = load i32, ptr %6463, align 4, !tbaa !5
  %6465 = call ptr @s2n_strerror(i32 noundef %6464, ptr noundef @.str.4)
  %6466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6467 = load i32, ptr %6466, align 4, !tbaa !5
  %6468 = call ptr @s2n_strerror_debug(i32 noundef %6467, ptr noundef @.str.4)
  %6469 = call ptr @__errno_location() #13
  %6470 = load i32, ptr %6469, align 4, !tbaa !5
  %6471 = call ptr @strerror(i32 noundef %6470) #12
  %6472 = call ptr @__errno_location() #13
  %6473 = load i32, ptr %6472, align 4, !tbaa !5
  %6474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6461, ptr noundef @.str.2, i32 noundef %6462, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 383, ptr noundef %6465, ptr noundef %6468, ptr noundef %6471, i32 noundef %6473) #12
  br label %6492

6475:                                             ; preds = %6453, %6446
  %6476 = load i32, ptr %134, align 4, !tbaa !5
  %6477 = call ptr @__errno_location() #13
  store i32 %6476, ptr %6477, align 4, !tbaa !5
  %6478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6479 = load i32, ptr @test_count, align 4, !tbaa !5
  %6480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6481 = load i32, ptr %6480, align 4, !tbaa !5
  %6482 = call ptr @s2n_strerror(i32 noundef %6481, ptr noundef @.str.4)
  %6483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6484 = load i32, ptr %6483, align 4, !tbaa !5
  %6485 = call ptr @s2n_strerror_debug(i32 noundef %6484, ptr noundef @.str.4)
  %6486 = call ptr @__errno_location() #13
  %6487 = load i32, ptr %6486, align 4, !tbaa !5
  %6488 = call ptr @strerror(i32 noundef %6487) #12
  %6489 = call ptr @__errno_location() #13
  %6490 = load i32, ptr %6489, align 4, !tbaa !5
  %6491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6478, ptr noundef @.str.5, i32 noundef %6479, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 383, ptr noundef %6482, ptr noundef %6485, ptr noundef %6488, i32 noundef %6490) #12
  br label %6492

6492:                                             ; preds = %6475, %6458
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #12
  br label %6493

6493:                                             ; preds = %6492
  br label %6494

6494:                                             ; preds = %6493
  call void @exit(i32 noundef 1) #14
  unreachable

6495:                                             ; No predecessors!
  br label %6496

6496:                                             ; preds = %6495
  br label %6497

6497:                                             ; preds = %6496, %6438
  br label %6498

6498:                                             ; preds = %6497
  br label %6499

6499:                                             ; preds = %6498
  %6500 = load ptr, ptr %103, align 8, !tbaa !9
  %6501 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %6500, i32 0, i32 1
  %6502 = load ptr, ptr %6501, align 8, !tbaa !55
  %6503 = getelementptr inbounds ptr, ptr %6502, i64 0
  %6504 = load ptr, ptr %6503, align 8, !tbaa !9
  %6505 = load ptr, ptr %47, align 8, !tbaa !9
  %6506 = getelementptr inbounds %struct.s2n_connection, ptr %6505, i32 0, i32 31
  %6507 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6506, i32 0, i32 1
  %6508 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6507, i32 0, i32 0
  store ptr %6504, ptr %6508, align 8, !tbaa !57
  %6509 = load ptr, ptr %47, align 8, !tbaa !9
  %6510 = getelementptr inbounds %struct.s2n_connection, ptr %6509, i32 0, i32 22
  %6511 = load i8, ptr %6510, align 1, !tbaa !43
  %6512 = load ptr, ptr %47, align 8, !tbaa !9
  %6513 = getelementptr inbounds %struct.s2n_connection, ptr %6512, i32 0, i32 23
  store i8 %6511, ptr %6513, align 4, !tbaa !42
  br label %6514

6514:                                             ; preds = %6499
  %6515 = load i32, ptr @test_count, align 4, !tbaa !5
  %6516 = add nsw i32 %6515, 1
  store i32 %6516, ptr @test_count, align 4, !tbaa !5
  %6517 = load ptr, ptr %47, align 8, !tbaa !9
  %6518 = load ptr, ptr %48, align 8, !tbaa !9
  %6519 = call i32 @s2n_connection_set_config(ptr noundef %6517, ptr noundef %6518)
  %6520 = icmp eq i32 %6519, -1
  br i1 %6520, label %6521, label %6574

6521:                                             ; preds = %6514
  br label %6522

6522:                                             ; preds = %6521
  br label %6523

6523:                                             ; preds = %6522
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #12
  %6524 = call ptr @__errno_location() #13
  %6525 = load i32, ptr %6524, align 4, !tbaa !5
  store i32 %6525, ptr %135, align 4, !tbaa !5
  %6526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6527 = call i32 @s2n_print_stacktrace(ptr noundef %6526)
  %6528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6529 = trunc i8 %6528 to i1
  br i1 %6529, label %6530, label %6552

6530:                                             ; preds = %6523
  %6531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6532 = call i32 @fileno(ptr noundef %6531) #12
  %6533 = call i32 @isatty(i32 noundef %6532) #12
  %6534 = icmp ne i32 %6533, 0
  br i1 %6534, label %6535, label %6552

6535:                                             ; preds = %6530
  %6536 = load i32, ptr %135, align 4, !tbaa !5
  %6537 = call ptr @__errno_location() #13
  store i32 %6536, ptr %6537, align 4, !tbaa !5
  %6538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6539 = load i32, ptr @test_count, align 4, !tbaa !5
  %6540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6541 = load i32, ptr %6540, align 4, !tbaa !5
  %6542 = call ptr @s2n_strerror(i32 noundef %6541, ptr noundef @.str.4)
  %6543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6544 = load i32, ptr %6543, align 4, !tbaa !5
  %6545 = call ptr @s2n_strerror_debug(i32 noundef %6544, ptr noundef @.str.4)
  %6546 = call ptr @__errno_location() #13
  %6547 = load i32, ptr %6546, align 4, !tbaa !5
  %6548 = call ptr @strerror(i32 noundef %6547) #12
  %6549 = call ptr @__errno_location() #13
  %6550 = load i32, ptr %6549, align 4, !tbaa !5
  %6551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6538, ptr noundef @.str.2, i32 noundef %6539, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 386, ptr noundef %6542, ptr noundef %6545, ptr noundef %6548, i32 noundef %6550) #12
  br label %6569

6552:                                             ; preds = %6530, %6523
  %6553 = load i32, ptr %135, align 4, !tbaa !5
  %6554 = call ptr @__errno_location() #13
  store i32 %6553, ptr %6554, align 4, !tbaa !5
  %6555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6556 = load i32, ptr @test_count, align 4, !tbaa !5
  %6557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6558 = load i32, ptr %6557, align 4, !tbaa !5
  %6559 = call ptr @s2n_strerror(i32 noundef %6558, ptr noundef @.str.4)
  %6560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6561 = load i32, ptr %6560, align 4, !tbaa !5
  %6562 = call ptr @s2n_strerror_debug(i32 noundef %6561, ptr noundef @.str.4)
  %6563 = call ptr @__errno_location() #13
  %6564 = load i32, ptr %6563, align 4, !tbaa !5
  %6565 = call ptr @strerror(i32 noundef %6564) #12
  %6566 = call ptr @__errno_location() #13
  %6567 = load i32, ptr %6566, align 4, !tbaa !5
  %6568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6555, ptr noundef @.str.5, i32 noundef %6556, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 386, ptr noundef %6559, ptr noundef %6562, ptr noundef %6565, i32 noundef %6567) #12
  br label %6569

6569:                                             ; preds = %6552, %6535
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #12
  br label %6570

6570:                                             ; preds = %6569
  br label %6571

6571:                                             ; preds = %6570
  call void @exit(i32 noundef 1) #14
  unreachable

6572:                                             ; No predecessors!
  br label %6573

6573:                                             ; preds = %6572
  br label %6574

6574:                                             ; preds = %6573, %6514
  br label %6575

6575:                                             ; preds = %6574
  br label %6576

6576:                                             ; preds = %6575
  br label %6577

6577:                                             ; preds = %6576
  %6578 = load i32, ptr @test_count, align 4, !tbaa !5
  %6579 = add nsw i32 %6578, 1
  store i32 %6579, ptr @test_count, align 4, !tbaa !5
  %6580 = load ptr, ptr %47, align 8, !tbaa !9
  %6581 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %6582 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %6580, ptr noundef %6581, i16 noundef zeroext 2)
  %6583 = icmp eq i32 %6582, -1
  br i1 %6583, label %6584, label %6637

6584:                                             ; preds = %6577
  br label %6585

6585:                                             ; preds = %6584
  br label %6586

6586:                                             ; preds = %6585
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #12
  %6587 = call ptr @__errno_location() #13
  %6588 = load i32, ptr %6587, align 4, !tbaa !5
  store i32 %6588, ptr %136, align 4, !tbaa !5
  %6589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6590 = call i32 @s2n_print_stacktrace(ptr noundef %6589)
  %6591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6592 = trunc i8 %6591 to i1
  br i1 %6592, label %6593, label %6615

6593:                                             ; preds = %6586
  %6594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6595 = call i32 @fileno(ptr noundef %6594) #12
  %6596 = call i32 @isatty(i32 noundef %6595) #12
  %6597 = icmp ne i32 %6596, 0
  br i1 %6597, label %6598, label %6615

6598:                                             ; preds = %6593
  %6599 = load i32, ptr %136, align 4, !tbaa !5
  %6600 = call ptr @__errno_location() #13
  store i32 %6599, ptr %6600, align 4, !tbaa !5
  %6601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6602 = load i32, ptr @test_count, align 4, !tbaa !5
  %6603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6604 = load i32, ptr %6603, align 4, !tbaa !5
  %6605 = call ptr @s2n_strerror(i32 noundef %6604, ptr noundef @.str.4)
  %6606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6607 = load i32, ptr %6606, align 4, !tbaa !5
  %6608 = call ptr @s2n_strerror_debug(i32 noundef %6607, ptr noundef @.str.4)
  %6609 = call ptr @__errno_location() #13
  %6610 = load i32, ptr %6609, align 4, !tbaa !5
  %6611 = call ptr @strerror(i32 noundef %6610) #12
  %6612 = call ptr @__errno_location() #13
  %6613 = load i32, ptr %6612, align 4, !tbaa !5
  %6614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6601, ptr noundef @.str.2, i32 noundef %6602, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 387, ptr noundef %6605, ptr noundef %6608, ptr noundef %6611, i32 noundef %6613) #12
  br label %6632

6615:                                             ; preds = %6593, %6586
  %6616 = load i32, ptr %136, align 4, !tbaa !5
  %6617 = call ptr @__errno_location() #13
  store i32 %6616, ptr %6617, align 4, !tbaa !5
  %6618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6619 = load i32, ptr @test_count, align 4, !tbaa !5
  %6620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6621 = load i32, ptr %6620, align 4, !tbaa !5
  %6622 = call ptr @s2n_strerror(i32 noundef %6621, ptr noundef @.str.4)
  %6623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6624 = load i32, ptr %6623, align 4, !tbaa !5
  %6625 = call ptr @s2n_strerror_debug(i32 noundef %6624, ptr noundef @.str.4)
  %6626 = call ptr @__errno_location() #13
  %6627 = load i32, ptr %6626, align 4, !tbaa !5
  %6628 = call ptr @strerror(i32 noundef %6627) #12
  %6629 = call ptr @__errno_location() #13
  %6630 = load i32, ptr %6629, align 4, !tbaa !5
  %6631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6618, ptr noundef @.str.5, i32 noundef %6619, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 387, ptr noundef %6622, ptr noundef %6625, ptr noundef %6628, i32 noundef %6630) #12
  br label %6632

6632:                                             ; preds = %6615, %6598
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #12
  br label %6633

6633:                                             ; preds = %6632
  br label %6634

6634:                                             ; preds = %6633
  call void @exit(i32 noundef 1) #14
  unreachable

6635:                                             ; No predecessors!
  br label %6636

6636:                                             ; preds = %6635
  br label %6637

6637:                                             ; preds = %6636, %6577
  br label %6638

6638:                                             ; preds = %6637
  br label %6639

6639:                                             ; preds = %6638
  br label %6640

6640:                                             ; preds = %6639
  %6641 = load i32, ptr @test_count, align 4, !tbaa !5
  %6642 = add nsw i32 %6641, 1
  store i32 %6642, ptr @test_count, align 4, !tbaa !5
  %6643 = load ptr, ptr %47, align 8, !tbaa !9
  %6644 = load i32, ptr %6643, align 8
  %6645 = lshr i32 %6644, 3
  %6646 = and i32 %6645, 1
  %6647 = icmp eq i32 %6646, 0
  br i1 %6647, label %6701, label %6648

6648:                                             ; preds = %6640
  br label %6649

6649:                                             ; preds = %6648
  br label %6650

6650:                                             ; preds = %6649
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #12
  %6651 = call ptr @__errno_location() #13
  %6652 = load i32, ptr %6651, align 4, !tbaa !5
  store i32 %6652, ptr %137, align 4, !tbaa !5
  %6653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6654 = call i32 @s2n_print_stacktrace(ptr noundef %6653)
  %6655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6656 = trunc i8 %6655 to i1
  br i1 %6656, label %6657, label %6679

6657:                                             ; preds = %6650
  %6658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6659 = call i32 @fileno(ptr noundef %6658) #12
  %6660 = call i32 @isatty(i32 noundef %6659) #12
  %6661 = icmp ne i32 %6660, 0
  br i1 %6661, label %6662, label %6679

6662:                                             ; preds = %6657
  %6663 = load i32, ptr %137, align 4, !tbaa !5
  %6664 = call ptr @__errno_location() #13
  store i32 %6663, ptr %6664, align 4, !tbaa !5
  %6665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6666 = load i32, ptr @test_count, align 4, !tbaa !5
  %6667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6668 = load i32, ptr %6667, align 4, !tbaa !5
  %6669 = call ptr @s2n_strerror(i32 noundef %6668, ptr noundef @.str.4)
  %6670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6671 = load i32, ptr %6670, align 4, !tbaa !5
  %6672 = call ptr @s2n_strerror_debug(i32 noundef %6671, ptr noundef @.str.4)
  %6673 = call ptr @__errno_location() #13
  %6674 = load i32, ptr %6673, align 4, !tbaa !5
  %6675 = call ptr @strerror(i32 noundef %6674) #12
  %6676 = call ptr @__errno_location() #13
  %6677 = load i32, ptr %6676, align 4, !tbaa !5
  %6678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6665, ptr noundef @.str.2, i32 noundef %6666, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 388, ptr noundef %6669, ptr noundef %6672, ptr noundef %6675, i32 noundef %6677) #12
  br label %6696

6679:                                             ; preds = %6657, %6650
  %6680 = load i32, ptr %137, align 4, !tbaa !5
  %6681 = call ptr @__errno_location() #13
  store i32 %6680, ptr %6681, align 4, !tbaa !5
  %6682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6683 = load i32, ptr @test_count, align 4, !tbaa !5
  %6684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6685 = load i32, ptr %6684, align 4, !tbaa !5
  %6686 = call ptr @s2n_strerror(i32 noundef %6685, ptr noundef @.str.4)
  %6687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6688 = load i32, ptr %6687, align 4, !tbaa !5
  %6689 = call ptr @s2n_strerror_debug(i32 noundef %6688, ptr noundef @.str.4)
  %6690 = call ptr @__errno_location() #13
  %6691 = load i32, ptr %6690, align 4, !tbaa !5
  %6692 = call ptr @strerror(i32 noundef %6691) #12
  %6693 = call ptr @__errno_location() #13
  %6694 = load i32, ptr %6693, align 4, !tbaa !5
  %6695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6682, ptr noundef @.str.5, i32 noundef %6683, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 388, ptr noundef %6686, ptr noundef %6689, ptr noundef %6692, i32 noundef %6694) #12
  br label %6696

6696:                                             ; preds = %6679, %6662
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #12
  br label %6697

6697:                                             ; preds = %6696
  br label %6698

6698:                                             ; preds = %6697
  call void @exit(i32 noundef 1) #14
  unreachable

6699:                                             ; No predecessors!
  br label %6700

6700:                                             ; preds = %6699
  br label %6701

6701:                                             ; preds = %6700, %6640
  br label %6702

6702:                                             ; preds = %6701
  br label %6703

6703:                                             ; preds = %6702
  br label %6704

6704:                                             ; preds = %6703
  %6705 = load i32, ptr @test_count, align 4, !tbaa !5
  %6706 = add nsw i32 %6705, 1
  store i32 %6706, ptr @test_count, align 4, !tbaa !5
  %6707 = load ptr, ptr %47, align 8, !tbaa !9
  %6708 = getelementptr inbounds %struct.s2n_connection, ptr %6707, i32 0, i32 27
  %6709 = load ptr, ptr %6708, align 8, !tbaa !48
  %6710 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6709, i32 0, i32 0
  %6711 = load ptr, ptr %6710, align 8, !tbaa !49
  %6712 = load ptr, ptr %133, align 8, !tbaa !9
  %6713 = icmp eq ptr %6711, %6712
  br i1 %6713, label %6767, label %6714

6714:                                             ; preds = %6704
  br label %6715

6715:                                             ; preds = %6714
  br label %6716

6716:                                             ; preds = %6715
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #12
  %6717 = call ptr @__errno_location() #13
  %6718 = load i32, ptr %6717, align 4, !tbaa !5
  store i32 %6718, ptr %138, align 4, !tbaa !5
  %6719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6720 = call i32 @s2n_print_stacktrace(ptr noundef %6719)
  %6721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6722 = trunc i8 %6721 to i1
  br i1 %6722, label %6723, label %6745

6723:                                             ; preds = %6716
  %6724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6725 = call i32 @fileno(ptr noundef %6724) #12
  %6726 = call i32 @isatty(i32 noundef %6725) #12
  %6727 = icmp ne i32 %6726, 0
  br i1 %6727, label %6728, label %6745

6728:                                             ; preds = %6723
  %6729 = load i32, ptr %138, align 4, !tbaa !5
  %6730 = call ptr @__errno_location() #13
  store i32 %6729, ptr %6730, align 4, !tbaa !5
  %6731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6732 = load i32, ptr @test_count, align 4, !tbaa !5
  %6733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6734 = load i32, ptr %6733, align 4, !tbaa !5
  %6735 = call ptr @s2n_strerror(i32 noundef %6734, ptr noundef @.str.4)
  %6736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6737 = load i32, ptr %6736, align 4, !tbaa !5
  %6738 = call ptr @s2n_strerror_debug(i32 noundef %6737, ptr noundef @.str.4)
  %6739 = call ptr @__errno_location() #13
  %6740 = load i32, ptr %6739, align 4, !tbaa !5
  %6741 = call ptr @strerror(i32 noundef %6740) #12
  %6742 = call ptr @__errno_location() #13
  %6743 = load i32, ptr %6742, align 4, !tbaa !5
  %6744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6731, ptr noundef @.str.2, i32 noundef %6732, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 389, ptr noundef %6735, ptr noundef %6738, ptr noundef %6741, i32 noundef %6743) #12
  br label %6762

6745:                                             ; preds = %6723, %6716
  %6746 = load i32, ptr %138, align 4, !tbaa !5
  %6747 = call ptr @__errno_location() #13
  store i32 %6746, ptr %6747, align 4, !tbaa !5
  %6748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6749 = load i32, ptr @test_count, align 4, !tbaa !5
  %6750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6751 = load i32, ptr %6750, align 4, !tbaa !5
  %6752 = call ptr @s2n_strerror(i32 noundef %6751, ptr noundef @.str.4)
  %6753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6754 = load i32, ptr %6753, align 4, !tbaa !5
  %6755 = call ptr @s2n_strerror_debug(i32 noundef %6754, ptr noundef @.str.4)
  %6756 = call ptr @__errno_location() #13
  %6757 = load i32, ptr %6756, align 4, !tbaa !5
  %6758 = call ptr @strerror(i32 noundef %6757) #12
  %6759 = call ptr @__errno_location() #13
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  %6761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6748, ptr noundef @.str.5, i32 noundef %6749, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 389, ptr noundef %6752, ptr noundef %6755, ptr noundef %6758, i32 noundef %6760) #12
  br label %6762

6762:                                             ; preds = %6745, %6728
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #12
  br label %6763

6763:                                             ; preds = %6762
  br label %6764

6764:                                             ; preds = %6763
  call void @exit(i32 noundef 1) #14
  unreachable

6765:                                             ; No predecessors!
  br label %6766

6766:                                             ; preds = %6765
  br label %6767

6767:                                             ; preds = %6766, %6704
  br label %6768

6768:                                             ; preds = %6767
  br label %6769

6769:                                             ; preds = %6768
  br label %6770

6770:                                             ; preds = %6769
  %6771 = load i32, ptr @test_count, align 4, !tbaa !5
  %6772 = add nsw i32 %6771, 1
  store i32 %6772, ptr @test_count, align 4, !tbaa !5
  %6773 = load ptr, ptr %47, align 8, !tbaa !9
  %6774 = call i32 @s2n_connection_wipe(ptr noundef %6773)
  %6775 = icmp eq i32 %6774, -1
  br i1 %6775, label %6776, label %6829

6776:                                             ; preds = %6770
  br label %6777

6777:                                             ; preds = %6776
  br label %6778

6778:                                             ; preds = %6777
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #12
  %6779 = call ptr @__errno_location() #13
  %6780 = load i32, ptr %6779, align 4, !tbaa !5
  store i32 %6780, ptr %139, align 4, !tbaa !5
  %6781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6782 = call i32 @s2n_print_stacktrace(ptr noundef %6781)
  %6783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6784 = trunc i8 %6783 to i1
  br i1 %6784, label %6785, label %6807

6785:                                             ; preds = %6778
  %6786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6787 = call i32 @fileno(ptr noundef %6786) #12
  %6788 = call i32 @isatty(i32 noundef %6787) #12
  %6789 = icmp ne i32 %6788, 0
  br i1 %6789, label %6790, label %6807

6790:                                             ; preds = %6785
  %6791 = load i32, ptr %139, align 4, !tbaa !5
  %6792 = call ptr @__errno_location() #13
  store i32 %6791, ptr %6792, align 4, !tbaa !5
  %6793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6794 = load i32, ptr @test_count, align 4, !tbaa !5
  %6795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6796 = load i32, ptr %6795, align 4, !tbaa !5
  %6797 = call ptr @s2n_strerror(i32 noundef %6796, ptr noundef @.str.4)
  %6798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6799 = load i32, ptr %6798, align 4, !tbaa !5
  %6800 = call ptr @s2n_strerror_debug(i32 noundef %6799, ptr noundef @.str.4)
  %6801 = call ptr @__errno_location() #13
  %6802 = load i32, ptr %6801, align 4, !tbaa !5
  %6803 = call ptr @strerror(i32 noundef %6802) #12
  %6804 = call ptr @__errno_location() #13
  %6805 = load i32, ptr %6804, align 4, !tbaa !5
  %6806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6793, ptr noundef @.str.2, i32 noundef %6794, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 390, ptr noundef %6797, ptr noundef %6800, ptr noundef %6803, i32 noundef %6805) #12
  br label %6824

6807:                                             ; preds = %6785, %6778
  %6808 = load i32, ptr %139, align 4, !tbaa !5
  %6809 = call ptr @__errno_location() #13
  store i32 %6808, ptr %6809, align 4, !tbaa !5
  %6810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6811 = load i32, ptr @test_count, align 4, !tbaa !5
  %6812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6813 = load i32, ptr %6812, align 4, !tbaa !5
  %6814 = call ptr @s2n_strerror(i32 noundef %6813, ptr noundef @.str.4)
  %6815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6816 = load i32, ptr %6815, align 4, !tbaa !5
  %6817 = call ptr @s2n_strerror_debug(i32 noundef %6816, ptr noundef @.str.4)
  %6818 = call ptr @__errno_location() #13
  %6819 = load i32, ptr %6818, align 4, !tbaa !5
  %6820 = call ptr @strerror(i32 noundef %6819) #12
  %6821 = call ptr @__errno_location() #13
  %6822 = load i32, ptr %6821, align 4, !tbaa !5
  %6823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6810, ptr noundef @.str.5, i32 noundef %6811, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 390, ptr noundef %6814, ptr noundef %6817, ptr noundef %6820, i32 noundef %6822) #12
  br label %6824

6824:                                             ; preds = %6807, %6790
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #12
  br label %6825

6825:                                             ; preds = %6824
  br label %6826

6826:                                             ; preds = %6825
  call void @exit(i32 noundef 1) #14
  unreachable

6827:                                             ; No predecessors!
  br label %6828

6828:                                             ; preds = %6827
  br label %6829

6829:                                             ; preds = %6828, %6770
  br label %6830

6830:                                             ; preds = %6829
  br label %6831

6831:                                             ; preds = %6830
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #12
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %140, align 8, !tbaa !9
  br label %6832

6832:                                             ; preds = %6831
  %6833 = load i32, ptr @test_count, align 4, !tbaa !5
  %6834 = add nsw i32 %6833, 1
  store i32 %6834, ptr @test_count, align 4, !tbaa !5
  %6835 = load ptr, ptr %47, align 8, !tbaa !9
  %6836 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %6835, ptr noundef @.str.53)
  %6837 = icmp eq i32 %6836, -1
  br i1 %6837, label %6838, label %6891

6838:                                             ; preds = %6832
  br label %6839

6839:                                             ; preds = %6838
  br label %6840

6840:                                             ; preds = %6839
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #12
  %6841 = call ptr @__errno_location() #13
  %6842 = load i32, ptr %6841, align 4, !tbaa !5
  store i32 %6842, ptr %141, align 4, !tbaa !5
  %6843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6844 = call i32 @s2n_print_stacktrace(ptr noundef %6843)
  %6845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6846 = trunc i8 %6845 to i1
  br i1 %6846, label %6847, label %6869

6847:                                             ; preds = %6840
  %6848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6849 = call i32 @fileno(ptr noundef %6848) #12
  %6850 = call i32 @isatty(i32 noundef %6849) #12
  %6851 = icmp ne i32 %6850, 0
  br i1 %6851, label %6852, label %6869

6852:                                             ; preds = %6847
  %6853 = load i32, ptr %141, align 4, !tbaa !5
  %6854 = call ptr @__errno_location() #13
  store i32 %6853, ptr %6854, align 4, !tbaa !5
  %6855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6856 = load i32, ptr @test_count, align 4, !tbaa !5
  %6857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6858 = load i32, ptr %6857, align 4, !tbaa !5
  %6859 = call ptr @s2n_strerror(i32 noundef %6858, ptr noundef @.str.4)
  %6860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6861 = load i32, ptr %6860, align 4, !tbaa !5
  %6862 = call ptr @s2n_strerror_debug(i32 noundef %6861, ptr noundef @.str.4)
  %6863 = call ptr @__errno_location() #13
  %6864 = load i32, ptr %6863, align 4, !tbaa !5
  %6865 = call ptr @strerror(i32 noundef %6864) #12
  %6866 = call ptr @__errno_location() #13
  %6867 = load i32, ptr %6866, align 4, !tbaa !5
  %6868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6855, ptr noundef @.str.2, i32 noundef %6856, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 396, ptr noundef %6859, ptr noundef %6862, ptr noundef %6865, i32 noundef %6867) #12
  br label %6886

6869:                                             ; preds = %6847, %6840
  %6870 = load i32, ptr %141, align 4, !tbaa !5
  %6871 = call ptr @__errno_location() #13
  store i32 %6870, ptr %6871, align 4, !tbaa !5
  %6872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6873 = load i32, ptr @test_count, align 4, !tbaa !5
  %6874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6875 = load i32, ptr %6874, align 4, !tbaa !5
  %6876 = call ptr @s2n_strerror(i32 noundef %6875, ptr noundef @.str.4)
  %6877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6878 = load i32, ptr %6877, align 4, !tbaa !5
  %6879 = call ptr @s2n_strerror_debug(i32 noundef %6878, ptr noundef @.str.4)
  %6880 = call ptr @__errno_location() #13
  %6881 = load i32, ptr %6880, align 4, !tbaa !5
  %6882 = call ptr @strerror(i32 noundef %6881) #12
  %6883 = call ptr @__errno_location() #13
  %6884 = load i32, ptr %6883, align 4, !tbaa !5
  %6885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6872, ptr noundef @.str.5, i32 noundef %6873, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 396, ptr noundef %6876, ptr noundef %6879, ptr noundef %6882, i32 noundef %6884) #12
  br label %6886

6886:                                             ; preds = %6869, %6852
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #12
  br label %6887

6887:                                             ; preds = %6886
  br label %6888

6888:                                             ; preds = %6887
  call void @exit(i32 noundef 1) #14
  unreachable

6889:                                             ; No predecessors!
  br label %6890

6890:                                             ; preds = %6889
  br label %6891

6891:                                             ; preds = %6890, %6832
  br label %6892

6892:                                             ; preds = %6891
  br label %6893

6893:                                             ; preds = %6892
  %6894 = load ptr, ptr %103, align 8, !tbaa !9
  %6895 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %6894, i32 0, i32 1
  %6896 = load ptr, ptr %6895, align 8, !tbaa !55
  %6897 = getelementptr inbounds ptr, ptr %6896, i64 0
  %6898 = load ptr, ptr %6897, align 8, !tbaa !9
  %6899 = load ptr, ptr %47, align 8, !tbaa !9
  %6900 = getelementptr inbounds %struct.s2n_connection, ptr %6899, i32 0, i32 31
  %6901 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6900, i32 0, i32 1
  %6902 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6901, i32 0, i32 0
  store ptr %6898, ptr %6902, align 8, !tbaa !57
  %6903 = load ptr, ptr %47, align 8, !tbaa !9
  %6904 = getelementptr inbounds %struct.s2n_connection, ptr %6903, i32 0, i32 22
  %6905 = load i8, ptr %6904, align 1, !tbaa !43
  %6906 = load ptr, ptr %47, align 8, !tbaa !9
  %6907 = getelementptr inbounds %struct.s2n_connection, ptr %6906, i32 0, i32 23
  store i8 %6905, ptr %6907, align 4, !tbaa !42
  br label %6908

6908:                                             ; preds = %6893
  %6909 = load i32, ptr @test_count, align 4, !tbaa !5
  %6910 = add nsw i32 %6909, 1
  store i32 %6910, ptr @test_count, align 4, !tbaa !5
  %6911 = load ptr, ptr %47, align 8, !tbaa !9
  %6912 = load ptr, ptr %48, align 8, !tbaa !9
  %6913 = call i32 @s2n_connection_set_config(ptr noundef %6911, ptr noundef %6912)
  %6914 = icmp eq i32 %6913, -1
  br i1 %6914, label %6915, label %6968

6915:                                             ; preds = %6908
  br label %6916

6916:                                             ; preds = %6915
  br label %6917

6917:                                             ; preds = %6916
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #12
  %6918 = call ptr @__errno_location() #13
  %6919 = load i32, ptr %6918, align 4, !tbaa !5
  store i32 %6919, ptr %142, align 4, !tbaa !5
  %6920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6921 = call i32 @s2n_print_stacktrace(ptr noundef %6920)
  %6922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6923 = trunc i8 %6922 to i1
  br i1 %6923, label %6924, label %6946

6924:                                             ; preds = %6917
  %6925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6926 = call i32 @fileno(ptr noundef %6925) #12
  %6927 = call i32 @isatty(i32 noundef %6926) #12
  %6928 = icmp ne i32 %6927, 0
  br i1 %6928, label %6929, label %6946

6929:                                             ; preds = %6924
  %6930 = load i32, ptr %142, align 4, !tbaa !5
  %6931 = call ptr @__errno_location() #13
  store i32 %6930, ptr %6931, align 4, !tbaa !5
  %6932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6933 = load i32, ptr @test_count, align 4, !tbaa !5
  %6934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6935 = load i32, ptr %6934, align 4, !tbaa !5
  %6936 = call ptr @s2n_strerror(i32 noundef %6935, ptr noundef @.str.4)
  %6937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  %6939 = call ptr @s2n_strerror_debug(i32 noundef %6938, ptr noundef @.str.4)
  %6940 = call ptr @__errno_location() #13
  %6941 = load i32, ptr %6940, align 4, !tbaa !5
  %6942 = call ptr @strerror(i32 noundef %6941) #12
  %6943 = call ptr @__errno_location() #13
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  %6945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6932, ptr noundef @.str.2, i32 noundef %6933, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 399, ptr noundef %6936, ptr noundef %6939, ptr noundef %6942, i32 noundef %6944) #12
  br label %6963

6946:                                             ; preds = %6924, %6917
  %6947 = load i32, ptr %142, align 4, !tbaa !5
  %6948 = call ptr @__errno_location() #13
  store i32 %6947, ptr %6948, align 4, !tbaa !5
  %6949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6950 = load i32, ptr @test_count, align 4, !tbaa !5
  %6951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6952 = load i32, ptr %6951, align 4, !tbaa !5
  %6953 = call ptr @s2n_strerror(i32 noundef %6952, ptr noundef @.str.4)
  %6954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6955 = load i32, ptr %6954, align 4, !tbaa !5
  %6956 = call ptr @s2n_strerror_debug(i32 noundef %6955, ptr noundef @.str.4)
  %6957 = call ptr @__errno_location() #13
  %6958 = load i32, ptr %6957, align 4, !tbaa !5
  %6959 = call ptr @strerror(i32 noundef %6958) #12
  %6960 = call ptr @__errno_location() #13
  %6961 = load i32, ptr %6960, align 4, !tbaa !5
  %6962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6949, ptr noundef @.str.5, i32 noundef %6950, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 399, ptr noundef %6953, ptr noundef %6956, ptr noundef %6959, i32 noundef %6961) #12
  br label %6963

6963:                                             ; preds = %6946, %6929
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #12
  br label %6964

6964:                                             ; preds = %6963
  br label %6965

6965:                                             ; preds = %6964
  call void @exit(i32 noundef 1) #14
  unreachable

6966:                                             ; No predecessors!
  br label %6967

6967:                                             ; preds = %6966
  br label %6968

6968:                                             ; preds = %6967, %6908
  br label %6969

6969:                                             ; preds = %6968
  br label %6970

6970:                                             ; preds = %6969
  br label %6971

6971:                                             ; preds = %6970
  %6972 = load i32, ptr @test_count, align 4, !tbaa !5
  %6973 = add nsw i32 %6972, 1
  store i32 %6973, ptr @test_count, align 4, !tbaa !5
  %6974 = load ptr, ptr %47, align 8, !tbaa !9
  %6975 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %6976 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %6974, ptr noundef %6975, i16 noundef zeroext 2)
  %6977 = icmp eq i32 %6976, -1
  br i1 %6977, label %6978, label %7031

6978:                                             ; preds = %6971
  br label %6979

6979:                                             ; preds = %6978
  br label %6980

6980:                                             ; preds = %6979
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #12
  %6981 = call ptr @__errno_location() #13
  %6982 = load i32, ptr %6981, align 4, !tbaa !5
  store i32 %6982, ptr %143, align 4, !tbaa !5
  %6983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6984 = call i32 @s2n_print_stacktrace(ptr noundef %6983)
  %6985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6986 = trunc i8 %6985 to i1
  br i1 %6986, label %6987, label %7009

6987:                                             ; preds = %6980
  %6988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6989 = call i32 @fileno(ptr noundef %6988) #12
  %6990 = call i32 @isatty(i32 noundef %6989) #12
  %6991 = icmp ne i32 %6990, 0
  br i1 %6991, label %6992, label %7009

6992:                                             ; preds = %6987
  %6993 = load i32, ptr %143, align 4, !tbaa !5
  %6994 = call ptr @__errno_location() #13
  store i32 %6993, ptr %6994, align 4, !tbaa !5
  %6995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6996 = load i32, ptr @test_count, align 4, !tbaa !5
  %6997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6998 = load i32, ptr %6997, align 4, !tbaa !5
  %6999 = call ptr @s2n_strerror(i32 noundef %6998, ptr noundef @.str.4)
  %7000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7001 = load i32, ptr %7000, align 4, !tbaa !5
  %7002 = call ptr @s2n_strerror_debug(i32 noundef %7001, ptr noundef @.str.4)
  %7003 = call ptr @__errno_location() #13
  %7004 = load i32, ptr %7003, align 4, !tbaa !5
  %7005 = call ptr @strerror(i32 noundef %7004) #12
  %7006 = call ptr @__errno_location() #13
  %7007 = load i32, ptr %7006, align 4, !tbaa !5
  %7008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6995, ptr noundef @.str.2, i32 noundef %6996, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 400, ptr noundef %6999, ptr noundef %7002, ptr noundef %7005, i32 noundef %7007) #12
  br label %7026

7009:                                             ; preds = %6987, %6980
  %7010 = load i32, ptr %143, align 4, !tbaa !5
  %7011 = call ptr @__errno_location() #13
  store i32 %7010, ptr %7011, align 4, !tbaa !5
  %7012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7013 = load i32, ptr @test_count, align 4, !tbaa !5
  %7014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7015 = load i32, ptr %7014, align 4, !tbaa !5
  %7016 = call ptr @s2n_strerror(i32 noundef %7015, ptr noundef @.str.4)
  %7017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7018 = load i32, ptr %7017, align 4, !tbaa !5
  %7019 = call ptr @s2n_strerror_debug(i32 noundef %7018, ptr noundef @.str.4)
  %7020 = call ptr @__errno_location() #13
  %7021 = load i32, ptr %7020, align 4, !tbaa !5
  %7022 = call ptr @strerror(i32 noundef %7021) #12
  %7023 = call ptr @__errno_location() #13
  %7024 = load i32, ptr %7023, align 4, !tbaa !5
  %7025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7012, ptr noundef @.str.5, i32 noundef %7013, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 400, ptr noundef %7016, ptr noundef %7019, ptr noundef %7022, i32 noundef %7024) #12
  br label %7026

7026:                                             ; preds = %7009, %6992
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #12
  br label %7027

7027:                                             ; preds = %7026
  br label %7028

7028:                                             ; preds = %7027
  call void @exit(i32 noundef 1) #14
  unreachable

7029:                                             ; No predecessors!
  br label %7030

7030:                                             ; preds = %7029
  br label %7031

7031:                                             ; preds = %7030, %6971
  br label %7032

7032:                                             ; preds = %7031
  br label %7033

7033:                                             ; preds = %7032
  br label %7034

7034:                                             ; preds = %7033
  %7035 = load i32, ptr @test_count, align 4, !tbaa !5
  %7036 = add nsw i32 %7035, 1
  store i32 %7036, ptr @test_count, align 4, !tbaa !5
  %7037 = load ptr, ptr %47, align 8, !tbaa !9
  %7038 = load i32, ptr %7037, align 8
  %7039 = lshr i32 %7038, 3
  %7040 = and i32 %7039, 1
  %7041 = icmp eq i32 %7040, 0
  br i1 %7041, label %7095, label %7042

7042:                                             ; preds = %7034
  br label %7043

7043:                                             ; preds = %7042
  br label %7044

7044:                                             ; preds = %7043
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #12
  %7045 = call ptr @__errno_location() #13
  %7046 = load i32, ptr %7045, align 4, !tbaa !5
  store i32 %7046, ptr %144, align 4, !tbaa !5
  %7047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7048 = call i32 @s2n_print_stacktrace(ptr noundef %7047)
  %7049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7050 = trunc i8 %7049 to i1
  br i1 %7050, label %7051, label %7073

7051:                                             ; preds = %7044
  %7052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7053 = call i32 @fileno(ptr noundef %7052) #12
  %7054 = call i32 @isatty(i32 noundef %7053) #12
  %7055 = icmp ne i32 %7054, 0
  br i1 %7055, label %7056, label %7073

7056:                                             ; preds = %7051
  %7057 = load i32, ptr %144, align 4, !tbaa !5
  %7058 = call ptr @__errno_location() #13
  store i32 %7057, ptr %7058, align 4, !tbaa !5
  %7059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7060 = load i32, ptr @test_count, align 4, !tbaa !5
  %7061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7062 = load i32, ptr %7061, align 4, !tbaa !5
  %7063 = call ptr @s2n_strerror(i32 noundef %7062, ptr noundef @.str.4)
  %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_debug(i32 noundef %7065, ptr noundef @.str.4)
  %7067 = call ptr @__errno_location() #13
  %7068 = load i32, ptr %7067, align 4, !tbaa !5
  %7069 = call ptr @strerror(i32 noundef %7068) #12
  %7070 = call ptr @__errno_location() #13
  %7071 = load i32, ptr %7070, align 4, !tbaa !5
  %7072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7059, ptr noundef @.str.2, i32 noundef %7060, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 401, ptr noundef %7063, ptr noundef %7066, ptr noundef %7069, i32 noundef %7071) #12
  br label %7090

7073:                                             ; preds = %7051, %7044
  %7074 = load i32, ptr %144, align 4, !tbaa !5
  %7075 = call ptr @__errno_location() #13
  store i32 %7074, ptr %7075, align 4, !tbaa !5
  %7076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7077 = load i32, ptr @test_count, align 4, !tbaa !5
  %7078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7079 = load i32, ptr %7078, align 4, !tbaa !5
  %7080 = call ptr @s2n_strerror(i32 noundef %7079, ptr noundef @.str.4)
  %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_debug(i32 noundef %7082, ptr noundef @.str.4)
  %7084 = call ptr @__errno_location() #13
  %7085 = load i32, ptr %7084, align 4, !tbaa !5
  %7086 = call ptr @strerror(i32 noundef %7085) #12
  %7087 = call ptr @__errno_location() #13
  %7088 = load i32, ptr %7087, align 4, !tbaa !5
  %7089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7076, ptr noundef @.str.5, i32 noundef %7077, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 401, ptr noundef %7080, ptr noundef %7083, ptr noundef %7086, i32 noundef %7088) #12
  br label %7090

7090:                                             ; preds = %7073, %7056
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #12
  br label %7091

7091:                                             ; preds = %7090
  br label %7092

7092:                                             ; preds = %7091
  call void @exit(i32 noundef 1) #14
  unreachable

7093:                                             ; No predecessors!
  br label %7094

7094:                                             ; preds = %7093
  br label %7095

7095:                                             ; preds = %7094, %7034
  br label %7096

7096:                                             ; preds = %7095
  br label %7097

7097:                                             ; preds = %7096
  br label %7098

7098:                                             ; preds = %7097
  %7099 = load i32, ptr @test_count, align 4, !tbaa !5
  %7100 = add nsw i32 %7099, 1
  store i32 %7100, ptr @test_count, align 4, !tbaa !5
  %7101 = load ptr, ptr %47, align 8, !tbaa !9
  %7102 = getelementptr inbounds %struct.s2n_connection, ptr %7101, i32 0, i32 27
  %7103 = load ptr, ptr %7102, align 8, !tbaa !48
  %7104 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7103, i32 0, i32 0
  %7105 = load ptr, ptr %7104, align 8, !tbaa !49
  %7106 = load ptr, ptr %140, align 8, !tbaa !9
  %7107 = icmp eq ptr %7105, %7106
  br i1 %7107, label %7161, label %7108

7108:                                             ; preds = %7098
  br label %7109

7109:                                             ; preds = %7108
  br label %7110

7110:                                             ; preds = %7109
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #12
  %7111 = call ptr @__errno_location() #13
  %7112 = load i32, ptr %7111, align 4, !tbaa !5
  store i32 %7112, ptr %145, align 4, !tbaa !5
  %7113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7114 = call i32 @s2n_print_stacktrace(ptr noundef %7113)
  %7115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7116 = trunc i8 %7115 to i1
  br i1 %7116, label %7117, label %7139

7117:                                             ; preds = %7110
  %7118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7119 = call i32 @fileno(ptr noundef %7118) #12
  %7120 = call i32 @isatty(i32 noundef %7119) #12
  %7121 = icmp ne i32 %7120, 0
  br i1 %7121, label %7122, label %7139

7122:                                             ; preds = %7117
  %7123 = load i32, ptr %145, align 4, !tbaa !5
  %7124 = call ptr @__errno_location() #13
  store i32 %7123, ptr %7124, align 4, !tbaa !5
  %7125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7126 = load i32, ptr @test_count, align 4, !tbaa !5
  %7127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7128 = load i32, ptr %7127, align 4, !tbaa !5
  %7129 = call ptr @s2n_strerror(i32 noundef %7128, ptr noundef @.str.4)
  %7130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7131 = load i32, ptr %7130, align 4, !tbaa !5
  %7132 = call ptr @s2n_strerror_debug(i32 noundef %7131, ptr noundef @.str.4)
  %7133 = call ptr @__errno_location() #13
  %7134 = load i32, ptr %7133, align 4, !tbaa !5
  %7135 = call ptr @strerror(i32 noundef %7134) #12
  %7136 = call ptr @__errno_location() #13
  %7137 = load i32, ptr %7136, align 4, !tbaa !5
  %7138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7125, ptr noundef @.str.2, i32 noundef %7126, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 402, ptr noundef %7129, ptr noundef %7132, ptr noundef %7135, i32 noundef %7137) #12
  br label %7156

7139:                                             ; preds = %7117, %7110
  %7140 = load i32, ptr %145, align 4, !tbaa !5
  %7141 = call ptr @__errno_location() #13
  store i32 %7140, ptr %7141, align 4, !tbaa !5
  %7142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7143 = load i32, ptr @test_count, align 4, !tbaa !5
  %7144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7145 = load i32, ptr %7144, align 4, !tbaa !5
  %7146 = call ptr @s2n_strerror(i32 noundef %7145, ptr noundef @.str.4)
  %7147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @s2n_strerror_debug(i32 noundef %7148, ptr noundef @.str.4)
  %7150 = call ptr @__errno_location() #13
  %7151 = load i32, ptr %7150, align 4, !tbaa !5
  %7152 = call ptr @strerror(i32 noundef %7151) #12
  %7153 = call ptr @__errno_location() #13
  %7154 = load i32, ptr %7153, align 4, !tbaa !5
  %7155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7142, ptr noundef @.str.5, i32 noundef %7143, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 402, ptr noundef %7146, ptr noundef %7149, ptr noundef %7152, i32 noundef %7154) #12
  br label %7156

7156:                                             ; preds = %7139, %7122
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #12
  br label %7157

7157:                                             ; preds = %7156
  br label %7158

7158:                                             ; preds = %7157
  call void @exit(i32 noundef 1) #14
  unreachable

7159:                                             ; No predecessors!
  br label %7160

7160:                                             ; preds = %7159
  br label %7161

7161:                                             ; preds = %7160, %7098
  br label %7162

7162:                                             ; preds = %7161
  br label %7163

7163:                                             ; preds = %7162
  br label %7164

7164:                                             ; preds = %7163
  %7165 = load i32, ptr @test_count, align 4, !tbaa !5
  %7166 = add nsw i32 %7165, 1
  store i32 %7166, ptr @test_count, align 4, !tbaa !5
  %7167 = load ptr, ptr %47, align 8, !tbaa !9
  %7168 = call i32 @s2n_connection_wipe(ptr noundef %7167)
  %7169 = icmp eq i32 %7168, -1
  br i1 %7169, label %7170, label %7223

7170:                                             ; preds = %7164
  br label %7171

7171:                                             ; preds = %7170
  br label %7172

7172:                                             ; preds = %7171
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #12
  %7173 = call ptr @__errno_location() #13
  %7174 = load i32, ptr %7173, align 4, !tbaa !5
  store i32 %7174, ptr %146, align 4, !tbaa !5
  %7175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7176 = call i32 @s2n_print_stacktrace(ptr noundef %7175)
  %7177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7178 = trunc i8 %7177 to i1
  br i1 %7178, label %7179, label %7201

7179:                                             ; preds = %7172
  %7180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7181 = call i32 @fileno(ptr noundef %7180) #12
  %7182 = call i32 @isatty(i32 noundef %7181) #12
  %7183 = icmp ne i32 %7182, 0
  br i1 %7183, label %7184, label %7201

7184:                                             ; preds = %7179
  %7185 = load i32, ptr %146, align 4, !tbaa !5
  %7186 = call ptr @__errno_location() #13
  store i32 %7185, ptr %7186, align 4, !tbaa !5
  %7187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7188 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7190, ptr noundef @.str.4)
  %7192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7193 = load i32, ptr %7192, align 4, !tbaa !5
  %7194 = call ptr @s2n_strerror_debug(i32 noundef %7193, ptr noundef @.str.4)
  %7195 = call ptr @__errno_location() #13
  %7196 = load i32, ptr %7195, align 4, !tbaa !5
  %7197 = call ptr @strerror(i32 noundef %7196) #12
  %7198 = call ptr @__errno_location() #13
  %7199 = load i32, ptr %7198, align 4, !tbaa !5
  %7200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7187, ptr noundef @.str.2, i32 noundef %7188, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 403, ptr noundef %7191, ptr noundef %7194, ptr noundef %7197, i32 noundef %7199) #12
  br label %7218

7201:                                             ; preds = %7179, %7172
  %7202 = load i32, ptr %146, align 4, !tbaa !5
  %7203 = call ptr @__errno_location() #13
  store i32 %7202, ptr %7203, align 4, !tbaa !5
  %7204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7205 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7207, ptr noundef @.str.4)
  %7209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7210 = load i32, ptr %7209, align 4, !tbaa !5
  %7211 = call ptr @s2n_strerror_debug(i32 noundef %7210, ptr noundef @.str.4)
  %7212 = call ptr @__errno_location() #13
  %7213 = load i32, ptr %7212, align 4, !tbaa !5
  %7214 = call ptr @strerror(i32 noundef %7213) #12
  %7215 = call ptr @__errno_location() #13
  %7216 = load i32, ptr %7215, align 4, !tbaa !5
  %7217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7204, ptr noundef @.str.5, i32 noundef %7205, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 403, ptr noundef %7208, ptr noundef %7211, ptr noundef %7214, i32 noundef %7216) #12
  br label %7218

7218:                                             ; preds = %7201, %7184
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #12
  br label %7219

7219:                                             ; preds = %7218
  br label %7220

7220:                                             ; preds = %7219
  call void @exit(i32 noundef 1) #14
  unreachable

7221:                                             ; No predecessors!
  br label %7222

7222:                                             ; preds = %7221
  br label %7223

7223:                                             ; preds = %7222, %7164
  br label %7224

7224:                                             ; preds = %7223
  br label %7225

7225:                                             ; preds = %7224
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #12
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %147, align 8, !tbaa !9
  br label %7226

7226:                                             ; preds = %7225
  %7227 = load i32, ptr @test_count, align 4, !tbaa !5
  %7228 = add nsw i32 %7227, 1
  store i32 %7228, ptr @test_count, align 4, !tbaa !5
  %7229 = load ptr, ptr %47, align 8, !tbaa !9
  %7230 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %7229, ptr noundef @.str.85)
  %7231 = icmp eq i32 %7230, -1
  br i1 %7231, label %7232, label %7285

7232:                                             ; preds = %7226
  br label %7233

7233:                                             ; preds = %7232
  br label %7234

7234:                                             ; preds = %7233
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #12
  %7235 = call ptr @__errno_location() #13
  %7236 = load i32, ptr %7235, align 4, !tbaa !5
  store i32 %7236, ptr %148, align 4, !tbaa !5
  %7237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7238 = call i32 @s2n_print_stacktrace(ptr noundef %7237)
  %7239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7240 = trunc i8 %7239 to i1
  br i1 %7240, label %7241, label %7263

7241:                                             ; preds = %7234
  %7242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7243 = call i32 @fileno(ptr noundef %7242) #12
  %7244 = call i32 @isatty(i32 noundef %7243) #12
  %7245 = icmp ne i32 %7244, 0
  br i1 %7245, label %7246, label %7263

7246:                                             ; preds = %7241
  %7247 = load i32, ptr %148, align 4, !tbaa !5
  %7248 = call ptr @__errno_location() #13
  store i32 %7247, ptr %7248, align 4, !tbaa !5
  %7249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7250 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7252, ptr noundef @.str.4)
  %7254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7255 = load i32, ptr %7254, align 4, !tbaa !5
  %7256 = call ptr @s2n_strerror_debug(i32 noundef %7255, ptr noundef @.str.4)
  %7257 = call ptr @__errno_location() #13
  %7258 = load i32, ptr %7257, align 4, !tbaa !5
  %7259 = call ptr @strerror(i32 noundef %7258) #12
  %7260 = call ptr @__errno_location() #13
  %7261 = load i32, ptr %7260, align 4, !tbaa !5
  %7262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7249, ptr noundef @.str.2, i32 noundef %7250, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 412, ptr noundef %7253, ptr noundef %7256, ptr noundef %7259, i32 noundef %7261) #12
  br label %7280

7263:                                             ; preds = %7241, %7234
  %7264 = load i32, ptr %148, align 4, !tbaa !5
  %7265 = call ptr @__errno_location() #13
  store i32 %7264, ptr %7265, align 4, !tbaa !5
  %7266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7267 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7269, ptr noundef @.str.4)
  %7271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7272 = load i32, ptr %7271, align 4, !tbaa !5
  %7273 = call ptr @s2n_strerror_debug(i32 noundef %7272, ptr noundef @.str.4)
  %7274 = call ptr @__errno_location() #13
  %7275 = load i32, ptr %7274, align 4, !tbaa !5
  %7276 = call ptr @strerror(i32 noundef %7275) #12
  %7277 = call ptr @__errno_location() #13
  %7278 = load i32, ptr %7277, align 4, !tbaa !5
  %7279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7266, ptr noundef @.str.5, i32 noundef %7267, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 412, ptr noundef %7270, ptr noundef %7273, ptr noundef %7276, i32 noundef %7278) #12
  br label %7280

7280:                                             ; preds = %7263, %7246
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #12
  br label %7281

7281:                                             ; preds = %7280
  br label %7282

7282:                                             ; preds = %7281
  call void @exit(i32 noundef 1) #14
  unreachable

7283:                                             ; No predecessors!
  br label %7284

7284:                                             ; preds = %7283
  br label %7285

7285:                                             ; preds = %7284, %7226
  br label %7286

7286:                                             ; preds = %7285
  br label %7287

7287:                                             ; preds = %7286
  %7288 = load ptr, ptr %103, align 8, !tbaa !9
  %7289 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %7288, i32 0, i32 1
  %7290 = load ptr, ptr %7289, align 8, !tbaa !55
  %7291 = getelementptr inbounds ptr, ptr %7290, i64 0
  %7292 = load ptr, ptr %7291, align 8, !tbaa !9
  %7293 = load ptr, ptr %47, align 8, !tbaa !9
  %7294 = getelementptr inbounds %struct.s2n_connection, ptr %7293, i32 0, i32 31
  %7295 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7294, i32 0, i32 1
  %7296 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7295, i32 0, i32 0
  store ptr %7292, ptr %7296, align 8, !tbaa !57
  %7297 = load ptr, ptr %47, align 8, !tbaa !9
  %7298 = getelementptr inbounds %struct.s2n_connection, ptr %7297, i32 0, i32 22
  %7299 = load i8, ptr %7298, align 1, !tbaa !43
  %7300 = load ptr, ptr %47, align 8, !tbaa !9
  %7301 = getelementptr inbounds %struct.s2n_connection, ptr %7300, i32 0, i32 23
  store i8 %7299, ptr %7301, align 4, !tbaa !42
  br label %7302

7302:                                             ; preds = %7287
  %7303 = load i32, ptr @test_count, align 4, !tbaa !5
  %7304 = add nsw i32 %7303, 1
  store i32 %7304, ptr @test_count, align 4, !tbaa !5
  %7305 = load ptr, ptr %47, align 8, !tbaa !9
  %7306 = load ptr, ptr %48, align 8, !tbaa !9
  %7307 = call i32 @s2n_connection_set_config(ptr noundef %7305, ptr noundef %7306)
  %7308 = icmp eq i32 %7307, -1
  br i1 %7308, label %7309, label %7362

7309:                                             ; preds = %7302
  br label %7310

7310:                                             ; preds = %7309
  br label %7311

7311:                                             ; preds = %7310
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #12
  %7312 = call ptr @__errno_location() #13
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  store i32 %7313, ptr %149, align 4, !tbaa !5
  %7314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7315 = call i32 @s2n_print_stacktrace(ptr noundef %7314)
  %7316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7317 = trunc i8 %7316 to i1
  br i1 %7317, label %7318, label %7340

7318:                                             ; preds = %7311
  %7319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7320 = call i32 @fileno(ptr noundef %7319) #12
  %7321 = call i32 @isatty(i32 noundef %7320) #12
  %7322 = icmp ne i32 %7321, 0
  br i1 %7322, label %7323, label %7340

7323:                                             ; preds = %7318
  %7324 = load i32, ptr %149, align 4, !tbaa !5
  %7325 = call ptr @__errno_location() #13
  store i32 %7324, ptr %7325, align 4, !tbaa !5
  %7326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7327 = load i32, ptr @test_count, align 4, !tbaa !5
  %7328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7329 = load i32, ptr %7328, align 4, !tbaa !5
  %7330 = call ptr @s2n_strerror(i32 noundef %7329, ptr noundef @.str.4)
  %7331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7332 = load i32, ptr %7331, align 4, !tbaa !5
  %7333 = call ptr @s2n_strerror_debug(i32 noundef %7332, ptr noundef @.str.4)
  %7334 = call ptr @__errno_location() #13
  %7335 = load i32, ptr %7334, align 4, !tbaa !5
  %7336 = call ptr @strerror(i32 noundef %7335) #12
  %7337 = call ptr @__errno_location() #13
  %7338 = load i32, ptr %7337, align 4, !tbaa !5
  %7339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7326, ptr noundef @.str.2, i32 noundef %7327, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 415, ptr noundef %7330, ptr noundef %7333, ptr noundef %7336, i32 noundef %7338) #12
  br label %7357

7340:                                             ; preds = %7318, %7311
  %7341 = load i32, ptr %149, align 4, !tbaa !5
  %7342 = call ptr @__errno_location() #13
  store i32 %7341, ptr %7342, align 4, !tbaa !5
  %7343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7344 = load i32, ptr @test_count, align 4, !tbaa !5
  %7345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7346 = load i32, ptr %7345, align 4, !tbaa !5
  %7347 = call ptr @s2n_strerror(i32 noundef %7346, ptr noundef @.str.4)
  %7348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7349 = load i32, ptr %7348, align 4, !tbaa !5
  %7350 = call ptr @s2n_strerror_debug(i32 noundef %7349, ptr noundef @.str.4)
  %7351 = call ptr @__errno_location() #13
  %7352 = load i32, ptr %7351, align 4, !tbaa !5
  %7353 = call ptr @strerror(i32 noundef %7352) #12
  %7354 = call ptr @__errno_location() #13
  %7355 = load i32, ptr %7354, align 4, !tbaa !5
  %7356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7343, ptr noundef @.str.5, i32 noundef %7344, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 415, ptr noundef %7347, ptr noundef %7350, ptr noundef %7353, i32 noundef %7355) #12
  br label %7357

7357:                                             ; preds = %7340, %7323
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #12
  br label %7358

7358:                                             ; preds = %7357
  br label %7359

7359:                                             ; preds = %7358
  call void @exit(i32 noundef 1) #14
  unreachable

7360:                                             ; No predecessors!
  br label %7361

7361:                                             ; preds = %7360
  br label %7362

7362:                                             ; preds = %7361, %7302
  br label %7363

7363:                                             ; preds = %7362
  br label %7364

7364:                                             ; preds = %7363
  br label %7365

7365:                                             ; preds = %7364
  %7366 = load i32, ptr @test_count, align 4, !tbaa !5
  %7367 = add nsw i32 %7366, 1
  store i32 %7367, ptr @test_count, align 4, !tbaa !5
  %7368 = load ptr, ptr %47, align 8, !tbaa !9
  %7369 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %7370 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %7368, ptr noundef %7369, i16 noundef zeroext 2)
  %7371 = icmp eq i32 %7370, -1
  br i1 %7371, label %7372, label %7425

7372:                                             ; preds = %7365
  br label %7373

7373:                                             ; preds = %7372
  br label %7374

7374:                                             ; preds = %7373
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #12
  %7375 = call ptr @__errno_location() #13
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  store i32 %7376, ptr %150, align 4, !tbaa !5
  %7377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7378 = call i32 @s2n_print_stacktrace(ptr noundef %7377)
  %7379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7380 = trunc i8 %7379 to i1
  br i1 %7380, label %7381, label %7403

7381:                                             ; preds = %7374
  %7382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7383 = call i32 @fileno(ptr noundef %7382) #12
  %7384 = call i32 @isatty(i32 noundef %7383) #12
  %7385 = icmp ne i32 %7384, 0
  br i1 %7385, label %7386, label %7403

7386:                                             ; preds = %7381
  %7387 = load i32, ptr %150, align 4, !tbaa !5
  %7388 = call ptr @__errno_location() #13
  store i32 %7387, ptr %7388, align 4, !tbaa !5
  %7389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7390 = load i32, ptr @test_count, align 4, !tbaa !5
  %7391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7392 = load i32, ptr %7391, align 4, !tbaa !5
  %7393 = call ptr @s2n_strerror(i32 noundef %7392, ptr noundef @.str.4)
  %7394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7395 = load i32, ptr %7394, align 4, !tbaa !5
  %7396 = call ptr @s2n_strerror_debug(i32 noundef %7395, ptr noundef @.str.4)
  %7397 = call ptr @__errno_location() #13
  %7398 = load i32, ptr %7397, align 4, !tbaa !5
  %7399 = call ptr @strerror(i32 noundef %7398) #12
  %7400 = call ptr @__errno_location() #13
  %7401 = load i32, ptr %7400, align 4, !tbaa !5
  %7402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7389, ptr noundef @.str.2, i32 noundef %7390, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 416, ptr noundef %7393, ptr noundef %7396, ptr noundef %7399, i32 noundef %7401) #12
  br label %7420

7403:                                             ; preds = %7381, %7374
  %7404 = load i32, ptr %150, align 4, !tbaa !5
  %7405 = call ptr @__errno_location() #13
  store i32 %7404, ptr %7405, align 4, !tbaa !5
  %7406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7407 = load i32, ptr @test_count, align 4, !tbaa !5
  %7408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7409 = load i32, ptr %7408, align 4, !tbaa !5
  %7410 = call ptr @s2n_strerror(i32 noundef %7409, ptr noundef @.str.4)
  %7411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7412 = load i32, ptr %7411, align 4, !tbaa !5
  %7413 = call ptr @s2n_strerror_debug(i32 noundef %7412, ptr noundef @.str.4)
  %7414 = call ptr @__errno_location() #13
  %7415 = load i32, ptr %7414, align 4, !tbaa !5
  %7416 = call ptr @strerror(i32 noundef %7415) #12
  %7417 = call ptr @__errno_location() #13
  %7418 = load i32, ptr %7417, align 4, !tbaa !5
  %7419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7406, ptr noundef @.str.5, i32 noundef %7407, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 416, ptr noundef %7410, ptr noundef %7413, ptr noundef %7416, i32 noundef %7418) #12
  br label %7420

7420:                                             ; preds = %7403, %7386
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #12
  br label %7421

7421:                                             ; preds = %7420
  br label %7422

7422:                                             ; preds = %7421
  call void @exit(i32 noundef 1) #14
  unreachable

7423:                                             ; No predecessors!
  br label %7424

7424:                                             ; preds = %7423
  br label %7425

7425:                                             ; preds = %7424, %7365
  br label %7426

7426:                                             ; preds = %7425
  br label %7427

7427:                                             ; preds = %7426
  br label %7428

7428:                                             ; preds = %7427
  %7429 = load i32, ptr @test_count, align 4, !tbaa !5
  %7430 = add nsw i32 %7429, 1
  store i32 %7430, ptr @test_count, align 4, !tbaa !5
  %7431 = load ptr, ptr %47, align 8, !tbaa !9
  %7432 = load i32, ptr %7431, align 8
  %7433 = lshr i32 %7432, 3
  %7434 = and i32 %7433, 1
  %7435 = icmp eq i32 %7434, 0
  br i1 %7435, label %7489, label %7436

7436:                                             ; preds = %7428
  br label %7437

7437:                                             ; preds = %7436
  br label %7438

7438:                                             ; preds = %7437
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #12
  %7439 = call ptr @__errno_location() #13
  %7440 = load i32, ptr %7439, align 4, !tbaa !5
  store i32 %7440, ptr %151, align 4, !tbaa !5
  %7441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7442 = call i32 @s2n_print_stacktrace(ptr noundef %7441)
  %7443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7444 = trunc i8 %7443 to i1
  br i1 %7444, label %7445, label %7467

7445:                                             ; preds = %7438
  %7446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7447 = call i32 @fileno(ptr noundef %7446) #12
  %7448 = call i32 @isatty(i32 noundef %7447) #12
  %7449 = icmp ne i32 %7448, 0
  br i1 %7449, label %7450, label %7467

7450:                                             ; preds = %7445
  %7451 = load i32, ptr %151, align 4, !tbaa !5
  %7452 = call ptr @__errno_location() #13
  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.4)
  %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.4)
  %7461 = call ptr @__errno_location() #13
  %7462 = load i32, ptr %7461, align 4, !tbaa !5
  %7463 = call ptr @strerror(i32 noundef %7462) #12
  %7464 = call ptr @__errno_location() #13
  %7465 = load i32, ptr %7464, align 4, !tbaa !5
  %7466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7453, ptr noundef @.str.2, i32 noundef %7454, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 417, ptr noundef %7457, ptr noundef %7460, ptr noundef %7463, i32 noundef %7465) #12
  br label %7484

7467:                                             ; preds = %7445, %7438
  %7468 = load i32, ptr %151, align 4, !tbaa !5
  %7469 = call ptr @__errno_location() #13
  store i32 %7468, ptr %7469, align 4, !tbaa !5
  %7470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7471 = load i32, ptr @test_count, align 4, !tbaa !5
  %7472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7473 = load i32, ptr %7472, align 4, !tbaa !5
  %7474 = call ptr @s2n_strerror(i32 noundef %7473, ptr noundef @.str.4)
  %7475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7476 = load i32, ptr %7475, align 4, !tbaa !5
  %7477 = call ptr @s2n_strerror_debug(i32 noundef %7476, ptr noundef @.str.4)
  %7478 = call ptr @__errno_location() #13
  %7479 = load i32, ptr %7478, align 4, !tbaa !5
  %7480 = call ptr @strerror(i32 noundef %7479) #12
  %7481 = call ptr @__errno_location() #13
  %7482 = load i32, ptr %7481, align 4, !tbaa !5
  %7483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7470, ptr noundef @.str.5, i32 noundef %7471, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 417, ptr noundef %7474, ptr noundef %7477, ptr noundef %7480, i32 noundef %7482) #12
  br label %7484

7484:                                             ; preds = %7467, %7450
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #12
  br label %7485

7485:                                             ; preds = %7484
  br label %7486

7486:                                             ; preds = %7485
  call void @exit(i32 noundef 1) #14
  unreachable

7487:                                             ; No predecessors!
  br label %7488

7488:                                             ; preds = %7487
  br label %7489

7489:                                             ; preds = %7488, %7428
  br label %7490

7490:                                             ; preds = %7489
  br label %7491

7491:                                             ; preds = %7490
  br label %7492

7492:                                             ; preds = %7491
  %7493 = load i32, ptr @test_count, align 4, !tbaa !5
  %7494 = add nsw i32 %7493, 1
  store i32 %7494, ptr @test_count, align 4, !tbaa !5
  %7495 = load ptr, ptr %47, align 8, !tbaa !9
  %7496 = getelementptr inbounds %struct.s2n_connection, ptr %7495, i32 0, i32 27
  %7497 = load ptr, ptr %7496, align 8, !tbaa !48
  %7498 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7497, i32 0, i32 0
  %7499 = load ptr, ptr %7498, align 8, !tbaa !49
  %7500 = load ptr, ptr %147, align 8, !tbaa !9
  %7501 = icmp eq ptr %7499, %7500
  br i1 %7501, label %7555, label %7502

7502:                                             ; preds = %7492
  br label %7503

7503:                                             ; preds = %7502
  br label %7504

7504:                                             ; preds = %7503
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #12
  %7505 = call ptr @__errno_location() #13
  %7506 = load i32, ptr %7505, align 4, !tbaa !5
  store i32 %7506, ptr %152, align 4, !tbaa !5
  %7507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7508 = call i32 @s2n_print_stacktrace(ptr noundef %7507)
  %7509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7510 = trunc i8 %7509 to i1
  br i1 %7510, label %7511, label %7533

7511:                                             ; preds = %7504
  %7512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7513 = call i32 @fileno(ptr noundef %7512) #12
  %7514 = call i32 @isatty(i32 noundef %7513) #12
  %7515 = icmp ne i32 %7514, 0
  br i1 %7515, label %7516, label %7533

7516:                                             ; preds = %7511
  %7517 = load i32, ptr %152, align 4, !tbaa !5
  %7518 = call ptr @__errno_location() #13
  store i32 %7517, ptr %7518, align 4, !tbaa !5
  %7519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7520 = load i32, ptr @test_count, align 4, !tbaa !5
  %7521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7522 = load i32, ptr %7521, align 4, !tbaa !5
  %7523 = call ptr @s2n_strerror(i32 noundef %7522, ptr noundef @.str.4)
  %7524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7525 = load i32, ptr %7524, align 4, !tbaa !5
  %7526 = call ptr @s2n_strerror_debug(i32 noundef %7525, ptr noundef @.str.4)
  %7527 = call ptr @__errno_location() #13
  %7528 = load i32, ptr %7527, align 4, !tbaa !5
  %7529 = call ptr @strerror(i32 noundef %7528) #12
  %7530 = call ptr @__errno_location() #13
  %7531 = load i32, ptr %7530, align 4, !tbaa !5
  %7532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7519, ptr noundef @.str.2, i32 noundef %7520, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 418, ptr noundef %7523, ptr noundef %7526, ptr noundef %7529, i32 noundef %7531) #12
  br label %7550

7533:                                             ; preds = %7511, %7504
  %7534 = load i32, ptr %152, align 4, !tbaa !5
  %7535 = call ptr @__errno_location() #13
  store i32 %7534, ptr %7535, align 4, !tbaa !5
  %7536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7537 = load i32, ptr @test_count, align 4, !tbaa !5
  %7538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7539 = load i32, ptr %7538, align 4, !tbaa !5
  %7540 = call ptr @s2n_strerror(i32 noundef %7539, ptr noundef @.str.4)
  %7541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7542 = load i32, ptr %7541, align 4, !tbaa !5
  %7543 = call ptr @s2n_strerror_debug(i32 noundef %7542, ptr noundef @.str.4)
  %7544 = call ptr @__errno_location() #13
  %7545 = load i32, ptr %7544, align 4, !tbaa !5
  %7546 = call ptr @strerror(i32 noundef %7545) #12
  %7547 = call ptr @__errno_location() #13
  %7548 = load i32, ptr %7547, align 4, !tbaa !5
  %7549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7536, ptr noundef @.str.5, i32 noundef %7537, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 418, ptr noundef %7540, ptr noundef %7543, ptr noundef %7546, i32 noundef %7548) #12
  br label %7550

7550:                                             ; preds = %7533, %7516
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #12
  br label %7551

7551:                                             ; preds = %7550
  br label %7552

7552:                                             ; preds = %7551
  call void @exit(i32 noundef 1) #14
  unreachable

7553:                                             ; No predecessors!
  br label %7554

7554:                                             ; preds = %7553
  br label %7555

7555:                                             ; preds = %7554, %7492
  br label %7556

7556:                                             ; preds = %7555
  br label %7557

7557:                                             ; preds = %7556
  br label %7558

7558:                                             ; preds = %7557
  %7559 = load i32, ptr @test_count, align 4, !tbaa !5
  %7560 = add nsw i32 %7559, 1
  store i32 %7560, ptr @test_count, align 4, !tbaa !5
  %7561 = load ptr, ptr %47, align 8, !tbaa !9
  %7562 = call i32 @s2n_connection_wipe(ptr noundef %7561)
  %7563 = icmp eq i32 %7562, -1
  br i1 %7563, label %7564, label %7617

7564:                                             ; preds = %7558
  br label %7565

7565:                                             ; preds = %7564
  br label %7566

7566:                                             ; preds = %7565
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #12
  %7567 = call ptr @__errno_location() #13
  %7568 = load i32, ptr %7567, align 4, !tbaa !5
  store i32 %7568, ptr %153, align 4, !tbaa !5
  %7569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7570 = call i32 @s2n_print_stacktrace(ptr noundef %7569)
  %7571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7572 = trunc i8 %7571 to i1
  br i1 %7572, label %7573, label %7595

7573:                                             ; preds = %7566
  %7574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7575 = call i32 @fileno(ptr noundef %7574) #12
  %7576 = call i32 @isatty(i32 noundef %7575) #12
  %7577 = icmp ne i32 %7576, 0
  br i1 %7577, label %7578, label %7595

7578:                                             ; preds = %7573
  %7579 = load i32, ptr %153, align 4, !tbaa !5
  %7580 = call ptr @__errno_location() #13
  store i32 %7579, ptr %7580, align 4, !tbaa !5
  %7581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7582 = load i32, ptr @test_count, align 4, !tbaa !5
  %7583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7584 = load i32, ptr %7583, align 4, !tbaa !5
  %7585 = call ptr @s2n_strerror(i32 noundef %7584, ptr noundef @.str.4)
  %7586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7587 = load i32, ptr %7586, align 4, !tbaa !5
  %7588 = call ptr @s2n_strerror_debug(i32 noundef %7587, ptr noundef @.str.4)
  %7589 = call ptr @__errno_location() #13
  %7590 = load i32, ptr %7589, align 4, !tbaa !5
  %7591 = call ptr @strerror(i32 noundef %7590) #12
  %7592 = call ptr @__errno_location() #13
  %7593 = load i32, ptr %7592, align 4, !tbaa !5
  %7594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7581, ptr noundef @.str.2, i32 noundef %7582, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 419, ptr noundef %7585, ptr noundef %7588, ptr noundef %7591, i32 noundef %7593) #12
  br label %7612

7595:                                             ; preds = %7573, %7566
  %7596 = load i32, ptr %153, align 4, !tbaa !5
  %7597 = call ptr @__errno_location() #13
  store i32 %7596, ptr %7597, align 4, !tbaa !5
  %7598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7599 = load i32, ptr @test_count, align 4, !tbaa !5
  %7600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7601 = load i32, ptr %7600, align 4, !tbaa !5
  %7602 = call ptr @s2n_strerror(i32 noundef %7601, ptr noundef @.str.4)
  %7603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7604 = load i32, ptr %7603, align 4, !tbaa !5
  %7605 = call ptr @s2n_strerror_debug(i32 noundef %7604, ptr noundef @.str.4)
  %7606 = call ptr @__errno_location() #13
  %7607 = load i32, ptr %7606, align 4, !tbaa !5
  %7608 = call ptr @strerror(i32 noundef %7607) #12
  %7609 = call ptr @__errno_location() #13
  %7610 = load i32, ptr %7609, align 4, !tbaa !5
  %7611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7598, ptr noundef @.str.5, i32 noundef %7599, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 419, ptr noundef %7602, ptr noundef %7605, ptr noundef %7608, i32 noundef %7610) #12
  br label %7612

7612:                                             ; preds = %7595, %7578
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #12
  br label %7613

7613:                                             ; preds = %7612
  br label %7614

7614:                                             ; preds = %7613
  call void @exit(i32 noundef 1) #14
  unreachable

7615:                                             ; No predecessors!
  br label %7616

7616:                                             ; preds = %7615
  br label %7617

7617:                                             ; preds = %7616, %7558
  br label %7618

7618:                                             ; preds = %7617
  br label %7619

7619:                                             ; preds = %7618
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #12
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256, ptr %154, align 8, !tbaa !9
  br label %7620

7620:                                             ; preds = %7619
  %7621 = load i32, ptr @test_count, align 4, !tbaa !5
  %7622 = add nsw i32 %7621, 1
  store i32 %7622, ptr @test_count, align 4, !tbaa !5
  %7623 = load ptr, ptr %47, align 8, !tbaa !9
  %7624 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %7623, ptr noundef @.str.80)
  %7625 = icmp eq i32 %7624, -1
  br i1 %7625, label %7626, label %7679

7626:                                             ; preds = %7620
  br label %7627

7627:                                             ; preds = %7626
  br label %7628

7628:                                             ; preds = %7627
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #12
  %7629 = call ptr @__errno_location() #13
  %7630 = load i32, ptr %7629, align 4, !tbaa !5
  store i32 %7630, ptr %155, align 4, !tbaa !5
  %7631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7632 = call i32 @s2n_print_stacktrace(ptr noundef %7631)
  %7633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7634 = trunc i8 %7633 to i1
  br i1 %7634, label %7635, label %7657

7635:                                             ; preds = %7628
  %7636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7637 = call i32 @fileno(ptr noundef %7636) #12
  %7638 = call i32 @isatty(i32 noundef %7637) #12
  %7639 = icmp ne i32 %7638, 0
  br i1 %7639, label %7640, label %7657

7640:                                             ; preds = %7635
  %7641 = load i32, ptr %155, align 4, !tbaa !5
  %7642 = call ptr @__errno_location() #13
  store i32 %7641, ptr %7642, align 4, !tbaa !5
  %7643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7644 = load i32, ptr @test_count, align 4, !tbaa !5
  %7645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7646 = load i32, ptr %7645, align 4, !tbaa !5
  %7647 = call ptr @s2n_strerror(i32 noundef %7646, ptr noundef @.str.4)
  %7648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7649 = load i32, ptr %7648, align 4, !tbaa !5
  %7650 = call ptr @s2n_strerror_debug(i32 noundef %7649, ptr noundef @.str.4)
  %7651 = call ptr @__errno_location() #13
  %7652 = load i32, ptr %7651, align 4, !tbaa !5
  %7653 = call ptr @strerror(i32 noundef %7652) #12
  %7654 = call ptr @__errno_location() #13
  %7655 = load i32, ptr %7654, align 4, !tbaa !5
  %7656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7643, ptr noundef @.str.2, i32 noundef %7644, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 427, ptr noundef %7647, ptr noundef %7650, ptr noundef %7653, i32 noundef %7655) #12
  br label %7674

7657:                                             ; preds = %7635, %7628
  %7658 = load i32, ptr %155, align 4, !tbaa !5
  %7659 = call ptr @__errno_location() #13
  store i32 %7658, ptr %7659, align 4, !tbaa !5
  %7660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7661 = load i32, ptr @test_count, align 4, !tbaa !5
  %7662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7663 = load i32, ptr %7662, align 4, !tbaa !5
  %7664 = call ptr @s2n_strerror(i32 noundef %7663, ptr noundef @.str.4)
  %7665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7666 = load i32, ptr %7665, align 4, !tbaa !5
  %7667 = call ptr @s2n_strerror_debug(i32 noundef %7666, ptr noundef @.str.4)
  %7668 = call ptr @__errno_location() #13
  %7669 = load i32, ptr %7668, align 4, !tbaa !5
  %7670 = call ptr @strerror(i32 noundef %7669) #12
  %7671 = call ptr @__errno_location() #13
  %7672 = load i32, ptr %7671, align 4, !tbaa !5
  %7673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7660, ptr noundef @.str.5, i32 noundef %7661, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 427, ptr noundef %7664, ptr noundef %7667, ptr noundef %7670, i32 noundef %7672) #12
  br label %7674

7674:                                             ; preds = %7657, %7640
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #12
  br label %7675

7675:                                             ; preds = %7674
  br label %7676

7676:                                             ; preds = %7675
  call void @exit(i32 noundef 1) #14
  unreachable

7677:                                             ; No predecessors!
  br label %7678

7678:                                             ; preds = %7677
  br label %7679

7679:                                             ; preds = %7678, %7620
  br label %7680

7680:                                             ; preds = %7679
  br label %7681

7681:                                             ; preds = %7680
  %7682 = load ptr, ptr %103, align 8, !tbaa !9
  %7683 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %7682, i32 0, i32 1
  %7684 = load ptr, ptr %7683, align 8, !tbaa !55
  %7685 = getelementptr inbounds ptr, ptr %7684, i64 0
  %7686 = load ptr, ptr %7685, align 8, !tbaa !9
  %7687 = load ptr, ptr %47, align 8, !tbaa !9
  %7688 = getelementptr inbounds %struct.s2n_connection, ptr %7687, i32 0, i32 31
  %7689 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7688, i32 0, i32 1
  %7690 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7689, i32 0, i32 0
  store ptr %7686, ptr %7690, align 8, !tbaa !57
  %7691 = load ptr, ptr %47, align 8, !tbaa !9
  %7692 = getelementptr inbounds %struct.s2n_connection, ptr %7691, i32 0, i32 22
  %7693 = load i8, ptr %7692, align 1, !tbaa !43
  %7694 = load ptr, ptr %47, align 8, !tbaa !9
  %7695 = getelementptr inbounds %struct.s2n_connection, ptr %7694, i32 0, i32 23
  store i8 %7693, ptr %7695, align 4, !tbaa !42
  br label %7696

7696:                                             ; preds = %7681
  %7697 = load i32, ptr @test_count, align 4, !tbaa !5
  %7698 = add nsw i32 %7697, 1
  store i32 %7698, ptr @test_count, align 4, !tbaa !5
  %7699 = load ptr, ptr %47, align 8, !tbaa !9
  %7700 = load ptr, ptr %48, align 8, !tbaa !9
  %7701 = call i32 @s2n_connection_set_config(ptr noundef %7699, ptr noundef %7700)
  %7702 = icmp eq i32 %7701, -1
  br i1 %7702, label %7703, label %7756

7703:                                             ; preds = %7696
  br label %7704

7704:                                             ; preds = %7703
  br label %7705

7705:                                             ; preds = %7704
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #12
  %7706 = call ptr @__errno_location() #13
  %7707 = load i32, ptr %7706, align 4, !tbaa !5
  store i32 %7707, ptr %156, align 4, !tbaa !5
  %7708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7709 = call i32 @s2n_print_stacktrace(ptr noundef %7708)
  %7710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7711 = trunc i8 %7710 to i1
  br i1 %7711, label %7712, label %7734

7712:                                             ; preds = %7705
  %7713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7714 = call i32 @fileno(ptr noundef %7713) #12
  %7715 = call i32 @isatty(i32 noundef %7714) #12
  %7716 = icmp ne i32 %7715, 0
  br i1 %7716, label %7717, label %7734

7717:                                             ; preds = %7712
  %7718 = load i32, ptr %156, align 4, !tbaa !5
  %7719 = call ptr @__errno_location() #13
  store i32 %7718, ptr %7719, align 4, !tbaa !5
  %7720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7721 = load i32, ptr @test_count, align 4, !tbaa !5
  %7722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7723 = load i32, ptr %7722, align 4, !tbaa !5
  %7724 = call ptr @s2n_strerror(i32 noundef %7723, ptr noundef @.str.4)
  %7725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7726 = load i32, ptr %7725, align 4, !tbaa !5
  %7727 = call ptr @s2n_strerror_debug(i32 noundef %7726, ptr noundef @.str.4)
  %7728 = call ptr @__errno_location() #13
  %7729 = load i32, ptr %7728, align 4, !tbaa !5
  %7730 = call ptr @strerror(i32 noundef %7729) #12
  %7731 = call ptr @__errno_location() #13
  %7732 = load i32, ptr %7731, align 4, !tbaa !5
  %7733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7720, ptr noundef @.str.2, i32 noundef %7721, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 430, ptr noundef %7724, ptr noundef %7727, ptr noundef %7730, i32 noundef %7732) #12
  br label %7751

7734:                                             ; preds = %7712, %7705
  %7735 = load i32, ptr %156, align 4, !tbaa !5
  %7736 = call ptr @__errno_location() #13
  store i32 %7735, ptr %7736, align 4, !tbaa !5
  %7737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7738 = load i32, ptr @test_count, align 4, !tbaa !5
  %7739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  %7741 = call ptr @s2n_strerror(i32 noundef %7740, ptr noundef @.str.4)
  %7742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  %7744 = call ptr @s2n_strerror_debug(i32 noundef %7743, ptr noundef @.str.4)
  %7745 = call ptr @__errno_location() #13
  %7746 = load i32, ptr %7745, align 4, !tbaa !5
  %7747 = call ptr @strerror(i32 noundef %7746) #12
  %7748 = call ptr @__errno_location() #13
  %7749 = load i32, ptr %7748, align 4, !tbaa !5
  %7750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7737, ptr noundef @.str.5, i32 noundef %7738, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 430, ptr noundef %7741, ptr noundef %7744, ptr noundef %7747, i32 noundef %7749) #12
  br label %7751

7751:                                             ; preds = %7734, %7717
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #12
  br label %7752

7752:                                             ; preds = %7751
  br label %7753

7753:                                             ; preds = %7752
  call void @exit(i32 noundef 1) #14
  unreachable

7754:                                             ; No predecessors!
  br label %7755

7755:                                             ; preds = %7754
  br label %7756

7756:                                             ; preds = %7755, %7696
  br label %7757

7757:                                             ; preds = %7756
  br label %7758

7758:                                             ; preds = %7757
  br label %7759

7759:                                             ; preds = %7758
  %7760 = load i32, ptr @test_count, align 4, !tbaa !5
  %7761 = add nsw i32 %7760, 1
  store i32 %7761, ptr @test_count, align 4, !tbaa !5
  %7762 = load ptr, ptr %47, align 8, !tbaa !9
  %7763 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %7764 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %7762, ptr noundef %7763, i16 noundef zeroext 2)
  %7765 = icmp eq i32 %7764, -1
  br i1 %7765, label %7766, label %7819

7766:                                             ; preds = %7759
  br label %7767

7767:                                             ; preds = %7766
  br label %7768

7768:                                             ; preds = %7767
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #12
  %7769 = call ptr @__errno_location() #13
  %7770 = load i32, ptr %7769, align 4, !tbaa !5
  store i32 %7770, ptr %157, align 4, !tbaa !5
  %7771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7772 = call i32 @s2n_print_stacktrace(ptr noundef %7771)
  %7773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7774 = trunc i8 %7773 to i1
  br i1 %7774, label %7775, label %7797

7775:                                             ; preds = %7768
  %7776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7777 = call i32 @fileno(ptr noundef %7776) #12
  %7778 = call i32 @isatty(i32 noundef %7777) #12
  %7779 = icmp ne i32 %7778, 0
  br i1 %7779, label %7780, label %7797

7780:                                             ; preds = %7775
  %7781 = load i32, ptr %157, align 4, !tbaa !5
  %7782 = call ptr @__errno_location() #13
  store i32 %7781, ptr %7782, align 4, !tbaa !5
  %7783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7784 = load i32, ptr @test_count, align 4, !tbaa !5
  %7785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7786 = load i32, ptr %7785, align 4, !tbaa !5
  %7787 = call ptr @s2n_strerror(i32 noundef %7786, ptr noundef @.str.4)
  %7788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7789 = load i32, ptr %7788, align 4, !tbaa !5
  %7790 = call ptr @s2n_strerror_debug(i32 noundef %7789, ptr noundef @.str.4)
  %7791 = call ptr @__errno_location() #13
  %7792 = load i32, ptr %7791, align 4, !tbaa !5
  %7793 = call ptr @strerror(i32 noundef %7792) #12
  %7794 = call ptr @__errno_location() #13
  %7795 = load i32, ptr %7794, align 4, !tbaa !5
  %7796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7783, ptr noundef @.str.2, i32 noundef %7784, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 431, ptr noundef %7787, ptr noundef %7790, ptr noundef %7793, i32 noundef %7795) #12
  br label %7814

7797:                                             ; preds = %7775, %7768
  %7798 = load i32, ptr %157, align 4, !tbaa !5
  %7799 = call ptr @__errno_location() #13
  store i32 %7798, ptr %7799, align 4, !tbaa !5
  %7800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7801 = load i32, ptr @test_count, align 4, !tbaa !5
  %7802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7803 = load i32, ptr %7802, align 4, !tbaa !5
  %7804 = call ptr @s2n_strerror(i32 noundef %7803, ptr noundef @.str.4)
  %7805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7806 = load i32, ptr %7805, align 4, !tbaa !5
  %7807 = call ptr @s2n_strerror_debug(i32 noundef %7806, ptr noundef @.str.4)
  %7808 = call ptr @__errno_location() #13
  %7809 = load i32, ptr %7808, align 4, !tbaa !5
  %7810 = call ptr @strerror(i32 noundef %7809) #12
  %7811 = call ptr @__errno_location() #13
  %7812 = load i32, ptr %7811, align 4, !tbaa !5
  %7813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7800, ptr noundef @.str.5, i32 noundef %7801, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 431, ptr noundef %7804, ptr noundef %7807, ptr noundef %7810, i32 noundef %7812) #12
  br label %7814

7814:                                             ; preds = %7797, %7780
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #12
  br label %7815

7815:                                             ; preds = %7814
  br label %7816

7816:                                             ; preds = %7815
  call void @exit(i32 noundef 1) #14
  unreachable

7817:                                             ; No predecessors!
  br label %7818

7818:                                             ; preds = %7817
  br label %7819

7819:                                             ; preds = %7818, %7759
  br label %7820

7820:                                             ; preds = %7819
  br label %7821

7821:                                             ; preds = %7820
  br label %7822

7822:                                             ; preds = %7821
  %7823 = load i32, ptr @test_count, align 4, !tbaa !5
  %7824 = add nsw i32 %7823, 1
  store i32 %7824, ptr @test_count, align 4, !tbaa !5
  %7825 = load ptr, ptr %47, align 8, !tbaa !9
  %7826 = load i32, ptr %7825, align 8
  %7827 = lshr i32 %7826, 3
  %7828 = and i32 %7827, 1
  %7829 = icmp eq i32 %7828, 0
  br i1 %7829, label %7883, label %7830

7830:                                             ; preds = %7822
  br label %7831

7831:                                             ; preds = %7830
  br label %7832

7832:                                             ; preds = %7831
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #12
  %7833 = call ptr @__errno_location() #13
  %7834 = load i32, ptr %7833, align 4, !tbaa !5
  store i32 %7834, ptr %158, align 4, !tbaa !5
  %7835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7836 = call i32 @s2n_print_stacktrace(ptr noundef %7835)
  %7837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7838 = trunc i8 %7837 to i1
  br i1 %7838, label %7839, label %7861

7839:                                             ; preds = %7832
  %7840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7841 = call i32 @fileno(ptr noundef %7840) #12
  %7842 = call i32 @isatty(i32 noundef %7841) #12
  %7843 = icmp ne i32 %7842, 0
  br i1 %7843, label %7844, label %7861

7844:                                             ; preds = %7839
  %7845 = load i32, ptr %158, align 4, !tbaa !5
  %7846 = call ptr @__errno_location() #13
  store i32 %7845, ptr %7846, align 4, !tbaa !5
  %7847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7848 = load i32, ptr @test_count, align 4, !tbaa !5
  %7849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7850 = load i32, ptr %7849, align 4, !tbaa !5
  %7851 = call ptr @s2n_strerror(i32 noundef %7850, ptr noundef @.str.4)
  %7852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7853 = load i32, ptr %7852, align 4, !tbaa !5
  %7854 = call ptr @s2n_strerror_debug(i32 noundef %7853, ptr noundef @.str.4)
  %7855 = call ptr @__errno_location() #13
  %7856 = load i32, ptr %7855, align 4, !tbaa !5
  %7857 = call ptr @strerror(i32 noundef %7856) #12
  %7858 = call ptr @__errno_location() #13
  %7859 = load i32, ptr %7858, align 4, !tbaa !5
  %7860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7847, ptr noundef @.str.2, i32 noundef %7848, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 432, ptr noundef %7851, ptr noundef %7854, ptr noundef %7857, i32 noundef %7859) #12
  br label %7878

7861:                                             ; preds = %7839, %7832
  %7862 = load i32, ptr %158, align 4, !tbaa !5
  %7863 = call ptr @__errno_location() #13
  store i32 %7862, ptr %7863, align 4, !tbaa !5
  %7864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7865 = load i32, ptr @test_count, align 4, !tbaa !5
  %7866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7867 = load i32, ptr %7866, align 4, !tbaa !5
  %7868 = call ptr @s2n_strerror(i32 noundef %7867, ptr noundef @.str.4)
  %7869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7870 = load i32, ptr %7869, align 4, !tbaa !5
  %7871 = call ptr @s2n_strerror_debug(i32 noundef %7870, ptr noundef @.str.4)
  %7872 = call ptr @__errno_location() #13
  %7873 = load i32, ptr %7872, align 4, !tbaa !5
  %7874 = call ptr @strerror(i32 noundef %7873) #12
  %7875 = call ptr @__errno_location() #13
  %7876 = load i32, ptr %7875, align 4, !tbaa !5
  %7877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7864, ptr noundef @.str.5, i32 noundef %7865, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 432, ptr noundef %7868, ptr noundef %7871, ptr noundef %7874, i32 noundef %7876) #12
  br label %7878

7878:                                             ; preds = %7861, %7844
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #12
  br label %7879

7879:                                             ; preds = %7878
  br label %7880

7880:                                             ; preds = %7879
  call void @exit(i32 noundef 1) #14
  unreachable

7881:                                             ; No predecessors!
  br label %7882

7882:                                             ; preds = %7881
  br label %7883

7883:                                             ; preds = %7882, %7822
  br label %7884

7884:                                             ; preds = %7883
  br label %7885

7885:                                             ; preds = %7884
  br label %7886

7886:                                             ; preds = %7885
  %7887 = load i32, ptr @test_count, align 4, !tbaa !5
  %7888 = add nsw i32 %7887, 1
  store i32 %7888, ptr @test_count, align 4, !tbaa !5
  %7889 = load ptr, ptr %47, align 8, !tbaa !9
  %7890 = getelementptr inbounds %struct.s2n_connection, ptr %7889, i32 0, i32 27
  %7891 = load ptr, ptr %7890, align 8, !tbaa !48
  %7892 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7891, i32 0, i32 0
  %7893 = load ptr, ptr %7892, align 8, !tbaa !49
  %7894 = load ptr, ptr %154, align 8, !tbaa !9
  %7895 = icmp eq ptr %7893, %7894
  br i1 %7895, label %7949, label %7896

7896:                                             ; preds = %7886
  br label %7897

7897:                                             ; preds = %7896
  br label %7898

7898:                                             ; preds = %7897
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #12
  %7899 = call ptr @__errno_location() #13
  %7900 = load i32, ptr %7899, align 4, !tbaa !5
  store i32 %7900, ptr %159, align 4, !tbaa !5
  %7901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7902 = call i32 @s2n_print_stacktrace(ptr noundef %7901)
  %7903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7904 = trunc i8 %7903 to i1
  br i1 %7904, label %7905, label %7927

7905:                                             ; preds = %7898
  %7906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7907 = call i32 @fileno(ptr noundef %7906) #12
  %7908 = call i32 @isatty(i32 noundef %7907) #12
  %7909 = icmp ne i32 %7908, 0
  br i1 %7909, label %7910, label %7927

7910:                                             ; preds = %7905
  %7911 = load i32, ptr %159, align 4, !tbaa !5
  %7912 = call ptr @__errno_location() #13
  store i32 %7911, ptr %7912, align 4, !tbaa !5
  %7913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7914 = load i32, ptr @test_count, align 4, !tbaa !5
  %7915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7916 = load i32, ptr %7915, align 4, !tbaa !5
  %7917 = call ptr @s2n_strerror(i32 noundef %7916, ptr noundef @.str.4)
  %7918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7919 = load i32, ptr %7918, align 4, !tbaa !5
  %7920 = call ptr @s2n_strerror_debug(i32 noundef %7919, ptr noundef @.str.4)
  %7921 = call ptr @__errno_location() #13
  %7922 = load i32, ptr %7921, align 4, !tbaa !5
  %7923 = call ptr @strerror(i32 noundef %7922) #12
  %7924 = call ptr @__errno_location() #13
  %7925 = load i32, ptr %7924, align 4, !tbaa !5
  %7926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7913, ptr noundef @.str.2, i32 noundef %7914, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 433, ptr noundef %7917, ptr noundef %7920, ptr noundef %7923, i32 noundef %7925) #12
  br label %7944

7927:                                             ; preds = %7905, %7898
  %7928 = load i32, ptr %159, align 4, !tbaa !5
  %7929 = call ptr @__errno_location() #13
  store i32 %7928, ptr %7929, align 4, !tbaa !5
  %7930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7931 = load i32, ptr @test_count, align 4, !tbaa !5
  %7932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7933 = load i32, ptr %7932, align 4, !tbaa !5
  %7934 = call ptr @s2n_strerror(i32 noundef %7933, ptr noundef @.str.4)
  %7935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  %7937 = call ptr @s2n_strerror_debug(i32 noundef %7936, ptr noundef @.str.4)
  %7938 = call ptr @__errno_location() #13
  %7939 = load i32, ptr %7938, align 4, !tbaa !5
  %7940 = call ptr @strerror(i32 noundef %7939) #12
  %7941 = call ptr @__errno_location() #13
  %7942 = load i32, ptr %7941, align 4, !tbaa !5
  %7943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7930, ptr noundef @.str.5, i32 noundef %7931, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 433, ptr noundef %7934, ptr noundef %7937, ptr noundef %7940, i32 noundef %7942) #12
  br label %7944

7944:                                             ; preds = %7927, %7910
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #12
  br label %7945

7945:                                             ; preds = %7944
  br label %7946

7946:                                             ; preds = %7945
  call void @exit(i32 noundef 1) #14
  unreachable

7947:                                             ; No predecessors!
  br label %7948

7948:                                             ; preds = %7947
  br label %7949

7949:                                             ; preds = %7948, %7886
  br label %7950

7950:                                             ; preds = %7949
  br label %7951

7951:                                             ; preds = %7950
  br label %7952

7952:                                             ; preds = %7951
  %7953 = load i32, ptr @test_count, align 4, !tbaa !5
  %7954 = add nsw i32 %7953, 1
  store i32 %7954, ptr @test_count, align 4, !tbaa !5
  %7955 = load ptr, ptr %47, align 8, !tbaa !9
  %7956 = call i32 @s2n_connection_wipe(ptr noundef %7955)
  %7957 = icmp eq i32 %7956, -1
  br i1 %7957, label %7958, label %8011

7958:                                             ; preds = %7952
  br label %7959

7959:                                             ; preds = %7958
  br label %7960

7960:                                             ; preds = %7959
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #12
  %7961 = call ptr @__errno_location() #13
  %7962 = load i32, ptr %7961, align 4, !tbaa !5
  store i32 %7962, ptr %160, align 4, !tbaa !5
  %7963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7964 = call i32 @s2n_print_stacktrace(ptr noundef %7963)
  %7965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7966 = trunc i8 %7965 to i1
  br i1 %7966, label %7967, label %7989

7967:                                             ; preds = %7960
  %7968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7969 = call i32 @fileno(ptr noundef %7968) #12
  %7970 = call i32 @isatty(i32 noundef %7969) #12
  %7971 = icmp ne i32 %7970, 0
  br i1 %7971, label %7972, label %7989

7972:                                             ; preds = %7967
  %7973 = load i32, ptr %160, align 4, !tbaa !5
  %7974 = call ptr @__errno_location() #13
  store i32 %7973, ptr %7974, align 4, !tbaa !5
  %7975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7976 = load i32, ptr @test_count, align 4, !tbaa !5
  %7977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7978 = load i32, ptr %7977, align 4, !tbaa !5
  %7979 = call ptr @s2n_strerror(i32 noundef %7978, ptr noundef @.str.4)
  %7980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7981 = load i32, ptr %7980, align 4, !tbaa !5
  %7982 = call ptr @s2n_strerror_debug(i32 noundef %7981, ptr noundef @.str.4)
  %7983 = call ptr @__errno_location() #13
  %7984 = load i32, ptr %7983, align 4, !tbaa !5
  %7985 = call ptr @strerror(i32 noundef %7984) #12
  %7986 = call ptr @__errno_location() #13
  %7987 = load i32, ptr %7986, align 4, !tbaa !5
  %7988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7975, ptr noundef @.str.2, i32 noundef %7976, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 434, ptr noundef %7979, ptr noundef %7982, ptr noundef %7985, i32 noundef %7987) #12
  br label %8006

7989:                                             ; preds = %7967, %7960
  %7990 = load i32, ptr %160, align 4, !tbaa !5
  %7991 = call ptr @__errno_location() #13
  store i32 %7990, ptr %7991, align 4, !tbaa !5
  %7992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7993 = load i32, ptr @test_count, align 4, !tbaa !5
  %7994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7995 = load i32, ptr %7994, align 4, !tbaa !5
  %7996 = call ptr @s2n_strerror(i32 noundef %7995, ptr noundef @.str.4)
  %7997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7998 = load i32, ptr %7997, align 4, !tbaa !5
  %7999 = call ptr @s2n_strerror_debug(i32 noundef %7998, ptr noundef @.str.4)
  %8000 = call ptr @__errno_location() #13
  %8001 = load i32, ptr %8000, align 4, !tbaa !5
  %8002 = call ptr @strerror(i32 noundef %8001) #12
  %8003 = call ptr @__errno_location() #13
  %8004 = load i32, ptr %8003, align 4, !tbaa !5
  %8005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7992, ptr noundef @.str.5, i32 noundef %7993, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 434, ptr noundef %7996, ptr noundef %7999, ptr noundef %8002, i32 noundef %8004) #12
  br label %8006

8006:                                             ; preds = %7989, %7972
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #12
  br label %8007

8007:                                             ; preds = %8006
  br label %8008

8008:                                             ; preds = %8007
  call void @exit(i32 noundef 1) #14
  unreachable

8009:                                             ; No predecessors!
  br label %8010

8010:                                             ; preds = %8009
  br label %8011

8011:                                             ; preds = %8010, %7952
  br label %8012

8012:                                             ; preds = %8011
  br label %8013

8013:                                             ; preds = %8012
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #12
  store ptr @s2n_rsa_with_rc4_128_md5, ptr %161, align 8, !tbaa !9
  %8014 = load ptr, ptr %161, align 8, !tbaa !9
  %8015 = load i8, ptr %8014, align 8
  %8016 = and i8 %8015, 1
  %8017 = zext i8 %8016 to i32
  %8018 = icmp ne i32 %8017, 0
  br i1 %8018, label %8020, label %8019

8019:                                             ; preds = %8013
  store ptr @s2n_rsa_with_3des_ede_cbc_sha, ptr %161, align 8, !tbaa !9
  br label %8020

8020:                                             ; preds = %8019, %8013
  br label %8021

8021:                                             ; preds = %8020
  %8022 = load i32, ptr @test_count, align 4, !tbaa !5
  %8023 = add nsw i32 %8022, 1
  store i32 %8023, ptr @test_count, align 4, !tbaa !5
  %8024 = load ptr, ptr %47, align 8, !tbaa !9
  %8025 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %8024, ptr noundef @.str.72)
  %8026 = icmp eq i32 %8025, -1
  br i1 %8026, label %8027, label %8080

8027:                                             ; preds = %8021
  br label %8028

8028:                                             ; preds = %8027
  br label %8029

8029:                                             ; preds = %8028
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #12
  %8030 = call ptr @__errno_location() #13
  %8031 = load i32, ptr %8030, align 4, !tbaa !5
  store i32 %8031, ptr %162, align 4, !tbaa !5
  %8032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8033 = call i32 @s2n_print_stacktrace(ptr noundef %8032)
  %8034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8035 = trunc i8 %8034 to i1
  br i1 %8035, label %8036, label %8058

8036:                                             ; preds = %8029
  %8037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8038 = call i32 @fileno(ptr noundef %8037) #12
  %8039 = call i32 @isatty(i32 noundef %8038) #12
  %8040 = icmp ne i32 %8039, 0
  br i1 %8040, label %8041, label %8058

8041:                                             ; preds = %8036
  %8042 = load i32, ptr %162, align 4, !tbaa !5
  %8043 = call ptr @__errno_location() #13
  store i32 %8042, ptr %8043, align 4, !tbaa !5
  %8044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8045 = load i32, ptr @test_count, align 4, !tbaa !5
  %8046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8047 = load i32, ptr %8046, align 4, !tbaa !5
  %8048 = call ptr @s2n_strerror(i32 noundef %8047, ptr noundef @.str.4)
  %8049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8050 = load i32, ptr %8049, align 4, !tbaa !5
  %8051 = call ptr @s2n_strerror_debug(i32 noundef %8050, ptr noundef @.str.4)
  %8052 = call ptr @__errno_location() #13
  %8053 = load i32, ptr %8052, align 4, !tbaa !5
  %8054 = call ptr @strerror(i32 noundef %8053) #12
  %8055 = call ptr @__errno_location() #13
  %8056 = load i32, ptr %8055, align 4, !tbaa !5
  %8057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8044, ptr noundef @.str.2, i32 noundef %8045, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 445, ptr noundef %8048, ptr noundef %8051, ptr noundef %8054, i32 noundef %8056) #12
  br label %8075

8058:                                             ; preds = %8036, %8029
  %8059 = load i32, ptr %162, align 4, !tbaa !5
  %8060 = call ptr @__errno_location() #13
  store i32 %8059, ptr %8060, align 4, !tbaa !5
  %8061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8062 = load i32, ptr @test_count, align 4, !tbaa !5
  %8063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8064 = load i32, ptr %8063, align 4, !tbaa !5
  %8065 = call ptr @s2n_strerror(i32 noundef %8064, ptr noundef @.str.4)
  %8066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8067 = load i32, ptr %8066, align 4, !tbaa !5
  %8068 = call ptr @s2n_strerror_debug(i32 noundef %8067, ptr noundef @.str.4)
  %8069 = call ptr @__errno_location() #13
  %8070 = load i32, ptr %8069, align 4, !tbaa !5
  %8071 = call ptr @strerror(i32 noundef %8070) #12
  %8072 = call ptr @__errno_location() #13
  %8073 = load i32, ptr %8072, align 4, !tbaa !5
  %8074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8061, ptr noundef @.str.5, i32 noundef %8062, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 445, ptr noundef %8065, ptr noundef %8068, ptr noundef %8071, i32 noundef %8073) #12
  br label %8075

8075:                                             ; preds = %8058, %8041
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #12
  br label %8076

8076:                                             ; preds = %8075
  br label %8077

8077:                                             ; preds = %8076
  call void @exit(i32 noundef 1) #14
  unreachable

8078:                                             ; No predecessors!
  br label %8079

8079:                                             ; preds = %8078
  br label %8080

8080:                                             ; preds = %8079, %8021
  br label %8081

8081:                                             ; preds = %8080
  br label %8082

8082:                                             ; preds = %8081
  %8083 = load ptr, ptr %103, align 8, !tbaa !9
  %8084 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %8083, i32 0, i32 1
  %8085 = load ptr, ptr %8084, align 8, !tbaa !55
  %8086 = getelementptr inbounds ptr, ptr %8085, i64 0
  %8087 = load ptr, ptr %8086, align 8, !tbaa !9
  %8088 = load ptr, ptr %47, align 8, !tbaa !9
  %8089 = getelementptr inbounds %struct.s2n_connection, ptr %8088, i32 0, i32 31
  %8090 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8089, i32 0, i32 1
  %8091 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8090, i32 0, i32 0
  store ptr %8087, ptr %8091, align 8, !tbaa !57
  %8092 = load ptr, ptr %47, align 8, !tbaa !9
  %8093 = getelementptr inbounds %struct.s2n_connection, ptr %8092, i32 0, i32 22
  %8094 = load i8, ptr %8093, align 1, !tbaa !43
  %8095 = load ptr, ptr %47, align 8, !tbaa !9
  %8096 = getelementptr inbounds %struct.s2n_connection, ptr %8095, i32 0, i32 23
  store i8 %8094, ptr %8096, align 4, !tbaa !42
  br label %8097

8097:                                             ; preds = %8082
  %8098 = load i32, ptr @test_count, align 4, !tbaa !5
  %8099 = add nsw i32 %8098, 1
  store i32 %8099, ptr @test_count, align 4, !tbaa !5
  %8100 = load ptr, ptr %47, align 8, !tbaa !9
  %8101 = load ptr, ptr %48, align 8, !tbaa !9
  %8102 = call i32 @s2n_connection_set_config(ptr noundef %8100, ptr noundef %8101)
  %8103 = icmp eq i32 %8102, -1
  br i1 %8103, label %8104, label %8157

8104:                                             ; preds = %8097
  br label %8105

8105:                                             ; preds = %8104
  br label %8106

8106:                                             ; preds = %8105
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #12
  %8107 = call ptr @__errno_location() #13
  %8108 = load i32, ptr %8107, align 4, !tbaa !5
  store i32 %8108, ptr %163, align 4, !tbaa !5
  %8109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8110 = call i32 @s2n_print_stacktrace(ptr noundef %8109)
  %8111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8112 = trunc i8 %8111 to i1
  br i1 %8112, label %8113, label %8135

8113:                                             ; preds = %8106
  %8114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8115 = call i32 @fileno(ptr noundef %8114) #12
  %8116 = call i32 @isatty(i32 noundef %8115) #12
  %8117 = icmp ne i32 %8116, 0
  br i1 %8117, label %8118, label %8135

8118:                                             ; preds = %8113
  %8119 = load i32, ptr %163, align 4, !tbaa !5
  %8120 = call ptr @__errno_location() #13
  store i32 %8119, ptr %8120, align 4, !tbaa !5
  %8121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8122 = load i32, ptr @test_count, align 4, !tbaa !5
  %8123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8124 = load i32, ptr %8123, align 4, !tbaa !5
  %8125 = call ptr @s2n_strerror(i32 noundef %8124, ptr noundef @.str.4)
  %8126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8127 = load i32, ptr %8126, align 4, !tbaa !5
  %8128 = call ptr @s2n_strerror_debug(i32 noundef %8127, ptr noundef @.str.4)
  %8129 = call ptr @__errno_location() #13
  %8130 = load i32, ptr %8129, align 4, !tbaa !5
  %8131 = call ptr @strerror(i32 noundef %8130) #12
  %8132 = call ptr @__errno_location() #13
  %8133 = load i32, ptr %8132, align 4, !tbaa !5
  %8134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8121, ptr noundef @.str.2, i32 noundef %8122, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 448, ptr noundef %8125, ptr noundef %8128, ptr noundef %8131, i32 noundef %8133) #12
  br label %8152

8135:                                             ; preds = %8113, %8106
  %8136 = load i32, ptr %163, align 4, !tbaa !5
  %8137 = call ptr @__errno_location() #13
  store i32 %8136, ptr %8137, align 4, !tbaa !5
  %8138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8139 = load i32, ptr @test_count, align 4, !tbaa !5
  %8140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8141 = load i32, ptr %8140, align 4, !tbaa !5
  %8142 = call ptr @s2n_strerror(i32 noundef %8141, ptr noundef @.str.4)
  %8143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8144 = load i32, ptr %8143, align 4, !tbaa !5
  %8145 = call ptr @s2n_strerror_debug(i32 noundef %8144, ptr noundef @.str.4)
  %8146 = call ptr @__errno_location() #13
  %8147 = load i32, ptr %8146, align 4, !tbaa !5
  %8148 = call ptr @strerror(i32 noundef %8147) #12
  %8149 = call ptr @__errno_location() #13
  %8150 = load i32, ptr %8149, align 4, !tbaa !5
  %8151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8138, ptr noundef @.str.5, i32 noundef %8139, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 448, ptr noundef %8142, ptr noundef %8145, ptr noundef %8148, i32 noundef %8150) #12
  br label %8152

8152:                                             ; preds = %8135, %8118
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #12
  br label %8153

8153:                                             ; preds = %8152
  br label %8154

8154:                                             ; preds = %8153
  call void @exit(i32 noundef 1) #14
  unreachable

8155:                                             ; No predecessors!
  br label %8156

8156:                                             ; preds = %8155
  br label %8157

8157:                                             ; preds = %8156, %8097
  br label %8158

8158:                                             ; preds = %8157
  br label %8159

8159:                                             ; preds = %8158
  br label %8160

8160:                                             ; preds = %8159
  %8161 = load i32, ptr @test_count, align 4, !tbaa !5
  %8162 = add nsw i32 %8161, 1
  store i32 %8162, ptr @test_count, align 4, !tbaa !5
  %8163 = load ptr, ptr %47, align 8, !tbaa !9
  %8164 = getelementptr inbounds [48 x i8], ptr %68, i64 0, i64 0
  %8165 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %8163, ptr noundef %8164, i16 noundef zeroext 24)
  %8166 = icmp eq i32 %8165, -1
  br i1 %8166, label %8167, label %8220

8167:                                             ; preds = %8160
  br label %8168

8168:                                             ; preds = %8167
  br label %8169

8169:                                             ; preds = %8168
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #12
  %8170 = call ptr @__errno_location() #13
  %8171 = load i32, ptr %8170, align 4, !tbaa !5
  store i32 %8171, ptr %164, align 4, !tbaa !5
  %8172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8173 = call i32 @s2n_print_stacktrace(ptr noundef %8172)
  %8174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8175 = trunc i8 %8174 to i1
  br i1 %8175, label %8176, label %8198

8176:                                             ; preds = %8169
  %8177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8178 = call i32 @fileno(ptr noundef %8177) #12
  %8179 = call i32 @isatty(i32 noundef %8178) #12
  %8180 = icmp ne i32 %8179, 0
  br i1 %8180, label %8181, label %8198

8181:                                             ; preds = %8176
  %8182 = load i32, ptr %164, align 4, !tbaa !5
  %8183 = call ptr @__errno_location() #13
  store i32 %8182, ptr %8183, align 4, !tbaa !5
  %8184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8185 = load i32, ptr @test_count, align 4, !tbaa !5
  %8186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8187 = load i32, ptr %8186, align 4, !tbaa !5
  %8188 = call ptr @s2n_strerror(i32 noundef %8187, ptr noundef @.str.4)
  %8189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8190 = load i32, ptr %8189, align 4, !tbaa !5
  %8191 = call ptr @s2n_strerror_debug(i32 noundef %8190, ptr noundef @.str.4)
  %8192 = call ptr @__errno_location() #13
  %8193 = load i32, ptr %8192, align 4, !tbaa !5
  %8194 = call ptr @strerror(i32 noundef %8193) #12
  %8195 = call ptr @__errno_location() #13
  %8196 = load i32, ptr %8195, align 4, !tbaa !5
  %8197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8184, ptr noundef @.str.2, i32 noundef %8185, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 449, ptr noundef %8188, ptr noundef %8191, ptr noundef %8194, i32 noundef %8196) #12
  br label %8215

8198:                                             ; preds = %8176, %8169
  %8199 = load i32, ptr %164, align 4, !tbaa !5
  %8200 = call ptr @__errno_location() #13
  store i32 %8199, ptr %8200, align 4, !tbaa !5
  %8201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8202 = load i32, ptr @test_count, align 4, !tbaa !5
  %8203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8204 = load i32, ptr %8203, align 4, !tbaa !5
  %8205 = call ptr @s2n_strerror(i32 noundef %8204, ptr noundef @.str.4)
  %8206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8207 = load i32, ptr %8206, align 4, !tbaa !5
  %8208 = call ptr @s2n_strerror_debug(i32 noundef %8207, ptr noundef @.str.4)
  %8209 = call ptr @__errno_location() #13
  %8210 = load i32, ptr %8209, align 4, !tbaa !5
  %8211 = call ptr @strerror(i32 noundef %8210) #12
  %8212 = call ptr @__errno_location() #13
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  %8214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8201, ptr noundef @.str.5, i32 noundef %8202, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 449, ptr noundef %8205, ptr noundef %8208, ptr noundef %8211, i32 noundef %8213) #12
  br label %8215

8215:                                             ; preds = %8198, %8181
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #12
  br label %8216

8216:                                             ; preds = %8215
  br label %8217

8217:                                             ; preds = %8216
  call void @exit(i32 noundef 1) #14
  unreachable

8218:                                             ; No predecessors!
  br label %8219

8219:                                             ; preds = %8218
  br label %8220

8220:                                             ; preds = %8219, %8160
  br label %8221

8221:                                             ; preds = %8220
  br label %8222

8222:                                             ; preds = %8221
  br label %8223

8223:                                             ; preds = %8222
  %8224 = load i32, ptr @test_count, align 4, !tbaa !5
  %8225 = add nsw i32 %8224, 1
  store i32 %8225, ptr @test_count, align 4, !tbaa !5
  %8226 = load ptr, ptr %47, align 8, !tbaa !9
  %8227 = load i32, ptr %8226, align 8
  %8228 = lshr i32 %8227, 3
  %8229 = and i32 %8228, 1
  %8230 = icmp eq i32 %8229, 0
  br i1 %8230, label %8284, label %8231

8231:                                             ; preds = %8223
  br label %8232

8232:                                             ; preds = %8231
  br label %8233

8233:                                             ; preds = %8232
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #12
  %8234 = call ptr @__errno_location() #13
  %8235 = load i32, ptr %8234, align 4, !tbaa !5
  store i32 %8235, ptr %165, align 4, !tbaa !5
  %8236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8237 = call i32 @s2n_print_stacktrace(ptr noundef %8236)
  %8238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8239 = trunc i8 %8238 to i1
  br i1 %8239, label %8240, label %8262

8240:                                             ; preds = %8233
  %8241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8242 = call i32 @fileno(ptr noundef %8241) #12
  %8243 = call i32 @isatty(i32 noundef %8242) #12
  %8244 = icmp ne i32 %8243, 0
  br i1 %8244, label %8245, label %8262

8245:                                             ; preds = %8240
  %8246 = load i32, ptr %165, align 4, !tbaa !5
  %8247 = call ptr @__errno_location() #13
  store i32 %8246, ptr %8247, align 4, !tbaa !5
  %8248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8249 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8251, ptr noundef @.str.4)
  %8253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8254 = load i32, ptr %8253, align 4, !tbaa !5
  %8255 = call ptr @s2n_strerror_debug(i32 noundef %8254, ptr noundef @.str.4)
  %8256 = call ptr @__errno_location() #13
  %8257 = load i32, ptr %8256, align 4, !tbaa !5
  %8258 = call ptr @strerror(i32 noundef %8257) #12
  %8259 = call ptr @__errno_location() #13
  %8260 = load i32, ptr %8259, align 4, !tbaa !5
  %8261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8248, ptr noundef @.str.2, i32 noundef %8249, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 450, ptr noundef %8252, ptr noundef %8255, ptr noundef %8258, i32 noundef %8260) #12
  br label %8279

8262:                                             ; preds = %8240, %8233
  %8263 = load i32, ptr %165, align 4, !tbaa !5
  %8264 = call ptr @__errno_location() #13
  store i32 %8263, ptr %8264, align 4, !tbaa !5
  %8265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8266 = load i32, ptr @test_count, align 4, !tbaa !5
  %8267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8268 = load i32, ptr %8267, align 4, !tbaa !5
  %8269 = call ptr @s2n_strerror(i32 noundef %8268, ptr noundef @.str.4)
  %8270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8271 = load i32, ptr %8270, align 4, !tbaa !5
  %8272 = call ptr @s2n_strerror_debug(i32 noundef %8271, ptr noundef @.str.4)
  %8273 = call ptr @__errno_location() #13
  %8274 = load i32, ptr %8273, align 4, !tbaa !5
  %8275 = call ptr @strerror(i32 noundef %8274) #12
  %8276 = call ptr @__errno_location() #13
  %8277 = load i32, ptr %8276, align 4, !tbaa !5
  %8278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8265, ptr noundef @.str.5, i32 noundef %8266, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 450, ptr noundef %8269, ptr noundef %8272, ptr noundef %8275, i32 noundef %8277) #12
  br label %8279

8279:                                             ; preds = %8262, %8245
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #12
  br label %8280

8280:                                             ; preds = %8279
  br label %8281

8281:                                             ; preds = %8280
  call void @exit(i32 noundef 1) #14
  unreachable

8282:                                             ; No predecessors!
  br label %8283

8283:                                             ; preds = %8282
  br label %8284

8284:                                             ; preds = %8283, %8223
  br label %8285

8285:                                             ; preds = %8284
  br label %8286

8286:                                             ; preds = %8285
  br label %8287

8287:                                             ; preds = %8286
  %8288 = load i32, ptr @test_count, align 4, !tbaa !5
  %8289 = add nsw i32 %8288, 1
  store i32 %8289, ptr @test_count, align 4, !tbaa !5
  %8290 = load ptr, ptr %47, align 8, !tbaa !9
  %8291 = getelementptr inbounds %struct.s2n_connection, ptr %8290, i32 0, i32 27
  %8292 = load ptr, ptr %8291, align 8, !tbaa !48
  %8293 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8292, i32 0, i32 0
  %8294 = load ptr, ptr %8293, align 8, !tbaa !49
  %8295 = load ptr, ptr %161, align 8, !tbaa !9
  %8296 = icmp eq ptr %8294, %8295
  br i1 %8296, label %8350, label %8297

8297:                                             ; preds = %8287
  br label %8298

8298:                                             ; preds = %8297
  br label %8299

8299:                                             ; preds = %8298
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #12
  %8300 = call ptr @__errno_location() #13
  %8301 = load i32, ptr %8300, align 4, !tbaa !5
  store i32 %8301, ptr %166, align 4, !tbaa !5
  %8302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8303 = call i32 @s2n_print_stacktrace(ptr noundef %8302)
  %8304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8305 = trunc i8 %8304 to i1
  br i1 %8305, label %8306, label %8328

8306:                                             ; preds = %8299
  %8307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8308 = call i32 @fileno(ptr noundef %8307) #12
  %8309 = call i32 @isatty(i32 noundef %8308) #12
  %8310 = icmp ne i32 %8309, 0
  br i1 %8310, label %8311, label %8328

8311:                                             ; preds = %8306
  %8312 = load i32, ptr %166, align 4, !tbaa !5
  %8313 = call ptr @__errno_location() #13
  store i32 %8312, ptr %8313, align 4, !tbaa !5
  %8314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8315 = load i32, ptr @test_count, align 4, !tbaa !5
  %8316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8317 = load i32, ptr %8316, align 4, !tbaa !5
  %8318 = call ptr @s2n_strerror(i32 noundef %8317, ptr noundef @.str.4)
  %8319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8320 = load i32, ptr %8319, align 4, !tbaa !5
  %8321 = call ptr @s2n_strerror_debug(i32 noundef %8320, ptr noundef @.str.4)
  %8322 = call ptr @__errno_location() #13
  %8323 = load i32, ptr %8322, align 4, !tbaa !5
  %8324 = call ptr @strerror(i32 noundef %8323) #12
  %8325 = call ptr @__errno_location() #13
  %8326 = load i32, ptr %8325, align 4, !tbaa !5
  %8327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8314, ptr noundef @.str.2, i32 noundef %8315, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 451, ptr noundef %8318, ptr noundef %8321, ptr noundef %8324, i32 noundef %8326) #12
  br label %8345

8328:                                             ; preds = %8306, %8299
  %8329 = load i32, ptr %166, align 4, !tbaa !5
  %8330 = call ptr @__errno_location() #13
  store i32 %8329, ptr %8330, align 4, !tbaa !5
  %8331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8332 = load i32, ptr @test_count, align 4, !tbaa !5
  %8333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8334 = load i32, ptr %8333, align 4, !tbaa !5
  %8335 = call ptr @s2n_strerror(i32 noundef %8334, ptr noundef @.str.4)
  %8336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8337 = load i32, ptr %8336, align 4, !tbaa !5
  %8338 = call ptr @s2n_strerror_debug(i32 noundef %8337, ptr noundef @.str.4)
  %8339 = call ptr @__errno_location() #13
  %8340 = load i32, ptr %8339, align 4, !tbaa !5
  %8341 = call ptr @strerror(i32 noundef %8340) #12
  %8342 = call ptr @__errno_location() #13
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8331, ptr noundef @.str.5, i32 noundef %8332, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 451, ptr noundef %8335, ptr noundef %8338, ptr noundef %8341, i32 noundef %8343) #12
  br label %8345

8345:                                             ; preds = %8328, %8311
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #12
  br label %8346

8346:                                             ; preds = %8345
  br label %8347

8347:                                             ; preds = %8346
  call void @exit(i32 noundef 1) #14
  unreachable

8348:                                             ; No predecessors!
  br label %8349

8349:                                             ; preds = %8348
  br label %8350

8350:                                             ; preds = %8349, %8287
  br label %8351

8351:                                             ; preds = %8350
  br label %8352

8352:                                             ; preds = %8351
  br label %8353

8353:                                             ; preds = %8352
  %8354 = load i32, ptr @test_count, align 4, !tbaa !5
  %8355 = add nsw i32 %8354, 1
  store i32 %8355, ptr @test_count, align 4, !tbaa !5
  %8356 = load ptr, ptr %47, align 8, !tbaa !9
  %8357 = call i32 @s2n_connection_wipe(ptr noundef %8356)
  %8358 = icmp eq i32 %8357, -1
  br i1 %8358, label %8359, label %8412

8359:                                             ; preds = %8353
  br label %8360

8360:                                             ; preds = %8359
  br label %8361

8361:                                             ; preds = %8360
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #12
  %8362 = call ptr @__errno_location() #13
  %8363 = load i32, ptr %8362, align 4, !tbaa !5
  store i32 %8363, ptr %167, align 4, !tbaa !5
  %8364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8365 = call i32 @s2n_print_stacktrace(ptr noundef %8364)
  %8366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8367 = trunc i8 %8366 to i1
  br i1 %8367, label %8368, label %8390

8368:                                             ; preds = %8361
  %8369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8370 = call i32 @fileno(ptr noundef %8369) #12
  %8371 = call i32 @isatty(i32 noundef %8370) #12
  %8372 = icmp ne i32 %8371, 0
  br i1 %8372, label %8373, label %8390

8373:                                             ; preds = %8368
  %8374 = load i32, ptr %167, align 4, !tbaa !5
  %8375 = call ptr @__errno_location() #13
  store i32 %8374, ptr %8375, align 4, !tbaa !5
  %8376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8377 = load i32, ptr @test_count, align 4, !tbaa !5
  %8378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8379 = load i32, ptr %8378, align 4, !tbaa !5
  %8380 = call ptr @s2n_strerror(i32 noundef %8379, ptr noundef @.str.4)
  %8381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8382 = load i32, ptr %8381, align 4, !tbaa !5
  %8383 = call ptr @s2n_strerror_debug(i32 noundef %8382, ptr noundef @.str.4)
  %8384 = call ptr @__errno_location() #13
  %8385 = load i32, ptr %8384, align 4, !tbaa !5
  %8386 = call ptr @strerror(i32 noundef %8385) #12
  %8387 = call ptr @__errno_location() #13
  %8388 = load i32, ptr %8387, align 4, !tbaa !5
  %8389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8376, ptr noundef @.str.2, i32 noundef %8377, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 452, ptr noundef %8380, ptr noundef %8383, ptr noundef %8386, i32 noundef %8388) #12
  br label %8407

8390:                                             ; preds = %8368, %8361
  %8391 = load i32, ptr %167, align 4, !tbaa !5
  %8392 = call ptr @__errno_location() #13
  store i32 %8391, ptr %8392, align 4, !tbaa !5
  %8393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8394 = load i32, ptr @test_count, align 4, !tbaa !5
  %8395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8396 = load i32, ptr %8395, align 4, !tbaa !5
  %8397 = call ptr @s2n_strerror(i32 noundef %8396, ptr noundef @.str.4)
  %8398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8399 = load i32, ptr %8398, align 4, !tbaa !5
  %8400 = call ptr @s2n_strerror_debug(i32 noundef %8399, ptr noundef @.str.4)
  %8401 = call ptr @__errno_location() #13
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @strerror(i32 noundef %8402) #12
  %8404 = call ptr @__errno_location() #13
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8393, ptr noundef @.str.5, i32 noundef %8394, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 452, ptr noundef %8397, ptr noundef %8400, ptr noundef %8403, i32 noundef %8405) #12
  br label %8407

8407:                                             ; preds = %8390, %8373
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #12
  br label %8408

8408:                                             ; preds = %8407
  br label %8409

8409:                                             ; preds = %8408
  call void @exit(i32 noundef 1) #14
  unreachable

8410:                                             ; No predecessors!
  br label %8411

8411:                                             ; preds = %8410
  br label %8412

8412:                                             ; preds = %8411, %8353
  br label %8413

8413:                                             ; preds = %8412
  br label %8414

8414:                                             ; preds = %8413
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #12
  store ptr @s2n_ecdhe_ecdsa_with_aes_256_cbc_sha, ptr %168, align 8, !tbaa !9
  br label %8415

8415:                                             ; preds = %8414
  %8416 = load i32, ptr @test_count, align 4, !tbaa !5
  %8417 = add nsw i32 %8416, 1
  store i32 %8417, ptr @test_count, align 4, !tbaa !5
  %8418 = load ptr, ptr %47, align 8, !tbaa !9
  %8419 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %8418, ptr noundef @.str.72)
  %8420 = icmp eq i32 %8419, -1
  br i1 %8420, label %8421, label %8474

8421:                                             ; preds = %8415
  br label %8422

8422:                                             ; preds = %8421
  br label %8423

8423:                                             ; preds = %8422
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #12
  %8424 = call ptr @__errno_location() #13
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  store i32 %8425, ptr %169, align 4, !tbaa !5
  %8426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8427 = call i32 @s2n_print_stacktrace(ptr noundef %8426)
  %8428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8429 = trunc i8 %8428 to i1
  br i1 %8429, label %8430, label %8452

8430:                                             ; preds = %8423
  %8431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8432 = call i32 @fileno(ptr noundef %8431) #12
  %8433 = call i32 @isatty(i32 noundef %8432) #12
  %8434 = icmp ne i32 %8433, 0
  br i1 %8434, label %8435, label %8452

8435:                                             ; preds = %8430
  %8436 = load i32, ptr %169, align 4, !tbaa !5
  %8437 = call ptr @__errno_location() #13
  store i32 %8436, ptr %8437, align 4, !tbaa !5
  %8438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8439 = load i32, ptr @test_count, align 4, !tbaa !5
  %8440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8441 = load i32, ptr %8440, align 4, !tbaa !5
  %8442 = call ptr @s2n_strerror(i32 noundef %8441, ptr noundef @.str.4)
  %8443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8444 = load i32, ptr %8443, align 4, !tbaa !5
  %8445 = call ptr @s2n_strerror_debug(i32 noundef %8444, ptr noundef @.str.4)
  %8446 = call ptr @__errno_location() #13
  %8447 = load i32, ptr %8446, align 4, !tbaa !5
  %8448 = call ptr @strerror(i32 noundef %8447) #12
  %8449 = call ptr @__errno_location() #13
  %8450 = load i32, ptr %8449, align 4, !tbaa !5
  %8451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8438, ptr noundef @.str.2, i32 noundef %8439, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 460, ptr noundef %8442, ptr noundef %8445, ptr noundef %8448, i32 noundef %8450) #12
  br label %8469

8452:                                             ; preds = %8430, %8423
  %8453 = load i32, ptr %169, align 4, !tbaa !5
  %8454 = call ptr @__errno_location() #13
  store i32 %8453, ptr %8454, align 4, !tbaa !5
  %8455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8456 = load i32, ptr @test_count, align 4, !tbaa !5
  %8457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8458 = load i32, ptr %8457, align 4, !tbaa !5
  %8459 = call ptr @s2n_strerror(i32 noundef %8458, ptr noundef @.str.4)
  %8460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8461 = load i32, ptr %8460, align 4, !tbaa !5
  %8462 = call ptr @s2n_strerror_debug(i32 noundef %8461, ptr noundef @.str.4)
  %8463 = call ptr @__errno_location() #13
  %8464 = load i32, ptr %8463, align 4, !tbaa !5
  %8465 = call ptr @strerror(i32 noundef %8464) #12
  %8466 = call ptr @__errno_location() #13
  %8467 = load i32, ptr %8466, align 4, !tbaa !5
  %8468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8455, ptr noundef @.str.5, i32 noundef %8456, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 460, ptr noundef %8459, ptr noundef %8462, ptr noundef %8465, i32 noundef %8467) #12
  br label %8469

8469:                                             ; preds = %8452, %8435
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #12
  br label %8470

8470:                                             ; preds = %8469
  br label %8471

8471:                                             ; preds = %8470
  call void @exit(i32 noundef 1) #14
  unreachable

8472:                                             ; No predecessors!
  br label %8473

8473:                                             ; preds = %8472
  br label %8474

8474:                                             ; preds = %8473, %8415
  br label %8475

8475:                                             ; preds = %8474
  br label %8476

8476:                                             ; preds = %8475
  %8477 = load ptr, ptr %103, align 8, !tbaa !9
  %8478 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %8477, i32 0, i32 1
  %8479 = load ptr, ptr %8478, align 8, !tbaa !55
  %8480 = getelementptr inbounds ptr, ptr %8479, i64 0
  %8481 = load ptr, ptr %8480, align 8, !tbaa !9
  %8482 = load ptr, ptr %47, align 8, !tbaa !9
  %8483 = getelementptr inbounds %struct.s2n_connection, ptr %8482, i32 0, i32 31
  %8484 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8483, i32 0, i32 1
  %8485 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8484, i32 0, i32 0
  store ptr %8481, ptr %8485, align 8, !tbaa !57
  %8486 = load ptr, ptr %47, align 8, !tbaa !9
  %8487 = getelementptr inbounds %struct.s2n_connection, ptr %8486, i32 0, i32 22
  %8488 = load i8, ptr %8487, align 1, !tbaa !43
  %8489 = load ptr, ptr %47, align 8, !tbaa !9
  %8490 = getelementptr inbounds %struct.s2n_connection, ptr %8489, i32 0, i32 23
  store i8 %8488, ptr %8490, align 4, !tbaa !42
  br label %8491

8491:                                             ; preds = %8476
  %8492 = load i32, ptr @test_count, align 4, !tbaa !5
  %8493 = add nsw i32 %8492, 1
  store i32 %8493, ptr @test_count, align 4, !tbaa !5
  %8494 = load ptr, ptr %47, align 8, !tbaa !9
  %8495 = load ptr, ptr %48, align 8, !tbaa !9
  %8496 = call i32 @s2n_connection_set_config(ptr noundef %8494, ptr noundef %8495)
  %8497 = icmp eq i32 %8496, -1
  br i1 %8497, label %8498, label %8551

8498:                                             ; preds = %8491
  br label %8499

8499:                                             ; preds = %8498
  br label %8500

8500:                                             ; preds = %8499
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #12
  %8501 = call ptr @__errno_location() #13
  %8502 = load i32, ptr %8501, align 4, !tbaa !5
  store i32 %8502, ptr %170, align 4, !tbaa !5
  %8503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8504 = call i32 @s2n_print_stacktrace(ptr noundef %8503)
  %8505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8506 = trunc i8 %8505 to i1
  br i1 %8506, label %8507, label %8529

8507:                                             ; preds = %8500
  %8508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8509 = call i32 @fileno(ptr noundef %8508) #12
  %8510 = call i32 @isatty(i32 noundef %8509) #12
  %8511 = icmp ne i32 %8510, 0
  br i1 %8511, label %8512, label %8529

8512:                                             ; preds = %8507
  %8513 = load i32, ptr %170, align 4, !tbaa !5
  %8514 = call ptr @__errno_location() #13
  store i32 %8513, ptr %8514, align 4, !tbaa !5
  %8515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8516 = load i32, ptr @test_count, align 4, !tbaa !5
  %8517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8518 = load i32, ptr %8517, align 4, !tbaa !5
  %8519 = call ptr @s2n_strerror(i32 noundef %8518, ptr noundef @.str.4)
  %8520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8521 = load i32, ptr %8520, align 4, !tbaa !5
  %8522 = call ptr @s2n_strerror_debug(i32 noundef %8521, ptr noundef @.str.4)
  %8523 = call ptr @__errno_location() #13
  %8524 = load i32, ptr %8523, align 4, !tbaa !5
  %8525 = call ptr @strerror(i32 noundef %8524) #12
  %8526 = call ptr @__errno_location() #13
  %8527 = load i32, ptr %8526, align 4, !tbaa !5
  %8528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8515, ptr noundef @.str.2, i32 noundef %8516, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 463, ptr noundef %8519, ptr noundef %8522, ptr noundef %8525, i32 noundef %8527) #12
  br label %8546

8529:                                             ; preds = %8507, %8500
  %8530 = load i32, ptr %170, align 4, !tbaa !5
  %8531 = call ptr @__errno_location() #13
  store i32 %8530, ptr %8531, align 4, !tbaa !5
  %8532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8533 = load i32, ptr @test_count, align 4, !tbaa !5
  %8534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8535 = load i32, ptr %8534, align 4, !tbaa !5
  %8536 = call ptr @s2n_strerror(i32 noundef %8535, ptr noundef @.str.4)
  %8537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8538 = load i32, ptr %8537, align 4, !tbaa !5
  %8539 = call ptr @s2n_strerror_debug(i32 noundef %8538, ptr noundef @.str.4)
  %8540 = call ptr @__errno_location() #13
  %8541 = load i32, ptr %8540, align 4, !tbaa !5
  %8542 = call ptr @strerror(i32 noundef %8541) #12
  %8543 = call ptr @__errno_location() #13
  %8544 = load i32, ptr %8543, align 4, !tbaa !5
  %8545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8532, ptr noundef @.str.5, i32 noundef %8533, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 463, ptr noundef %8536, ptr noundef %8539, ptr noundef %8542, i32 noundef %8544) #12
  br label %8546

8546:                                             ; preds = %8529, %8512
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #12
  br label %8547

8547:                                             ; preds = %8546
  br label %8548

8548:                                             ; preds = %8547
  call void @exit(i32 noundef 1) #14
  unreachable

8549:                                             ; No predecessors!
  br label %8550

8550:                                             ; preds = %8549
  br label %8551

8551:                                             ; preds = %8550, %8491
  br label %8552

8552:                                             ; preds = %8551
  br label %8553

8553:                                             ; preds = %8552
  br label %8554

8554:                                             ; preds = %8553
  %8555 = load i32, ptr @test_count, align 4, !tbaa !5
  %8556 = add nsw i32 %8555, 1
  store i32 %8556, ptr @test_count, align 4, !tbaa !5
  %8557 = load ptr, ptr %47, align 8, !tbaa !9
  %8558 = getelementptr inbounds [8 x i8], ptr %76, i64 0, i64 0
  %8559 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %8557, ptr noundef %8558, i16 noundef zeroext 4)
  %8560 = icmp eq i32 %8559, -1
  br i1 %8560, label %8561, label %8614

8561:                                             ; preds = %8554
  br label %8562

8562:                                             ; preds = %8561
  br label %8563

8563:                                             ; preds = %8562
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #12
  %8564 = call ptr @__errno_location() #13
  %8565 = load i32, ptr %8564, align 4, !tbaa !5
  store i32 %8565, ptr %171, align 4, !tbaa !5
  %8566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8567 = call i32 @s2n_print_stacktrace(ptr noundef %8566)
  %8568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8569 = trunc i8 %8568 to i1
  br i1 %8569, label %8570, label %8592

8570:                                             ; preds = %8563
  %8571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8572 = call i32 @fileno(ptr noundef %8571) #12
  %8573 = call i32 @isatty(i32 noundef %8572) #12
  %8574 = icmp ne i32 %8573, 0
  br i1 %8574, label %8575, label %8592

8575:                                             ; preds = %8570
  %8576 = load i32, ptr %171, align 4, !tbaa !5
  %8577 = call ptr @__errno_location() #13
  store i32 %8576, ptr %8577, align 4, !tbaa !5
  %8578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8579 = load i32, ptr @test_count, align 4, !tbaa !5
  %8580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8581 = load i32, ptr %8580, align 4, !tbaa !5
  %8582 = call ptr @s2n_strerror(i32 noundef %8581, ptr noundef @.str.4)
  %8583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8584 = load i32, ptr %8583, align 4, !tbaa !5
  %8585 = call ptr @s2n_strerror_debug(i32 noundef %8584, ptr noundef @.str.4)
  %8586 = call ptr @__errno_location() #13
  %8587 = load i32, ptr %8586, align 4, !tbaa !5
  %8588 = call ptr @strerror(i32 noundef %8587) #12
  %8589 = call ptr @__errno_location() #13
  %8590 = load i32, ptr %8589, align 4, !tbaa !5
  %8591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8578, ptr noundef @.str.2, i32 noundef %8579, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 464, ptr noundef %8582, ptr noundef %8585, ptr noundef %8588, i32 noundef %8590) #12
  br label %8609

8592:                                             ; preds = %8570, %8563
  %8593 = load i32, ptr %171, align 4, !tbaa !5
  %8594 = call ptr @__errno_location() #13
  store i32 %8593, ptr %8594, align 4, !tbaa !5
  %8595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8596 = load i32, ptr @test_count, align 4, !tbaa !5
  %8597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8598 = load i32, ptr %8597, align 4, !tbaa !5
  %8599 = call ptr @s2n_strerror(i32 noundef %8598, ptr noundef @.str.4)
  %8600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8601 = load i32, ptr %8600, align 4, !tbaa !5
  %8602 = call ptr @s2n_strerror_debug(i32 noundef %8601, ptr noundef @.str.4)
  %8603 = call ptr @__errno_location() #13
  %8604 = load i32, ptr %8603, align 4, !tbaa !5
  %8605 = call ptr @strerror(i32 noundef %8604) #12
  %8606 = call ptr @__errno_location() #13
  %8607 = load i32, ptr %8606, align 4, !tbaa !5
  %8608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8595, ptr noundef @.str.5, i32 noundef %8596, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 464, ptr noundef %8599, ptr noundef %8602, ptr noundef %8605, i32 noundef %8607) #12
  br label %8609

8609:                                             ; preds = %8592, %8575
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #12
  br label %8610

8610:                                             ; preds = %8609
  br label %8611

8611:                                             ; preds = %8610
  call void @exit(i32 noundef 1) #14
  unreachable

8612:                                             ; No predecessors!
  br label %8613

8613:                                             ; preds = %8612
  br label %8614

8614:                                             ; preds = %8613, %8554
  br label %8615

8615:                                             ; preds = %8614
  br label %8616

8616:                                             ; preds = %8615
  br label %8617

8617:                                             ; preds = %8616
  %8618 = load i32, ptr @test_count, align 4, !tbaa !5
  %8619 = add nsw i32 %8618, 1
  store i32 %8619, ptr @test_count, align 4, !tbaa !5
  %8620 = load ptr, ptr %47, align 8, !tbaa !9
  %8621 = load i32, ptr %8620, align 8
  %8622 = lshr i32 %8621, 3
  %8623 = and i32 %8622, 1
  %8624 = icmp eq i32 %8623, 0
  br i1 %8624, label %8678, label %8625

8625:                                             ; preds = %8617
  br label %8626

8626:                                             ; preds = %8625
  br label %8627

8627:                                             ; preds = %8626
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #12
  %8628 = call ptr @__errno_location() #13
  %8629 = load i32, ptr %8628, align 4, !tbaa !5
  store i32 %8629, ptr %172, align 4, !tbaa !5
  %8630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8631 = call i32 @s2n_print_stacktrace(ptr noundef %8630)
  %8632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8633 = trunc i8 %8632 to i1
  br i1 %8633, label %8634, label %8656

8634:                                             ; preds = %8627
  %8635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8636 = call i32 @fileno(ptr noundef %8635) #12
  %8637 = call i32 @isatty(i32 noundef %8636) #12
  %8638 = icmp ne i32 %8637, 0
  br i1 %8638, label %8639, label %8656

8639:                                             ; preds = %8634
  %8640 = load i32, ptr %172, align 4, !tbaa !5
  %8641 = call ptr @__errno_location() #13
  store i32 %8640, ptr %8641, align 4, !tbaa !5
  %8642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8643 = load i32, ptr @test_count, align 4, !tbaa !5
  %8644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8645 = load i32, ptr %8644, align 4, !tbaa !5
  %8646 = call ptr @s2n_strerror(i32 noundef %8645, ptr noundef @.str.4)
  %8647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8648 = load i32, ptr %8647, align 4, !tbaa !5
  %8649 = call ptr @s2n_strerror_debug(i32 noundef %8648, ptr noundef @.str.4)
  %8650 = call ptr @__errno_location() #13
  %8651 = load i32, ptr %8650, align 4, !tbaa !5
  %8652 = call ptr @strerror(i32 noundef %8651) #12
  %8653 = call ptr @__errno_location() #13
  %8654 = load i32, ptr %8653, align 4, !tbaa !5
  %8655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8642, ptr noundef @.str.2, i32 noundef %8643, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 465, ptr noundef %8646, ptr noundef %8649, ptr noundef %8652, i32 noundef %8654) #12
  br label %8673

8656:                                             ; preds = %8634, %8627
  %8657 = load i32, ptr %172, align 4, !tbaa !5
  %8658 = call ptr @__errno_location() #13
  store i32 %8657, ptr %8658, align 4, !tbaa !5
  %8659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8660 = load i32, ptr @test_count, align 4, !tbaa !5
  %8661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8662 = load i32, ptr %8661, align 4, !tbaa !5
  %8663 = call ptr @s2n_strerror(i32 noundef %8662, ptr noundef @.str.4)
  %8664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8665 = load i32, ptr %8664, align 4, !tbaa !5
  %8666 = call ptr @s2n_strerror_debug(i32 noundef %8665, ptr noundef @.str.4)
  %8667 = call ptr @__errno_location() #13
  %8668 = load i32, ptr %8667, align 4, !tbaa !5
  %8669 = call ptr @strerror(i32 noundef %8668) #12
  %8670 = call ptr @__errno_location() #13
  %8671 = load i32, ptr %8670, align 4, !tbaa !5
  %8672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8659, ptr noundef @.str.5, i32 noundef %8660, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 465, ptr noundef %8663, ptr noundef %8666, ptr noundef %8669, i32 noundef %8671) #12
  br label %8673

8673:                                             ; preds = %8656, %8639
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #12
  br label %8674

8674:                                             ; preds = %8673
  br label %8675

8675:                                             ; preds = %8674
  call void @exit(i32 noundef 1) #14
  unreachable

8676:                                             ; No predecessors!
  br label %8677

8677:                                             ; preds = %8676
  br label %8678

8678:                                             ; preds = %8677, %8617
  br label %8679

8679:                                             ; preds = %8678
  br label %8680

8680:                                             ; preds = %8679
  br label %8681

8681:                                             ; preds = %8680
  %8682 = load i32, ptr @test_count, align 4, !tbaa !5
  %8683 = add nsw i32 %8682, 1
  store i32 %8683, ptr @test_count, align 4, !tbaa !5
  %8684 = load ptr, ptr %47, align 8, !tbaa !9
  %8685 = getelementptr inbounds %struct.s2n_connection, ptr %8684, i32 0, i32 27
  %8686 = load ptr, ptr %8685, align 8, !tbaa !48
  %8687 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %8686, i32 0, i32 0
  %8688 = load ptr, ptr %8687, align 8, !tbaa !49
  %8689 = load ptr, ptr %168, align 8, !tbaa !9
  %8690 = icmp eq ptr %8688, %8689
  br i1 %8690, label %8744, label %8691

8691:                                             ; preds = %8681
  br label %8692

8692:                                             ; preds = %8691
  br label %8693

8693:                                             ; preds = %8692
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #12
  %8694 = call ptr @__errno_location() #13
  %8695 = load i32, ptr %8694, align 4, !tbaa !5
  store i32 %8695, ptr %173, align 4, !tbaa !5
  %8696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8697 = call i32 @s2n_print_stacktrace(ptr noundef %8696)
  %8698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8699 = trunc i8 %8698 to i1
  br i1 %8699, label %8700, label %8722

8700:                                             ; preds = %8693
  %8701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8702 = call i32 @fileno(ptr noundef %8701) #12
  %8703 = call i32 @isatty(i32 noundef %8702) #12
  %8704 = icmp ne i32 %8703, 0
  br i1 %8704, label %8705, label %8722

8705:                                             ; preds = %8700
  %8706 = load i32, ptr %173, align 4, !tbaa !5
  %8707 = call ptr @__errno_location() #13
  store i32 %8706, ptr %8707, align 4, !tbaa !5
  %8708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8709 = load i32, ptr @test_count, align 4, !tbaa !5
  %8710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8711 = load i32, ptr %8710, align 4, !tbaa !5
  %8712 = call ptr @s2n_strerror(i32 noundef %8711, ptr noundef @.str.4)
  %8713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8714 = load i32, ptr %8713, align 4, !tbaa !5
  %8715 = call ptr @s2n_strerror_debug(i32 noundef %8714, ptr noundef @.str.4)
  %8716 = call ptr @__errno_location() #13
  %8717 = load i32, ptr %8716, align 4, !tbaa !5
  %8718 = call ptr @strerror(i32 noundef %8717) #12
  %8719 = call ptr @__errno_location() #13
  %8720 = load i32, ptr %8719, align 4, !tbaa !5
  %8721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8708, ptr noundef @.str.2, i32 noundef %8709, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 466, ptr noundef %8712, ptr noundef %8715, ptr noundef %8718, i32 noundef %8720) #12
  br label %8739

8722:                                             ; preds = %8700, %8693
  %8723 = load i32, ptr %173, align 4, !tbaa !5
  %8724 = call ptr @__errno_location() #13
  store i32 %8723, ptr %8724, align 4, !tbaa !5
  %8725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8726 = load i32, ptr @test_count, align 4, !tbaa !5
  %8727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8728 = load i32, ptr %8727, align 4, !tbaa !5
  %8729 = call ptr @s2n_strerror(i32 noundef %8728, ptr noundef @.str.4)
  %8730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8731 = load i32, ptr %8730, align 4, !tbaa !5
  %8732 = call ptr @s2n_strerror_debug(i32 noundef %8731, ptr noundef @.str.4)
  %8733 = call ptr @__errno_location() #13
  %8734 = load i32, ptr %8733, align 4, !tbaa !5
  %8735 = call ptr @strerror(i32 noundef %8734) #12
  %8736 = call ptr @__errno_location() #13
  %8737 = load i32, ptr %8736, align 4, !tbaa !5
  %8738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8725, ptr noundef @.str.5, i32 noundef %8726, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 466, ptr noundef %8729, ptr noundef %8732, ptr noundef %8735, i32 noundef %8737) #12
  br label %8739

8739:                                             ; preds = %8722, %8705
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #12
  br label %8740

8740:                                             ; preds = %8739
  br label %8741

8741:                                             ; preds = %8740
  call void @exit(i32 noundef 1) #14
  unreachable

8742:                                             ; No predecessors!
  br label %8743

8743:                                             ; preds = %8742
  br label %8744

8744:                                             ; preds = %8743, %8681
  br label %8745

8745:                                             ; preds = %8744
  br label %8746

8746:                                             ; preds = %8745
  br label %8747

8747:                                             ; preds = %8746
  %8748 = load i32, ptr @test_count, align 4, !tbaa !5
  %8749 = add nsw i32 %8748, 1
  store i32 %8749, ptr @test_count, align 4, !tbaa !5
  %8750 = load ptr, ptr %47, align 8, !tbaa !9
  %8751 = call i32 @s2n_connection_wipe(ptr noundef %8750)
  %8752 = icmp eq i32 %8751, -1
  br i1 %8752, label %8753, label %8806

8753:                                             ; preds = %8747
  br label %8754

8754:                                             ; preds = %8753
  br label %8755

8755:                                             ; preds = %8754
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #12
  %8756 = call ptr @__errno_location() #13
  %8757 = load i32, ptr %8756, align 4, !tbaa !5
  store i32 %8757, ptr %174, align 4, !tbaa !5
  %8758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8759 = call i32 @s2n_print_stacktrace(ptr noundef %8758)
  %8760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8761 = trunc i8 %8760 to i1
  br i1 %8761, label %8762, label %8784

8762:                                             ; preds = %8755
  %8763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8764 = call i32 @fileno(ptr noundef %8763) #12
  %8765 = call i32 @isatty(i32 noundef %8764) #12
  %8766 = icmp ne i32 %8765, 0
  br i1 %8766, label %8767, label %8784

8767:                                             ; preds = %8762
  %8768 = load i32, ptr %174, align 4, !tbaa !5
  %8769 = call ptr @__errno_location() #13
  store i32 %8768, ptr %8769, align 4, !tbaa !5
  %8770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8771 = load i32, ptr @test_count, align 4, !tbaa !5
  %8772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8773 = load i32, ptr %8772, align 4, !tbaa !5
  %8774 = call ptr @s2n_strerror(i32 noundef %8773, ptr noundef @.str.4)
  %8775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8776 = load i32, ptr %8775, align 4, !tbaa !5
  %8777 = call ptr @s2n_strerror_debug(i32 noundef %8776, ptr noundef @.str.4)
  %8778 = call ptr @__errno_location() #13
  %8779 = load i32, ptr %8778, align 4, !tbaa !5
  %8780 = call ptr @strerror(i32 noundef %8779) #12
  %8781 = call ptr @__errno_location() #13
  %8782 = load i32, ptr %8781, align 4, !tbaa !5
  %8783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8770, ptr noundef @.str.2, i32 noundef %8771, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 467, ptr noundef %8774, ptr noundef %8777, ptr noundef %8780, i32 noundef %8782) #12
  br label %8801

8784:                                             ; preds = %8762, %8755
  %8785 = load i32, ptr %174, align 4, !tbaa !5
  %8786 = call ptr @__errno_location() #13
  store i32 %8785, ptr %8786, align 4, !tbaa !5
  %8787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8788 = load i32, ptr @test_count, align 4, !tbaa !5
  %8789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8790 = load i32, ptr %8789, align 4, !tbaa !5
  %8791 = call ptr @s2n_strerror(i32 noundef %8790, ptr noundef @.str.4)
  %8792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8793 = load i32, ptr %8792, align 4, !tbaa !5
  %8794 = call ptr @s2n_strerror_debug(i32 noundef %8793, ptr noundef @.str.4)
  %8795 = call ptr @__errno_location() #13
  %8796 = load i32, ptr %8795, align 4, !tbaa !5
  %8797 = call ptr @strerror(i32 noundef %8796) #12
  %8798 = call ptr @__errno_location() #13
  %8799 = load i32, ptr %8798, align 4, !tbaa !5
  %8800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8787, ptr noundef @.str.5, i32 noundef %8788, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 467, ptr noundef %8791, ptr noundef %8794, ptr noundef %8797, i32 noundef %8799) #12
  br label %8801

8801:                                             ; preds = %8784, %8767
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #12
  br label %8802

8802:                                             ; preds = %8801
  br label %8803

8803:                                             ; preds = %8802
  call void @exit(i32 noundef 1) #14
  unreachable

8804:                                             ; No predecessors!
  br label %8805

8805:                                             ; preds = %8804
  br label %8806

8806:                                             ; preds = %8805, %8747
  br label %8807

8807:                                             ; preds = %8806
  br label %8808

8808:                                             ; preds = %8807
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #12
  store ptr @s2n_rsa_with_aes_256_gcm_sha384, ptr %175, align 8, !tbaa !9
  br label %8809

8809:                                             ; preds = %8808
  %8810 = load i32, ptr @test_count, align 4, !tbaa !5
  %8811 = add nsw i32 %8810, 1
  store i32 %8811, ptr @test_count, align 4, !tbaa !5
  %8812 = load ptr, ptr %47, align 8, !tbaa !9
  %8813 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %8812, ptr noundef @.str.88)
  %8814 = icmp eq i32 %8813, -1
  br i1 %8814, label %8815, label %8868

8815:                                             ; preds = %8809
  br label %8816

8816:                                             ; preds = %8815
  br label %8817

8817:                                             ; preds = %8816
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #12
  %8818 = call ptr @__errno_location() #13
  %8819 = load i32, ptr %8818, align 4, !tbaa !5
  store i32 %8819, ptr %176, align 4, !tbaa !5
  %8820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8821 = call i32 @s2n_print_stacktrace(ptr noundef %8820)
  %8822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8823 = trunc i8 %8822 to i1
  br i1 %8823, label %8824, label %8846

8824:                                             ; preds = %8817
  %8825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8826 = call i32 @fileno(ptr noundef %8825) #12
  %8827 = call i32 @isatty(i32 noundef %8826) #12
  %8828 = icmp ne i32 %8827, 0
  br i1 %8828, label %8829, label %8846

8829:                                             ; preds = %8824
  %8830 = load i32, ptr %176, align 4, !tbaa !5
  %8831 = call ptr @__errno_location() #13
  store i32 %8830, ptr %8831, align 4, !tbaa !5
  %8832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8833 = load i32, ptr @test_count, align 4, !tbaa !5
  %8834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8835 = load i32, ptr %8834, align 4, !tbaa !5
  %8836 = call ptr @s2n_strerror(i32 noundef %8835, ptr noundef @.str.4)
  %8837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8838 = load i32, ptr %8837, align 4, !tbaa !5
  %8839 = call ptr @s2n_strerror_debug(i32 noundef %8838, ptr noundef @.str.4)
  %8840 = call ptr @__errno_location() #13
  %8841 = load i32, ptr %8840, align 4, !tbaa !5
  %8842 = call ptr @strerror(i32 noundef %8841) #12
  %8843 = call ptr @__errno_location() #13
  %8844 = load i32, ptr %8843, align 4, !tbaa !5
  %8845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8832, ptr noundef @.str.2, i32 noundef %8833, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 479, ptr noundef %8836, ptr noundef %8839, ptr noundef %8842, i32 noundef %8844) #12
  br label %8863

8846:                                             ; preds = %8824, %8817
  %8847 = load i32, ptr %176, align 4, !tbaa !5
  %8848 = call ptr @__errno_location() #13
  store i32 %8847, ptr %8848, align 4, !tbaa !5
  %8849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8850 = load i32, ptr @test_count, align 4, !tbaa !5
  %8851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8852 = load i32, ptr %8851, align 4, !tbaa !5
  %8853 = call ptr @s2n_strerror(i32 noundef %8852, ptr noundef @.str.4)
  %8854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8855 = load i32, ptr %8854, align 4, !tbaa !5
  %8856 = call ptr @s2n_strerror_debug(i32 noundef %8855, ptr noundef @.str.4)
  %8857 = call ptr @__errno_location() #13
  %8858 = load i32, ptr %8857, align 4, !tbaa !5
  %8859 = call ptr @strerror(i32 noundef %8858) #12
  %8860 = call ptr @__errno_location() #13
  %8861 = load i32, ptr %8860, align 4, !tbaa !5
  %8862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8849, ptr noundef @.str.5, i32 noundef %8850, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 479, ptr noundef %8853, ptr noundef %8856, ptr noundef %8859, i32 noundef %8861) #12
  br label %8863

8863:                                             ; preds = %8846, %8829
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #12
  br label %8864

8864:                                             ; preds = %8863
  br label %8865

8865:                                             ; preds = %8864
  call void @exit(i32 noundef 1) #14
  unreachable

8866:                                             ; No predecessors!
  br label %8867

8867:                                             ; preds = %8866
  br label %8868

8868:                                             ; preds = %8867, %8809
  br label %8869

8869:                                             ; preds = %8868
  br label %8870

8870:                                             ; preds = %8869
  %8871 = load ptr, ptr %47, align 8, !tbaa !9
  %8872 = getelementptr inbounds %struct.s2n_connection, ptr %8871, i32 0, i32 31
  %8873 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8872, i32 0, i32 1
  %8874 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8873, i32 0, i32 0
  store ptr null, ptr %8874, align 8, !tbaa !57
  %8875 = load ptr, ptr %47, align 8, !tbaa !9
  %8876 = getelementptr inbounds %struct.s2n_connection, ptr %8875, i32 0, i32 22
  %8877 = load i8, ptr %8876, align 1, !tbaa !43
  %8878 = load ptr, ptr %47, align 8, !tbaa !9
  %8879 = getelementptr inbounds %struct.s2n_connection, ptr %8878, i32 0, i32 23
  store i8 %8877, ptr %8879, align 4, !tbaa !42
  br label %8880

8880:                                             ; preds = %8870
  %8881 = load i32, ptr @test_count, align 4, !tbaa !5
  %8882 = add nsw i32 %8881, 1
  store i32 %8882, ptr @test_count, align 4, !tbaa !5
  %8883 = load ptr, ptr %47, align 8, !tbaa !9
  %8884 = load ptr, ptr %48, align 8, !tbaa !9
  %8885 = call i32 @s2n_connection_set_config(ptr noundef %8883, ptr noundef %8884)
  %8886 = icmp eq i32 %8885, -1
  br i1 %8886, label %8887, label %8940

8887:                                             ; preds = %8880
  br label %8888

8888:                                             ; preds = %8887
  br label %8889

8889:                                             ; preds = %8888
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #12
  %8890 = call ptr @__errno_location() #13
  %8891 = load i32, ptr %8890, align 4, !tbaa !5
  store i32 %8891, ptr %177, align 4, !tbaa !5
  %8892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8893 = call i32 @s2n_print_stacktrace(ptr noundef %8892)
  %8894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8895 = trunc i8 %8894 to i1
  br i1 %8895, label %8896, label %8918

8896:                                             ; preds = %8889
  %8897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8898 = call i32 @fileno(ptr noundef %8897) #12
  %8899 = call i32 @isatty(i32 noundef %8898) #12
  %8900 = icmp ne i32 %8899, 0
  br i1 %8900, label %8901, label %8918

8901:                                             ; preds = %8896
  %8902 = load i32, ptr %177, align 4, !tbaa !5
  %8903 = call ptr @__errno_location() #13
  store i32 %8902, ptr %8903, align 4, !tbaa !5
  %8904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8905 = load i32, ptr @test_count, align 4, !tbaa !5
  %8906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8907 = load i32, ptr %8906, align 4, !tbaa !5
  %8908 = call ptr @s2n_strerror(i32 noundef %8907, ptr noundef @.str.4)
  %8909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8910 = load i32, ptr %8909, align 4, !tbaa !5
  %8911 = call ptr @s2n_strerror_debug(i32 noundef %8910, ptr noundef @.str.4)
  %8912 = call ptr @__errno_location() #13
  %8913 = load i32, ptr %8912, align 4, !tbaa !5
  %8914 = call ptr @strerror(i32 noundef %8913) #12
  %8915 = call ptr @__errno_location() #13
  %8916 = load i32, ptr %8915, align 4, !tbaa !5
  %8917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8904, ptr noundef @.str.2, i32 noundef %8905, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 483, ptr noundef %8908, ptr noundef %8911, ptr noundef %8914, i32 noundef %8916) #12
  br label %8935

8918:                                             ; preds = %8896, %8889
  %8919 = load i32, ptr %177, align 4, !tbaa !5
  %8920 = call ptr @__errno_location() #13
  store i32 %8919, ptr %8920, align 4, !tbaa !5
  %8921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8922 = load i32, ptr @test_count, align 4, !tbaa !5
  %8923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8924 = load i32, ptr %8923, align 4, !tbaa !5
  %8925 = call ptr @s2n_strerror(i32 noundef %8924, ptr noundef @.str.4)
  %8926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8927 = load i32, ptr %8926, align 4, !tbaa !5
  %8928 = call ptr @s2n_strerror_debug(i32 noundef %8927, ptr noundef @.str.4)
  %8929 = call ptr @__errno_location() #13
  %8930 = load i32, ptr %8929, align 4, !tbaa !5
  %8931 = call ptr @strerror(i32 noundef %8930) #12
  %8932 = call ptr @__errno_location() #13
  %8933 = load i32, ptr %8932, align 4, !tbaa !5
  %8934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8921, ptr noundef @.str.5, i32 noundef %8922, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 483, ptr noundef %8925, ptr noundef %8928, ptr noundef %8931, i32 noundef %8933) #12
  br label %8935

8935:                                             ; preds = %8918, %8901
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #12
  br label %8936

8936:                                             ; preds = %8935
  br label %8937

8937:                                             ; preds = %8936
  call void @exit(i32 noundef 1) #14
  unreachable

8938:                                             ; No predecessors!
  br label %8939

8939:                                             ; preds = %8938
  br label %8940

8940:                                             ; preds = %8939, %8880
  br label %8941

8941:                                             ; preds = %8940
  br label %8942

8942:                                             ; preds = %8941
  br label %8943

8943:                                             ; preds = %8942
  %8944 = load i32, ptr @test_count, align 4, !tbaa !5
  %8945 = add nsw i32 %8944, 1
  store i32 %8945, ptr @test_count, align 4, !tbaa !5
  %8946 = load ptr, ptr %47, align 8, !tbaa !9
  %8947 = getelementptr inbounds [12 x i8], ptr %78, i64 0, i64 0
  %8948 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %8946, ptr noundef %8947, i16 noundef zeroext 6)
  %8949 = icmp eq i32 %8948, -1
  br i1 %8949, label %8950, label %9003

8950:                                             ; preds = %8943
  br label %8951

8951:                                             ; preds = %8950
  br label %8952

8952:                                             ; preds = %8951
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #12
  %8953 = call ptr @__errno_location() #13
  %8954 = load i32, ptr %8953, align 4, !tbaa !5
  store i32 %8954, ptr %178, align 4, !tbaa !5
  %8955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8956 = call i32 @s2n_print_stacktrace(ptr noundef %8955)
  %8957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8958 = trunc i8 %8957 to i1
  br i1 %8958, label %8959, label %8981

8959:                                             ; preds = %8952
  %8960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8961 = call i32 @fileno(ptr noundef %8960) #12
  %8962 = call i32 @isatty(i32 noundef %8961) #12
  %8963 = icmp ne i32 %8962, 0
  br i1 %8963, label %8964, label %8981

8964:                                             ; preds = %8959
  %8965 = load i32, ptr %178, align 4, !tbaa !5
  %8966 = call ptr @__errno_location() #13
  store i32 %8965, ptr %8966, align 4, !tbaa !5
  %8967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8968 = load i32, ptr @test_count, align 4, !tbaa !5
  %8969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8970 = load i32, ptr %8969, align 4, !tbaa !5
  %8971 = call ptr @s2n_strerror(i32 noundef %8970, ptr noundef @.str.4)
  %8972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8973 = load i32, ptr %8972, align 4, !tbaa !5
  %8974 = call ptr @s2n_strerror_debug(i32 noundef %8973, ptr noundef @.str.4)
  %8975 = call ptr @__errno_location() #13
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  %8977 = call ptr @strerror(i32 noundef %8976) #12
  %8978 = call ptr @__errno_location() #13
  %8979 = load i32, ptr %8978, align 4, !tbaa !5
  %8980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8967, ptr noundef @.str.2, i32 noundef %8968, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 484, ptr noundef %8971, ptr noundef %8974, ptr noundef %8977, i32 noundef %8979) #12
  br label %8998

8981:                                             ; preds = %8959, %8952
  %8982 = load i32, ptr %178, align 4, !tbaa !5
  %8983 = call ptr @__errno_location() #13
  store i32 %8982, ptr %8983, align 4, !tbaa !5
  %8984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8985 = load i32, ptr @test_count, align 4, !tbaa !5
  %8986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8987 = load i32, ptr %8986, align 4, !tbaa !5
  %8988 = call ptr @s2n_strerror(i32 noundef %8987, ptr noundef @.str.4)
  %8989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8990 = load i32, ptr %8989, align 4, !tbaa !5
  %8991 = call ptr @s2n_strerror_debug(i32 noundef %8990, ptr noundef @.str.4)
  %8992 = call ptr @__errno_location() #13
  %8993 = load i32, ptr %8992, align 4, !tbaa !5
  %8994 = call ptr @strerror(i32 noundef %8993) #12
  %8995 = call ptr @__errno_location() #13
  %8996 = load i32, ptr %8995, align 4, !tbaa !5
  %8997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8984, ptr noundef @.str.5, i32 noundef %8985, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 484, ptr noundef %8988, ptr noundef %8991, ptr noundef %8994, i32 noundef %8996) #12
  br label %8998

8998:                                             ; preds = %8981, %8964
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #12
  br label %8999

8999:                                             ; preds = %8998
  br label %9000

9000:                                             ; preds = %8999
  call void @exit(i32 noundef 1) #14
  unreachable

9001:                                             ; No predecessors!
  br label %9002

9002:                                             ; preds = %9001
  br label %9003

9003:                                             ; preds = %9002, %8943
  br label %9004

9004:                                             ; preds = %9003
  br label %9005

9005:                                             ; preds = %9004
  br label %9006

9006:                                             ; preds = %9005
  %9007 = load i32, ptr @test_count, align 4, !tbaa !5
  %9008 = add nsw i32 %9007, 1
  store i32 %9008, ptr @test_count, align 4, !tbaa !5
  %9009 = load ptr, ptr %47, align 8, !tbaa !9
  %9010 = load i32, ptr %9009, align 8
  %9011 = lshr i32 %9010, 3
  %9012 = and i32 %9011, 1
  %9013 = icmp eq i32 %9012, 0
  br i1 %9013, label %9067, label %9014

9014:                                             ; preds = %9006
  br label %9015

9015:                                             ; preds = %9014
  br label %9016

9016:                                             ; preds = %9015
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #12
  %9017 = call ptr @__errno_location() #13
  %9018 = load i32, ptr %9017, align 4, !tbaa !5
  store i32 %9018, ptr %179, align 4, !tbaa !5
  %9019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9020 = call i32 @s2n_print_stacktrace(ptr noundef %9019)
  %9021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9022 = trunc i8 %9021 to i1
  br i1 %9022, label %9023, label %9045

9023:                                             ; preds = %9016
  %9024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9025 = call i32 @fileno(ptr noundef %9024) #12
  %9026 = call i32 @isatty(i32 noundef %9025) #12
  %9027 = icmp ne i32 %9026, 0
  br i1 %9027, label %9028, label %9045

9028:                                             ; preds = %9023
  %9029 = load i32, ptr %179, align 4, !tbaa !5
  %9030 = call ptr @__errno_location() #13
  store i32 %9029, ptr %9030, align 4, !tbaa !5
  %9031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9032 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9034, ptr noundef @.str.4)
  %9036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9037 = load i32, ptr %9036, align 4, !tbaa !5
  %9038 = call ptr @s2n_strerror_debug(i32 noundef %9037, ptr noundef @.str.4)
  %9039 = call ptr @__errno_location() #13
  %9040 = load i32, ptr %9039, align 4, !tbaa !5
  %9041 = call ptr @strerror(i32 noundef %9040) #12
  %9042 = call ptr @__errno_location() #13
  %9043 = load i32, ptr %9042, align 4, !tbaa !5
  %9044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9031, ptr noundef @.str.2, i32 noundef %9032, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 485, ptr noundef %9035, ptr noundef %9038, ptr noundef %9041, i32 noundef %9043) #12
  br label %9062

9045:                                             ; preds = %9023, %9016
  %9046 = load i32, ptr %179, align 4, !tbaa !5
  %9047 = call ptr @__errno_location() #13
  store i32 %9046, ptr %9047, align 4, !tbaa !5
  %9048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9049 = load i32, ptr @test_count, align 4, !tbaa !5
  %9050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9051 = load i32, ptr %9050, align 4, !tbaa !5
  %9052 = call ptr @s2n_strerror(i32 noundef %9051, ptr noundef @.str.4)
  %9053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call ptr @s2n_strerror_debug(i32 noundef %9054, ptr noundef @.str.4)
  %9056 = call ptr @__errno_location() #13
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @strerror(i32 noundef %9057) #12
  %9059 = call ptr @__errno_location() #13
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9048, ptr noundef @.str.5, i32 noundef %9049, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 485, ptr noundef %9052, ptr noundef %9055, ptr noundef %9058, i32 noundef %9060) #12
  br label %9062

9062:                                             ; preds = %9045, %9028
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #12
  br label %9063

9063:                                             ; preds = %9062
  br label %9064

9064:                                             ; preds = %9063
  call void @exit(i32 noundef 1) #14
  unreachable

9065:                                             ; No predecessors!
  br label %9066

9066:                                             ; preds = %9065
  br label %9067

9067:                                             ; preds = %9066, %9006
  br label %9068

9068:                                             ; preds = %9067
  br label %9069

9069:                                             ; preds = %9068
  br label %9070

9070:                                             ; preds = %9069
  %9071 = load i32, ptr @test_count, align 4, !tbaa !5
  %9072 = add nsw i32 %9071, 1
  store i32 %9072, ptr @test_count, align 4, !tbaa !5
  %9073 = load ptr, ptr %47, align 8, !tbaa !9
  %9074 = getelementptr inbounds %struct.s2n_connection, ptr %9073, i32 0, i32 27
  %9075 = load ptr, ptr %9074, align 8, !tbaa !48
  %9076 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9075, i32 0, i32 0
  %9077 = load ptr, ptr %9076, align 8, !tbaa !49
  %9078 = load ptr, ptr %175, align 8, !tbaa !9
  %9079 = icmp eq ptr %9077, %9078
  br i1 %9079, label %9133, label %9080

9080:                                             ; preds = %9070
  br label %9081

9081:                                             ; preds = %9080
  br label %9082

9082:                                             ; preds = %9081
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #12
  %9083 = call ptr @__errno_location() #13
  %9084 = load i32, ptr %9083, align 4, !tbaa !5
  store i32 %9084, ptr %180, align 4, !tbaa !5
  %9085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9086 = call i32 @s2n_print_stacktrace(ptr noundef %9085)
  %9087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9088 = trunc i8 %9087 to i1
  br i1 %9088, label %9089, label %9111

9089:                                             ; preds = %9082
  %9090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9091 = call i32 @fileno(ptr noundef %9090) #12
  %9092 = call i32 @isatty(i32 noundef %9091) #12
  %9093 = icmp ne i32 %9092, 0
  br i1 %9093, label %9094, label %9111

9094:                                             ; preds = %9089
  %9095 = load i32, ptr %180, align 4, !tbaa !5
  %9096 = call ptr @__errno_location() #13
  store i32 %9095, ptr %9096, align 4, !tbaa !5
  %9097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9098 = load i32, ptr @test_count, align 4, !tbaa !5
  %9099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9100 = load i32, ptr %9099, align 4, !tbaa !5
  %9101 = call ptr @s2n_strerror(i32 noundef %9100, ptr noundef @.str.4)
  %9102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9103 = load i32, ptr %9102, align 4, !tbaa !5
  %9104 = call ptr @s2n_strerror_debug(i32 noundef %9103, ptr noundef @.str.4)
  %9105 = call ptr @__errno_location() #13
  %9106 = load i32, ptr %9105, align 4, !tbaa !5
  %9107 = call ptr @strerror(i32 noundef %9106) #12
  %9108 = call ptr @__errno_location() #13
  %9109 = load i32, ptr %9108, align 4, !tbaa !5
  %9110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9097, ptr noundef @.str.2, i32 noundef %9098, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 486, ptr noundef %9101, ptr noundef %9104, ptr noundef %9107, i32 noundef %9109) #12
  br label %9128

9111:                                             ; preds = %9089, %9082
  %9112 = load i32, ptr %180, align 4, !tbaa !5
  %9113 = call ptr @__errno_location() #13
  store i32 %9112, ptr %9113, align 4, !tbaa !5
  %9114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9115 = load i32, ptr @test_count, align 4, !tbaa !5
  %9116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9117 = load i32, ptr %9116, align 4, !tbaa !5
  %9118 = call ptr @s2n_strerror(i32 noundef %9117, ptr noundef @.str.4)
  %9119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9120 = load i32, ptr %9119, align 4, !tbaa !5
  %9121 = call ptr @s2n_strerror_debug(i32 noundef %9120, ptr noundef @.str.4)
  %9122 = call ptr @__errno_location() #13
  %9123 = load i32, ptr %9122, align 4, !tbaa !5
  %9124 = call ptr @strerror(i32 noundef %9123) #12
  %9125 = call ptr @__errno_location() #13
  %9126 = load i32, ptr %9125, align 4, !tbaa !5
  %9127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9114, ptr noundef @.str.5, i32 noundef %9115, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 486, ptr noundef %9118, ptr noundef %9121, ptr noundef %9124, i32 noundef %9126) #12
  br label %9128

9128:                                             ; preds = %9111, %9094
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #12
  br label %9129

9129:                                             ; preds = %9128
  br label %9130

9130:                                             ; preds = %9129
  call void @exit(i32 noundef 1) #14
  unreachable

9131:                                             ; No predecessors!
  br label %9132

9132:                                             ; preds = %9131
  br label %9133

9133:                                             ; preds = %9132, %9070
  br label %9134

9134:                                             ; preds = %9133
  br label %9135

9135:                                             ; preds = %9134
  br label %9136

9136:                                             ; preds = %9135
  %9137 = load i32, ptr @test_count, align 4, !tbaa !5
  %9138 = add nsw i32 %9137, 1
  store i32 %9138, ptr @test_count, align 4, !tbaa !5
  %9139 = load ptr, ptr %47, align 8, !tbaa !9
  %9140 = call i32 @s2n_connection_wipe(ptr noundef %9139)
  %9141 = icmp eq i32 %9140, -1
  br i1 %9141, label %9142, label %9195

9142:                                             ; preds = %9136
  br label %9143

9143:                                             ; preds = %9142
  br label %9144

9144:                                             ; preds = %9143
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #12
  %9145 = call ptr @__errno_location() #13
  %9146 = load i32, ptr %9145, align 4, !tbaa !5
  store i32 %9146, ptr %181, align 4, !tbaa !5
  %9147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9148 = call i32 @s2n_print_stacktrace(ptr noundef %9147)
  %9149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9150 = trunc i8 %9149 to i1
  br i1 %9150, label %9151, label %9173

9151:                                             ; preds = %9144
  %9152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9153 = call i32 @fileno(ptr noundef %9152) #12
  %9154 = call i32 @isatty(i32 noundef %9153) #12
  %9155 = icmp ne i32 %9154, 0
  br i1 %9155, label %9156, label %9173

9156:                                             ; preds = %9151
  %9157 = load i32, ptr %181, align 4, !tbaa !5
  %9158 = call ptr @__errno_location() #13
  store i32 %9157, ptr %9158, align 4, !tbaa !5
  %9159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9160 = load i32, ptr @test_count, align 4, !tbaa !5
  %9161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9162 = load i32, ptr %9161, align 4, !tbaa !5
  %9163 = call ptr @s2n_strerror(i32 noundef %9162, ptr noundef @.str.4)
  %9164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9165 = load i32, ptr %9164, align 4, !tbaa !5
  %9166 = call ptr @s2n_strerror_debug(i32 noundef %9165, ptr noundef @.str.4)
  %9167 = call ptr @__errno_location() #13
  %9168 = load i32, ptr %9167, align 4, !tbaa !5
  %9169 = call ptr @strerror(i32 noundef %9168) #12
  %9170 = call ptr @__errno_location() #13
  %9171 = load i32, ptr %9170, align 4, !tbaa !5
  %9172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9159, ptr noundef @.str.2, i32 noundef %9160, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 487, ptr noundef %9163, ptr noundef %9166, ptr noundef %9169, i32 noundef %9171) #12
  br label %9190

9173:                                             ; preds = %9151, %9144
  %9174 = load i32, ptr %181, align 4, !tbaa !5
  %9175 = call ptr @__errno_location() #13
  store i32 %9174, ptr %9175, align 4, !tbaa !5
  %9176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9177 = load i32, ptr @test_count, align 4, !tbaa !5
  %9178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9179 = load i32, ptr %9178, align 4, !tbaa !5
  %9180 = call ptr @s2n_strerror(i32 noundef %9179, ptr noundef @.str.4)
  %9181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9182 = load i32, ptr %9181, align 4, !tbaa !5
  %9183 = call ptr @s2n_strerror_debug(i32 noundef %9182, ptr noundef @.str.4)
  %9184 = call ptr @__errno_location() #13
  %9185 = load i32, ptr %9184, align 4, !tbaa !5
  %9186 = call ptr @strerror(i32 noundef %9185) #12
  %9187 = call ptr @__errno_location() #13
  %9188 = load i32, ptr %9187, align 4, !tbaa !5
  %9189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9176, ptr noundef @.str.5, i32 noundef %9177, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 487, ptr noundef %9180, ptr noundef %9183, ptr noundef %9186, i32 noundef %9188) #12
  br label %9190

9190:                                             ; preds = %9173, %9156
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #12
  br label %9191

9191:                                             ; preds = %9190
  br label %9192

9192:                                             ; preds = %9191
  call void @exit(i32 noundef 1) #14
  unreachable

9193:                                             ; No predecessors!
  br label %9194

9194:                                             ; preds = %9193
  br label %9195

9195:                                             ; preds = %9194, %9136
  br label %9196

9196:                                             ; preds = %9195
  br label %9197

9197:                                             ; preds = %9196
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #12
  br label %9198

9198:                                             ; preds = %9197
  %9199 = load i32, ptr @test_count, align 4, !tbaa !5
  %9200 = add nsw i32 %9199, 1
  store i32 %9200, ptr @test_count, align 4, !tbaa !5
  %9201 = load ptr, ptr %48, align 8, !tbaa !9
  %9202 = call i32 @s2n_config_free(ptr noundef %9201)
  %9203 = icmp eq i32 %9202, -1
  br i1 %9203, label %9204, label %9257

9204:                                             ; preds = %9198
  br label %9205

9205:                                             ; preds = %9204
  br label %9206

9206:                                             ; preds = %9205
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #12
  %9207 = call ptr @__errno_location() #13
  %9208 = load i32, ptr %9207, align 4, !tbaa !5
  store i32 %9208, ptr %182, align 4, !tbaa !5
  %9209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9210 = call i32 @s2n_print_stacktrace(ptr noundef %9209)
  %9211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9212 = trunc i8 %9211 to i1
  br i1 %9212, label %9213, label %9235

9213:                                             ; preds = %9206
  %9214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9215 = call i32 @fileno(ptr noundef %9214) #12
  %9216 = call i32 @isatty(i32 noundef %9215) #12
  %9217 = icmp ne i32 %9216, 0
  br i1 %9217, label %9218, label %9235

9218:                                             ; preds = %9213
  %9219 = load i32, ptr %182, align 4, !tbaa !5
  %9220 = call ptr @__errno_location() #13
  store i32 %9219, ptr %9220, align 4, !tbaa !5
  %9221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9222 = load i32, ptr @test_count, align 4, !tbaa !5
  %9223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9224 = load i32, ptr %9223, align 4, !tbaa !5
  %9225 = call ptr @s2n_strerror(i32 noundef %9224, ptr noundef @.str.4)
  %9226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9227 = load i32, ptr %9226, align 4, !tbaa !5
  %9228 = call ptr @s2n_strerror_debug(i32 noundef %9227, ptr noundef @.str.4)
  %9229 = call ptr @__errno_location() #13
  %9230 = load i32, ptr %9229, align 4, !tbaa !5
  %9231 = call ptr @strerror(i32 noundef %9230) #12
  %9232 = call ptr @__errno_location() #13
  %9233 = load i32, ptr %9232, align 4, !tbaa !5
  %9234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9221, ptr noundef @.str.2, i32 noundef %9222, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 489, ptr noundef %9225, ptr noundef %9228, ptr noundef %9231, i32 noundef %9233) #12
  br label %9252

9235:                                             ; preds = %9213, %9206
  %9236 = load i32, ptr %182, align 4, !tbaa !5
  %9237 = call ptr @__errno_location() #13
  store i32 %9236, ptr %9237, align 4, !tbaa !5
  %9238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9239 = load i32, ptr @test_count, align 4, !tbaa !5
  %9240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9241 = load i32, ptr %9240, align 4, !tbaa !5
  %9242 = call ptr @s2n_strerror(i32 noundef %9241, ptr noundef @.str.4)
  %9243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = call ptr @s2n_strerror_debug(i32 noundef %9244, ptr noundef @.str.4)
  %9246 = call ptr @__errno_location() #13
  %9247 = load i32, ptr %9246, align 4, !tbaa !5
  %9248 = call ptr @strerror(i32 noundef %9247) #12
  %9249 = call ptr @__errno_location() #13
  %9250 = load i32, ptr %9249, align 4, !tbaa !5
  %9251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9238, ptr noundef @.str.5, i32 noundef %9239, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 489, ptr noundef %9242, ptr noundef %9245, ptr noundef %9248, i32 noundef %9250) #12
  br label %9252

9252:                                             ; preds = %9235, %9218
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #12
  br label %9253

9253:                                             ; preds = %9252
  br label %9254

9254:                                             ; preds = %9253
  call void @exit(i32 noundef 1) #14
  unreachable

9255:                                             ; No predecessors!
  br label %9256

9256:                                             ; preds = %9255
  br label %9257

9257:                                             ; preds = %9256, %9198
  br label %9258

9258:                                             ; preds = %9257
  br label %9259

9259:                                             ; preds = %9258
  br label %9260

9260:                                             ; preds = %9259
  %9261 = load i32, ptr @test_count, align 4, !tbaa !5
  %9262 = add nsw i32 %9261, 1
  store i32 %9262, ptr @test_count, align 4, !tbaa !5
  %9263 = call ptr @s2n_config_new()
  store ptr %9263, ptr %48, align 8, !tbaa !9
  %9264 = icmp eq ptr %9263, null
  br i1 %9264, label %9265, label %9318

9265:                                             ; preds = %9260
  br label %9266

9266:                                             ; preds = %9265
  br label %9267

9267:                                             ; preds = %9266
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #12
  %9268 = call ptr @__errno_location() #13
  %9269 = load i32, ptr %9268, align 4, !tbaa !5
  store i32 %9269, ptr %183, align 4, !tbaa !5
  %9270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9271 = call i32 @s2n_print_stacktrace(ptr noundef %9270)
  %9272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9273 = trunc i8 %9272 to i1
  br i1 %9273, label %9274, label %9296

9274:                                             ; preds = %9267
  %9275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9276 = call i32 @fileno(ptr noundef %9275) #12
  %9277 = call i32 @isatty(i32 noundef %9276) #12
  %9278 = icmp ne i32 %9277, 0
  br i1 %9278, label %9279, label %9296

9279:                                             ; preds = %9274
  %9280 = load i32, ptr %183, align 4, !tbaa !5
  %9281 = call ptr @__errno_location() #13
  store i32 %9280, ptr %9281, align 4, !tbaa !5
  %9282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9283 = load i32, ptr @test_count, align 4, !tbaa !5
  %9284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9285 = load i32, ptr %9284, align 4, !tbaa !5
  %9286 = call ptr @s2n_strerror(i32 noundef %9285, ptr noundef @.str.4)
  %9287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9288 = load i32, ptr %9287, align 4, !tbaa !5
  %9289 = call ptr @s2n_strerror_debug(i32 noundef %9288, ptr noundef @.str.4)
  %9290 = call ptr @__errno_location() #13
  %9291 = load i32, ptr %9290, align 4, !tbaa !5
  %9292 = call ptr @strerror(i32 noundef %9291) #12
  %9293 = call ptr @__errno_location() #13
  %9294 = load i32, ptr %9293, align 4, !tbaa !5
  %9295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9282, ptr noundef @.str.2, i32 noundef %9283, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 491, ptr noundef %9286, ptr noundef %9289, ptr noundef %9292, i32 noundef %9294) #12
  br label %9313

9296:                                             ; preds = %9274, %9267
  %9297 = load i32, ptr %183, align 4, !tbaa !5
  %9298 = call ptr @__errno_location() #13
  store i32 %9297, ptr %9298, align 4, !tbaa !5
  %9299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9300 = load i32, ptr @test_count, align 4, !tbaa !5
  %9301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9302 = load i32, ptr %9301, align 4, !tbaa !5
  %9303 = call ptr @s2n_strerror(i32 noundef %9302, ptr noundef @.str.4)
  %9304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9305 = load i32, ptr %9304, align 4, !tbaa !5
  %9306 = call ptr @s2n_strerror_debug(i32 noundef %9305, ptr noundef @.str.4)
  %9307 = call ptr @__errno_location() #13
  %9308 = load i32, ptr %9307, align 4, !tbaa !5
  %9309 = call ptr @strerror(i32 noundef %9308) #12
  %9310 = call ptr @__errno_location() #13
  %9311 = load i32, ptr %9310, align 4, !tbaa !5
  %9312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9299, ptr noundef @.str.5, i32 noundef %9300, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 491, ptr noundef %9303, ptr noundef %9306, ptr noundef %9309, i32 noundef %9311) #12
  br label %9313

9313:                                             ; preds = %9296, %9279
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #12
  br label %9314

9314:                                             ; preds = %9313
  br label %9315

9315:                                             ; preds = %9314
  call void @exit(i32 noundef 1) #14
  unreachable

9316:                                             ; No predecessors!
  br label %9317

9317:                                             ; preds = %9316
  br label %9318

9318:                                             ; preds = %9317, %9260
  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 = load ptr, ptr %48, align 8, !tbaa !9
  %9325 = load ptr, ptr %53, align 8, !tbaa !9
  %9326 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9324, ptr noundef %9325)
  %9327 = icmp eq i32 %9326, -1
  br i1 %9327, label %9328, label %9381

9328:                                             ; preds = %9321
  br label %9329

9329:                                             ; preds = %9328
  br label %9330

9330:                                             ; preds = %9329
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #12
  %9331 = call ptr @__errno_location() #13
  %9332 = load i32, ptr %9331, align 4, !tbaa !5
  store i32 %9332, ptr %184, align 4, !tbaa !5
  %9333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9334 = call i32 @s2n_print_stacktrace(ptr noundef %9333)
  %9335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9336 = trunc i8 %9335 to i1
  br i1 %9336, label %9337, label %9359

9337:                                             ; preds = %9330
  %9338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9339 = call i32 @fileno(ptr noundef %9338) #12
  %9340 = call i32 @isatty(i32 noundef %9339) #12
  %9341 = icmp ne i32 %9340, 0
  br i1 %9341, label %9342, label %9359

9342:                                             ; preds = %9337
  %9343 = load i32, ptr %184, align 4, !tbaa !5
  %9344 = call ptr @__errno_location() #13
  store i32 %9343, ptr %9344, align 4, !tbaa !5
  %9345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9346 = load i32, ptr @test_count, align 4, !tbaa !5
  %9347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9348 = load i32, ptr %9347, align 4, !tbaa !5
  %9349 = call ptr @s2n_strerror(i32 noundef %9348, ptr noundef @.str.4)
  %9350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9351 = load i32, ptr %9350, align 4, !tbaa !5
  %9352 = call ptr @s2n_strerror_debug(i32 noundef %9351, ptr noundef @.str.4)
  %9353 = call ptr @__errno_location() #13
  %9354 = load i32, ptr %9353, align 4, !tbaa !5
  %9355 = call ptr @strerror(i32 noundef %9354) #12
  %9356 = call ptr @__errno_location() #13
  %9357 = load i32, ptr %9356, align 4, !tbaa !5
  %9358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9345, ptr noundef @.str.2, i32 noundef %9346, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 492, ptr noundef %9349, ptr noundef %9352, ptr noundef %9355, i32 noundef %9357) #12
  br label %9376

9359:                                             ; preds = %9337, %9330
  %9360 = load i32, ptr %184, align 4, !tbaa !5
  %9361 = call ptr @__errno_location() #13
  store i32 %9360, ptr %9361, align 4, !tbaa !5
  %9362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9363 = load i32, ptr @test_count, align 4, !tbaa !5
  %9364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9365 = load i32, ptr %9364, align 4, !tbaa !5
  %9366 = call ptr @s2n_strerror(i32 noundef %9365, ptr noundef @.str.4)
  %9367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9368 = load i32, ptr %9367, align 4, !tbaa !5
  %9369 = call ptr @s2n_strerror_debug(i32 noundef %9368, ptr noundef @.str.4)
  %9370 = call ptr @__errno_location() #13
  %9371 = load i32, ptr %9370, align 4, !tbaa !5
  %9372 = call ptr @strerror(i32 noundef %9371) #12
  %9373 = call ptr @__errno_location() #13
  %9374 = load i32, ptr %9373, align 4, !tbaa !5
  %9375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9362, ptr noundef @.str.5, i32 noundef %9363, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 492, ptr noundef %9366, ptr noundef %9369, ptr noundef %9372, i32 noundef %9374) #12
  br label %9376

9376:                                             ; preds = %9359, %9342
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #12
  br label %9377

9377:                                             ; preds = %9376
  br label %9378

9378:                                             ; preds = %9377
  call void @exit(i32 noundef 1) #14
  unreachable

9379:                                             ; No predecessors!
  br label %9380

9380:                                             ; preds = %9379
  br label %9381

9381:                                             ; preds = %9380, %9321
  br label %9382

9382:                                             ; preds = %9381
  br label %9383

9383:                                             ; preds = %9382
  br label %9384

9384:                                             ; preds = %9383
  %9385 = load i32, ptr @test_count, align 4, !tbaa !5
  %9386 = add nsw i32 %9385, 1
  store i32 %9386, ptr @test_count, align 4, !tbaa !5
  %9387 = load ptr, ptr %48, align 8, !tbaa !9
  %9388 = load ptr, ptr %54, align 8, !tbaa !9
  %9389 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9387, ptr noundef %9388)
  %9390 = icmp eq i32 %9389, -1
  br i1 %9390, label %9391, label %9444

9391:                                             ; preds = %9384
  br label %9392

9392:                                             ; preds = %9391
  br label %9393

9393:                                             ; preds = %9392
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #12
  %9394 = call ptr @__errno_location() #13
  %9395 = load i32, ptr %9394, align 4, !tbaa !5
  store i32 %9395, ptr %185, 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) #12
  %9403 = call i32 @isatty(i32 noundef %9402) #12
  %9404 = icmp ne i32 %9403, 0
  br i1 %9404, label %9405, label %9422

9405:                                             ; preds = %9400
  %9406 = load i32, ptr %185, align 4, !tbaa !5
  %9407 = call ptr @__errno_location() #13
  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.4)
  %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.4)
  %9416 = call ptr @__errno_location() #13
  %9417 = load i32, ptr %9416, align 4, !tbaa !5
  %9418 = call ptr @strerror(i32 noundef %9417) #12
  %9419 = call ptr @__errno_location() #13
  %9420 = load i32, ptr %9419, align 4, !tbaa !5
  %9421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9408, ptr noundef @.str.2, i32 noundef %9409, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 493, ptr noundef %9412, ptr noundef %9415, ptr noundef %9418, i32 noundef %9420) #12
  br label %9439

9422:                                             ; preds = %9400, %9393
  %9423 = load i32, ptr %185, align 4, !tbaa !5
  %9424 = call ptr @__errno_location() #13
  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.4)
  %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.4)
  %9433 = call ptr @__errno_location() #13
  %9434 = load i32, ptr %9433, align 4, !tbaa !5
  %9435 = call ptr @strerror(i32 noundef %9434) #12
  %9436 = call ptr @__errno_location() #13
  %9437 = load i32, ptr %9436, align 4, !tbaa !5
  %9438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9425, ptr noundef @.str.5, i32 noundef %9426, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 493, ptr noundef %9429, ptr noundef %9432, ptr noundef %9435, i32 noundef %9437) #12
  br label %9439

9439:                                             ; preds = %9422, %9405
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #12
  br label %9440

9440:                                             ; preds = %9439
  br label %9441

9441:                                             ; preds = %9440
  call void @exit(i32 noundef 1) #14
  unreachable

9442:                                             ; No predecessors!
  br label %9443

9443:                                             ; preds = %9442
  br label %9444

9444:                                             ; preds = %9443, %9384
  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 = load ptr, ptr %48, align 8, !tbaa !9
  %9451 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef %9450, ptr noundef %53, i32 noundef 1)
  %9452 = icmp eq i32 %9451, -1
  br i1 %9452, label %9453, label %9506

9453:                                             ; preds = %9447
  br label %9454

9454:                                             ; preds = %9453
  br label %9455

9455:                                             ; preds = %9454
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #12
  %9456 = call ptr @__errno_location() #13
  %9457 = load i32, ptr %9456, align 4, !tbaa !5
  store i32 %9457, ptr %186, align 4, !tbaa !5
  %9458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9459 = call i32 @s2n_print_stacktrace(ptr noundef %9458)
  %9460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9461 = trunc i8 %9460 to i1
  br i1 %9461, label %9462, label %9484

9462:                                             ; preds = %9455
  %9463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9464 = call i32 @fileno(ptr noundef %9463) #12
  %9465 = call i32 @isatty(i32 noundef %9464) #12
  %9466 = icmp ne i32 %9465, 0
  br i1 %9466, label %9467, label %9484

9467:                                             ; preds = %9462
  %9468 = load i32, ptr %186, align 4, !tbaa !5
  %9469 = call ptr @__errno_location() #13
  store i32 %9468, ptr %9469, align 4, !tbaa !5
  %9470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9471 = load i32, ptr @test_count, align 4, !tbaa !5
  %9472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9473 = load i32, ptr %9472, align 4, !tbaa !5
  %9474 = call ptr @s2n_strerror(i32 noundef %9473, ptr noundef @.str.4)
  %9475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9476 = load i32, ptr %9475, align 4, !tbaa !5
  %9477 = call ptr @s2n_strerror_debug(i32 noundef %9476, ptr noundef @.str.4)
  %9478 = call ptr @__errno_location() #13
  %9479 = load i32, ptr %9478, align 4, !tbaa !5
  %9480 = call ptr @strerror(i32 noundef %9479) #12
  %9481 = call ptr @__errno_location() #13
  %9482 = load i32, ptr %9481, align 4, !tbaa !5
  %9483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9470, ptr noundef @.str.2, i32 noundef %9471, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 495, ptr noundef %9474, ptr noundef %9477, ptr noundef %9480, i32 noundef %9482) #12
  br label %9501

9484:                                             ; preds = %9462, %9455
  %9485 = load i32, ptr %186, align 4, !tbaa !5
  %9486 = call ptr @__errno_location() #13
  store i32 %9485, ptr %9486, align 4, !tbaa !5
  %9487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9488 = load i32, ptr @test_count, align 4, !tbaa !5
  %9489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9490 = load i32, ptr %9489, align 4, !tbaa !5
  %9491 = call ptr @s2n_strerror(i32 noundef %9490, ptr noundef @.str.4)
  %9492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9493 = load i32, ptr %9492, align 4, !tbaa !5
  %9494 = call ptr @s2n_strerror_debug(i32 noundef %9493, ptr noundef @.str.4)
  %9495 = call ptr @__errno_location() #13
  %9496 = load i32, ptr %9495, align 4, !tbaa !5
  %9497 = call ptr @strerror(i32 noundef %9496) #12
  %9498 = call ptr @__errno_location() #13
  %9499 = load i32, ptr %9498, align 4, !tbaa !5
  %9500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9487, ptr noundef @.str.5, i32 noundef %9488, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 495, ptr noundef %9491, ptr noundef %9494, ptr noundef %9497, i32 noundef %9499) #12
  br label %9501

9501:                                             ; preds = %9484, %9467
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #12
  br label %9502

9502:                                             ; preds = %9501
  br label %9503

9503:                                             ; preds = %9502
  call void @exit(i32 noundef 1) #14
  unreachable

9504:                                             ; No predecessors!
  br label %9505

9505:                                             ; preds = %9504
  br label %9506

9506:                                             ; preds = %9505, %9447
  br label %9507

9507:                                             ; preds = %9506
  br label %9508

9508:                                             ; preds = %9507
  br label %9509

9509:                                             ; preds = %9508
  %9510 = load i32, ptr @test_count, align 4, !tbaa !5
  %9511 = add nsw i32 %9510, 1
  store i32 %9511, ptr @test_count, align 4, !tbaa !5
  %9512 = load ptr, ptr %47, align 8, !tbaa !9
  %9513 = load ptr, ptr %48, align 8, !tbaa !9
  %9514 = call i32 @s2n_connection_set_config(ptr noundef %9512, ptr noundef %9513)
  %9515 = icmp eq i32 %9514, -1
  br i1 %9515, label %9516, label %9569

9516:                                             ; preds = %9509
  br label %9517

9517:                                             ; preds = %9516
  br label %9518

9518:                                             ; preds = %9517
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #12
  %9519 = call ptr @__errno_location() #13
  %9520 = load i32, ptr %9519, align 4, !tbaa !5
  store i32 %9520, ptr %187, align 4, !tbaa !5
  %9521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9522 = call i32 @s2n_print_stacktrace(ptr noundef %9521)
  %9523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9524 = trunc i8 %9523 to i1
  br i1 %9524, label %9525, label %9547

9525:                                             ; preds = %9518
  %9526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9527 = call i32 @fileno(ptr noundef %9526) #12
  %9528 = call i32 @isatty(i32 noundef %9527) #12
  %9529 = icmp ne i32 %9528, 0
  br i1 %9529, label %9530, label %9547

9530:                                             ; preds = %9525
  %9531 = load i32, ptr %187, align 4, !tbaa !5
  %9532 = call ptr @__errno_location() #13
  store i32 %9531, ptr %9532, align 4, !tbaa !5
  %9533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9534 = load i32, ptr @test_count, align 4, !tbaa !5
  %9535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9536 = load i32, ptr %9535, align 4, !tbaa !5
  %9537 = call ptr @s2n_strerror(i32 noundef %9536, ptr noundef @.str.4)
  %9538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9539 = load i32, ptr %9538, align 4, !tbaa !5
  %9540 = call ptr @s2n_strerror_debug(i32 noundef %9539, ptr noundef @.str.4)
  %9541 = call ptr @__errno_location() #13
  %9542 = load i32, ptr %9541, align 4, !tbaa !5
  %9543 = call ptr @strerror(i32 noundef %9542) #12
  %9544 = call ptr @__errno_location() #13
  %9545 = load i32, ptr %9544, align 4, !tbaa !5
  %9546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9533, ptr noundef @.str.2, i32 noundef %9534, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 496, ptr noundef %9537, ptr noundef %9540, ptr noundef %9543, i32 noundef %9545) #12
  br label %9564

9547:                                             ; preds = %9525, %9518
  %9548 = load i32, ptr %187, align 4, !tbaa !5
  %9549 = call ptr @__errno_location() #13
  store i32 %9548, ptr %9549, align 4, !tbaa !5
  %9550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9551 = load i32, ptr @test_count, align 4, !tbaa !5
  %9552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9553 = load i32, ptr %9552, align 4, !tbaa !5
  %9554 = call ptr @s2n_strerror(i32 noundef %9553, ptr noundef @.str.4)
  %9555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9556 = load i32, ptr %9555, align 4, !tbaa !5
  %9557 = call ptr @s2n_strerror_debug(i32 noundef %9556, ptr noundef @.str.4)
  %9558 = call ptr @__errno_location() #13
  %9559 = load i32, ptr %9558, align 4, !tbaa !5
  %9560 = call ptr @strerror(i32 noundef %9559) #12
  %9561 = call ptr @__errno_location() #13
  %9562 = load i32, ptr %9561, align 4, !tbaa !5
  %9563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9550, ptr noundef @.str.5, i32 noundef %9551, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 496, ptr noundef %9554, ptr noundef %9557, ptr noundef %9560, i32 noundef %9562) #12
  br label %9564

9564:                                             ; preds = %9547, %9530
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #12
  br label %9565

9565:                                             ; preds = %9564
  br label %9566

9566:                                             ; preds = %9565
  call void @exit(i32 noundef 1) #14
  unreachable

9567:                                             ; No predecessors!
  br label %9568

9568:                                             ; preds = %9567
  br label %9569

9569:                                             ; preds = %9568, %9509
  br label %9570

9570:                                             ; preds = %9569
  br label %9571

9571:                                             ; preds = %9570
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #12
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %188, align 8, !tbaa !9
  br label %9572

9572:                                             ; preds = %9571
  %9573 = load i32, ptr @test_count, align 4, !tbaa !5
  %9574 = add nsw i32 %9573, 1
  store i32 %9574, ptr @test_count, align 4, !tbaa !5
  %9575 = load ptr, ptr %47, align 8, !tbaa !9
  %9576 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %9575, ptr noundef @.str.72)
  %9577 = icmp eq i32 %9576, -1
  br i1 %9577, label %9578, label %9631

9578:                                             ; preds = %9572
  br label %9579

9579:                                             ; preds = %9578
  br label %9580

9580:                                             ; preds = %9579
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #12
  %9581 = call ptr @__errno_location() #13
  %9582 = load i32, ptr %9581, align 4, !tbaa !5
  store i32 %9582, ptr %189, align 4, !tbaa !5
  %9583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9584 = call i32 @s2n_print_stacktrace(ptr noundef %9583)
  %9585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9586 = trunc i8 %9585 to i1
  br i1 %9586, label %9587, label %9609

9587:                                             ; preds = %9580
  %9588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9589 = call i32 @fileno(ptr noundef %9588) #12
  %9590 = call i32 @isatty(i32 noundef %9589) #12
  %9591 = icmp ne i32 %9590, 0
  br i1 %9591, label %9592, label %9609

9592:                                             ; preds = %9587
  %9593 = load i32, ptr %189, align 4, !tbaa !5
  %9594 = call ptr @__errno_location() #13
  store i32 %9593, ptr %9594, align 4, !tbaa !5
  %9595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9596 = load i32, ptr @test_count, align 4, !tbaa !5
  %9597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9598 = load i32, ptr %9597, align 4, !tbaa !5
  %9599 = call ptr @s2n_strerror(i32 noundef %9598, ptr noundef @.str.4)
  %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_debug(i32 noundef %9601, ptr noundef @.str.4)
  %9603 = call ptr @__errno_location() #13
  %9604 = load i32, ptr %9603, align 4, !tbaa !5
  %9605 = call ptr @strerror(i32 noundef %9604) #12
  %9606 = call ptr @__errno_location() #13
  %9607 = load i32, ptr %9606, align 4, !tbaa !5
  %9608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9595, ptr noundef @.str.2, i32 noundef %9596, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 502, ptr noundef %9599, ptr noundef %9602, ptr noundef %9605, i32 noundef %9607) #12
  br label %9626

9609:                                             ; preds = %9587, %9580
  %9610 = load i32, ptr %189, align 4, !tbaa !5
  %9611 = call ptr @__errno_location() #13
  store i32 %9610, ptr %9611, align 4, !tbaa !5
  %9612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9613 = load i32, ptr @test_count, align 4, !tbaa !5
  %9614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9615 = load i32, ptr %9614, align 4, !tbaa !5
  %9616 = call ptr @s2n_strerror(i32 noundef %9615, ptr noundef @.str.4)
  %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_debug(i32 noundef %9618, ptr noundef @.str.4)
  %9620 = call ptr @__errno_location() #13
  %9621 = load i32, ptr %9620, align 4, !tbaa !5
  %9622 = call ptr @strerror(i32 noundef %9621) #12
  %9623 = call ptr @__errno_location() #13
  %9624 = load i32, ptr %9623, align 4, !tbaa !5
  %9625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9612, ptr noundef @.str.5, i32 noundef %9613, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 502, ptr noundef %9616, ptr noundef %9619, ptr noundef %9622, i32 noundef %9624) #12
  br label %9626

9626:                                             ; preds = %9609, %9592
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #12
  br label %9627

9627:                                             ; preds = %9626
  br label %9628

9628:                                             ; preds = %9627
  call void @exit(i32 noundef 1) #14
  unreachable

9629:                                             ; No predecessors!
  br label %9630

9630:                                             ; preds = %9629
  br label %9631

9631:                                             ; preds = %9630, %9572
  br label %9632

9632:                                             ; preds = %9631
  br label %9633

9633:                                             ; preds = %9632
  %9634 = load ptr, ptr %103, align 8, !tbaa !9
  %9635 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %9634, i32 0, i32 1
  %9636 = load ptr, ptr %9635, align 8, !tbaa !55
  %9637 = getelementptr inbounds ptr, ptr %9636, i64 0
  %9638 = load ptr, ptr %9637, align 8, !tbaa !9
  %9639 = load ptr, ptr %47, align 8, !tbaa !9
  %9640 = getelementptr inbounds %struct.s2n_connection, ptr %9639, i32 0, i32 31
  %9641 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9640, i32 0, i32 1
  %9642 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9641, i32 0, i32 0
  store ptr %9638, ptr %9642, align 8, !tbaa !57
  %9643 = load ptr, ptr %47, align 8, !tbaa !9
  %9644 = getelementptr inbounds %struct.s2n_connection, ptr %9643, i32 0, i32 22
  %9645 = load i8, ptr %9644, align 1, !tbaa !43
  %9646 = load ptr, ptr %47, align 8, !tbaa !9
  %9647 = getelementptr inbounds %struct.s2n_connection, ptr %9646, i32 0, i32 23
  store i8 %9645, ptr %9647, align 4, !tbaa !42
  br label %9648

9648:                                             ; preds = %9633
  %9649 = load i32, ptr @test_count, align 4, !tbaa !5
  %9650 = add nsw i32 %9649, 1
  store i32 %9650, ptr @test_count, align 4, !tbaa !5
  %9651 = load ptr, ptr %47, align 8, !tbaa !9
  %9652 = load ptr, ptr %48, align 8, !tbaa !9
  %9653 = call i32 @s2n_connection_set_config(ptr noundef %9651, ptr noundef %9652)
  %9654 = icmp eq i32 %9653, -1
  br i1 %9654, label %9655, label %9708

9655:                                             ; preds = %9648
  br label %9656

9656:                                             ; preds = %9655
  br label %9657

9657:                                             ; preds = %9656
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #12
  %9658 = call ptr @__errno_location() #13
  %9659 = load i32, ptr %9658, align 4, !tbaa !5
  store i32 %9659, ptr %190, align 4, !tbaa !5
  %9660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9661 = call i32 @s2n_print_stacktrace(ptr noundef %9660)
  %9662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9663 = trunc i8 %9662 to i1
  br i1 %9663, label %9664, label %9686

9664:                                             ; preds = %9657
  %9665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9666 = call i32 @fileno(ptr noundef %9665) #12
  %9667 = call i32 @isatty(i32 noundef %9666) #12
  %9668 = icmp ne i32 %9667, 0
  br i1 %9668, label %9669, label %9686

9669:                                             ; preds = %9664
  %9670 = load i32, ptr %190, align 4, !tbaa !5
  %9671 = call ptr @__errno_location() #13
  store i32 %9670, ptr %9671, align 4, !tbaa !5
  %9672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9673 = load i32, ptr @test_count, align 4, !tbaa !5
  %9674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9675 = load i32, ptr %9674, align 4, !tbaa !5
  %9676 = call ptr @s2n_strerror(i32 noundef %9675, ptr noundef @.str.4)
  %9677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9678 = load i32, ptr %9677, align 4, !tbaa !5
  %9679 = call ptr @s2n_strerror_debug(i32 noundef %9678, ptr noundef @.str.4)
  %9680 = call ptr @__errno_location() #13
  %9681 = load i32, ptr %9680, align 4, !tbaa !5
  %9682 = call ptr @strerror(i32 noundef %9681) #12
  %9683 = call ptr @__errno_location() #13
  %9684 = load i32, ptr %9683, align 4, !tbaa !5
  %9685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9672, ptr noundef @.str.2, i32 noundef %9673, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 505, ptr noundef %9676, ptr noundef %9679, ptr noundef %9682, i32 noundef %9684) #12
  br label %9703

9686:                                             ; preds = %9664, %9657
  %9687 = load i32, ptr %190, align 4, !tbaa !5
  %9688 = call ptr @__errno_location() #13
  store i32 %9687, ptr %9688, align 4, !tbaa !5
  %9689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9690 = load i32, ptr @test_count, align 4, !tbaa !5
  %9691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9692 = load i32, ptr %9691, align 4, !tbaa !5
  %9693 = call ptr @s2n_strerror(i32 noundef %9692, ptr noundef @.str.4)
  %9694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9695 = load i32, ptr %9694, align 4, !tbaa !5
  %9696 = call ptr @s2n_strerror_debug(i32 noundef %9695, ptr noundef @.str.4)
  %9697 = call ptr @__errno_location() #13
  %9698 = load i32, ptr %9697, align 4, !tbaa !5
  %9699 = call ptr @strerror(i32 noundef %9698) #12
  %9700 = call ptr @__errno_location() #13
  %9701 = load i32, ptr %9700, align 4, !tbaa !5
  %9702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9689, ptr noundef @.str.5, i32 noundef %9690, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 505, ptr noundef %9693, ptr noundef %9696, ptr noundef %9699, i32 noundef %9701) #12
  br label %9703

9703:                                             ; preds = %9686, %9669
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #12
  br label %9704

9704:                                             ; preds = %9703
  br label %9705

9705:                                             ; preds = %9704
  call void @exit(i32 noundef 1) #14
  unreachable

9706:                                             ; No predecessors!
  br label %9707

9707:                                             ; preds = %9706
  br label %9708

9708:                                             ; preds = %9707, %9648
  br label %9709

9709:                                             ; preds = %9708
  br label %9710

9710:                                             ; preds = %9709
  br label %9711

9711:                                             ; preds = %9710
  %9712 = load i32, ptr @test_count, align 4, !tbaa !5
  %9713 = add nsw i32 %9712, 1
  store i32 %9713, ptr @test_count, align 4, !tbaa !5
  %9714 = load ptr, ptr %47, align 8, !tbaa !9
  %9715 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %9716 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %9714, ptr noundef %9715, i16 noundef zeroext 2)
  %9717 = icmp eq i32 %9716, -1
  br i1 %9717, label %9718, label %9771

9718:                                             ; preds = %9711
  br label %9719

9719:                                             ; preds = %9718
  br label %9720

9720:                                             ; preds = %9719
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #12
  %9721 = call ptr @__errno_location() #13
  %9722 = load i32, ptr %9721, align 4, !tbaa !5
  store i32 %9722, ptr %191, align 4, !tbaa !5
  %9723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9724 = call i32 @s2n_print_stacktrace(ptr noundef %9723)
  %9725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9726 = trunc i8 %9725 to i1
  br i1 %9726, label %9727, label %9749

9727:                                             ; preds = %9720
  %9728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9729 = call i32 @fileno(ptr noundef %9728) #12
  %9730 = call i32 @isatty(i32 noundef %9729) #12
  %9731 = icmp ne i32 %9730, 0
  br i1 %9731, label %9732, label %9749

9732:                                             ; preds = %9727
  %9733 = load i32, ptr %191, align 4, !tbaa !5
  %9734 = call ptr @__errno_location() #13
  store i32 %9733, ptr %9734, align 4, !tbaa !5
  %9735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9736 = load i32, ptr @test_count, align 4, !tbaa !5
  %9737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9738 = load i32, ptr %9737, align 4, !tbaa !5
  %9739 = call ptr @s2n_strerror(i32 noundef %9738, ptr noundef @.str.4)
  %9740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9741 = load i32, ptr %9740, align 4, !tbaa !5
  %9742 = call ptr @s2n_strerror_debug(i32 noundef %9741, ptr noundef @.str.4)
  %9743 = call ptr @__errno_location() #13
  %9744 = load i32, ptr %9743, align 4, !tbaa !5
  %9745 = call ptr @strerror(i32 noundef %9744) #12
  %9746 = call ptr @__errno_location() #13
  %9747 = load i32, ptr %9746, align 4, !tbaa !5
  %9748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9735, ptr noundef @.str.2, i32 noundef %9736, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 506, ptr noundef %9739, ptr noundef %9742, ptr noundef %9745, i32 noundef %9747) #12
  br label %9766

9749:                                             ; preds = %9727, %9720
  %9750 = load i32, ptr %191, align 4, !tbaa !5
  %9751 = call ptr @__errno_location() #13
  store i32 %9750, ptr %9751, align 4, !tbaa !5
  %9752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9753 = load i32, ptr @test_count, align 4, !tbaa !5
  %9754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9755 = load i32, ptr %9754, align 4, !tbaa !5
  %9756 = call ptr @s2n_strerror(i32 noundef %9755, ptr noundef @.str.4)
  %9757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9758 = load i32, ptr %9757, align 4, !tbaa !5
  %9759 = call ptr @s2n_strerror_debug(i32 noundef %9758, ptr noundef @.str.4)
  %9760 = call ptr @__errno_location() #13
  %9761 = load i32, ptr %9760, align 4, !tbaa !5
  %9762 = call ptr @strerror(i32 noundef %9761) #12
  %9763 = call ptr @__errno_location() #13
  %9764 = load i32, ptr %9763, align 4, !tbaa !5
  %9765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9752, ptr noundef @.str.5, i32 noundef %9753, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 506, ptr noundef %9756, ptr noundef %9759, ptr noundef %9762, i32 noundef %9764) #12
  br label %9766

9766:                                             ; preds = %9749, %9732
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #12
  br label %9767

9767:                                             ; preds = %9766
  br label %9768

9768:                                             ; preds = %9767
  call void @exit(i32 noundef 1) #14
  unreachable

9769:                                             ; No predecessors!
  br label %9770

9770:                                             ; preds = %9769
  br label %9771

9771:                                             ; preds = %9770, %9711
  br label %9772

9772:                                             ; preds = %9771
  br label %9773

9773:                                             ; preds = %9772
  br label %9774

9774:                                             ; preds = %9773
  %9775 = load i32, ptr @test_count, align 4, !tbaa !5
  %9776 = add nsw i32 %9775, 1
  store i32 %9776, ptr @test_count, align 4, !tbaa !5
  %9777 = load ptr, ptr %47, align 8, !tbaa !9
  %9778 = load i32, ptr %9777, align 8
  %9779 = lshr i32 %9778, 3
  %9780 = and i32 %9779, 1
  %9781 = icmp eq i32 %9780, 0
  br i1 %9781, label %9835, label %9782

9782:                                             ; preds = %9774
  br label %9783

9783:                                             ; preds = %9782
  br label %9784

9784:                                             ; preds = %9783
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #12
  %9785 = call ptr @__errno_location() #13
  %9786 = load i32, ptr %9785, align 4, !tbaa !5
  store i32 %9786, ptr %192, align 4, !tbaa !5
  %9787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9788 = call i32 @s2n_print_stacktrace(ptr noundef %9787)
  %9789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9790 = trunc i8 %9789 to i1
  br i1 %9790, label %9791, label %9813

9791:                                             ; preds = %9784
  %9792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9793 = call i32 @fileno(ptr noundef %9792) #12
  %9794 = call i32 @isatty(i32 noundef %9793) #12
  %9795 = icmp ne i32 %9794, 0
  br i1 %9795, label %9796, label %9813

9796:                                             ; preds = %9791
  %9797 = load i32, ptr %192, align 4, !tbaa !5
  %9798 = call ptr @__errno_location() #13
  store i32 %9797, ptr %9798, align 4, !tbaa !5
  %9799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9800 = load i32, ptr @test_count, align 4, !tbaa !5
  %9801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9802 = load i32, ptr %9801, align 4, !tbaa !5
  %9803 = call ptr @s2n_strerror(i32 noundef %9802, ptr noundef @.str.4)
  %9804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9805 = load i32, ptr %9804, align 4, !tbaa !5
  %9806 = call ptr @s2n_strerror_debug(i32 noundef %9805, ptr noundef @.str.4)
  %9807 = call ptr @__errno_location() #13
  %9808 = load i32, ptr %9807, align 4, !tbaa !5
  %9809 = call ptr @strerror(i32 noundef %9808) #12
  %9810 = call ptr @__errno_location() #13
  %9811 = load i32, ptr %9810, align 4, !tbaa !5
  %9812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9799, ptr noundef @.str.2, i32 noundef %9800, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 507, ptr noundef %9803, ptr noundef %9806, ptr noundef %9809, i32 noundef %9811) #12
  br label %9830

9813:                                             ; preds = %9791, %9784
  %9814 = load i32, ptr %192, align 4, !tbaa !5
  %9815 = call ptr @__errno_location() #13
  store i32 %9814, ptr %9815, align 4, !tbaa !5
  %9816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9817 = load i32, ptr @test_count, align 4, !tbaa !5
  %9818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9819 = load i32, ptr %9818, align 4, !tbaa !5
  %9820 = call ptr @s2n_strerror(i32 noundef %9819, ptr noundef @.str.4)
  %9821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9822 = load i32, ptr %9821, align 4, !tbaa !5
  %9823 = call ptr @s2n_strerror_debug(i32 noundef %9822, ptr noundef @.str.4)
  %9824 = call ptr @__errno_location() #13
  %9825 = load i32, ptr %9824, align 4, !tbaa !5
  %9826 = call ptr @strerror(i32 noundef %9825) #12
  %9827 = call ptr @__errno_location() #13
  %9828 = load i32, ptr %9827, align 4, !tbaa !5
  %9829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9816, ptr noundef @.str.5, i32 noundef %9817, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 507, ptr noundef %9820, ptr noundef %9823, ptr noundef %9826, i32 noundef %9828) #12
  br label %9830

9830:                                             ; preds = %9813, %9796
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #12
  br label %9831

9831:                                             ; preds = %9830
  br label %9832

9832:                                             ; preds = %9831
  call void @exit(i32 noundef 1) #14
  unreachable

9833:                                             ; No predecessors!
  br label %9834

9834:                                             ; preds = %9833
  br label %9835

9835:                                             ; preds = %9834, %9774
  br label %9836

9836:                                             ; preds = %9835
  br label %9837

9837:                                             ; preds = %9836
  br label %9838

9838:                                             ; preds = %9837
  %9839 = load i32, ptr @test_count, align 4, !tbaa !5
  %9840 = add nsw i32 %9839, 1
  store i32 %9840, ptr @test_count, align 4, !tbaa !5
  %9841 = load ptr, ptr %47, align 8, !tbaa !9
  %9842 = getelementptr inbounds %struct.s2n_connection, ptr %9841, i32 0, i32 27
  %9843 = load ptr, ptr %9842, align 8, !tbaa !48
  %9844 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %9843, i32 0, i32 0
  %9845 = load ptr, ptr %9844, align 8, !tbaa !49
  %9846 = load ptr, ptr %188, align 8, !tbaa !9
  %9847 = icmp eq ptr %9845, %9846
  br i1 %9847, label %9901, label %9848

9848:                                             ; preds = %9838
  br label %9849

9849:                                             ; preds = %9848
  br label %9850

9850:                                             ; preds = %9849
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #12
  %9851 = call ptr @__errno_location() #13
  %9852 = load i32, ptr %9851, align 4, !tbaa !5
  store i32 %9852, ptr %193, align 4, !tbaa !5
  %9853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9854 = call i32 @s2n_print_stacktrace(ptr noundef %9853)
  %9855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9856 = trunc i8 %9855 to i1
  br i1 %9856, label %9857, label %9879

9857:                                             ; preds = %9850
  %9858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9859 = call i32 @fileno(ptr noundef %9858) #12
  %9860 = call i32 @isatty(i32 noundef %9859) #12
  %9861 = icmp ne i32 %9860, 0
  br i1 %9861, label %9862, label %9879

9862:                                             ; preds = %9857
  %9863 = load i32, ptr %193, align 4, !tbaa !5
  %9864 = call ptr @__errno_location() #13
  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.4)
  %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.4)
  %9873 = call ptr @__errno_location() #13
  %9874 = load i32, ptr %9873, align 4, !tbaa !5
  %9875 = call ptr @strerror(i32 noundef %9874) #12
  %9876 = call ptr @__errno_location() #13
  %9877 = load i32, ptr %9876, align 4, !tbaa !5
  %9878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9865, ptr noundef @.str.2, i32 noundef %9866, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 508, ptr noundef %9869, ptr noundef %9872, ptr noundef %9875, i32 noundef %9877) #12
  br label %9896

9879:                                             ; preds = %9857, %9850
  %9880 = load i32, ptr %193, align 4, !tbaa !5
  %9881 = call ptr @__errno_location() #13
  store i32 %9880, ptr %9881, align 4, !tbaa !5
  %9882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9883 = load i32, ptr @test_count, align 4, !tbaa !5
  %9884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9885 = load i32, ptr %9884, align 4, !tbaa !5
  %9886 = call ptr @s2n_strerror(i32 noundef %9885, ptr noundef @.str.4)
  %9887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9888 = load i32, ptr %9887, align 4, !tbaa !5
  %9889 = call ptr @s2n_strerror_debug(i32 noundef %9888, ptr noundef @.str.4)
  %9890 = call ptr @__errno_location() #13
  %9891 = load i32, ptr %9890, align 4, !tbaa !5
  %9892 = call ptr @strerror(i32 noundef %9891) #12
  %9893 = call ptr @__errno_location() #13
  %9894 = load i32, ptr %9893, align 4, !tbaa !5
  %9895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9882, ptr noundef @.str.5, i32 noundef %9883, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 508, ptr noundef %9886, ptr noundef %9889, ptr noundef %9892, i32 noundef %9894) #12
  br label %9896

9896:                                             ; preds = %9879, %9862
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #12
  br label %9897

9897:                                             ; preds = %9896
  br label %9898

9898:                                             ; preds = %9897
  call void @exit(i32 noundef 1) #14
  unreachable

9899:                                             ; No predecessors!
  br label %9900

9900:                                             ; preds = %9899
  br label %9901

9901:                                             ; preds = %9900, %9838
  br label %9902

9902:                                             ; preds = %9901
  br label %9903

9903:                                             ; preds = %9902
  br label %9904

9904:                                             ; preds = %9903
  %9905 = load i32, ptr @test_count, align 4, !tbaa !5
  %9906 = add nsw i32 %9905, 1
  store i32 %9906, ptr @test_count, align 4, !tbaa !5
  %9907 = load ptr, ptr %47, align 8, !tbaa !9
  %9908 = call i32 @s2n_connection_wipe(ptr noundef %9907)
  %9909 = icmp eq i32 %9908, -1
  br i1 %9909, label %9910, label %9963

9910:                                             ; preds = %9904
  br label %9911

9911:                                             ; preds = %9910
  br label %9912

9912:                                             ; preds = %9911
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #12
  %9913 = call ptr @__errno_location() #13
  %9914 = load i32, ptr %9913, align 4, !tbaa !5
  store i32 %9914, ptr %194, align 4, !tbaa !5
  %9915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9916 = call i32 @s2n_print_stacktrace(ptr noundef %9915)
  %9917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9918 = trunc i8 %9917 to i1
  br i1 %9918, label %9919, label %9941

9919:                                             ; preds = %9912
  %9920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9921 = call i32 @fileno(ptr noundef %9920) #12
  %9922 = call i32 @isatty(i32 noundef %9921) #12
  %9923 = icmp ne i32 %9922, 0
  br i1 %9923, label %9924, label %9941

9924:                                             ; preds = %9919
  %9925 = load i32, ptr %194, align 4, !tbaa !5
  %9926 = call ptr @__errno_location() #13
  store i32 %9925, ptr %9926, align 4, !tbaa !5
  %9927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9928 = load i32, ptr @test_count, align 4, !tbaa !5
  %9929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9930 = load i32, ptr %9929, align 4, !tbaa !5
  %9931 = call ptr @s2n_strerror(i32 noundef %9930, ptr noundef @.str.4)
  %9932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9933 = load i32, ptr %9932, align 4, !tbaa !5
  %9934 = call ptr @s2n_strerror_debug(i32 noundef %9933, ptr noundef @.str.4)
  %9935 = call ptr @__errno_location() #13
  %9936 = load i32, ptr %9935, align 4, !tbaa !5
  %9937 = call ptr @strerror(i32 noundef %9936) #12
  %9938 = call ptr @__errno_location() #13
  %9939 = load i32, ptr %9938, align 4, !tbaa !5
  %9940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9927, ptr noundef @.str.2, i32 noundef %9928, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 509, ptr noundef %9931, ptr noundef %9934, ptr noundef %9937, i32 noundef %9939) #12
  br label %9958

9941:                                             ; preds = %9919, %9912
  %9942 = load i32, ptr %194, align 4, !tbaa !5
  %9943 = call ptr @__errno_location() #13
  store i32 %9942, ptr %9943, align 4, !tbaa !5
  %9944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9945 = load i32, ptr @test_count, align 4, !tbaa !5
  %9946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9947 = load i32, ptr %9946, align 4, !tbaa !5
  %9948 = call ptr @s2n_strerror(i32 noundef %9947, ptr noundef @.str.4)
  %9949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9950 = load i32, ptr %9949, align 4, !tbaa !5
  %9951 = call ptr @s2n_strerror_debug(i32 noundef %9950, ptr noundef @.str.4)
  %9952 = call ptr @__errno_location() #13
  %9953 = load i32, ptr %9952, align 4, !tbaa !5
  %9954 = call ptr @strerror(i32 noundef %9953) #12
  %9955 = call ptr @__errno_location() #13
  %9956 = load i32, ptr %9955, align 4, !tbaa !5
  %9957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9944, ptr noundef @.str.5, i32 noundef %9945, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 509, ptr noundef %9948, ptr noundef %9951, ptr noundef %9954, i32 noundef %9956) #12
  br label %9958

9958:                                             ; preds = %9941, %9924
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #12
  br label %9959

9959:                                             ; preds = %9958
  br label %9960

9960:                                             ; preds = %9959
  call void @exit(i32 noundef 1) #14
  unreachable

9961:                                             ; No predecessors!
  br label %9962

9962:                                             ; preds = %9961
  br label %9963

9963:                                             ; preds = %9962, %9904
  br label %9964

9964:                                             ; preds = %9963
  br label %9965

9965:                                             ; preds = %9964
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #12
  br label %9966

9966:                                             ; preds = %9965
  %9967 = load i32, ptr @test_count, align 4, !tbaa !5
  %9968 = add nsw i32 %9967, 1
  store i32 %9968, ptr @test_count, align 4, !tbaa !5
  %9969 = load ptr, ptr %48, align 8, !tbaa !9
  %9970 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef %9969, ptr noundef %54, i32 noundef 1)
  %9971 = icmp eq i32 %9970, -1
  br i1 %9971, label %9972, label %10025

9972:                                             ; preds = %9966
  br label %9973

9973:                                             ; preds = %9972
  br label %9974

9974:                                             ; preds = %9973
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #12
  %9975 = call ptr @__errno_location() #13
  %9976 = load i32, ptr %9975, align 4, !tbaa !5
  store i32 %9976, ptr %195, align 4, !tbaa !5
  %9977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9978 = call i32 @s2n_print_stacktrace(ptr noundef %9977)
  %9979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9980 = trunc i8 %9979 to i1
  br i1 %9980, label %9981, label %10003

9981:                                             ; preds = %9974
  %9982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9983 = call i32 @fileno(ptr noundef %9982) #12
  %9984 = call i32 @isatty(i32 noundef %9983) #12
  %9985 = icmp ne i32 %9984, 0
  br i1 %9985, label %9986, label %10003

9986:                                             ; preds = %9981
  %9987 = load i32, ptr %195, align 4, !tbaa !5
  %9988 = call ptr @__errno_location() #13
  store i32 %9987, ptr %9988, align 4, !tbaa !5
  %9989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9990 = load i32, ptr @test_count, align 4, !tbaa !5
  %9991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9992 = load i32, ptr %9991, align 4, !tbaa !5
  %9993 = call ptr @s2n_strerror(i32 noundef %9992, ptr noundef @.str.4)
  %9994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9995 = load i32, ptr %9994, align 4, !tbaa !5
  %9996 = call ptr @s2n_strerror_debug(i32 noundef %9995, ptr noundef @.str.4)
  %9997 = call ptr @__errno_location() #13
  %9998 = load i32, ptr %9997, align 4, !tbaa !5
  %9999 = call ptr @strerror(i32 noundef %9998) #12
  %10000 = call ptr @__errno_location() #13
  %10001 = load i32, ptr %10000, align 4, !tbaa !5
  %10002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9989, ptr noundef @.str.2, i32 noundef %9990, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 513, ptr noundef %9993, ptr noundef %9996, ptr noundef %9999, i32 noundef %10001) #12
  br label %10020

10003:                                            ; preds = %9981, %9974
  %10004 = load i32, ptr %195, align 4, !tbaa !5
  %10005 = call ptr @__errno_location() #13
  store i32 %10004, ptr %10005, align 4, !tbaa !5
  %10006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10007 = load i32, ptr @test_count, align 4, !tbaa !5
  %10008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10009 = load i32, ptr %10008, align 4, !tbaa !5
  %10010 = call ptr @s2n_strerror(i32 noundef %10009, ptr noundef @.str.4)
  %10011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10012 = load i32, ptr %10011, align 4, !tbaa !5
  %10013 = call ptr @s2n_strerror_debug(i32 noundef %10012, ptr noundef @.str.4)
  %10014 = call ptr @__errno_location() #13
  %10015 = load i32, ptr %10014, align 4, !tbaa !5
  %10016 = call ptr @strerror(i32 noundef %10015) #12
  %10017 = call ptr @__errno_location() #13
  %10018 = load i32, ptr %10017, align 4, !tbaa !5
  %10019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10006, ptr noundef @.str.5, i32 noundef %10007, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 513, ptr noundef %10010, ptr noundef %10013, ptr noundef %10016, i32 noundef %10018) #12
  br label %10020

10020:                                            ; preds = %10003, %9986
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #12
  br label %10021

10021:                                            ; preds = %10020
  br label %10022

10022:                                            ; preds = %10021
  call void @exit(i32 noundef 1) #14
  unreachable

10023:                                            ; No predecessors!
  br label %10024

10024:                                            ; preds = %10023
  br label %10025

10025:                                            ; preds = %10024, %9966
  br label %10026

10026:                                            ; preds = %10025
  br label %10027

10027:                                            ; preds = %10026
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #12
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256, ptr %196, align 8, !tbaa !9
  br label %10028

10028:                                            ; preds = %10027
  %10029 = load i32, ptr @test_count, align 4, !tbaa !5
  %10030 = add nsw i32 %10029, 1
  store i32 %10030, ptr @test_count, align 4, !tbaa !5
  %10031 = load ptr, ptr %47, align 8, !tbaa !9
  %10032 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %10031, ptr noundef @.str.53)
  %10033 = icmp eq i32 %10032, -1
  br i1 %10033, label %10034, label %10087

10034:                                            ; preds = %10028
  br label %10035

10035:                                            ; preds = %10034
  br label %10036

10036:                                            ; preds = %10035
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #12
  %10037 = call ptr @__errno_location() #13
  %10038 = load i32, ptr %10037, align 4, !tbaa !5
  store i32 %10038, ptr %197, align 4, !tbaa !5
  %10039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10040 = call i32 @s2n_print_stacktrace(ptr noundef %10039)
  %10041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10042 = trunc i8 %10041 to i1
  br i1 %10042, label %10043, label %10065

10043:                                            ; preds = %10036
  %10044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10045 = call i32 @fileno(ptr noundef %10044) #12
  %10046 = call i32 @isatty(i32 noundef %10045) #12
  %10047 = icmp ne i32 %10046, 0
  br i1 %10047, label %10048, label %10065

10048:                                            ; preds = %10043
  %10049 = load i32, ptr %197, align 4, !tbaa !5
  %10050 = call ptr @__errno_location() #13
  store i32 %10049, ptr %10050, align 4, !tbaa !5
  %10051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10052 = load i32, ptr @test_count, align 4, !tbaa !5
  %10053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10054 = load i32, ptr %10053, align 4, !tbaa !5
  %10055 = call ptr @s2n_strerror(i32 noundef %10054, ptr noundef @.str.4)
  %10056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10057 = load i32, ptr %10056, align 4, !tbaa !5
  %10058 = call ptr @s2n_strerror_debug(i32 noundef %10057, ptr noundef @.str.4)
  %10059 = call ptr @__errno_location() #13
  %10060 = load i32, ptr %10059, align 4, !tbaa !5
  %10061 = call ptr @strerror(i32 noundef %10060) #12
  %10062 = call ptr @__errno_location() #13
  %10063 = load i32, ptr %10062, align 4, !tbaa !5
  %10064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10051, ptr noundef @.str.2, i32 noundef %10052, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 519, ptr noundef %10055, ptr noundef %10058, ptr noundef %10061, i32 noundef %10063) #12
  br label %10082

10065:                                            ; preds = %10043, %10036
  %10066 = load i32, ptr %197, align 4, !tbaa !5
  %10067 = call ptr @__errno_location() #13
  store i32 %10066, ptr %10067, align 4, !tbaa !5
  %10068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10069 = load i32, ptr @test_count, align 4, !tbaa !5
  %10070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10071 = load i32, ptr %10070, align 4, !tbaa !5
  %10072 = call ptr @s2n_strerror(i32 noundef %10071, ptr noundef @.str.4)
  %10073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10074 = load i32, ptr %10073, align 4, !tbaa !5
  %10075 = call ptr @s2n_strerror_debug(i32 noundef %10074, ptr noundef @.str.4)
  %10076 = call ptr @__errno_location() #13
  %10077 = load i32, ptr %10076, align 4, !tbaa !5
  %10078 = call ptr @strerror(i32 noundef %10077) #12
  %10079 = call ptr @__errno_location() #13
  %10080 = load i32, ptr %10079, align 4, !tbaa !5
  %10081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10068, ptr noundef @.str.5, i32 noundef %10069, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 519, ptr noundef %10072, ptr noundef %10075, ptr noundef %10078, i32 noundef %10080) #12
  br label %10082

10082:                                            ; preds = %10065, %10048
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #12
  br label %10083

10083:                                            ; preds = %10082
  br label %10084

10084:                                            ; preds = %10083
  call void @exit(i32 noundef 1) #14
  unreachable

10085:                                            ; No predecessors!
  br label %10086

10086:                                            ; preds = %10085
  br label %10087

10087:                                            ; preds = %10086, %10028
  br label %10088

10088:                                            ; preds = %10087
  br label %10089

10089:                                            ; preds = %10088
  %10090 = load ptr, ptr %103, align 8, !tbaa !9
  %10091 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %10090, i32 0, i32 1
  %10092 = load ptr, ptr %10091, align 8, !tbaa !55
  %10093 = getelementptr inbounds ptr, ptr %10092, i64 0
  %10094 = load ptr, ptr %10093, align 8, !tbaa !9
  %10095 = load ptr, ptr %47, align 8, !tbaa !9
  %10096 = getelementptr inbounds %struct.s2n_connection, ptr %10095, i32 0, i32 31
  %10097 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10096, i32 0, i32 1
  %10098 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10097, i32 0, i32 0
  store ptr %10094, ptr %10098, align 8, !tbaa !57
  %10099 = load ptr, ptr %47, align 8, !tbaa !9
  %10100 = getelementptr inbounds %struct.s2n_connection, ptr %10099, i32 0, i32 22
  %10101 = load i8, ptr %10100, align 1, !tbaa !43
  %10102 = load ptr, ptr %47, align 8, !tbaa !9
  %10103 = getelementptr inbounds %struct.s2n_connection, ptr %10102, i32 0, i32 23
  store i8 %10101, ptr %10103, align 4, !tbaa !42
  br label %10104

10104:                                            ; preds = %10089
  %10105 = load i32, ptr @test_count, align 4, !tbaa !5
  %10106 = add nsw i32 %10105, 1
  store i32 %10106, ptr @test_count, align 4, !tbaa !5
  %10107 = load ptr, ptr %47, align 8, !tbaa !9
  %10108 = load ptr, ptr %48, align 8, !tbaa !9
  %10109 = call i32 @s2n_connection_set_config(ptr noundef %10107, ptr noundef %10108)
  %10110 = icmp eq i32 %10109, -1
  br i1 %10110, label %10111, label %10164

10111:                                            ; preds = %10104
  br label %10112

10112:                                            ; preds = %10111
  br label %10113

10113:                                            ; preds = %10112
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #12
  %10114 = call ptr @__errno_location() #13
  %10115 = load i32, ptr %10114, align 4, !tbaa !5
  store i32 %10115, ptr %198, align 4, !tbaa !5
  %10116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10117 = call i32 @s2n_print_stacktrace(ptr noundef %10116)
  %10118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10119 = trunc i8 %10118 to i1
  br i1 %10119, label %10120, label %10142

10120:                                            ; preds = %10113
  %10121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10122 = call i32 @fileno(ptr noundef %10121) #12
  %10123 = call i32 @isatty(i32 noundef %10122) #12
  %10124 = icmp ne i32 %10123, 0
  br i1 %10124, label %10125, label %10142

10125:                                            ; preds = %10120
  %10126 = load i32, ptr %198, align 4, !tbaa !5
  %10127 = call ptr @__errno_location() #13
  store i32 %10126, ptr %10127, align 4, !tbaa !5
  %10128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10129 = load i32, ptr @test_count, align 4, !tbaa !5
  %10130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10131 = load i32, ptr %10130, align 4, !tbaa !5
  %10132 = call ptr @s2n_strerror(i32 noundef %10131, ptr noundef @.str.4)
  %10133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10134 = load i32, ptr %10133, align 4, !tbaa !5
  %10135 = call ptr @s2n_strerror_debug(i32 noundef %10134, ptr noundef @.str.4)
  %10136 = call ptr @__errno_location() #13
  %10137 = load i32, ptr %10136, align 4, !tbaa !5
  %10138 = call ptr @strerror(i32 noundef %10137) #12
  %10139 = call ptr @__errno_location() #13
  %10140 = load i32, ptr %10139, align 4, !tbaa !5
  %10141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10128, ptr noundef @.str.2, i32 noundef %10129, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 522, ptr noundef %10132, ptr noundef %10135, ptr noundef %10138, i32 noundef %10140) #12
  br label %10159

10142:                                            ; preds = %10120, %10113
  %10143 = load i32, ptr %198, align 4, !tbaa !5
  %10144 = call ptr @__errno_location() #13
  store i32 %10143, ptr %10144, align 4, !tbaa !5
  %10145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10146 = load i32, ptr @test_count, align 4, !tbaa !5
  %10147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10148 = load i32, ptr %10147, align 4, !tbaa !5
  %10149 = call ptr @s2n_strerror(i32 noundef %10148, ptr noundef @.str.4)
  %10150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10151 = load i32, ptr %10150, align 4, !tbaa !5
  %10152 = call ptr @s2n_strerror_debug(i32 noundef %10151, ptr noundef @.str.4)
  %10153 = call ptr @__errno_location() #13
  %10154 = load i32, ptr %10153, align 4, !tbaa !5
  %10155 = call ptr @strerror(i32 noundef %10154) #12
  %10156 = call ptr @__errno_location() #13
  %10157 = load i32, ptr %10156, align 4, !tbaa !5
  %10158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10145, ptr noundef @.str.5, i32 noundef %10146, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 522, ptr noundef %10149, ptr noundef %10152, ptr noundef %10155, i32 noundef %10157) #12
  br label %10159

10159:                                            ; preds = %10142, %10125
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #12
  br label %10160

10160:                                            ; preds = %10159
  br label %10161

10161:                                            ; preds = %10160
  call void @exit(i32 noundef 1) #14
  unreachable

10162:                                            ; No predecessors!
  br label %10163

10163:                                            ; preds = %10162
  br label %10164

10164:                                            ; preds = %10163, %10104
  br label %10165

10165:                                            ; preds = %10164
  br label %10166

10166:                                            ; preds = %10165
  br label %10167

10167:                                            ; preds = %10166
  %10168 = load i32, ptr @test_count, align 4, !tbaa !5
  %10169 = add nsw i32 %10168, 1
  store i32 %10169, ptr @test_count, align 4, !tbaa !5
  %10170 = load ptr, ptr %47, align 8, !tbaa !9
  %10171 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %10172 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %10170, ptr noundef %10171, i16 noundef zeroext 2)
  %10173 = icmp eq i32 %10172, -1
  br i1 %10173, label %10174, label %10227

10174:                                            ; preds = %10167
  br label %10175

10175:                                            ; preds = %10174
  br label %10176

10176:                                            ; preds = %10175
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #12
  %10177 = call ptr @__errno_location() #13
  %10178 = load i32, ptr %10177, align 4, !tbaa !5
  store i32 %10178, ptr %199, align 4, !tbaa !5
  %10179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10180 = call i32 @s2n_print_stacktrace(ptr noundef %10179)
  %10181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10182 = trunc i8 %10181 to i1
  br i1 %10182, label %10183, label %10205

10183:                                            ; preds = %10176
  %10184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10185 = call i32 @fileno(ptr noundef %10184) #12
  %10186 = call i32 @isatty(i32 noundef %10185) #12
  %10187 = icmp ne i32 %10186, 0
  br i1 %10187, label %10188, label %10205

10188:                                            ; preds = %10183
  %10189 = load i32, ptr %199, align 4, !tbaa !5
  %10190 = call ptr @__errno_location() #13
  store i32 %10189, ptr %10190, align 4, !tbaa !5
  %10191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10192 = load i32, ptr @test_count, align 4, !tbaa !5
  %10193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10194 = load i32, ptr %10193, align 4, !tbaa !5
  %10195 = call ptr @s2n_strerror(i32 noundef %10194, ptr noundef @.str.4)
  %10196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10197 = load i32, ptr %10196, align 4, !tbaa !5
  %10198 = call ptr @s2n_strerror_debug(i32 noundef %10197, ptr noundef @.str.4)
  %10199 = call ptr @__errno_location() #13
  %10200 = load i32, ptr %10199, align 4, !tbaa !5
  %10201 = call ptr @strerror(i32 noundef %10200) #12
  %10202 = call ptr @__errno_location() #13
  %10203 = load i32, ptr %10202, align 4, !tbaa !5
  %10204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10191, ptr noundef @.str.2, i32 noundef %10192, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 523, ptr noundef %10195, ptr noundef %10198, ptr noundef %10201, i32 noundef %10203) #12
  br label %10222

10205:                                            ; preds = %10183, %10176
  %10206 = load i32, ptr %199, align 4, !tbaa !5
  %10207 = call ptr @__errno_location() #13
  store i32 %10206, ptr %10207, align 4, !tbaa !5
  %10208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10209 = load i32, ptr @test_count, align 4, !tbaa !5
  %10210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10211 = load i32, ptr %10210, align 4, !tbaa !5
  %10212 = call ptr @s2n_strerror(i32 noundef %10211, ptr noundef @.str.4)
  %10213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10214 = load i32, ptr %10213, align 4, !tbaa !5
  %10215 = call ptr @s2n_strerror_debug(i32 noundef %10214, ptr noundef @.str.4)
  %10216 = call ptr @__errno_location() #13
  %10217 = load i32, ptr %10216, align 4, !tbaa !5
  %10218 = call ptr @strerror(i32 noundef %10217) #12
  %10219 = call ptr @__errno_location() #13
  %10220 = load i32, ptr %10219, align 4, !tbaa !5
  %10221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10208, ptr noundef @.str.5, i32 noundef %10209, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 523, ptr noundef %10212, ptr noundef %10215, ptr noundef %10218, i32 noundef %10220) #12
  br label %10222

10222:                                            ; preds = %10205, %10188
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #12
  br label %10223

10223:                                            ; preds = %10222
  br label %10224

10224:                                            ; preds = %10223
  call void @exit(i32 noundef 1) #14
  unreachable

10225:                                            ; No predecessors!
  br label %10226

10226:                                            ; preds = %10225
  br label %10227

10227:                                            ; preds = %10226, %10167
  br label %10228

10228:                                            ; preds = %10227
  br label %10229

10229:                                            ; preds = %10228
  br label %10230

10230:                                            ; preds = %10229
  %10231 = load i32, ptr @test_count, align 4, !tbaa !5
  %10232 = add nsw i32 %10231, 1
  store i32 %10232, ptr @test_count, align 4, !tbaa !5
  %10233 = load ptr, ptr %47, align 8, !tbaa !9
  %10234 = load i32, ptr %10233, align 8
  %10235 = lshr i32 %10234, 3
  %10236 = and i32 %10235, 1
  %10237 = icmp eq i32 %10236, 0
  br i1 %10237, label %10291, label %10238

10238:                                            ; preds = %10230
  br label %10239

10239:                                            ; preds = %10238
  br label %10240

10240:                                            ; preds = %10239
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #12
  %10241 = call ptr @__errno_location() #13
  %10242 = load i32, ptr %10241, align 4, !tbaa !5
  store i32 %10242, ptr %200, align 4, !tbaa !5
  %10243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10244 = call i32 @s2n_print_stacktrace(ptr noundef %10243)
  %10245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10246 = trunc i8 %10245 to i1
  br i1 %10246, label %10247, label %10269

10247:                                            ; preds = %10240
  %10248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10249 = call i32 @fileno(ptr noundef %10248) #12
  %10250 = call i32 @isatty(i32 noundef %10249) #12
  %10251 = icmp ne i32 %10250, 0
  br i1 %10251, label %10252, label %10269

10252:                                            ; preds = %10247
  %10253 = load i32, ptr %200, align 4, !tbaa !5
  %10254 = call ptr @__errno_location() #13
  store i32 %10253, ptr %10254, align 4, !tbaa !5
  %10255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10256 = load i32, ptr @test_count, align 4, !tbaa !5
  %10257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10258 = load i32, ptr %10257, align 4, !tbaa !5
  %10259 = call ptr @s2n_strerror(i32 noundef %10258, ptr noundef @.str.4)
  %10260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10261 = load i32, ptr %10260, align 4, !tbaa !5
  %10262 = call ptr @s2n_strerror_debug(i32 noundef %10261, ptr noundef @.str.4)
  %10263 = call ptr @__errno_location() #13
  %10264 = load i32, ptr %10263, align 4, !tbaa !5
  %10265 = call ptr @strerror(i32 noundef %10264) #12
  %10266 = call ptr @__errno_location() #13
  %10267 = load i32, ptr %10266, align 4, !tbaa !5
  %10268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10255, ptr noundef @.str.2, i32 noundef %10256, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 524, ptr noundef %10259, ptr noundef %10262, ptr noundef %10265, i32 noundef %10267) #12
  br label %10286

10269:                                            ; preds = %10247, %10240
  %10270 = load i32, ptr %200, align 4, !tbaa !5
  %10271 = call ptr @__errno_location() #13
  store i32 %10270, ptr %10271, align 4, !tbaa !5
  %10272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10273 = load i32, ptr @test_count, align 4, !tbaa !5
  %10274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10275 = load i32, ptr %10274, align 4, !tbaa !5
  %10276 = call ptr @s2n_strerror(i32 noundef %10275, ptr noundef @.str.4)
  %10277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10278 = load i32, ptr %10277, align 4, !tbaa !5
  %10279 = call ptr @s2n_strerror_debug(i32 noundef %10278, ptr noundef @.str.4)
  %10280 = call ptr @__errno_location() #13
  %10281 = load i32, ptr %10280, align 4, !tbaa !5
  %10282 = call ptr @strerror(i32 noundef %10281) #12
  %10283 = call ptr @__errno_location() #13
  %10284 = load i32, ptr %10283, align 4, !tbaa !5
  %10285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10272, ptr noundef @.str.5, i32 noundef %10273, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 524, ptr noundef %10276, ptr noundef %10279, ptr noundef %10282, i32 noundef %10284) #12
  br label %10286

10286:                                            ; preds = %10269, %10252
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #12
  br label %10287

10287:                                            ; preds = %10286
  br label %10288

10288:                                            ; preds = %10287
  call void @exit(i32 noundef 1) #14
  unreachable

10289:                                            ; No predecessors!
  br label %10290

10290:                                            ; preds = %10289
  br label %10291

10291:                                            ; preds = %10290, %10230
  br label %10292

10292:                                            ; preds = %10291
  br label %10293

10293:                                            ; preds = %10292
  br label %10294

10294:                                            ; preds = %10293
  %10295 = load i32, ptr @test_count, align 4, !tbaa !5
  %10296 = add nsw i32 %10295, 1
  store i32 %10296, ptr @test_count, align 4, !tbaa !5
  %10297 = load ptr, ptr %47, align 8, !tbaa !9
  %10298 = getelementptr inbounds %struct.s2n_connection, ptr %10297, i32 0, i32 27
  %10299 = load ptr, ptr %10298, align 8, !tbaa !48
  %10300 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10299, i32 0, i32 0
  %10301 = load ptr, ptr %10300, align 8, !tbaa !49
  %10302 = load ptr, ptr %196, align 8, !tbaa !9
  %10303 = icmp eq ptr %10301, %10302
  br i1 %10303, label %10357, label %10304

10304:                                            ; preds = %10294
  br label %10305

10305:                                            ; preds = %10304
  br label %10306

10306:                                            ; preds = %10305
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #12
  %10307 = call ptr @__errno_location() #13
  %10308 = load i32, ptr %10307, align 4, !tbaa !5
  store i32 %10308, ptr %201, align 4, !tbaa !5
  %10309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10310 = call i32 @s2n_print_stacktrace(ptr noundef %10309)
  %10311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10312 = trunc i8 %10311 to i1
  br i1 %10312, label %10313, label %10335

10313:                                            ; preds = %10306
  %10314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10315 = call i32 @fileno(ptr noundef %10314) #12
  %10316 = call i32 @isatty(i32 noundef %10315) #12
  %10317 = icmp ne i32 %10316, 0
  br i1 %10317, label %10318, label %10335

10318:                                            ; preds = %10313
  %10319 = load i32, ptr %201, align 4, !tbaa !5
  %10320 = call ptr @__errno_location() #13
  store i32 %10319, ptr %10320, align 4, !tbaa !5
  %10321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10322 = load i32, ptr @test_count, align 4, !tbaa !5
  %10323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10324 = load i32, ptr %10323, align 4, !tbaa !5
  %10325 = call ptr @s2n_strerror(i32 noundef %10324, ptr noundef @.str.4)
  %10326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10327 = load i32, ptr %10326, align 4, !tbaa !5
  %10328 = call ptr @s2n_strerror_debug(i32 noundef %10327, ptr noundef @.str.4)
  %10329 = call ptr @__errno_location() #13
  %10330 = load i32, ptr %10329, align 4, !tbaa !5
  %10331 = call ptr @strerror(i32 noundef %10330) #12
  %10332 = call ptr @__errno_location() #13
  %10333 = load i32, ptr %10332, align 4, !tbaa !5
  %10334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10321, ptr noundef @.str.2, i32 noundef %10322, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 525, ptr noundef %10325, ptr noundef %10328, ptr noundef %10331, i32 noundef %10333) #12
  br label %10352

10335:                                            ; preds = %10313, %10306
  %10336 = load i32, ptr %201, align 4, !tbaa !5
  %10337 = call ptr @__errno_location() #13
  store i32 %10336, ptr %10337, align 4, !tbaa !5
  %10338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10339 = load i32, ptr @test_count, align 4, !tbaa !5
  %10340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10341 = load i32, ptr %10340, align 4, !tbaa !5
  %10342 = call ptr @s2n_strerror(i32 noundef %10341, ptr noundef @.str.4)
  %10343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10344 = load i32, ptr %10343, align 4, !tbaa !5
  %10345 = call ptr @s2n_strerror_debug(i32 noundef %10344, ptr noundef @.str.4)
  %10346 = call ptr @__errno_location() #13
  %10347 = load i32, ptr %10346, align 4, !tbaa !5
  %10348 = call ptr @strerror(i32 noundef %10347) #12
  %10349 = call ptr @__errno_location() #13
  %10350 = load i32, ptr %10349, align 4, !tbaa !5
  %10351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10338, ptr noundef @.str.5, i32 noundef %10339, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 525, ptr noundef %10342, ptr noundef %10345, ptr noundef %10348, i32 noundef %10350) #12
  br label %10352

10352:                                            ; preds = %10335, %10318
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #12
  br label %10353

10353:                                            ; preds = %10352
  br label %10354

10354:                                            ; preds = %10353
  call void @exit(i32 noundef 1) #14
  unreachable

10355:                                            ; No predecessors!
  br label %10356

10356:                                            ; preds = %10355
  br label %10357

10357:                                            ; preds = %10356, %10294
  br label %10358

10358:                                            ; preds = %10357
  br label %10359

10359:                                            ; preds = %10358
  br label %10360

10360:                                            ; preds = %10359
  %10361 = load i32, ptr @test_count, align 4, !tbaa !5
  %10362 = add nsw i32 %10361, 1
  store i32 %10362, ptr @test_count, align 4, !tbaa !5
  %10363 = load ptr, ptr %47, align 8, !tbaa !9
  %10364 = call i32 @s2n_connection_wipe(ptr noundef %10363)
  %10365 = icmp eq i32 %10364, -1
  br i1 %10365, label %10366, label %10419

10366:                                            ; preds = %10360
  br label %10367

10367:                                            ; preds = %10366
  br label %10368

10368:                                            ; preds = %10367
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #12
  %10369 = call ptr @__errno_location() #13
  %10370 = load i32, ptr %10369, align 4, !tbaa !5
  store i32 %10370, ptr %202, align 4, !tbaa !5
  %10371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10372 = call i32 @s2n_print_stacktrace(ptr noundef %10371)
  %10373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10374 = trunc i8 %10373 to i1
  br i1 %10374, label %10375, label %10397

10375:                                            ; preds = %10368
  %10376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10377 = call i32 @fileno(ptr noundef %10376) #12
  %10378 = call i32 @isatty(i32 noundef %10377) #12
  %10379 = icmp ne i32 %10378, 0
  br i1 %10379, label %10380, label %10397

10380:                                            ; preds = %10375
  %10381 = load i32, ptr %202, align 4, !tbaa !5
  %10382 = call ptr @__errno_location() #13
  store i32 %10381, ptr %10382, align 4, !tbaa !5
  %10383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10384 = load i32, ptr @test_count, align 4, !tbaa !5
  %10385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10386 = load i32, ptr %10385, align 4, !tbaa !5
  %10387 = call ptr @s2n_strerror(i32 noundef %10386, ptr noundef @.str.4)
  %10388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10389 = load i32, ptr %10388, align 4, !tbaa !5
  %10390 = call ptr @s2n_strerror_debug(i32 noundef %10389, ptr noundef @.str.4)
  %10391 = call ptr @__errno_location() #13
  %10392 = load i32, ptr %10391, align 4, !tbaa !5
  %10393 = call ptr @strerror(i32 noundef %10392) #12
  %10394 = call ptr @__errno_location() #13
  %10395 = load i32, ptr %10394, align 4, !tbaa !5
  %10396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10383, ptr noundef @.str.2, i32 noundef %10384, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 526, ptr noundef %10387, ptr noundef %10390, ptr noundef %10393, i32 noundef %10395) #12
  br label %10414

10397:                                            ; preds = %10375, %10368
  %10398 = load i32, ptr %202, align 4, !tbaa !5
  %10399 = call ptr @__errno_location() #13
  store i32 %10398, ptr %10399, align 4, !tbaa !5
  %10400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10401 = load i32, ptr @test_count, align 4, !tbaa !5
  %10402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10403 = load i32, ptr %10402, align 4, !tbaa !5
  %10404 = call ptr @s2n_strerror(i32 noundef %10403, ptr noundef @.str.4)
  %10405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10406 = load i32, ptr %10405, align 4, !tbaa !5
  %10407 = call ptr @s2n_strerror_debug(i32 noundef %10406, ptr noundef @.str.4)
  %10408 = call ptr @__errno_location() #13
  %10409 = load i32, ptr %10408, align 4, !tbaa !5
  %10410 = call ptr @strerror(i32 noundef %10409) #12
  %10411 = call ptr @__errno_location() #13
  %10412 = load i32, ptr %10411, align 4, !tbaa !5
  %10413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10400, ptr noundef @.str.5, i32 noundef %10401, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 526, ptr noundef %10404, ptr noundef %10407, ptr noundef %10410, i32 noundef %10412) #12
  br label %10414

10414:                                            ; preds = %10397, %10380
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #12
  br label %10415

10415:                                            ; preds = %10414
  br label %10416

10416:                                            ; preds = %10415
  call void @exit(i32 noundef 1) #14
  unreachable

10417:                                            ; No predecessors!
  br label %10418

10418:                                            ; preds = %10417
  br label %10419

10419:                                            ; preds = %10418, %10360
  br label %10420

10420:                                            ; preds = %10419
  br label %10421

10421:                                            ; preds = %10420
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %203) #12
  %10422 = load ptr, ptr %53, align 8, !tbaa !9
  store ptr %10422, ptr %203, align 8, !tbaa !9
  %10423 = getelementptr inbounds ptr, ptr %203, i64 1
  %10424 = load ptr, ptr %54, align 8, !tbaa !9
  store ptr %10424, ptr %10423, align 8, !tbaa !9
  br label %10425

10425:                                            ; preds = %10421
  %10426 = load i32, ptr @test_count, align 4, !tbaa !5
  %10427 = add nsw i32 %10426, 1
  store i32 %10427, ptr @test_count, align 4, !tbaa !5
  %10428 = load ptr, ptr %48, align 8, !tbaa !9
  %10429 = getelementptr inbounds [2 x ptr], ptr %203, i64 0, i64 0
  %10430 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef %10428, ptr noundef %10429, i32 noundef 2)
  %10431 = icmp eq i32 %10430, -1
  br i1 %10431, label %10432, label %10485

10432:                                            ; preds = %10425
  br label %10433

10433:                                            ; preds = %10432
  br label %10434

10434:                                            ; preds = %10433
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #12
  %10435 = call ptr @__errno_location() #13
  %10436 = load i32, ptr %10435, align 4, !tbaa !5
  store i32 %10436, ptr %204, align 4, !tbaa !5
  %10437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10438 = call i32 @s2n_print_stacktrace(ptr noundef %10437)
  %10439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10440 = trunc i8 %10439 to i1
  br i1 %10440, label %10441, label %10463

10441:                                            ; preds = %10434
  %10442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10443 = call i32 @fileno(ptr noundef %10442) #12
  %10444 = call i32 @isatty(i32 noundef %10443) #12
  %10445 = icmp ne i32 %10444, 0
  br i1 %10445, label %10446, label %10463

10446:                                            ; preds = %10441
  %10447 = load i32, ptr %204, align 4, !tbaa !5
  %10448 = call ptr @__errno_location() #13
  store i32 %10447, ptr %10448, align 4, !tbaa !5
  %10449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10450 = load i32, ptr @test_count, align 4, !tbaa !5
  %10451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10452 = load i32, ptr %10451, align 4, !tbaa !5
  %10453 = call ptr @s2n_strerror(i32 noundef %10452, ptr noundef @.str.4)
  %10454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10455 = load i32, ptr %10454, align 4, !tbaa !5
  %10456 = call ptr @s2n_strerror_debug(i32 noundef %10455, ptr noundef @.str.4)
  %10457 = call ptr @__errno_location() #13
  %10458 = load i32, ptr %10457, align 4, !tbaa !5
  %10459 = call ptr @strerror(i32 noundef %10458) #12
  %10460 = call ptr @__errno_location() #13
  %10461 = load i32, ptr %10460, align 4, !tbaa !5
  %10462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10449, ptr noundef @.str.2, i32 noundef %10450, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 531, ptr noundef %10453, ptr noundef %10456, ptr noundef %10459, i32 noundef %10461) #12
  br label %10480

10463:                                            ; preds = %10441, %10434
  %10464 = load i32, ptr %204, align 4, !tbaa !5
  %10465 = call ptr @__errno_location() #13
  store i32 %10464, ptr %10465, align 4, !tbaa !5
  %10466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10467 = load i32, ptr @test_count, align 4, !tbaa !5
  %10468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10469 = load i32, ptr %10468, align 4, !tbaa !5
  %10470 = call ptr @s2n_strerror(i32 noundef %10469, ptr noundef @.str.4)
  %10471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10472 = load i32, ptr %10471, align 4, !tbaa !5
  %10473 = call ptr @s2n_strerror_debug(i32 noundef %10472, ptr noundef @.str.4)
  %10474 = call ptr @__errno_location() #13
  %10475 = load i32, ptr %10474, align 4, !tbaa !5
  %10476 = call ptr @strerror(i32 noundef %10475) #12
  %10477 = call ptr @__errno_location() #13
  %10478 = load i32, ptr %10477, align 4, !tbaa !5
  %10479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10466, ptr noundef @.str.5, i32 noundef %10467, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 531, ptr noundef %10470, ptr noundef %10473, ptr noundef %10476, i32 noundef %10478) #12
  br label %10480

10480:                                            ; preds = %10463, %10446
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #12
  br label %10481

10481:                                            ; preds = %10480
  br label %10482

10482:                                            ; preds = %10481
  call void @exit(i32 noundef 1) #14
  unreachable

10483:                                            ; No predecessors!
  br label %10484

10484:                                            ; preds = %10483
  br label %10485

10485:                                            ; preds = %10484, %10425
  br label %10486

10486:                                            ; preds = %10485
  br label %10487

10487:                                            ; preds = %10486
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #12
  store ptr @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256, ptr %205, align 8, !tbaa !9
  br label %10488

10488:                                            ; preds = %10487
  %10489 = load i32, ptr @test_count, align 4, !tbaa !5
  %10490 = add nsw i32 %10489, 1
  store i32 %10490, ptr @test_count, align 4, !tbaa !5
  %10491 = load ptr, ptr %47, align 8, !tbaa !9
  %10492 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %10491, ptr noundef @.str.72)
  %10493 = icmp eq i32 %10492, -1
  br i1 %10493, label %10494, label %10547

10494:                                            ; preds = %10488
  br label %10495

10495:                                            ; preds = %10494
  br label %10496

10496:                                            ; preds = %10495
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #12
  %10497 = call ptr @__errno_location() #13
  %10498 = load i32, ptr %10497, align 4, !tbaa !5
  store i32 %10498, ptr %206, align 4, !tbaa !5
  %10499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10500 = call i32 @s2n_print_stacktrace(ptr noundef %10499)
  %10501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10502 = trunc i8 %10501 to i1
  br i1 %10502, label %10503, label %10525

10503:                                            ; preds = %10496
  %10504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10505 = call i32 @fileno(ptr noundef %10504) #12
  %10506 = call i32 @isatty(i32 noundef %10505) #12
  %10507 = icmp ne i32 %10506, 0
  br i1 %10507, label %10508, label %10525

10508:                                            ; preds = %10503
  %10509 = load i32, ptr %206, align 4, !tbaa !5
  %10510 = call ptr @__errno_location() #13
  store i32 %10509, ptr %10510, align 4, !tbaa !5
  %10511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10512 = load i32, ptr @test_count, align 4, !tbaa !5
  %10513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10514 = load i32, ptr %10513, align 4, !tbaa !5
  %10515 = call ptr @s2n_strerror(i32 noundef %10514, ptr noundef @.str.4)
  %10516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10517 = load i32, ptr %10516, align 4, !tbaa !5
  %10518 = call ptr @s2n_strerror_debug(i32 noundef %10517, ptr noundef @.str.4)
  %10519 = call ptr @__errno_location() #13
  %10520 = load i32, ptr %10519, align 4, !tbaa !5
  %10521 = call ptr @strerror(i32 noundef %10520) #12
  %10522 = call ptr @__errno_location() #13
  %10523 = load i32, ptr %10522, align 4, !tbaa !5
  %10524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10511, ptr noundef @.str.2, i32 noundef %10512, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 536, ptr noundef %10515, ptr noundef %10518, ptr noundef %10521, i32 noundef %10523) #12
  br label %10542

10525:                                            ; preds = %10503, %10496
  %10526 = load i32, ptr %206, align 4, !tbaa !5
  %10527 = call ptr @__errno_location() #13
  store i32 %10526, ptr %10527, align 4, !tbaa !5
  %10528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10529 = load i32, ptr @test_count, align 4, !tbaa !5
  %10530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10531 = load i32, ptr %10530, align 4, !tbaa !5
  %10532 = call ptr @s2n_strerror(i32 noundef %10531, ptr noundef @.str.4)
  %10533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10534 = load i32, ptr %10533, align 4, !tbaa !5
  %10535 = call ptr @s2n_strerror_debug(i32 noundef %10534, ptr noundef @.str.4)
  %10536 = call ptr @__errno_location() #13
  %10537 = load i32, ptr %10536, align 4, !tbaa !5
  %10538 = call ptr @strerror(i32 noundef %10537) #12
  %10539 = call ptr @__errno_location() #13
  %10540 = load i32, ptr %10539, align 4, !tbaa !5
  %10541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10528, ptr noundef @.str.5, i32 noundef %10529, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 536, ptr noundef %10532, ptr noundef %10535, ptr noundef %10538, i32 noundef %10540) #12
  br label %10542

10542:                                            ; preds = %10525, %10508
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #12
  br label %10543

10543:                                            ; preds = %10542
  br label %10544

10544:                                            ; preds = %10543
  call void @exit(i32 noundef 1) #14
  unreachable

10545:                                            ; No predecessors!
  br label %10546

10546:                                            ; preds = %10545
  br label %10547

10547:                                            ; preds = %10546, %10488
  br label %10548

10548:                                            ; preds = %10547
  br label %10549

10549:                                            ; preds = %10548
  %10550 = load ptr, ptr %103, align 8, !tbaa !9
  %10551 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %10550, i32 0, i32 1
  %10552 = load ptr, ptr %10551, align 8, !tbaa !55
  %10553 = getelementptr inbounds ptr, ptr %10552, i64 0
  %10554 = load ptr, ptr %10553, align 8, !tbaa !9
  %10555 = load ptr, ptr %47, align 8, !tbaa !9
  %10556 = getelementptr inbounds %struct.s2n_connection, ptr %10555, i32 0, i32 31
  %10557 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10556, i32 0, i32 1
  %10558 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10557, i32 0, i32 0
  store ptr %10554, ptr %10558, align 8, !tbaa !57
  %10559 = load ptr, ptr %47, align 8, !tbaa !9
  %10560 = getelementptr inbounds %struct.s2n_connection, ptr %10559, i32 0, i32 22
  %10561 = load i8, ptr %10560, align 1, !tbaa !43
  %10562 = load ptr, ptr %47, align 8, !tbaa !9
  %10563 = getelementptr inbounds %struct.s2n_connection, ptr %10562, i32 0, i32 23
  store i8 %10561, ptr %10563, align 4, !tbaa !42
  br label %10564

10564:                                            ; preds = %10549
  %10565 = load i32, ptr @test_count, align 4, !tbaa !5
  %10566 = add nsw i32 %10565, 1
  store i32 %10566, ptr @test_count, align 4, !tbaa !5
  %10567 = load ptr, ptr %47, align 8, !tbaa !9
  %10568 = load ptr, ptr %48, align 8, !tbaa !9
  %10569 = call i32 @s2n_connection_set_config(ptr noundef %10567, ptr noundef %10568)
  %10570 = icmp eq i32 %10569, -1
  br i1 %10570, label %10571, label %10624

10571:                                            ; preds = %10564
  br label %10572

10572:                                            ; preds = %10571
  br label %10573

10573:                                            ; preds = %10572
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #12
  %10574 = call ptr @__errno_location() #13
  %10575 = load i32, ptr %10574, align 4, !tbaa !5
  store i32 %10575, ptr %207, align 4, !tbaa !5
  %10576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10577 = call i32 @s2n_print_stacktrace(ptr noundef %10576)
  %10578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10579 = trunc i8 %10578 to i1
  br i1 %10579, label %10580, label %10602

10580:                                            ; preds = %10573
  %10581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10582 = call i32 @fileno(ptr noundef %10581) #12
  %10583 = call i32 @isatty(i32 noundef %10582) #12
  %10584 = icmp ne i32 %10583, 0
  br i1 %10584, label %10585, label %10602

10585:                                            ; preds = %10580
  %10586 = load i32, ptr %207, align 4, !tbaa !5
  %10587 = call ptr @__errno_location() #13
  store i32 %10586, ptr %10587, align 4, !tbaa !5
  %10588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10589 = load i32, ptr @test_count, align 4, !tbaa !5
  %10590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10591 = load i32, ptr %10590, align 4, !tbaa !5
  %10592 = call ptr @s2n_strerror(i32 noundef %10591, ptr noundef @.str.4)
  %10593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10594 = load i32, ptr %10593, align 4, !tbaa !5
  %10595 = call ptr @s2n_strerror_debug(i32 noundef %10594, ptr noundef @.str.4)
  %10596 = call ptr @__errno_location() #13
  %10597 = load i32, ptr %10596, align 4, !tbaa !5
  %10598 = call ptr @strerror(i32 noundef %10597) #12
  %10599 = call ptr @__errno_location() #13
  %10600 = load i32, ptr %10599, align 4, !tbaa !5
  %10601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10588, ptr noundef @.str.2, i32 noundef %10589, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 539, ptr noundef %10592, ptr noundef %10595, ptr noundef %10598, i32 noundef %10600) #12
  br label %10619

10602:                                            ; preds = %10580, %10573
  %10603 = load i32, ptr %207, align 4, !tbaa !5
  %10604 = call ptr @__errno_location() #13
  store i32 %10603, ptr %10604, align 4, !tbaa !5
  %10605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10606 = load i32, ptr @test_count, align 4, !tbaa !5
  %10607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10608 = load i32, ptr %10607, align 4, !tbaa !5
  %10609 = call ptr @s2n_strerror(i32 noundef %10608, ptr noundef @.str.4)
  %10610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10611 = load i32, ptr %10610, align 4, !tbaa !5
  %10612 = call ptr @s2n_strerror_debug(i32 noundef %10611, ptr noundef @.str.4)
  %10613 = call ptr @__errno_location() #13
  %10614 = load i32, ptr %10613, align 4, !tbaa !5
  %10615 = call ptr @strerror(i32 noundef %10614) #12
  %10616 = call ptr @__errno_location() #13
  %10617 = load i32, ptr %10616, align 4, !tbaa !5
  %10618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10605, ptr noundef @.str.5, i32 noundef %10606, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 539, ptr noundef %10609, ptr noundef %10612, ptr noundef %10615, i32 noundef %10617) #12
  br label %10619

10619:                                            ; preds = %10602, %10585
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #12
  br label %10620

10620:                                            ; preds = %10619
  br label %10621

10621:                                            ; preds = %10620
  call void @exit(i32 noundef 1) #14
  unreachable

10622:                                            ; No predecessors!
  br label %10623

10623:                                            ; preds = %10622
  br label %10624

10624:                                            ; preds = %10623, %10564
  br label %10625

10625:                                            ; preds = %10624
  br label %10626

10626:                                            ; preds = %10625
  br label %10627

10627:                                            ; preds = %10626
  %10628 = load i32, ptr @test_count, align 4, !tbaa !5
  %10629 = add nsw i32 %10628, 1
  store i32 %10629, ptr @test_count, align 4, !tbaa !5
  %10630 = load ptr, ptr %47, align 8, !tbaa !9
  %10631 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %10632 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %10630, ptr noundef %10631, i16 noundef zeroext 2)
  %10633 = icmp eq i32 %10632, -1
  br i1 %10633, label %10634, label %10687

10634:                                            ; preds = %10627
  br label %10635

10635:                                            ; preds = %10634
  br label %10636

10636:                                            ; preds = %10635
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #12
  %10637 = call ptr @__errno_location() #13
  %10638 = load i32, ptr %10637, align 4, !tbaa !5
  store i32 %10638, ptr %208, align 4, !tbaa !5
  %10639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10640 = call i32 @s2n_print_stacktrace(ptr noundef %10639)
  %10641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10642 = trunc i8 %10641 to i1
  br i1 %10642, label %10643, label %10665

10643:                                            ; preds = %10636
  %10644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10645 = call i32 @fileno(ptr noundef %10644) #12
  %10646 = call i32 @isatty(i32 noundef %10645) #12
  %10647 = icmp ne i32 %10646, 0
  br i1 %10647, label %10648, label %10665

10648:                                            ; preds = %10643
  %10649 = load i32, ptr %208, align 4, !tbaa !5
  %10650 = call ptr @__errno_location() #13
  store i32 %10649, ptr %10650, align 4, !tbaa !5
  %10651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10652 = load i32, ptr @test_count, align 4, !tbaa !5
  %10653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10654 = load i32, ptr %10653, align 4, !tbaa !5
  %10655 = call ptr @s2n_strerror(i32 noundef %10654, ptr noundef @.str.4)
  %10656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10657 = load i32, ptr %10656, align 4, !tbaa !5
  %10658 = call ptr @s2n_strerror_debug(i32 noundef %10657, ptr noundef @.str.4)
  %10659 = call ptr @__errno_location() #13
  %10660 = load i32, ptr %10659, align 4, !tbaa !5
  %10661 = call ptr @strerror(i32 noundef %10660) #12
  %10662 = call ptr @__errno_location() #13
  %10663 = load i32, ptr %10662, align 4, !tbaa !5
  %10664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10651, ptr noundef @.str.2, i32 noundef %10652, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 540, ptr noundef %10655, ptr noundef %10658, ptr noundef %10661, i32 noundef %10663) #12
  br label %10682

10665:                                            ; preds = %10643, %10636
  %10666 = load i32, ptr %208, align 4, !tbaa !5
  %10667 = call ptr @__errno_location() #13
  store i32 %10666, ptr %10667, align 4, !tbaa !5
  %10668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10669 = load i32, ptr @test_count, align 4, !tbaa !5
  %10670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10671 = load i32, ptr %10670, align 4, !tbaa !5
  %10672 = call ptr @s2n_strerror(i32 noundef %10671, ptr noundef @.str.4)
  %10673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10674 = load i32, ptr %10673, align 4, !tbaa !5
  %10675 = call ptr @s2n_strerror_debug(i32 noundef %10674, ptr noundef @.str.4)
  %10676 = call ptr @__errno_location() #13
  %10677 = load i32, ptr %10676, align 4, !tbaa !5
  %10678 = call ptr @strerror(i32 noundef %10677) #12
  %10679 = call ptr @__errno_location() #13
  %10680 = load i32, ptr %10679, align 4, !tbaa !5
  %10681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10668, ptr noundef @.str.5, i32 noundef %10669, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 540, ptr noundef %10672, ptr noundef %10675, ptr noundef %10678, i32 noundef %10680) #12
  br label %10682

10682:                                            ; preds = %10665, %10648
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #12
  br label %10683

10683:                                            ; preds = %10682
  br label %10684

10684:                                            ; preds = %10683
  call void @exit(i32 noundef 1) #14
  unreachable

10685:                                            ; No predecessors!
  br label %10686

10686:                                            ; preds = %10685
  br label %10687

10687:                                            ; preds = %10686, %10627
  br label %10688

10688:                                            ; preds = %10687
  br label %10689

10689:                                            ; preds = %10688
  br label %10690

10690:                                            ; preds = %10689
  %10691 = load i32, ptr @test_count, align 4, !tbaa !5
  %10692 = add nsw i32 %10691, 1
  store i32 %10692, ptr @test_count, align 4, !tbaa !5
  %10693 = load ptr, ptr %47, align 8, !tbaa !9
  %10694 = load i32, ptr %10693, align 8
  %10695 = lshr i32 %10694, 3
  %10696 = and i32 %10695, 1
  %10697 = icmp eq i32 %10696, 0
  br i1 %10697, label %10751, label %10698

10698:                                            ; preds = %10690
  br label %10699

10699:                                            ; preds = %10698
  br label %10700

10700:                                            ; preds = %10699
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #12
  %10701 = call ptr @__errno_location() #13
  %10702 = load i32, ptr %10701, align 4, !tbaa !5
  store i32 %10702, ptr %209, align 4, !tbaa !5
  %10703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10704 = call i32 @s2n_print_stacktrace(ptr noundef %10703)
  %10705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10706 = trunc i8 %10705 to i1
  br i1 %10706, label %10707, label %10729

10707:                                            ; preds = %10700
  %10708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10709 = call i32 @fileno(ptr noundef %10708) #12
  %10710 = call i32 @isatty(i32 noundef %10709) #12
  %10711 = icmp ne i32 %10710, 0
  br i1 %10711, label %10712, label %10729

10712:                                            ; preds = %10707
  %10713 = load i32, ptr %209, align 4, !tbaa !5
  %10714 = call ptr @__errno_location() #13
  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.4)
  %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.4)
  %10723 = call ptr @__errno_location() #13
  %10724 = load i32, ptr %10723, align 4, !tbaa !5
  %10725 = call ptr @strerror(i32 noundef %10724) #12
  %10726 = call ptr @__errno_location() #13
  %10727 = load i32, ptr %10726, align 4, !tbaa !5
  %10728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10715, ptr noundef @.str.2, i32 noundef %10716, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 541, ptr noundef %10719, ptr noundef %10722, ptr noundef %10725, i32 noundef %10727) #12
  br label %10746

10729:                                            ; preds = %10707, %10700
  %10730 = load i32, ptr %209, align 4, !tbaa !5
  %10731 = call ptr @__errno_location() #13
  store i32 %10730, ptr %10731, align 4, !tbaa !5
  %10732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10733 = load i32, ptr @test_count, align 4, !tbaa !5
  %10734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10735 = load i32, ptr %10734, align 4, !tbaa !5
  %10736 = call ptr @s2n_strerror(i32 noundef %10735, ptr noundef @.str.4)
  %10737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10738 = load i32, ptr %10737, align 4, !tbaa !5
  %10739 = call ptr @s2n_strerror_debug(i32 noundef %10738, ptr noundef @.str.4)
  %10740 = call ptr @__errno_location() #13
  %10741 = load i32, ptr %10740, align 4, !tbaa !5
  %10742 = call ptr @strerror(i32 noundef %10741) #12
  %10743 = call ptr @__errno_location() #13
  %10744 = load i32, ptr %10743, align 4, !tbaa !5
  %10745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10732, ptr noundef @.str.5, i32 noundef %10733, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 541, ptr noundef %10736, ptr noundef %10739, ptr noundef %10742, i32 noundef %10744) #12
  br label %10746

10746:                                            ; preds = %10729, %10712
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #12
  br label %10747

10747:                                            ; preds = %10746
  br label %10748

10748:                                            ; preds = %10747
  call void @exit(i32 noundef 1) #14
  unreachable

10749:                                            ; No predecessors!
  br label %10750

10750:                                            ; preds = %10749
  br label %10751

10751:                                            ; preds = %10750, %10690
  br label %10752

10752:                                            ; preds = %10751
  br label %10753

10753:                                            ; preds = %10752
  br label %10754

10754:                                            ; preds = %10753
  %10755 = load i32, ptr @test_count, align 4, !tbaa !5
  %10756 = add nsw i32 %10755, 1
  store i32 %10756, ptr @test_count, align 4, !tbaa !5
  %10757 = load ptr, ptr %47, align 8, !tbaa !9
  %10758 = getelementptr inbounds %struct.s2n_connection, ptr %10757, i32 0, i32 27
  %10759 = load ptr, ptr %10758, align 8, !tbaa !48
  %10760 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %10759, i32 0, i32 0
  %10761 = load ptr, ptr %10760, align 8, !tbaa !49
  %10762 = load ptr, ptr %205, align 8, !tbaa !9
  %10763 = icmp eq ptr %10761, %10762
  br i1 %10763, label %10817, label %10764

10764:                                            ; preds = %10754
  br label %10765

10765:                                            ; preds = %10764
  br label %10766

10766:                                            ; preds = %10765
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #12
  %10767 = call ptr @__errno_location() #13
  %10768 = load i32, ptr %10767, align 4, !tbaa !5
  store i32 %10768, ptr %210, align 4, !tbaa !5
  %10769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10770 = call i32 @s2n_print_stacktrace(ptr noundef %10769)
  %10771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10772 = trunc i8 %10771 to i1
  br i1 %10772, label %10773, label %10795

10773:                                            ; preds = %10766
  %10774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10775 = call i32 @fileno(ptr noundef %10774) #12
  %10776 = call i32 @isatty(i32 noundef %10775) #12
  %10777 = icmp ne i32 %10776, 0
  br i1 %10777, label %10778, label %10795

10778:                                            ; preds = %10773
  %10779 = load i32, ptr %210, align 4, !tbaa !5
  %10780 = call ptr @__errno_location() #13
  store i32 %10779, ptr %10780, align 4, !tbaa !5
  %10781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10782 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %10784, ptr noundef @.str.4)
  %10786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10787 = load i32, ptr %10786, align 4, !tbaa !5
  %10788 = call ptr @s2n_strerror_debug(i32 noundef %10787, ptr noundef @.str.4)
  %10789 = call ptr @__errno_location() #13
  %10790 = load i32, ptr %10789, align 4, !tbaa !5
  %10791 = call ptr @strerror(i32 noundef %10790) #12
  %10792 = call ptr @__errno_location() #13
  %10793 = load i32, ptr %10792, align 4, !tbaa !5
  %10794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10781, ptr noundef @.str.2, i32 noundef %10782, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 542, ptr noundef %10785, ptr noundef %10788, ptr noundef %10791, i32 noundef %10793) #12
  br label %10812

10795:                                            ; preds = %10773, %10766
  %10796 = load i32, ptr %210, align 4, !tbaa !5
  %10797 = call ptr @__errno_location() #13
  store i32 %10796, ptr %10797, align 4, !tbaa !5
  %10798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10799 = load i32, ptr @test_count, align 4, !tbaa !5
  %10800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10801 = load i32, ptr %10800, align 4, !tbaa !5
  %10802 = call ptr @s2n_strerror(i32 noundef %10801, ptr noundef @.str.4)
  %10803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10804 = load i32, ptr %10803, align 4, !tbaa !5
  %10805 = call ptr @s2n_strerror_debug(i32 noundef %10804, ptr noundef @.str.4)
  %10806 = call ptr @__errno_location() #13
  %10807 = load i32, ptr %10806, align 4, !tbaa !5
  %10808 = call ptr @strerror(i32 noundef %10807) #12
  %10809 = call ptr @__errno_location() #13
  %10810 = load i32, ptr %10809, align 4, !tbaa !5
  %10811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10798, ptr noundef @.str.5, i32 noundef %10799, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 542, ptr noundef %10802, ptr noundef %10805, ptr noundef %10808, i32 noundef %10810) #12
  br label %10812

10812:                                            ; preds = %10795, %10778
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #12
  br label %10813

10813:                                            ; preds = %10812
  br label %10814

10814:                                            ; preds = %10813
  call void @exit(i32 noundef 1) #14
  unreachable

10815:                                            ; No predecessors!
  br label %10816

10816:                                            ; preds = %10815
  br label %10817

10817:                                            ; preds = %10816, %10754
  br label %10818

10818:                                            ; preds = %10817
  br label %10819

10819:                                            ; preds = %10818
  br label %10820

10820:                                            ; preds = %10819
  %10821 = load i32, ptr @test_count, align 4, !tbaa !5
  %10822 = add nsw i32 %10821, 1
  store i32 %10822, ptr @test_count, align 4, !tbaa !5
  %10823 = load ptr, ptr %47, align 8, !tbaa !9
  %10824 = call i32 @s2n_connection_wipe(ptr noundef %10823)
  %10825 = icmp eq i32 %10824, -1
  br i1 %10825, label %10826, label %10879

10826:                                            ; preds = %10820
  br label %10827

10827:                                            ; preds = %10826
  br label %10828

10828:                                            ; preds = %10827
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #12
  %10829 = call ptr @__errno_location() #13
  %10830 = load i32, ptr %10829, align 4, !tbaa !5
  store i32 %10830, ptr %211, align 4, !tbaa !5
  %10831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10832 = call i32 @s2n_print_stacktrace(ptr noundef %10831)
  %10833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10834 = trunc i8 %10833 to i1
  br i1 %10834, label %10835, label %10857

10835:                                            ; preds = %10828
  %10836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10837 = call i32 @fileno(ptr noundef %10836) #12
  %10838 = call i32 @isatty(i32 noundef %10837) #12
  %10839 = icmp ne i32 %10838, 0
  br i1 %10839, label %10840, label %10857

10840:                                            ; preds = %10835
  %10841 = load i32, ptr %211, align 4, !tbaa !5
  %10842 = call ptr @__errno_location() #13
  store i32 %10841, ptr %10842, align 4, !tbaa !5
  %10843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10844 = load i32, ptr @test_count, align 4, !tbaa !5
  %10845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10846 = load i32, ptr %10845, align 4, !tbaa !5
  %10847 = call ptr @s2n_strerror(i32 noundef %10846, ptr noundef @.str.4)
  %10848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10849 = load i32, ptr %10848, align 4, !tbaa !5
  %10850 = call ptr @s2n_strerror_debug(i32 noundef %10849, ptr noundef @.str.4)
  %10851 = call ptr @__errno_location() #13
  %10852 = load i32, ptr %10851, align 4, !tbaa !5
  %10853 = call ptr @strerror(i32 noundef %10852) #12
  %10854 = call ptr @__errno_location() #13
  %10855 = load i32, ptr %10854, align 4, !tbaa !5
  %10856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10843, ptr noundef @.str.2, i32 noundef %10844, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 543, ptr noundef %10847, ptr noundef %10850, ptr noundef %10853, i32 noundef %10855) #12
  br label %10874

10857:                                            ; preds = %10835, %10828
  %10858 = load i32, ptr %211, align 4, !tbaa !5
  %10859 = call ptr @__errno_location() #13
  store i32 %10858, ptr %10859, align 4, !tbaa !5
  %10860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10861 = load i32, ptr @test_count, align 4, !tbaa !5
  %10862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10863 = load i32, ptr %10862, align 4, !tbaa !5
  %10864 = call ptr @s2n_strerror(i32 noundef %10863, ptr noundef @.str.4)
  %10865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10866 = load i32, ptr %10865, align 4, !tbaa !5
  %10867 = call ptr @s2n_strerror_debug(i32 noundef %10866, ptr noundef @.str.4)
  %10868 = call ptr @__errno_location() #13
  %10869 = load i32, ptr %10868, align 4, !tbaa !5
  %10870 = call ptr @strerror(i32 noundef %10869) #12
  %10871 = call ptr @__errno_location() #13
  %10872 = load i32, ptr %10871, align 4, !tbaa !5
  %10873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10860, ptr noundef @.str.5, i32 noundef %10861, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 543, ptr noundef %10864, ptr noundef %10867, ptr noundef %10870, i32 noundef %10872) #12
  br label %10874

10874:                                            ; preds = %10857, %10840
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #12
  br label %10875

10875:                                            ; preds = %10874
  br label %10876

10876:                                            ; preds = %10875
  call void @exit(i32 noundef 1) #14
  unreachable

10877:                                            ; No predecessors!
  br label %10878

10878:                                            ; preds = %10877
  br label %10879

10879:                                            ; preds = %10878, %10820
  br label %10880

10880:                                            ; preds = %10879
  br label %10881

10881:                                            ; preds = %10880
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #12
  br label %10882

10882:                                            ; preds = %10881
  br label %10883

10883:                                            ; preds = %10882
  %10884 = load i32, ptr @test_count, align 4, !tbaa !5
  %10885 = add nsw i32 %10884, 1
  store i32 %10885, ptr @test_count, align 4, !tbaa !5
  %10886 = load ptr, ptr %48, align 8, !tbaa !9
  %10887 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef %10886, ptr noundef null, i32 noundef 0)
  %10888 = icmp eq i32 %10887, -1
  br i1 %10888, label %10942, label %10889

10889:                                            ; preds = %10883
  br label %10890

10890:                                            ; preds = %10889
  br label %10891

10891:                                            ; preds = %10890
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #12
  %10892 = call ptr @__errno_location() #13
  %10893 = load i32, ptr %10892, align 4, !tbaa !5
  store i32 %10893, ptr %212, align 4, !tbaa !5
  %10894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10895 = call i32 @s2n_print_stacktrace(ptr noundef %10894)
  %10896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10897 = trunc i8 %10896 to i1
  br i1 %10897, label %10898, label %10920

10898:                                            ; preds = %10891
  %10899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10900 = call i32 @fileno(ptr noundef %10899) #12
  %10901 = call i32 @isatty(i32 noundef %10900) #12
  %10902 = icmp ne i32 %10901, 0
  br i1 %10902, label %10903, label %10920

10903:                                            ; preds = %10898
  %10904 = load i32, ptr %212, align 4, !tbaa !5
  %10905 = call ptr @__errno_location() #13
  store i32 %10904, ptr %10905, align 4, !tbaa !5
  %10906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10907 = load i32, ptr @test_count, align 4, !tbaa !5
  %10908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10909 = load i32, ptr %10908, align 4, !tbaa !5
  %10910 = call ptr @s2n_strerror(i32 noundef %10909, ptr noundef @.str.4)
  %10911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10912 = load i32, ptr %10911, align 4, !tbaa !5
  %10913 = call ptr @s2n_strerror_debug(i32 noundef %10912, ptr noundef @.str.4)
  %10914 = call ptr @__errno_location() #13
  %10915 = load i32, ptr %10914, align 4, !tbaa !5
  %10916 = call ptr @strerror(i32 noundef %10915) #12
  %10917 = call ptr @__errno_location() #13
  %10918 = load i32, ptr %10917, align 4, !tbaa !5
  %10919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10906, ptr noundef @.str.2, i32 noundef %10907, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 547, ptr noundef %10910, ptr noundef %10913, ptr noundef %10916, i32 noundef %10918) #12
  br label %10937

10920:                                            ; preds = %10898, %10891
  %10921 = load i32, ptr %212, align 4, !tbaa !5
  %10922 = call ptr @__errno_location() #13
  store i32 %10921, ptr %10922, align 4, !tbaa !5
  %10923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10924 = load i32, ptr @test_count, align 4, !tbaa !5
  %10925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10926 = load i32, ptr %10925, align 4, !tbaa !5
  %10927 = call ptr @s2n_strerror(i32 noundef %10926, ptr noundef @.str.4)
  %10928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10929 = load i32, ptr %10928, align 4, !tbaa !5
  %10930 = call ptr @s2n_strerror_debug(i32 noundef %10929, ptr noundef @.str.4)
  %10931 = call ptr @__errno_location() #13
  %10932 = load i32, ptr %10931, align 4, !tbaa !5
  %10933 = call ptr @strerror(i32 noundef %10932) #12
  %10934 = call ptr @__errno_location() #13
  %10935 = load i32, ptr %10934, align 4, !tbaa !5
  %10936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10923, ptr noundef @.str.5, i32 noundef %10924, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 547, ptr noundef %10927, ptr noundef %10930, ptr noundef %10933, i32 noundef %10935) #12
  br label %10937

10937:                                            ; preds = %10920, %10903
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #12
  br label %10938

10938:                                            ; preds = %10937
  br label %10939

10939:                                            ; preds = %10938
  call void @exit(i32 noundef 1) #14
  unreachable

10940:                                            ; No predecessors!
  br label %10941

10941:                                            ; preds = %10940
  br label %10942

10942:                                            ; preds = %10941, %10883
  br label %10943

10943:                                            ; preds = %10942
  br label %10944

10944:                                            ; preds = %10943
  br label %10945

10945:                                            ; preds = %10944
  %10946 = load i32, ptr @test_count, align 4, !tbaa !5
  %10947 = add nsw i32 %10946, 1
  store i32 %10947, ptr @test_count, align 4, !tbaa !5
  %10948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10949 = load i32, ptr %10948, align 4, !tbaa !5
  %10950 = icmp eq i32 %10949, 402653193
  br i1 %10950, label %11004, label %10951

10951:                                            ; preds = %10945
  br label %10952

10952:                                            ; preds = %10951
  br label %10953

10953:                                            ; preds = %10952
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #12
  %10954 = call ptr @__errno_location() #13
  %10955 = load i32, ptr %10954, align 4, !tbaa !5
  store i32 %10955, ptr %213, align 4, !tbaa !5
  %10956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10957 = call i32 @s2n_print_stacktrace(ptr noundef %10956)
  %10958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10959 = trunc i8 %10958 to i1
  br i1 %10959, label %10960, label %10982

10960:                                            ; preds = %10953
  %10961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10962 = call i32 @fileno(ptr noundef %10961) #12
  %10963 = call i32 @isatty(i32 noundef %10962) #12
  %10964 = icmp ne i32 %10963, 0
  br i1 %10964, label %10965, label %10982

10965:                                            ; preds = %10960
  %10966 = load i32, ptr %213, align 4, !tbaa !5
  %10967 = call ptr @__errno_location() #13
  store i32 %10966, ptr %10967, align 4, !tbaa !5
  %10968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10969 = load i32, ptr @test_count, align 4, !tbaa !5
  %10970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10971 = load i32, ptr %10970, align 4, !tbaa !5
  %10972 = call ptr @s2n_strerror(i32 noundef %10971, ptr noundef @.str.4)
  %10973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10974 = load i32, ptr %10973, align 4, !tbaa !5
  %10975 = call ptr @s2n_strerror_debug(i32 noundef %10974, ptr noundef @.str.4)
  %10976 = call ptr @__errno_location() #13
  %10977 = load i32, ptr %10976, align 4, !tbaa !5
  %10978 = call ptr @strerror(i32 noundef %10977) #12
  %10979 = call ptr @__errno_location() #13
  %10980 = load i32, ptr %10979, align 4, !tbaa !5
  %10981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10968, ptr noundef @.str.2, i32 noundef %10969, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 547, ptr noundef %10972, ptr noundef %10975, ptr noundef %10978, i32 noundef %10980) #12
  br label %10999

10982:                                            ; preds = %10960, %10953
  %10983 = load i32, ptr %213, align 4, !tbaa !5
  %10984 = call ptr @__errno_location() #13
  store i32 %10983, ptr %10984, align 4, !tbaa !5
  %10985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10986 = load i32, ptr @test_count, align 4, !tbaa !5
  %10987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10988 = load i32, ptr %10987, align 4, !tbaa !5
  %10989 = call ptr @s2n_strerror(i32 noundef %10988, ptr noundef @.str.4)
  %10990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10991 = load i32, ptr %10990, align 4, !tbaa !5
  %10992 = call ptr @s2n_strerror_debug(i32 noundef %10991, ptr noundef @.str.4)
  %10993 = call ptr @__errno_location() #13
  %10994 = load i32, ptr %10993, align 4, !tbaa !5
  %10995 = call ptr @strerror(i32 noundef %10994) #12
  %10996 = call ptr @__errno_location() #13
  %10997 = load i32, ptr %10996, align 4, !tbaa !5
  %10998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10985, ptr noundef @.str.5, i32 noundef %10986, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 547, ptr noundef %10989, ptr noundef %10992, ptr noundef %10995, i32 noundef %10997) #12
  br label %10999

10999:                                            ; preds = %10982, %10965
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #12
  br label %11000

11000:                                            ; preds = %10999
  br label %11001

11001:                                            ; preds = %11000
  call void @exit(i32 noundef 1) #14
  unreachable

11002:                                            ; No predecessors!
  br label %11003

11003:                                            ; preds = %11002
  br label %11004

11004:                                            ; preds = %11003, %10945
  br label %11005

11005:                                            ; preds = %11004
  br label %11006

11006:                                            ; preds = %11005
  br label %11007

11007:                                            ; preds = %11006
  %11008 = load i32, ptr @test_count, align 4, !tbaa !5
  %11009 = add nsw i32 %11008, 1
  store i32 %11009, ptr @test_count, align 4, !tbaa !5
  %11010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11011 = load i32, ptr %11010, align 4, !tbaa !5
  %11012 = call ptr @s2n_strerror_debug(i32 noundef %11011, ptr noundef @.str.4)
  %11013 = icmp eq ptr %11012, null
  br i1 %11013, label %11014, label %11067

11014:                                            ; preds = %11007
  br label %11015

11015:                                            ; preds = %11014
  br label %11016

11016:                                            ; preds = %11015
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #12
  %11017 = call ptr @__errno_location() #13
  %11018 = load i32, ptr %11017, align 4, !tbaa !5
  store i32 %11018, ptr %214, align 4, !tbaa !5
  %11019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11020 = call i32 @s2n_print_stacktrace(ptr noundef %11019)
  %11021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11022 = trunc i8 %11021 to i1
  br i1 %11022, label %11023, label %11045

11023:                                            ; preds = %11016
  %11024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11025 = call i32 @fileno(ptr noundef %11024) #12
  %11026 = call i32 @isatty(i32 noundef %11025) #12
  %11027 = icmp ne i32 %11026, 0
  br i1 %11027, label %11028, label %11045

11028:                                            ; preds = %11023
  %11029 = load i32, ptr %214, align 4, !tbaa !5
  %11030 = call ptr @__errno_location() #13
  store i32 %11029, ptr %11030, align 4, !tbaa !5
  %11031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11032 = load i32, ptr @test_count, align 4, !tbaa !5
  %11033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11034 = load i32, ptr %11033, align 4, !tbaa !5
  %11035 = call ptr @s2n_strerror(i32 noundef %11034, ptr noundef @.str.4)
  %11036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11037 = load i32, ptr %11036, align 4, !tbaa !5
  %11038 = call ptr @s2n_strerror_debug(i32 noundef %11037, ptr noundef @.str.4)
  %11039 = call ptr @__errno_location() #13
  %11040 = load i32, ptr %11039, align 4, !tbaa !5
  %11041 = call ptr @strerror(i32 noundef %11040) #12
  %11042 = call ptr @__errno_location() #13
  %11043 = load i32, ptr %11042, align 4, !tbaa !5
  %11044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11031, ptr noundef @.str.2, i32 noundef %11032, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 547, ptr noundef %11035, ptr noundef %11038, ptr noundef %11041, i32 noundef %11043) #12
  br label %11062

11045:                                            ; preds = %11023, %11016
  %11046 = load i32, ptr %214, align 4, !tbaa !5
  %11047 = call ptr @__errno_location() #13
  store i32 %11046, ptr %11047, align 4, !tbaa !5
  %11048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11049 = load i32, ptr @test_count, align 4, !tbaa !5
  %11050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11051 = load i32, ptr %11050, align 4, !tbaa !5
  %11052 = call ptr @s2n_strerror(i32 noundef %11051, ptr noundef @.str.4)
  %11053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11054 = load i32, ptr %11053, align 4, !tbaa !5
  %11055 = call ptr @s2n_strerror_debug(i32 noundef %11054, ptr noundef @.str.4)
  %11056 = call ptr @__errno_location() #13
  %11057 = load i32, ptr %11056, align 4, !tbaa !5
  %11058 = call ptr @strerror(i32 noundef %11057) #12
  %11059 = call ptr @__errno_location() #13
  %11060 = load i32, ptr %11059, align 4, !tbaa !5
  %11061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11048, ptr noundef @.str.5, i32 noundef %11049, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 547, ptr noundef %11052, ptr noundef %11055, ptr noundef %11058, i32 noundef %11060) #12
  br label %11062

11062:                                            ; preds = %11045, %11028
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #12
  br label %11063

11063:                                            ; preds = %11062
  br label %11064

11064:                                            ; preds = %11063
  call void @exit(i32 noundef 1) #14
  unreachable

11065:                                            ; No predecessors!
  br label %11066

11066:                                            ; preds = %11065
  br label %11067

11067:                                            ; preds = %11066, %11007
  br label %11068

11068:                                            ; preds = %11067
  br label %11069

11069:                                            ; preds = %11068
  br label %11070

11070:                                            ; preds = %11069
  br label %11071

11071:                                            ; preds = %11070
  br label %11072

11072:                                            ; preds = %11071
  %11073 = load i32, ptr @test_count, align 4, !tbaa !5
  %11074 = add nsw i32 %11073, 1
  store i32 %11074, ptr @test_count, align 4, !tbaa !5
  %11075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11076 = load i32, ptr %11075, align 4, !tbaa !5
  %11077 = call ptr @s2n_strerror_name(i32 noundef %11076)
  %11078 = call i32 @strcmp(ptr noundef %11077, ptr noundef @.str.96) #16
  %11079 = icmp eq i32 %11078, 0
  br i1 %11079, label %11133, label %11080

11080:                                            ; preds = %11072
  br label %11081

11081:                                            ; preds = %11080
  br label %11082

11082:                                            ; preds = %11081
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #12
  %11083 = call ptr @__errno_location() #13
  %11084 = load i32, ptr %11083, align 4, !tbaa !5
  store i32 %11084, ptr %215, align 4, !tbaa !5
  %11085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11086 = call i32 @s2n_print_stacktrace(ptr noundef %11085)
  %11087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11088 = trunc i8 %11087 to i1
  br i1 %11088, label %11089, label %11111

11089:                                            ; preds = %11082
  %11090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11091 = call i32 @fileno(ptr noundef %11090) #12
  %11092 = call i32 @isatty(i32 noundef %11091) #12
  %11093 = icmp ne i32 %11092, 0
  br i1 %11093, label %11094, label %11111

11094:                                            ; preds = %11089
  %11095 = load i32, ptr %215, align 4, !tbaa !5
  %11096 = call ptr @__errno_location() #13
  store i32 %11095, ptr %11096, align 4, !tbaa !5
  %11097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11098 = load i32, ptr @test_count, align 4, !tbaa !5
  %11099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11100 = load i32, ptr %11099, align 4, !tbaa !5
  %11101 = call ptr @s2n_strerror(i32 noundef %11100, ptr noundef @.str.4)
  %11102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11103 = load i32, ptr %11102, align 4, !tbaa !5
  %11104 = call ptr @s2n_strerror_debug(i32 noundef %11103, ptr noundef @.str.4)
  %11105 = call ptr @__errno_location() #13
  %11106 = load i32, ptr %11105, align 4, !tbaa !5
  %11107 = call ptr @strerror(i32 noundef %11106) #12
  %11108 = call ptr @__errno_location() #13
  %11109 = load i32, ptr %11108, align 4, !tbaa !5
  %11110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11097, ptr noundef @.str.2, i32 noundef %11098, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 548, ptr noundef %11101, ptr noundef %11104, ptr noundef %11107, i32 noundef %11109) #12
  br label %11128

11111:                                            ; preds = %11089, %11082
  %11112 = load i32, ptr %215, align 4, !tbaa !5
  %11113 = call ptr @__errno_location() #13
  store i32 %11112, ptr %11113, align 4, !tbaa !5
  %11114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11115 = load i32, ptr @test_count, align 4, !tbaa !5
  %11116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11117 = load i32, ptr %11116, align 4, !tbaa !5
  %11118 = call ptr @s2n_strerror(i32 noundef %11117, ptr noundef @.str.4)
  %11119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11120 = load i32, ptr %11119, align 4, !tbaa !5
  %11121 = call ptr @s2n_strerror_debug(i32 noundef %11120, ptr noundef @.str.4)
  %11122 = call ptr @__errno_location() #13
  %11123 = load i32, ptr %11122, align 4, !tbaa !5
  %11124 = call ptr @strerror(i32 noundef %11123) #12
  %11125 = call ptr @__errno_location() #13
  %11126 = load i32, ptr %11125, align 4, !tbaa !5
  %11127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11114, ptr noundef @.str.5, i32 noundef %11115, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 548, ptr noundef %11118, ptr noundef %11121, ptr noundef %11124, i32 noundef %11126) #12
  br label %11128

11128:                                            ; preds = %11111, %11094
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #12
  br label %11129

11129:                                            ; preds = %11128
  br label %11130

11130:                                            ; preds = %11129
  call void @exit(i32 noundef 1) #14
  unreachable

11131:                                            ; No predecessors!
  br label %11132

11132:                                            ; preds = %11131
  br label %11133

11133:                                            ; preds = %11132, %11072
  br label %11134

11134:                                            ; preds = %11133
  br label %11135

11135:                                            ; preds = %11134
  br label %11136

11136:                                            ; preds = %11135
  br label %11137

11137:                                            ; preds = %11136
  %11138 = load i32, ptr @test_count, align 4, !tbaa !5
  %11139 = add nsw i32 %11138, 1
  store i32 %11139, ptr @test_count, align 4, !tbaa !5
  %11140 = load ptr, ptr %48, align 8, !tbaa !9
  %11141 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef %11140, ptr noundef %53, i32 noundef 0)
  %11142 = icmp eq i32 %11141, -1
  br i1 %11142, label %11196, label %11143

11143:                                            ; preds = %11137
  br label %11144

11144:                                            ; preds = %11143
  br label %11145

11145:                                            ; preds = %11144
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #12
  %11146 = call ptr @__errno_location() #13
  %11147 = load i32, ptr %11146, align 4, !tbaa !5
  store i32 %11147, ptr %216, align 4, !tbaa !5
  %11148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11149 = call i32 @s2n_print_stacktrace(ptr noundef %11148)
  %11150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11151 = trunc i8 %11150 to i1
  br i1 %11151, label %11152, label %11174

11152:                                            ; preds = %11145
  %11153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11154 = call i32 @fileno(ptr noundef %11153) #12
  %11155 = call i32 @isatty(i32 noundef %11154) #12
  %11156 = icmp ne i32 %11155, 0
  br i1 %11156, label %11157, label %11174

11157:                                            ; preds = %11152
  %11158 = load i32, ptr %216, align 4, !tbaa !5
  %11159 = call ptr @__errno_location() #13
  store i32 %11158, ptr %11159, align 4, !tbaa !5
  %11160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11161 = load i32, ptr @test_count, align 4, !tbaa !5
  %11162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11163 = load i32, ptr %11162, align 4, !tbaa !5
  %11164 = call ptr @s2n_strerror(i32 noundef %11163, ptr noundef @.str.4)
  %11165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11166 = load i32, ptr %11165, align 4, !tbaa !5
  %11167 = call ptr @s2n_strerror_debug(i32 noundef %11166, ptr noundef @.str.4)
  %11168 = call ptr @__errno_location() #13
  %11169 = load i32, ptr %11168, align 4, !tbaa !5
  %11170 = call ptr @strerror(i32 noundef %11169) #12
  %11171 = call ptr @__errno_location() #13
  %11172 = load i32, ptr %11171, align 4, !tbaa !5
  %11173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11160, ptr noundef @.str.2, i32 noundef %11161, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11164, ptr noundef %11167, ptr noundef %11170, i32 noundef %11172) #12
  br label %11191

11174:                                            ; preds = %11152, %11145
  %11175 = load i32, ptr %216, align 4, !tbaa !5
  %11176 = call ptr @__errno_location() #13
  store i32 %11175, ptr %11176, align 4, !tbaa !5
  %11177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11178 = load i32, ptr @test_count, align 4, !tbaa !5
  %11179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11180 = load i32, ptr %11179, align 4, !tbaa !5
  %11181 = call ptr @s2n_strerror(i32 noundef %11180, ptr noundef @.str.4)
  %11182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11183 = load i32, ptr %11182, align 4, !tbaa !5
  %11184 = call ptr @s2n_strerror_debug(i32 noundef %11183, ptr noundef @.str.4)
  %11185 = call ptr @__errno_location() #13
  %11186 = load i32, ptr %11185, align 4, !tbaa !5
  %11187 = call ptr @strerror(i32 noundef %11186) #12
  %11188 = call ptr @__errno_location() #13
  %11189 = load i32, ptr %11188, align 4, !tbaa !5
  %11190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11177, ptr noundef @.str.5, i32 noundef %11178, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11181, ptr noundef %11184, ptr noundef %11187, i32 noundef %11189) #12
  br label %11191

11191:                                            ; preds = %11174, %11157
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #12
  br label %11192

11192:                                            ; preds = %11191
  br label %11193

11193:                                            ; preds = %11192
  call void @exit(i32 noundef 1) #14
  unreachable

11194:                                            ; No predecessors!
  br label %11195

11195:                                            ; preds = %11194
  br label %11196

11196:                                            ; preds = %11195, %11137
  br label %11197

11197:                                            ; preds = %11196
  br label %11198

11198:                                            ; preds = %11197
  br label %11199

11199:                                            ; preds = %11198
  %11200 = load i32, ptr @test_count, align 4, !tbaa !5
  %11201 = add nsw i32 %11200, 1
  store i32 %11201, ptr @test_count, align 4, !tbaa !5
  %11202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11203 = load i32, ptr %11202, align 4, !tbaa !5
  %11204 = icmp eq i32 %11203, 469762064
  br i1 %11204, label %11258, label %11205

11205:                                            ; preds = %11199
  br label %11206

11206:                                            ; preds = %11205
  br label %11207

11207:                                            ; preds = %11206
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #12
  %11208 = call ptr @__errno_location() #13
  %11209 = load i32, ptr %11208, align 4, !tbaa !5
  store i32 %11209, ptr %217, align 4, !tbaa !5
  %11210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11211 = call i32 @s2n_print_stacktrace(ptr noundef %11210)
  %11212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11213 = trunc i8 %11212 to i1
  br i1 %11213, label %11214, label %11236

11214:                                            ; preds = %11207
  %11215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11216 = call i32 @fileno(ptr noundef %11215) #12
  %11217 = call i32 @isatty(i32 noundef %11216) #12
  %11218 = icmp ne i32 %11217, 0
  br i1 %11218, label %11219, label %11236

11219:                                            ; preds = %11214
  %11220 = load i32, ptr %217, align 4, !tbaa !5
  %11221 = call ptr @__errno_location() #13
  store i32 %11220, ptr %11221, align 4, !tbaa !5
  %11222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11223 = load i32, ptr @test_count, align 4, !tbaa !5
  %11224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11225 = load i32, ptr %11224, align 4, !tbaa !5
  %11226 = call ptr @s2n_strerror(i32 noundef %11225, ptr noundef @.str.4)
  %11227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11228 = load i32, ptr %11227, align 4, !tbaa !5
  %11229 = call ptr @s2n_strerror_debug(i32 noundef %11228, ptr noundef @.str.4)
  %11230 = call ptr @__errno_location() #13
  %11231 = load i32, ptr %11230, align 4, !tbaa !5
  %11232 = call ptr @strerror(i32 noundef %11231) #12
  %11233 = call ptr @__errno_location() #13
  %11234 = load i32, ptr %11233, align 4, !tbaa !5
  %11235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11222, ptr noundef @.str.2, i32 noundef %11223, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11226, ptr noundef %11229, ptr noundef %11232, i32 noundef %11234) #12
  br label %11253

11236:                                            ; preds = %11214, %11207
  %11237 = load i32, ptr %217, align 4, !tbaa !5
  %11238 = call ptr @__errno_location() #13
  store i32 %11237, ptr %11238, align 4, !tbaa !5
  %11239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11240 = load i32, ptr @test_count, align 4, !tbaa !5
  %11241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11242 = load i32, ptr %11241, align 4, !tbaa !5
  %11243 = call ptr @s2n_strerror(i32 noundef %11242, ptr noundef @.str.4)
  %11244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11245 = load i32, ptr %11244, align 4, !tbaa !5
  %11246 = call ptr @s2n_strerror_debug(i32 noundef %11245, ptr noundef @.str.4)
  %11247 = call ptr @__errno_location() #13
  %11248 = load i32, ptr %11247, align 4, !tbaa !5
  %11249 = call ptr @strerror(i32 noundef %11248) #12
  %11250 = call ptr @__errno_location() #13
  %11251 = load i32, ptr %11250, align 4, !tbaa !5
  %11252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11239, ptr noundef @.str.5, i32 noundef %11240, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11243, ptr noundef %11246, ptr noundef %11249, i32 noundef %11251) #12
  br label %11253

11253:                                            ; preds = %11236, %11219
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #12
  br label %11254

11254:                                            ; preds = %11253
  br label %11255

11255:                                            ; preds = %11254
  call void @exit(i32 noundef 1) #14
  unreachable

11256:                                            ; No predecessors!
  br label %11257

11257:                                            ; preds = %11256
  br label %11258

11258:                                            ; preds = %11257, %11199
  br label %11259

11259:                                            ; preds = %11258
  br label %11260

11260:                                            ; preds = %11259
  br label %11261

11261:                                            ; preds = %11260
  %11262 = load i32, ptr @test_count, align 4, !tbaa !5
  %11263 = add nsw i32 %11262, 1
  store i32 %11263, ptr @test_count, align 4, !tbaa !5
  %11264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11265 = load i32, ptr %11264, align 4, !tbaa !5
  %11266 = call ptr @s2n_strerror_debug(i32 noundef %11265, ptr noundef @.str.4)
  %11267 = icmp eq ptr %11266, null
  br i1 %11267, label %11268, label %11321

11268:                                            ; preds = %11261
  br label %11269

11269:                                            ; preds = %11268
  br label %11270

11270:                                            ; preds = %11269
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #12
  %11271 = call ptr @__errno_location() #13
  %11272 = load i32, ptr %11271, align 4, !tbaa !5
  store i32 %11272, ptr %218, align 4, !tbaa !5
  %11273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11274 = call i32 @s2n_print_stacktrace(ptr noundef %11273)
  %11275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11276 = trunc i8 %11275 to i1
  br i1 %11276, label %11277, label %11299

11277:                                            ; preds = %11270
  %11278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11279 = call i32 @fileno(ptr noundef %11278) #12
  %11280 = call i32 @isatty(i32 noundef %11279) #12
  %11281 = icmp ne i32 %11280, 0
  br i1 %11281, label %11282, label %11299

11282:                                            ; preds = %11277
  %11283 = load i32, ptr %218, align 4, !tbaa !5
  %11284 = call ptr @__errno_location() #13
  store i32 %11283, ptr %11284, align 4, !tbaa !5
  %11285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11286 = load i32, ptr @test_count, align 4, !tbaa !5
  %11287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11288 = load i32, ptr %11287, align 4, !tbaa !5
  %11289 = call ptr @s2n_strerror(i32 noundef %11288, ptr noundef @.str.4)
  %11290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11291 = load i32, ptr %11290, align 4, !tbaa !5
  %11292 = call ptr @s2n_strerror_debug(i32 noundef %11291, ptr noundef @.str.4)
  %11293 = call ptr @__errno_location() #13
  %11294 = load i32, ptr %11293, align 4, !tbaa !5
  %11295 = call ptr @strerror(i32 noundef %11294) #12
  %11296 = call ptr @__errno_location() #13
  %11297 = load i32, ptr %11296, align 4, !tbaa !5
  %11298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11285, ptr noundef @.str.2, i32 noundef %11286, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11289, ptr noundef %11292, ptr noundef %11295, i32 noundef %11297) #12
  br label %11316

11299:                                            ; preds = %11277, %11270
  %11300 = load i32, ptr %218, align 4, !tbaa !5
  %11301 = call ptr @__errno_location() #13
  store i32 %11300, ptr %11301, align 4, !tbaa !5
  %11302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11303 = load i32, ptr @test_count, align 4, !tbaa !5
  %11304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11305 = load i32, ptr %11304, align 4, !tbaa !5
  %11306 = call ptr @s2n_strerror(i32 noundef %11305, ptr noundef @.str.4)
  %11307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11308 = load i32, ptr %11307, align 4, !tbaa !5
  %11309 = call ptr @s2n_strerror_debug(i32 noundef %11308, ptr noundef @.str.4)
  %11310 = call ptr @__errno_location() #13
  %11311 = load i32, ptr %11310, align 4, !tbaa !5
  %11312 = call ptr @strerror(i32 noundef %11311) #12
  %11313 = call ptr @__errno_location() #13
  %11314 = load i32, ptr %11313, align 4, !tbaa !5
  %11315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11302, ptr noundef @.str.5, i32 noundef %11303, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 550, ptr noundef %11306, ptr noundef %11309, ptr noundef %11312, i32 noundef %11314) #12
  br label %11316

11316:                                            ; preds = %11299, %11282
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #12
  br label %11317

11317:                                            ; preds = %11316
  br label %11318

11318:                                            ; preds = %11317
  call void @exit(i32 noundef 1) #14
  unreachable

11319:                                            ; No predecessors!
  br label %11320

11320:                                            ; preds = %11319
  br label %11321

11321:                                            ; preds = %11320, %11261
  br label %11322

11322:                                            ; preds = %11321
  br label %11323

11323:                                            ; preds = %11322
  br label %11324

11324:                                            ; preds = %11323
  br label %11325

11325:                                            ; preds = %11324
  br label %11326

11326:                                            ; preds = %11325
  %11327 = load i32, ptr @test_count, align 4, !tbaa !5
  %11328 = add nsw i32 %11327, 1
  store i32 %11328, ptr @test_count, align 4, !tbaa !5
  %11329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11330 = load i32, ptr %11329, align 4, !tbaa !5
  %11331 = call ptr @s2n_strerror_name(i32 noundef %11330)
  %11332 = call i32 @strcmp(ptr noundef %11331, ptr noundef @.str.100) #16
  %11333 = icmp eq i32 %11332, 0
  br i1 %11333, label %11387, label %11334

11334:                                            ; preds = %11326
  br label %11335

11335:                                            ; preds = %11334
  br label %11336

11336:                                            ; preds = %11335
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #12
  %11337 = call ptr @__errno_location() #13
  %11338 = load i32, ptr %11337, align 4, !tbaa !5
  store i32 %11338, ptr %219, align 4, !tbaa !5
  %11339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11340 = call i32 @s2n_print_stacktrace(ptr noundef %11339)
  %11341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11342 = trunc i8 %11341 to i1
  br i1 %11342, label %11343, label %11365

11343:                                            ; preds = %11336
  %11344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11345 = call i32 @fileno(ptr noundef %11344) #12
  %11346 = call i32 @isatty(i32 noundef %11345) #12
  %11347 = icmp ne i32 %11346, 0
  br i1 %11347, label %11348, label %11365

11348:                                            ; preds = %11343
  %11349 = load i32, ptr %219, align 4, !tbaa !5
  %11350 = call ptr @__errno_location() #13
  store i32 %11349, ptr %11350, align 4, !tbaa !5
  %11351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11352 = load i32, ptr @test_count, align 4, !tbaa !5
  %11353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11354 = load i32, ptr %11353, align 4, !tbaa !5
  %11355 = call ptr @s2n_strerror(i32 noundef %11354, ptr noundef @.str.4)
  %11356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11357 = load i32, ptr %11356, align 4, !tbaa !5
  %11358 = call ptr @s2n_strerror_debug(i32 noundef %11357, ptr noundef @.str.4)
  %11359 = call ptr @__errno_location() #13
  %11360 = load i32, ptr %11359, align 4, !tbaa !5
  %11361 = call ptr @strerror(i32 noundef %11360) #12
  %11362 = call ptr @__errno_location() #13
  %11363 = load i32, ptr %11362, align 4, !tbaa !5
  %11364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11351, ptr noundef @.str.2, i32 noundef %11352, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 551, ptr noundef %11355, ptr noundef %11358, ptr noundef %11361, i32 noundef %11363) #12
  br label %11382

11365:                                            ; preds = %11343, %11336
  %11366 = load i32, ptr %219, align 4, !tbaa !5
  %11367 = call ptr @__errno_location() #13
  store i32 %11366, ptr %11367, align 4, !tbaa !5
  %11368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11369 = load i32, ptr @test_count, align 4, !tbaa !5
  %11370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11371 = load i32, ptr %11370, align 4, !tbaa !5
  %11372 = call ptr @s2n_strerror(i32 noundef %11371, ptr noundef @.str.4)
  %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_debug(i32 noundef %11374, ptr noundef @.str.4)
  %11376 = call ptr @__errno_location() #13
  %11377 = load i32, ptr %11376, align 4, !tbaa !5
  %11378 = call ptr @strerror(i32 noundef %11377) #12
  %11379 = call ptr @__errno_location() #13
  %11380 = load i32, ptr %11379, align 4, !tbaa !5
  %11381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11368, ptr noundef @.str.5, i32 noundef %11369, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 551, ptr noundef %11372, ptr noundef %11375, ptr noundef %11378, i32 noundef %11380) #12
  br label %11382

11382:                                            ; preds = %11365, %11348
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #12
  br label %11383

11383:                                            ; preds = %11382
  br label %11384

11384:                                            ; preds = %11383
  call void @exit(i32 noundef 1) #14
  unreachable

11385:                                            ; No predecessors!
  br label %11386

11386:                                            ; preds = %11385
  br label %11387

11387:                                            ; preds = %11386, %11326
  br label %11388

11388:                                            ; preds = %11387
  br label %11389

11389:                                            ; preds = %11388
  call void @llvm.lifetime.start.p0(i64 16, ptr %220) #12
  %11390 = load ptr, ptr %53, align 8, !tbaa !9
  store ptr %11390, ptr %220, align 8, !tbaa !9
  %11391 = getelementptr inbounds ptr, ptr %220, i64 1
  %11392 = load ptr, ptr %53, align 8, !tbaa !9
  store ptr %11392, ptr %11391, align 8, !tbaa !9
  br label %11393

11393:                                            ; preds = %11389
  br label %11394

11394:                                            ; preds = %11393
  %11395 = load i32, ptr @test_count, align 4, !tbaa !5
  %11396 = add nsw i32 %11395, 1
  store i32 %11396, ptr @test_count, align 4, !tbaa !5
  %11397 = load ptr, ptr %48, align 8, !tbaa !9
  %11398 = getelementptr inbounds [2 x ptr], ptr %220, i64 0, i64 0
  %11399 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef %11397, ptr noundef %11398, i32 noundef 2)
  %11400 = icmp eq i32 %11399, -1
  br i1 %11400, label %11454, label %11401

11401:                                            ; preds = %11394
  br label %11402

11402:                                            ; preds = %11401
  br label %11403

11403:                                            ; preds = %11402
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #12
  %11404 = call ptr @__errno_location() #13
  %11405 = load i32, ptr %11404, align 4, !tbaa !5
  store i32 %11405, ptr %221, align 4, !tbaa !5
  %11406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11407 = call i32 @s2n_print_stacktrace(ptr noundef %11406)
  %11408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11409 = trunc i8 %11408 to i1
  br i1 %11409, label %11410, label %11432

11410:                                            ; preds = %11403
  %11411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11412 = call i32 @fileno(ptr noundef %11411) #12
  %11413 = call i32 @isatty(i32 noundef %11412) #12
  %11414 = icmp ne i32 %11413, 0
  br i1 %11414, label %11415, label %11432

11415:                                            ; preds = %11410
  %11416 = load i32, ptr %221, align 4, !tbaa !5
  %11417 = call ptr @__errno_location() #13
  store i32 %11416, ptr %11417, align 4, !tbaa !5
  %11418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11419 = load i32, ptr @test_count, align 4, !tbaa !5
  %11420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11421 = load i32, ptr %11420, align 4, !tbaa !5
  %11422 = call ptr @s2n_strerror(i32 noundef %11421, ptr noundef @.str.4)
  %11423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11424 = load i32, ptr %11423, align 4, !tbaa !5
  %11425 = call ptr @s2n_strerror_debug(i32 noundef %11424, ptr noundef @.str.4)
  %11426 = call ptr @__errno_location() #13
  %11427 = load i32, ptr %11426, align 4, !tbaa !5
  %11428 = call ptr @strerror(i32 noundef %11427) #12
  %11429 = call ptr @__errno_location() #13
  %11430 = load i32, ptr %11429, align 4, !tbaa !5
  %11431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11418, ptr noundef @.str.2, i32 noundef %11419, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 554, ptr noundef %11422, ptr noundef %11425, ptr noundef %11428, i32 noundef %11430) #12
  br label %11449

11432:                                            ; preds = %11410, %11403
  %11433 = load i32, ptr %221, align 4, !tbaa !5
  %11434 = call ptr @__errno_location() #13
  store i32 %11433, ptr %11434, align 4, !tbaa !5
  %11435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11436 = load i32, ptr @test_count, align 4, !tbaa !5
  %11437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11438 = load i32, ptr %11437, align 4, !tbaa !5
  %11439 = call ptr @s2n_strerror(i32 noundef %11438, ptr noundef @.str.4)
  %11440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11441 = load i32, ptr %11440, align 4, !tbaa !5
  %11442 = call ptr @s2n_strerror_debug(i32 noundef %11441, ptr noundef @.str.4)
  %11443 = call ptr @__errno_location() #13
  %11444 = load i32, ptr %11443, align 4, !tbaa !5
  %11445 = call ptr @strerror(i32 noundef %11444) #12
  %11446 = call ptr @__errno_location() #13
  %11447 = load i32, ptr %11446, align 4, !tbaa !5
  %11448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11435, ptr noundef @.str.5, i32 noundef %11436, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 554, ptr noundef %11439, ptr noundef %11442, ptr noundef %11445, i32 noundef %11447) #12
  br label %11449

11449:                                            ; preds = %11432, %11415
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #12
  br label %11450

11450:                                            ; preds = %11449
  br label %11451

11451:                                            ; preds = %11450
  call void @exit(i32 noundef 1) #14
  unreachable

11452:                                            ; No predecessors!
  br label %11453

11453:                                            ; preds = %11452
  br label %11454

11454:                                            ; preds = %11453, %11394
  br label %11455

11455:                                            ; preds = %11454
  br label %11456

11456:                                            ; preds = %11455
  br label %11457

11457:                                            ; preds = %11456
  %11458 = load i32, ptr @test_count, align 4, !tbaa !5
  %11459 = add nsw i32 %11458, 1
  store i32 %11459, ptr @test_count, align 4, !tbaa !5
  %11460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11461 = load i32, ptr %11460, align 4, !tbaa !5
  %11462 = icmp eq i32 %11461, 469762065
  br i1 %11462, label %11516, label %11463

11463:                                            ; preds = %11457
  br label %11464

11464:                                            ; preds = %11463
  br label %11465

11465:                                            ; preds = %11464
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #12
  %11466 = call ptr @__errno_location() #13
  %11467 = load i32, ptr %11466, align 4, !tbaa !5
  store i32 %11467, ptr %222, align 4, !tbaa !5
  %11468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11469 = call i32 @s2n_print_stacktrace(ptr noundef %11468)
  %11470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11471 = trunc i8 %11470 to i1
  br i1 %11471, label %11472, label %11494

11472:                                            ; preds = %11465
  %11473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11474 = call i32 @fileno(ptr noundef %11473) #12
  %11475 = call i32 @isatty(i32 noundef %11474) #12
  %11476 = icmp ne i32 %11475, 0
  br i1 %11476, label %11477, label %11494

11477:                                            ; preds = %11472
  %11478 = load i32, ptr %222, align 4, !tbaa !5
  %11479 = call ptr @__errno_location() #13
  store i32 %11478, ptr %11479, align 4, !tbaa !5
  %11480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11481 = load i32, ptr @test_count, align 4, !tbaa !5
  %11482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11483 = load i32, ptr %11482, align 4, !tbaa !5
  %11484 = call ptr @s2n_strerror(i32 noundef %11483, ptr noundef @.str.4)
  %11485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11486 = load i32, ptr %11485, align 4, !tbaa !5
  %11487 = call ptr @s2n_strerror_debug(i32 noundef %11486, ptr noundef @.str.4)
  %11488 = call ptr @__errno_location() #13
  %11489 = load i32, ptr %11488, align 4, !tbaa !5
  %11490 = call ptr @strerror(i32 noundef %11489) #12
  %11491 = call ptr @__errno_location() #13
  %11492 = load i32, ptr %11491, align 4, !tbaa !5
  %11493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11480, ptr noundef @.str.2, i32 noundef %11481, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 554, ptr noundef %11484, ptr noundef %11487, ptr noundef %11490, i32 noundef %11492) #12
  br label %11511

11494:                                            ; preds = %11472, %11465
  %11495 = load i32, ptr %222, align 4, !tbaa !5
  %11496 = call ptr @__errno_location() #13
  store i32 %11495, ptr %11496, align 4, !tbaa !5
  %11497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11498 = load i32, ptr @test_count, align 4, !tbaa !5
  %11499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11500 = load i32, ptr %11499, align 4, !tbaa !5
  %11501 = call ptr @s2n_strerror(i32 noundef %11500, ptr noundef @.str.4)
  %11502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11503 = load i32, ptr %11502, align 4, !tbaa !5
  %11504 = call ptr @s2n_strerror_debug(i32 noundef %11503, ptr noundef @.str.4)
  %11505 = call ptr @__errno_location() #13
  %11506 = load i32, ptr %11505, align 4, !tbaa !5
  %11507 = call ptr @strerror(i32 noundef %11506) #12
  %11508 = call ptr @__errno_location() #13
  %11509 = load i32, ptr %11508, align 4, !tbaa !5
  %11510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11497, ptr noundef @.str.5, i32 noundef %11498, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 554, ptr noundef %11501, ptr noundef %11504, ptr noundef %11507, i32 noundef %11509) #12
  br label %11511

11511:                                            ; preds = %11494, %11477
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #12
  br label %11512

11512:                                            ; preds = %11511
  br label %11513

11513:                                            ; preds = %11512
  call void @exit(i32 noundef 1) #14
  unreachable

11514:                                            ; No predecessors!
  br label %11515

11515:                                            ; preds = %11514
  br label %11516

11516:                                            ; preds = %11515, %11457
  br label %11517

11517:                                            ; preds = %11516
  br label %11518

11518:                                            ; preds = %11517
  br label %11519

11519:                                            ; preds = %11518
  %11520 = load i32, ptr @test_count, align 4, !tbaa !5
  %11521 = add nsw i32 %11520, 1
  store i32 %11521, ptr @test_count, align 4, !tbaa !5
  %11522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11523 = load i32, ptr %11522, align 4, !tbaa !5
  %11524 = call ptr @s2n_strerror_debug(i32 noundef %11523, ptr noundef @.str.4)
  %11525 = icmp eq ptr %11524, null
  br i1 %11525, label %11526, label %11579

11526:                                            ; preds = %11519
  br label %11527

11527:                                            ; preds = %11526
  br label %11528

11528:                                            ; preds = %11527
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #12
  %11529 = call ptr @__errno_location() #13
  %11530 = load i32, ptr %11529, align 4, !tbaa !5
  store i32 %11530, ptr %223, align 4, !tbaa !5
  %11531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11532 = call i32 @s2n_print_stacktrace(ptr noundef %11531)
  %11533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11534 = trunc i8 %11533 to i1
  br i1 %11534, label %11535, label %11557

11535:                                            ; preds = %11528
  %11536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11537 = call i32 @fileno(ptr noundef %11536) #12
  %11538 = call i32 @isatty(i32 noundef %11537) #12
  %11539 = icmp ne i32 %11538, 0
  br i1 %11539, label %11540, label %11557

11540:                                            ; preds = %11535
  %11541 = load i32, ptr %223, align 4, !tbaa !5
  %11542 = call ptr @__errno_location() #13
  store i32 %11541, ptr %11542, align 4, !tbaa !5
  %11543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11544 = load i32, ptr @test_count, align 4, !tbaa !5
  %11545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11546 = load i32, ptr %11545, align 4, !tbaa !5
  %11547 = call ptr @s2n_strerror(i32 noundef %11546, ptr noundef @.str.4)
  %11548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11549 = load i32, ptr %11548, align 4, !tbaa !5
  %11550 = call ptr @s2n_strerror_debug(i32 noundef %11549, ptr noundef @.str.4)
  %11551 = call ptr @__errno_location() #13
  %11552 = load i32, ptr %11551, align 4, !tbaa !5
  %11553 = call ptr @strerror(i32 noundef %11552) #12
  %11554 = call ptr @__errno_location() #13
  %11555 = load i32, ptr %11554, align 4, !tbaa !5
  %11556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11543, ptr noundef @.str.2, i32 noundef %11544, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 554, ptr noundef %11547, ptr noundef %11550, ptr noundef %11553, i32 noundef %11555) #12
  br label %11574

11557:                                            ; preds = %11535, %11528
  %11558 = load i32, ptr %223, align 4, !tbaa !5
  %11559 = call ptr @__errno_location() #13
  store i32 %11558, ptr %11559, align 4, !tbaa !5
  %11560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11561 = load i32, ptr @test_count, align 4, !tbaa !5
  %11562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11563 = load i32, ptr %11562, align 4, !tbaa !5
  %11564 = call ptr @s2n_strerror(i32 noundef %11563, ptr noundef @.str.4)
  %11565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11566 = load i32, ptr %11565, align 4, !tbaa !5
  %11567 = call ptr @s2n_strerror_debug(i32 noundef %11566, ptr noundef @.str.4)
  %11568 = call ptr @__errno_location() #13
  %11569 = load i32, ptr %11568, align 4, !tbaa !5
  %11570 = call ptr @strerror(i32 noundef %11569) #12
  %11571 = call ptr @__errno_location() #13
  %11572 = load i32, ptr %11571, align 4, !tbaa !5
  %11573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11560, ptr noundef @.str.5, i32 noundef %11561, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 554, ptr noundef %11564, ptr noundef %11567, ptr noundef %11570, i32 noundef %11572) #12
  br label %11574

11574:                                            ; preds = %11557, %11540
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #12
  br label %11575

11575:                                            ; preds = %11574
  br label %11576

11576:                                            ; preds = %11575
  call void @exit(i32 noundef 1) #14
  unreachable

11577:                                            ; No predecessors!
  br label %11578

11578:                                            ; preds = %11577
  br label %11579

11579:                                            ; preds = %11578, %11519
  br label %11580

11580:                                            ; preds = %11579
  br label %11581

11581:                                            ; preds = %11580
  br label %11582

11582:                                            ; preds = %11581
  br label %11583

11583:                                            ; preds = %11582
  br label %11584

11584:                                            ; preds = %11583
  %11585 = load i32, ptr @test_count, align 4, !tbaa !5
  %11586 = add nsw i32 %11585, 1
  store i32 %11586, ptr @test_count, align 4, !tbaa !5
  %11587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11588 = load i32, ptr %11587, align 4, !tbaa !5
  %11589 = call ptr @s2n_strerror_name(i32 noundef %11588)
  %11590 = call i32 @strcmp(ptr noundef %11589, ptr noundef @.str.104) #16
  %11591 = icmp eq i32 %11590, 0
  br i1 %11591, label %11645, label %11592

11592:                                            ; preds = %11584
  br label %11593

11593:                                            ; preds = %11592
  br label %11594

11594:                                            ; preds = %11593
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #12
  %11595 = call ptr @__errno_location() #13
  %11596 = load i32, ptr %11595, align 4, !tbaa !5
  store i32 %11596, ptr %224, align 4, !tbaa !5
  %11597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11598 = call i32 @s2n_print_stacktrace(ptr noundef %11597)
  %11599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11600 = trunc i8 %11599 to i1
  br i1 %11600, label %11601, label %11623

11601:                                            ; preds = %11594
  %11602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11603 = call i32 @fileno(ptr noundef %11602) #12
  %11604 = call i32 @isatty(i32 noundef %11603) #12
  %11605 = icmp ne i32 %11604, 0
  br i1 %11605, label %11606, label %11623

11606:                                            ; preds = %11601
  %11607 = load i32, ptr %224, align 4, !tbaa !5
  %11608 = call ptr @__errno_location() #13
  store i32 %11607, ptr %11608, align 4, !tbaa !5
  %11609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11610 = load i32, ptr @test_count, align 4, !tbaa !5
  %11611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11612 = load i32, ptr %11611, align 4, !tbaa !5
  %11613 = call ptr @s2n_strerror(i32 noundef %11612, ptr noundef @.str.4)
  %11614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11615 = load i32, ptr %11614, align 4, !tbaa !5
  %11616 = call ptr @s2n_strerror_debug(i32 noundef %11615, ptr noundef @.str.4)
  %11617 = call ptr @__errno_location() #13
  %11618 = load i32, ptr %11617, align 4, !tbaa !5
  %11619 = call ptr @strerror(i32 noundef %11618) #12
  %11620 = call ptr @__errno_location() #13
  %11621 = load i32, ptr %11620, align 4, !tbaa !5
  %11622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11609, ptr noundef @.str.2, i32 noundef %11610, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 555, ptr noundef %11613, ptr noundef %11616, ptr noundef %11619, i32 noundef %11621) #12
  br label %11640

11623:                                            ; preds = %11601, %11594
  %11624 = load i32, ptr %224, align 4, !tbaa !5
  %11625 = call ptr @__errno_location() #13
  store i32 %11624, ptr %11625, align 4, !tbaa !5
  %11626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11627 = load i32, ptr @test_count, align 4, !tbaa !5
  %11628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11629 = load i32, ptr %11628, align 4, !tbaa !5
  %11630 = call ptr @s2n_strerror(i32 noundef %11629, ptr noundef @.str.4)
  %11631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11632 = load i32, ptr %11631, align 4, !tbaa !5
  %11633 = call ptr @s2n_strerror_debug(i32 noundef %11632, ptr noundef @.str.4)
  %11634 = call ptr @__errno_location() #13
  %11635 = load i32, ptr %11634, align 4, !tbaa !5
  %11636 = call ptr @strerror(i32 noundef %11635) #12
  %11637 = call ptr @__errno_location() #13
  %11638 = load i32, ptr %11637, align 4, !tbaa !5
  %11639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11626, ptr noundef @.str.5, i32 noundef %11627, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 555, ptr noundef %11630, ptr noundef %11633, ptr noundef %11636, i32 noundef %11638) #12
  br label %11640

11640:                                            ; preds = %11623, %11606
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #12
  br label %11641

11641:                                            ; preds = %11640
  br label %11642

11642:                                            ; preds = %11641
  call void @exit(i32 noundef 1) #14
  unreachable

11643:                                            ; No predecessors!
  br label %11644

11644:                                            ; preds = %11643
  br label %11645

11645:                                            ; preds = %11644, %11584
  br label %11646

11646:                                            ; preds = %11645
  br label %11647

11647:                                            ; preds = %11646
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #12
  store ptr @s2n_ecdhe_rsa_with_aes_128_cbc_sha, ptr %225, align 8, !tbaa !9
  br label %11648

11648:                                            ; preds = %11647
  %11649 = load i32, ptr @test_count, align 4, !tbaa !5
  %11650 = add nsw i32 %11649, 1
  store i32 %11650, ptr @test_count, align 4, !tbaa !5
  %11651 = load ptr, ptr %47, align 8, !tbaa !9
  %11652 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11651, ptr noundef @.str.53)
  %11653 = icmp eq i32 %11652, -1
  br i1 %11653, label %11654, label %11707

11654:                                            ; preds = %11648
  br label %11655

11655:                                            ; preds = %11654
  br label %11656

11656:                                            ; preds = %11655
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #12
  %11657 = call ptr @__errno_location() #13
  %11658 = load i32, ptr %11657, align 4, !tbaa !5
  store i32 %11658, ptr %226, align 4, !tbaa !5
  %11659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11660 = call i32 @s2n_print_stacktrace(ptr noundef %11659)
  %11661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11662 = trunc i8 %11661 to i1
  br i1 %11662, label %11663, label %11685

11663:                                            ; preds = %11656
  %11664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11665 = call i32 @fileno(ptr noundef %11664) #12
  %11666 = call i32 @isatty(i32 noundef %11665) #12
  %11667 = icmp ne i32 %11666, 0
  br i1 %11667, label %11668, label %11685

11668:                                            ; preds = %11663
  %11669 = load i32, ptr %226, align 4, !tbaa !5
  %11670 = call ptr @__errno_location() #13
  store i32 %11669, ptr %11670, align 4, !tbaa !5
  %11671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11672 = load i32, ptr @test_count, align 4, !tbaa !5
  %11673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11674 = load i32, ptr %11673, align 4, !tbaa !5
  %11675 = call ptr @s2n_strerror(i32 noundef %11674, ptr noundef @.str.4)
  %11676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11677 = load i32, ptr %11676, align 4, !tbaa !5
  %11678 = call ptr @s2n_strerror_debug(i32 noundef %11677, ptr noundef @.str.4)
  %11679 = call ptr @__errno_location() #13
  %11680 = load i32, ptr %11679, align 4, !tbaa !5
  %11681 = call ptr @strerror(i32 noundef %11680) #12
  %11682 = call ptr @__errno_location() #13
  %11683 = load i32, ptr %11682, align 4, !tbaa !5
  %11684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11671, ptr noundef @.str.2, i32 noundef %11672, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 561, ptr noundef %11675, ptr noundef %11678, ptr noundef %11681, i32 noundef %11683) #12
  br label %11702

11685:                                            ; preds = %11663, %11656
  %11686 = load i32, ptr %226, align 4, !tbaa !5
  %11687 = call ptr @__errno_location() #13
  store i32 %11686, ptr %11687, align 4, !tbaa !5
  %11688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11689 = load i32, ptr @test_count, align 4, !tbaa !5
  %11690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11691 = load i32, ptr %11690, align 4, !tbaa !5
  %11692 = call ptr @s2n_strerror(i32 noundef %11691, ptr noundef @.str.4)
  %11693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11694 = load i32, ptr %11693, align 4, !tbaa !5
  %11695 = call ptr @s2n_strerror_debug(i32 noundef %11694, ptr noundef @.str.4)
  %11696 = call ptr @__errno_location() #13
  %11697 = load i32, ptr %11696, align 4, !tbaa !5
  %11698 = call ptr @strerror(i32 noundef %11697) #12
  %11699 = call ptr @__errno_location() #13
  %11700 = load i32, ptr %11699, align 4, !tbaa !5
  %11701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11688, ptr noundef @.str.5, i32 noundef %11689, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 561, ptr noundef %11692, ptr noundef %11695, ptr noundef %11698, i32 noundef %11700) #12
  br label %11702

11702:                                            ; preds = %11685, %11668
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #12
  br label %11703

11703:                                            ; preds = %11702
  br label %11704

11704:                                            ; preds = %11703
  call void @exit(i32 noundef 1) #14
  unreachable

11705:                                            ; No predecessors!
  br label %11706

11706:                                            ; preds = %11705
  br label %11707

11707:                                            ; preds = %11706, %11648
  br label %11708

11708:                                            ; preds = %11707
  br label %11709

11709:                                            ; preds = %11708
  %11710 = load ptr, ptr %103, align 8, !tbaa !9
  %11711 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %11710, i32 0, i32 1
  %11712 = load ptr, ptr %11711, align 8, !tbaa !55
  %11713 = getelementptr inbounds ptr, ptr %11712, i64 0
  %11714 = load ptr, ptr %11713, align 8, !tbaa !9
  %11715 = load ptr, ptr %47, align 8, !tbaa !9
  %11716 = getelementptr inbounds %struct.s2n_connection, ptr %11715, i32 0, i32 31
  %11717 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11716, i32 0, i32 1
  %11718 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11717, i32 0, i32 0
  store ptr %11714, ptr %11718, align 8, !tbaa !57
  %11719 = load ptr, ptr %47, align 8, !tbaa !9
  %11720 = getelementptr inbounds %struct.s2n_connection, ptr %11719, i32 0, i32 22
  %11721 = load i8, ptr %11720, align 1, !tbaa !43
  %11722 = load ptr, ptr %47, align 8, !tbaa !9
  %11723 = getelementptr inbounds %struct.s2n_connection, ptr %11722, i32 0, i32 23
  store i8 %11721, ptr %11723, align 4, !tbaa !42
  br label %11724

11724:                                            ; preds = %11709
  %11725 = load i32, ptr @test_count, align 4, !tbaa !5
  %11726 = add nsw i32 %11725, 1
  store i32 %11726, ptr @test_count, align 4, !tbaa !5
  %11727 = load ptr, ptr %47, align 8, !tbaa !9
  %11728 = load ptr, ptr %48, align 8, !tbaa !9
  %11729 = call i32 @s2n_connection_set_config(ptr noundef %11727, ptr noundef %11728)
  %11730 = icmp eq i32 %11729, -1
  br i1 %11730, label %11731, label %11784

11731:                                            ; preds = %11724
  br label %11732

11732:                                            ; preds = %11731
  br label %11733

11733:                                            ; preds = %11732
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #12
  %11734 = call ptr @__errno_location() #13
  %11735 = load i32, ptr %11734, align 4, !tbaa !5
  store i32 %11735, ptr %227, align 4, !tbaa !5
  %11736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11737 = call i32 @s2n_print_stacktrace(ptr noundef %11736)
  %11738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11739 = trunc i8 %11738 to i1
  br i1 %11739, label %11740, label %11762

11740:                                            ; preds = %11733
  %11741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11742 = call i32 @fileno(ptr noundef %11741) #12
  %11743 = call i32 @isatty(i32 noundef %11742) #12
  %11744 = icmp ne i32 %11743, 0
  br i1 %11744, label %11745, label %11762

11745:                                            ; preds = %11740
  %11746 = load i32, ptr %227, align 4, !tbaa !5
  %11747 = call ptr @__errno_location() #13
  store i32 %11746, ptr %11747, align 4, !tbaa !5
  %11748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11749 = load i32, ptr @test_count, align 4, !tbaa !5
  %11750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11751 = load i32, ptr %11750, align 4, !tbaa !5
  %11752 = call ptr @s2n_strerror(i32 noundef %11751, ptr noundef @.str.4)
  %11753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11754 = load i32, ptr %11753, align 4, !tbaa !5
  %11755 = call ptr @s2n_strerror_debug(i32 noundef %11754, ptr noundef @.str.4)
  %11756 = call ptr @__errno_location() #13
  %11757 = load i32, ptr %11756, align 4, !tbaa !5
  %11758 = call ptr @strerror(i32 noundef %11757) #12
  %11759 = call ptr @__errno_location() #13
  %11760 = load i32, ptr %11759, align 4, !tbaa !5
  %11761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11748, ptr noundef @.str.2, i32 noundef %11749, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 564, ptr noundef %11752, ptr noundef %11755, ptr noundef %11758, i32 noundef %11760) #12
  br label %11779

11762:                                            ; preds = %11740, %11733
  %11763 = load i32, ptr %227, align 4, !tbaa !5
  %11764 = call ptr @__errno_location() #13
  store i32 %11763, ptr %11764, align 4, !tbaa !5
  %11765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11766 = load i32, ptr @test_count, align 4, !tbaa !5
  %11767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11768 = load i32, ptr %11767, align 4, !tbaa !5
  %11769 = call ptr @s2n_strerror(i32 noundef %11768, ptr noundef @.str.4)
  %11770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11771 = load i32, ptr %11770, align 4, !tbaa !5
  %11772 = call ptr @s2n_strerror_debug(i32 noundef %11771, ptr noundef @.str.4)
  %11773 = call ptr @__errno_location() #13
  %11774 = load i32, ptr %11773, align 4, !tbaa !5
  %11775 = call ptr @strerror(i32 noundef %11774) #12
  %11776 = call ptr @__errno_location() #13
  %11777 = load i32, ptr %11776, align 4, !tbaa !5
  %11778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11765, ptr noundef @.str.5, i32 noundef %11766, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 564, ptr noundef %11769, ptr noundef %11772, ptr noundef %11775, i32 noundef %11777) #12
  br label %11779

11779:                                            ; preds = %11762, %11745
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #12
  br label %11780

11780:                                            ; preds = %11779
  br label %11781

11781:                                            ; preds = %11780
  call void @exit(i32 noundef 1) #14
  unreachable

11782:                                            ; No predecessors!
  br label %11783

11783:                                            ; preds = %11782
  br label %11784

11784:                                            ; preds = %11783, %11724
  br label %11785

11785:                                            ; preds = %11784
  br label %11786

11786:                                            ; preds = %11785
  br label %11787

11787:                                            ; preds = %11786
  %11788 = load i32, ptr @test_count, align 4, !tbaa !5
  %11789 = add nsw i32 %11788, 1
  store i32 %11789, ptr @test_count, align 4, !tbaa !5
  %11790 = load ptr, ptr %47, align 8, !tbaa !9
  %11791 = getelementptr inbounds [4 x i8], ptr %74, i64 0, i64 0
  %11792 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %11790, ptr noundef %11791, i16 noundef zeroext 2)
  %11793 = icmp eq i32 %11792, -1
  br i1 %11793, label %11794, label %11847

11794:                                            ; preds = %11787
  br label %11795

11795:                                            ; preds = %11794
  br label %11796

11796:                                            ; preds = %11795
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #12
  %11797 = call ptr @__errno_location() #13
  %11798 = load i32, ptr %11797, align 4, !tbaa !5
  store i32 %11798, ptr %228, align 4, !tbaa !5
  %11799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11800 = call i32 @s2n_print_stacktrace(ptr noundef %11799)
  %11801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11802 = trunc i8 %11801 to i1
  br i1 %11802, label %11803, label %11825

11803:                                            ; preds = %11796
  %11804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11805 = call i32 @fileno(ptr noundef %11804) #12
  %11806 = call i32 @isatty(i32 noundef %11805) #12
  %11807 = icmp ne i32 %11806, 0
  br i1 %11807, label %11808, label %11825

11808:                                            ; preds = %11803
  %11809 = load i32, ptr %228, align 4, !tbaa !5
  %11810 = call ptr @__errno_location() #13
  store i32 %11809, ptr %11810, align 4, !tbaa !5
  %11811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11812 = load i32, ptr @test_count, align 4, !tbaa !5
  %11813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11814 = load i32, ptr %11813, align 4, !tbaa !5
  %11815 = call ptr @s2n_strerror(i32 noundef %11814, ptr noundef @.str.4)
  %11816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11817 = load i32, ptr %11816, align 4, !tbaa !5
  %11818 = call ptr @s2n_strerror_debug(i32 noundef %11817, ptr noundef @.str.4)
  %11819 = call ptr @__errno_location() #13
  %11820 = load i32, ptr %11819, align 4, !tbaa !5
  %11821 = call ptr @strerror(i32 noundef %11820) #12
  %11822 = call ptr @__errno_location() #13
  %11823 = load i32, ptr %11822, align 4, !tbaa !5
  %11824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11811, ptr noundef @.str.2, i32 noundef %11812, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 565, ptr noundef %11815, ptr noundef %11818, ptr noundef %11821, i32 noundef %11823) #12
  br label %11842

11825:                                            ; preds = %11803, %11796
  %11826 = load i32, ptr %228, align 4, !tbaa !5
  %11827 = call ptr @__errno_location() #13
  store i32 %11826, ptr %11827, align 4, !tbaa !5
  %11828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11829 = load i32, ptr @test_count, align 4, !tbaa !5
  %11830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11831 = load i32, ptr %11830, align 4, !tbaa !5
  %11832 = call ptr @s2n_strerror(i32 noundef %11831, ptr noundef @.str.4)
  %11833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11834 = load i32, ptr %11833, align 4, !tbaa !5
  %11835 = call ptr @s2n_strerror_debug(i32 noundef %11834, ptr noundef @.str.4)
  %11836 = call ptr @__errno_location() #13
  %11837 = load i32, ptr %11836, align 4, !tbaa !5
  %11838 = call ptr @strerror(i32 noundef %11837) #12
  %11839 = call ptr @__errno_location() #13
  %11840 = load i32, ptr %11839, align 4, !tbaa !5
  %11841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11828, ptr noundef @.str.5, i32 noundef %11829, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 565, ptr noundef %11832, ptr noundef %11835, ptr noundef %11838, i32 noundef %11840) #12
  br label %11842

11842:                                            ; preds = %11825, %11808
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #12
  br label %11843

11843:                                            ; preds = %11842
  br label %11844

11844:                                            ; preds = %11843
  call void @exit(i32 noundef 1) #14
  unreachable

11845:                                            ; No predecessors!
  br label %11846

11846:                                            ; preds = %11845
  br label %11847

11847:                                            ; preds = %11846, %11787
  br label %11848

11848:                                            ; preds = %11847
  br label %11849

11849:                                            ; preds = %11848
  br label %11850

11850:                                            ; preds = %11849
  %11851 = load i32, ptr @test_count, align 4, !tbaa !5
  %11852 = add nsw i32 %11851, 1
  store i32 %11852, ptr @test_count, align 4, !tbaa !5
  %11853 = load ptr, ptr %47, align 8, !tbaa !9
  %11854 = load i32, ptr %11853, align 8
  %11855 = lshr i32 %11854, 3
  %11856 = and i32 %11855, 1
  %11857 = icmp eq i32 %11856, 0
  br i1 %11857, label %11911, label %11858

11858:                                            ; preds = %11850
  br label %11859

11859:                                            ; preds = %11858
  br label %11860

11860:                                            ; preds = %11859
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #12
  %11861 = call ptr @__errno_location() #13
  %11862 = load i32, ptr %11861, align 4, !tbaa !5
  store i32 %11862, ptr %229, align 4, !tbaa !5
  %11863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11864 = call i32 @s2n_print_stacktrace(ptr noundef %11863)
  %11865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11866 = trunc i8 %11865 to i1
  br i1 %11866, label %11867, label %11889

11867:                                            ; preds = %11860
  %11868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11869 = call i32 @fileno(ptr noundef %11868) #12
  %11870 = call i32 @isatty(i32 noundef %11869) #12
  %11871 = icmp ne i32 %11870, 0
  br i1 %11871, label %11872, label %11889

11872:                                            ; preds = %11867
  %11873 = load i32, ptr %229, align 4, !tbaa !5
  %11874 = call ptr @__errno_location() #13
  store i32 %11873, ptr %11874, align 4, !tbaa !5
  %11875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11876 = load i32, ptr @test_count, align 4, !tbaa !5
  %11877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11878 = load i32, ptr %11877, align 4, !tbaa !5
  %11879 = call ptr @s2n_strerror(i32 noundef %11878, ptr noundef @.str.4)
  %11880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11881 = load i32, ptr %11880, align 4, !tbaa !5
  %11882 = call ptr @s2n_strerror_debug(i32 noundef %11881, ptr noundef @.str.4)
  %11883 = call ptr @__errno_location() #13
  %11884 = load i32, ptr %11883, align 4, !tbaa !5
  %11885 = call ptr @strerror(i32 noundef %11884) #12
  %11886 = call ptr @__errno_location() #13
  %11887 = load i32, ptr %11886, align 4, !tbaa !5
  %11888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11875, ptr noundef @.str.2, i32 noundef %11876, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 566, ptr noundef %11879, ptr noundef %11882, ptr noundef %11885, i32 noundef %11887) #12
  br label %11906

11889:                                            ; preds = %11867, %11860
  %11890 = load i32, ptr %229, align 4, !tbaa !5
  %11891 = call ptr @__errno_location() #13
  store i32 %11890, ptr %11891, align 4, !tbaa !5
  %11892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11893 = load i32, ptr @test_count, align 4, !tbaa !5
  %11894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11895 = load i32, ptr %11894, align 4, !tbaa !5
  %11896 = call ptr @s2n_strerror(i32 noundef %11895, ptr noundef @.str.4)
  %11897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11898 = load i32, ptr %11897, align 4, !tbaa !5
  %11899 = call ptr @s2n_strerror_debug(i32 noundef %11898, ptr noundef @.str.4)
  %11900 = call ptr @__errno_location() #13
  %11901 = load i32, ptr %11900, align 4, !tbaa !5
  %11902 = call ptr @strerror(i32 noundef %11901) #12
  %11903 = call ptr @__errno_location() #13
  %11904 = load i32, ptr %11903, align 4, !tbaa !5
  %11905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11892, ptr noundef @.str.5, i32 noundef %11893, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 566, ptr noundef %11896, ptr noundef %11899, ptr noundef %11902, i32 noundef %11904) #12
  br label %11906

11906:                                            ; preds = %11889, %11872
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #12
  br label %11907

11907:                                            ; preds = %11906
  br label %11908

11908:                                            ; preds = %11907
  call void @exit(i32 noundef 1) #14
  unreachable

11909:                                            ; No predecessors!
  br label %11910

11910:                                            ; preds = %11909
  br label %11911

11911:                                            ; preds = %11910, %11850
  br label %11912

11912:                                            ; preds = %11911
  br label %11913

11913:                                            ; preds = %11912
  br label %11914

11914:                                            ; preds = %11913
  %11915 = load i32, ptr @test_count, align 4, !tbaa !5
  %11916 = add nsw i32 %11915, 1
  store i32 %11916, ptr @test_count, align 4, !tbaa !5
  %11917 = load ptr, ptr %47, align 8, !tbaa !9
  %11918 = getelementptr inbounds %struct.s2n_connection, ptr %11917, i32 0, i32 27
  %11919 = load ptr, ptr %11918, align 8, !tbaa !48
  %11920 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %11919, i32 0, i32 0
  %11921 = load ptr, ptr %11920, align 8, !tbaa !49
  %11922 = load ptr, ptr %225, align 8, !tbaa !9
  %11923 = icmp eq ptr %11921, %11922
  br i1 %11923, label %11977, label %11924

11924:                                            ; preds = %11914
  br label %11925

11925:                                            ; preds = %11924
  br label %11926

11926:                                            ; preds = %11925
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #12
  %11927 = call ptr @__errno_location() #13
  %11928 = load i32, ptr %11927, align 4, !tbaa !5
  store i32 %11928, ptr %230, align 4, !tbaa !5
  %11929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11930 = call i32 @s2n_print_stacktrace(ptr noundef %11929)
  %11931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11932 = trunc i8 %11931 to i1
  br i1 %11932, label %11933, label %11955

11933:                                            ; preds = %11926
  %11934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11935 = call i32 @fileno(ptr noundef %11934) #12
  %11936 = call i32 @isatty(i32 noundef %11935) #12
  %11937 = icmp ne i32 %11936, 0
  br i1 %11937, label %11938, label %11955

11938:                                            ; preds = %11933
  %11939 = load i32, ptr %230, align 4, !tbaa !5
  %11940 = call ptr @__errno_location() #13
  store i32 %11939, ptr %11940, align 4, !tbaa !5
  %11941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11942 = load i32, ptr @test_count, align 4, !tbaa !5
  %11943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11944 = load i32, ptr %11943, align 4, !tbaa !5
  %11945 = call ptr @s2n_strerror(i32 noundef %11944, ptr noundef @.str.4)
  %11946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11947 = load i32, ptr %11946, align 4, !tbaa !5
  %11948 = call ptr @s2n_strerror_debug(i32 noundef %11947, ptr noundef @.str.4)
  %11949 = call ptr @__errno_location() #13
  %11950 = load i32, ptr %11949, align 4, !tbaa !5
  %11951 = call ptr @strerror(i32 noundef %11950) #12
  %11952 = call ptr @__errno_location() #13
  %11953 = load i32, ptr %11952, align 4, !tbaa !5
  %11954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11941, ptr noundef @.str.2, i32 noundef %11942, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 567, ptr noundef %11945, ptr noundef %11948, ptr noundef %11951, i32 noundef %11953) #12
  br label %11972

11955:                                            ; preds = %11933, %11926
  %11956 = load i32, ptr %230, align 4, !tbaa !5
  %11957 = call ptr @__errno_location() #13
  store i32 %11956, ptr %11957, align 4, !tbaa !5
  %11958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11959 = load i32, ptr @test_count, align 4, !tbaa !5
  %11960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11961 = load i32, ptr %11960, align 4, !tbaa !5
  %11962 = call ptr @s2n_strerror(i32 noundef %11961, ptr noundef @.str.4)
  %11963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11964 = load i32, ptr %11963, align 4, !tbaa !5
  %11965 = call ptr @s2n_strerror_debug(i32 noundef %11964, ptr noundef @.str.4)
  %11966 = call ptr @__errno_location() #13
  %11967 = load i32, ptr %11966, align 4, !tbaa !5
  %11968 = call ptr @strerror(i32 noundef %11967) #12
  %11969 = call ptr @__errno_location() #13
  %11970 = load i32, ptr %11969, align 4, !tbaa !5
  %11971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11958, ptr noundef @.str.5, i32 noundef %11959, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 567, ptr noundef %11962, ptr noundef %11965, ptr noundef %11968, i32 noundef %11970) #12
  br label %11972

11972:                                            ; preds = %11955, %11938
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #12
  br label %11973

11973:                                            ; preds = %11972
  br label %11974

11974:                                            ; preds = %11973
  call void @exit(i32 noundef 1) #14
  unreachable

11975:                                            ; No predecessors!
  br label %11976

11976:                                            ; preds = %11975
  br label %11977

11977:                                            ; preds = %11976, %11914
  br label %11978

11978:                                            ; preds = %11977
  br label %11979

11979:                                            ; preds = %11978
  br label %11980

11980:                                            ; preds = %11979
  %11981 = load i32, ptr @test_count, align 4, !tbaa !5
  %11982 = add nsw i32 %11981, 1
  store i32 %11982, ptr @test_count, align 4, !tbaa !5
  %11983 = load ptr, ptr %47, align 8, !tbaa !9
  %11984 = call i32 @s2n_connection_wipe(ptr noundef %11983)
  %11985 = icmp eq i32 %11984, -1
  br i1 %11985, label %11986, label %12039

11986:                                            ; preds = %11980
  br label %11987

11987:                                            ; preds = %11986
  br label %11988

11988:                                            ; preds = %11987
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #12
  %11989 = call ptr @__errno_location() #13
  %11990 = load i32, ptr %11989, align 4, !tbaa !5
  store i32 %11990, ptr %231, align 4, !tbaa !5
  %11991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11992 = call i32 @s2n_print_stacktrace(ptr noundef %11991)
  %11993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11994 = trunc i8 %11993 to i1
  br i1 %11994, label %11995, label %12017

11995:                                            ; preds = %11988
  %11996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11997 = call i32 @fileno(ptr noundef %11996) #12
  %11998 = call i32 @isatty(i32 noundef %11997) #12
  %11999 = icmp ne i32 %11998, 0
  br i1 %11999, label %12000, label %12017

12000:                                            ; preds = %11995
  %12001 = load i32, ptr %231, align 4, !tbaa !5
  %12002 = call ptr @__errno_location() #13
  store i32 %12001, ptr %12002, align 4, !tbaa !5
  %12003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12004 = load i32, ptr @test_count, align 4, !tbaa !5
  %12005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12006 = load i32, ptr %12005, align 4, !tbaa !5
  %12007 = call ptr @s2n_strerror(i32 noundef %12006, ptr noundef @.str.4)
  %12008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12009 = load i32, ptr %12008, align 4, !tbaa !5
  %12010 = call ptr @s2n_strerror_debug(i32 noundef %12009, ptr noundef @.str.4)
  %12011 = call ptr @__errno_location() #13
  %12012 = load i32, ptr %12011, align 4, !tbaa !5
  %12013 = call ptr @strerror(i32 noundef %12012) #12
  %12014 = call ptr @__errno_location() #13
  %12015 = load i32, ptr %12014, align 4, !tbaa !5
  %12016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12003, ptr noundef @.str.2, i32 noundef %12004, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 568, ptr noundef %12007, ptr noundef %12010, ptr noundef %12013, i32 noundef %12015) #12
  br label %12034

12017:                                            ; preds = %11995, %11988
  %12018 = load i32, ptr %231, align 4, !tbaa !5
  %12019 = call ptr @__errno_location() #13
  store i32 %12018, ptr %12019, align 4, !tbaa !5
  %12020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12021 = load i32, ptr @test_count, align 4, !tbaa !5
  %12022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12023 = load i32, ptr %12022, align 4, !tbaa !5
  %12024 = call ptr @s2n_strerror(i32 noundef %12023, ptr noundef @.str.4)
  %12025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12026 = load i32, ptr %12025, align 4, !tbaa !5
  %12027 = call ptr @s2n_strerror_debug(i32 noundef %12026, ptr noundef @.str.4)
  %12028 = call ptr @__errno_location() #13
  %12029 = load i32, ptr %12028, align 4, !tbaa !5
  %12030 = call ptr @strerror(i32 noundef %12029) #12
  %12031 = call ptr @__errno_location() #13
  %12032 = load i32, ptr %12031, align 4, !tbaa !5
  %12033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12020, ptr noundef @.str.5, i32 noundef %12021, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 568, ptr noundef %12024, ptr noundef %12027, ptr noundef %12030, i32 noundef %12032) #12
  br label %12034

12034:                                            ; preds = %12017, %12000
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #12
  br label %12035

12035:                                            ; preds = %12034
  br label %12036

12036:                                            ; preds = %12035
  call void @exit(i32 noundef 1) #14
  unreachable

12037:                                            ; No predecessors!
  br label %12038

12038:                                            ; preds = %12037
  br label %12039

12039:                                            ; preds = %12038, %11980
  br label %12040

12040:                                            ; preds = %12039
  br label %12041

12041:                                            ; preds = %12040
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #12
  %12042 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher_preferences, ptr @cipher_preferences_20170210, i32 0, i32 1), align 8, !tbaa !58
  %12043 = load i16, ptr @cipher_preferences_20170210, align 8, !tbaa !60
  %12044 = zext i16 %12043 to i32
  %12045 = sub nsw i32 %12044, 1
  %12046 = sext i32 %12045 to i64
  %12047 = getelementptr inbounds ptr, ptr %12042, i64 %12046
  %12048 = load ptr, ptr %12047, align 8, !tbaa !9
  store ptr %12048, ptr %232, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #12
  store i8 19, ptr %233, align 1, !tbaa !54
  %12049 = getelementptr inbounds i8, ptr %233, i64 1
  store i8 1, ptr %12049, align 1, !tbaa !54
  %12050 = getelementptr inbounds i8, ptr %233, i64 2
  store i8 19, ptr %12050, align 1, !tbaa !54
  %12051 = getelementptr inbounds i8, ptr %233, i64 3
  store i8 2, ptr %12051, align 1, !tbaa !54
  %12052 = getelementptr inbounds i8, ptr %233, i64 4
  store i8 19, ptr %12052, align 1, !tbaa !54
  %12053 = getelementptr inbounds i8, ptr %233, i64 5
  store i8 3, ptr %12053, align 1, !tbaa !54
  %12054 = getelementptr inbounds i8, ptr %233, i64 6
  %12055 = load ptr, ptr %232, align 8, !tbaa !9
  %12056 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %12055, i32 0, i32 3
  %12057 = getelementptr inbounds [2 x i8], ptr %12056, i64 0, i64 0
  %12058 = load i8, ptr %12057, align 8, !tbaa !54
  store i8 %12058, ptr %12054, align 1, !tbaa !54
  %12059 = getelementptr inbounds i8, ptr %233, i64 7
  %12060 = load ptr, ptr %232, align 8, !tbaa !9
  %12061 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %12060, i32 0, i32 3
  %12062 = getelementptr inbounds [2 x i8], ptr %12061, i64 0, i64 1
  %12063 = load i8, ptr %12062, align 1, !tbaa !54
  store i8 %12063, ptr %12059, align 1, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 1, ptr %234) #12
  store i8 4, ptr %234, align 1, !tbaa !54
  br label %12064

12064:                                            ; preds = %12041
  %12065 = load i32, ptr @test_count, align 4, !tbaa !5
  %12066 = add nsw i32 %12065, 1
  store i32 %12066, ptr @test_count, align 4, !tbaa !5
  %12067 = load ptr, ptr %47, align 8, !tbaa !9
  %12068 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %12067, ptr noundef @.str.53)
  %12069 = icmp eq i32 %12068, -1
  br i1 %12069, label %12070, label %12123

12070:                                            ; preds = %12064
  br label %12071

12071:                                            ; preds = %12070
  br label %12072

12072:                                            ; preds = %12071
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #12
  %12073 = call ptr @__errno_location() #13
  %12074 = load i32, ptr %12073, align 4, !tbaa !5
  store i32 %12074, ptr %235, align 4, !tbaa !5
  %12075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12076 = call i32 @s2n_print_stacktrace(ptr noundef %12075)
  %12077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12078 = trunc i8 %12077 to i1
  br i1 %12078, label %12079, label %12101

12079:                                            ; preds = %12072
  %12080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12081 = call i32 @fileno(ptr noundef %12080) #12
  %12082 = call i32 @isatty(i32 noundef %12081) #12
  %12083 = icmp ne i32 %12082, 0
  br i1 %12083, label %12084, label %12101

12084:                                            ; preds = %12079
  %12085 = load i32, ptr %235, align 4, !tbaa !5
  %12086 = call ptr @__errno_location() #13
  store i32 %12085, ptr %12086, align 4, !tbaa !5
  %12087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12088 = load i32, ptr @test_count, align 4, !tbaa !5
  %12089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12090 = load i32, ptr %12089, align 4, !tbaa !5
  %12091 = call ptr @s2n_strerror(i32 noundef %12090, ptr noundef @.str.4)
  %12092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12093 = load i32, ptr %12092, align 4, !tbaa !5
  %12094 = call ptr @s2n_strerror_debug(i32 noundef %12093, ptr noundef @.str.4)
  %12095 = call ptr @__errno_location() #13
  %12096 = load i32, ptr %12095, align 4, !tbaa !5
  %12097 = call ptr @strerror(i32 noundef %12096) #12
  %12098 = call ptr @__errno_location() #13
  %12099 = load i32, ptr %12098, align 4, !tbaa !5
  %12100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12087, ptr noundef @.str.2, i32 noundef %12088, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 582, ptr noundef %12091, ptr noundef %12094, ptr noundef %12097, i32 noundef %12099) #12
  br label %12118

12101:                                            ; preds = %12079, %12072
  %12102 = load i32, ptr %235, align 4, !tbaa !5
  %12103 = call ptr @__errno_location() #13
  store i32 %12102, ptr %12103, align 4, !tbaa !5
  %12104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12105 = load i32, ptr @test_count, align 4, !tbaa !5
  %12106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12107 = load i32, ptr %12106, align 4, !tbaa !5
  %12108 = call ptr @s2n_strerror(i32 noundef %12107, ptr noundef @.str.4)
  %12109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12110 = load i32, ptr %12109, align 4, !tbaa !5
  %12111 = call ptr @s2n_strerror_debug(i32 noundef %12110, ptr noundef @.str.4)
  %12112 = call ptr @__errno_location() #13
  %12113 = load i32, ptr %12112, align 4, !tbaa !5
  %12114 = call ptr @strerror(i32 noundef %12113) #12
  %12115 = call ptr @__errno_location() #13
  %12116 = load i32, ptr %12115, align 4, !tbaa !5
  %12117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12104, ptr noundef @.str.5, i32 noundef %12105, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 582, ptr noundef %12108, ptr noundef %12111, ptr noundef %12114, i32 noundef %12116) #12
  br label %12118

12118:                                            ; preds = %12101, %12084
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #12
  br label %12119

12119:                                            ; preds = %12118
  br label %12120

12120:                                            ; preds = %12119
  call void @exit(i32 noundef 1) #14
  unreachable

12121:                                            ; No predecessors!
  br label %12122

12122:                                            ; preds = %12121
  br label %12123

12123:                                            ; preds = %12122, %12064
  br label %12124

12124:                                            ; preds = %12123
  br label %12125

12125:                                            ; preds = %12124
  %12126 = load ptr, ptr %47, align 8, !tbaa !9
  %12127 = getelementptr inbounds %struct.s2n_connection, ptr %12126, i32 0, i32 21
  store i8 34, ptr %12127, align 2, !tbaa !15
  %12128 = load ptr, ptr %47, align 8, !tbaa !9
  %12129 = getelementptr inbounds %struct.s2n_connection, ptr %12128, i32 0, i32 23
  store i8 33, ptr %12129, align 4, !tbaa !42
  br label %12130

12130:                                            ; preds = %12125
  %12131 = load i32, ptr @test_count, align 4, !tbaa !5
  %12132 = add nsw i32 %12131, 1
  store i32 %12132, ptr @test_count, align 4, !tbaa !5
  %12133 = load ptr, ptr %47, align 8, !tbaa !9
  %12134 = getelementptr inbounds [8 x i8], ptr %233, i64 0, i64 0
  %12135 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %12133, ptr noundef %12134, i16 noundef zeroext 4)
  %12136 = icmp eq i32 %12135, -1
  br i1 %12136, label %12137, label %12190

12137:                                            ; preds = %12130
  br label %12138

12138:                                            ; preds = %12137
  br label %12139

12139:                                            ; preds = %12138
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #12
  %12140 = call ptr @__errno_location() #13
  %12141 = load i32, ptr %12140, align 4, !tbaa !5
  store i32 %12141, ptr %236, align 4, !tbaa !5
  %12142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12143 = call i32 @s2n_print_stacktrace(ptr noundef %12142)
  %12144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12145 = trunc i8 %12144 to i1
  br i1 %12145, label %12146, label %12168

12146:                                            ; preds = %12139
  %12147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12148 = call i32 @fileno(ptr noundef %12147) #12
  %12149 = call i32 @isatty(i32 noundef %12148) #12
  %12150 = icmp ne i32 %12149, 0
  br i1 %12150, label %12151, label %12168

12151:                                            ; preds = %12146
  %12152 = load i32, ptr %236, align 4, !tbaa !5
  %12153 = call ptr @__errno_location() #13
  store i32 %12152, ptr %12153, align 4, !tbaa !5
  %12154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12155 = load i32, ptr @test_count, align 4, !tbaa !5
  %12156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12157 = load i32, ptr %12156, align 4, !tbaa !5
  %12158 = call ptr @s2n_strerror(i32 noundef %12157, ptr noundef @.str.4)
  %12159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12160 = load i32, ptr %12159, align 4, !tbaa !5
  %12161 = call ptr @s2n_strerror_debug(i32 noundef %12160, ptr noundef @.str.4)
  %12162 = call ptr @__errno_location() #13
  %12163 = load i32, ptr %12162, align 4, !tbaa !5
  %12164 = call ptr @strerror(i32 noundef %12163) #12
  %12165 = call ptr @__errno_location() #13
  %12166 = load i32, ptr %12165, align 4, !tbaa !5
  %12167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12154, ptr noundef @.str.2, i32 noundef %12155, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 585, ptr noundef %12158, ptr noundef %12161, ptr noundef %12164, i32 noundef %12166) #12
  br label %12185

12168:                                            ; preds = %12146, %12139
  %12169 = load i32, ptr %236, align 4, !tbaa !5
  %12170 = call ptr @__errno_location() #13
  store i32 %12169, ptr %12170, align 4, !tbaa !5
  %12171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12172 = load i32, ptr @test_count, align 4, !tbaa !5
  %12173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12174 = load i32, ptr %12173, align 4, !tbaa !5
  %12175 = call ptr @s2n_strerror(i32 noundef %12174, ptr noundef @.str.4)
  %12176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12177 = load i32, ptr %12176, align 4, !tbaa !5
  %12178 = call ptr @s2n_strerror_debug(i32 noundef %12177, ptr noundef @.str.4)
  %12179 = call ptr @__errno_location() #13
  %12180 = load i32, ptr %12179, align 4, !tbaa !5
  %12181 = call ptr @strerror(i32 noundef %12180) #12
  %12182 = call ptr @__errno_location() #13
  %12183 = load i32, ptr %12182, align 4, !tbaa !5
  %12184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12171, ptr noundef @.str.5, i32 noundef %12172, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 585, ptr noundef %12175, ptr noundef %12178, ptr noundef %12181, i32 noundef %12183) #12
  br label %12185

12185:                                            ; preds = %12168, %12151
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #12
  br label %12186

12186:                                            ; preds = %12185
  br label %12187

12187:                                            ; preds = %12186
  call void @exit(i32 noundef 1) #14
  unreachable

12188:                                            ; No predecessors!
  br label %12189

12189:                                            ; preds = %12188
  br label %12190

12190:                                            ; preds = %12189, %12130
  br label %12191

12191:                                            ; preds = %12190
  br label %12192

12192:                                            ; preds = %12191
  br label %12193

12193:                                            ; preds = %12192
  %12194 = load i32, ptr @test_count, align 4, !tbaa !5
  %12195 = add nsw i32 %12194, 1
  store i32 %12195, ptr @test_count, align 4, !tbaa !5
  %12196 = load ptr, ptr %47, align 8, !tbaa !9
  %12197 = getelementptr inbounds %struct.s2n_connection, ptr %12196, i32 0, i32 27
  %12198 = load ptr, ptr %12197, align 8, !tbaa !48
  %12199 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %12198, i32 0, i32 0
  %12200 = load ptr, ptr %12199, align 8, !tbaa !49
  %12201 = load ptr, ptr %232, align 8, !tbaa !9
  %12202 = icmp eq ptr %12200, %12201
  br i1 %12202, label %12256, label %12203

12203:                                            ; preds = %12193
  br label %12204

12204:                                            ; preds = %12203
  br label %12205

12205:                                            ; preds = %12204
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #12
  %12206 = call ptr @__errno_location() #13
  %12207 = load i32, ptr %12206, align 4, !tbaa !5
  store i32 %12207, ptr %237, align 4, !tbaa !5
  %12208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12209 = call i32 @s2n_print_stacktrace(ptr noundef %12208)
  %12210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12211 = trunc i8 %12210 to i1
  br i1 %12211, label %12212, label %12234

12212:                                            ; preds = %12205
  %12213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12214 = call i32 @fileno(ptr noundef %12213) #12
  %12215 = call i32 @isatty(i32 noundef %12214) #12
  %12216 = icmp ne i32 %12215, 0
  br i1 %12216, label %12217, label %12234

12217:                                            ; preds = %12212
  %12218 = load i32, ptr %237, align 4, !tbaa !5
  %12219 = call ptr @__errno_location() #13
  store i32 %12218, ptr %12219, align 4, !tbaa !5
  %12220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12221 = load i32, ptr @test_count, align 4, !tbaa !5
  %12222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12223 = load i32, ptr %12222, align 4, !tbaa !5
  %12224 = call ptr @s2n_strerror(i32 noundef %12223, ptr noundef @.str.4)
  %12225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12226 = load i32, ptr %12225, align 4, !tbaa !5
  %12227 = call ptr @s2n_strerror_debug(i32 noundef %12226, ptr noundef @.str.4)
  %12228 = call ptr @__errno_location() #13
  %12229 = load i32, ptr %12228, align 4, !tbaa !5
  %12230 = call ptr @strerror(i32 noundef %12229) #12
  %12231 = call ptr @__errno_location() #13
  %12232 = load i32, ptr %12231, align 4, !tbaa !5
  %12233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12220, ptr noundef @.str.2, i32 noundef %12221, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 586, ptr noundef %12224, ptr noundef %12227, ptr noundef %12230, i32 noundef %12232) #12
  br label %12251

12234:                                            ; preds = %12212, %12205
  %12235 = load i32, ptr %237, align 4, !tbaa !5
  %12236 = call ptr @__errno_location() #13
  store i32 %12235, ptr %12236, align 4, !tbaa !5
  %12237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12238 = load i32, ptr @test_count, align 4, !tbaa !5
  %12239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12240 = load i32, ptr %12239, align 4, !tbaa !5
  %12241 = call ptr @s2n_strerror(i32 noundef %12240, ptr noundef @.str.4)
  %12242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12243 = load i32, ptr %12242, align 4, !tbaa !5
  %12244 = call ptr @s2n_strerror_debug(i32 noundef %12243, ptr noundef @.str.4)
  %12245 = call ptr @__errno_location() #13
  %12246 = load i32, ptr %12245, align 4, !tbaa !5
  %12247 = call ptr @strerror(i32 noundef %12246) #12
  %12248 = call ptr @__errno_location() #13
  %12249 = load i32, ptr %12248, align 4, !tbaa !5
  %12250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12237, ptr noundef @.str.5, i32 noundef %12238, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 586, ptr noundef %12241, ptr noundef %12244, ptr noundef %12247, i32 noundef %12249) #12
  br label %12251

12251:                                            ; preds = %12234, %12217
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #12
  br label %12252

12252:                                            ; preds = %12251
  br label %12253

12253:                                            ; preds = %12252
  call void @exit(i32 noundef 1) #14
  unreachable

12254:                                            ; No predecessors!
  br label %12255

12255:                                            ; preds = %12254
  br label %12256

12256:                                            ; preds = %12255, %12193
  br label %12257

12257:                                            ; preds = %12256
  br label %12258

12258:                                            ; preds = %12257
  br label %12259

12259:                                            ; preds = %12258
  %12260 = load i32, ptr @test_count, align 4, !tbaa !5
  %12261 = add nsw i32 %12260, 1
  store i32 %12261, ptr @test_count, align 4, !tbaa !5
  %12262 = load ptr, ptr %47, align 8, !tbaa !9
  %12263 = call i32 @s2n_connection_wipe(ptr noundef %12262)
  %12264 = icmp eq i32 %12263, -1
  br i1 %12264, label %12265, label %12318

12265:                                            ; preds = %12259
  br label %12266

12266:                                            ; preds = %12265
  br label %12267

12267:                                            ; preds = %12266
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #12
  %12268 = call ptr @__errno_location() #13
  %12269 = load i32, ptr %12268, align 4, !tbaa !5
  store i32 %12269, ptr %238, align 4, !tbaa !5
  %12270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12271 = call i32 @s2n_print_stacktrace(ptr noundef %12270)
  %12272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12273 = trunc i8 %12272 to i1
  br i1 %12273, label %12274, label %12296

12274:                                            ; preds = %12267
  %12275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12276 = call i32 @fileno(ptr noundef %12275) #12
  %12277 = call i32 @isatty(i32 noundef %12276) #12
  %12278 = icmp ne i32 %12277, 0
  br i1 %12278, label %12279, label %12296

12279:                                            ; preds = %12274
  %12280 = load i32, ptr %238, align 4, !tbaa !5
  %12281 = call ptr @__errno_location() #13
  store i32 %12280, ptr %12281, align 4, !tbaa !5
  %12282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12283 = load i32, ptr @test_count, align 4, !tbaa !5
  %12284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12285 = load i32, ptr %12284, align 4, !tbaa !5
  %12286 = call ptr @s2n_strerror(i32 noundef %12285, ptr noundef @.str.4)
  %12287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12288 = load i32, ptr %12287, align 4, !tbaa !5
  %12289 = call ptr @s2n_strerror_debug(i32 noundef %12288, ptr noundef @.str.4)
  %12290 = call ptr @__errno_location() #13
  %12291 = load i32, ptr %12290, align 4, !tbaa !5
  %12292 = call ptr @strerror(i32 noundef %12291) #12
  %12293 = call ptr @__errno_location() #13
  %12294 = load i32, ptr %12293, align 4, !tbaa !5
  %12295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12282, ptr noundef @.str.2, i32 noundef %12283, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 587, ptr noundef %12286, ptr noundef %12289, ptr noundef %12292, i32 noundef %12294) #12
  br label %12313

12296:                                            ; preds = %12274, %12267
  %12297 = load i32, ptr %238, align 4, !tbaa !5
  %12298 = call ptr @__errno_location() #13
  store i32 %12297, ptr %12298, align 4, !tbaa !5
  %12299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12300 = load i32, ptr @test_count, align 4, !tbaa !5
  %12301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12302 = load i32, ptr %12301, align 4, !tbaa !5
  %12303 = call ptr @s2n_strerror(i32 noundef %12302, ptr noundef @.str.4)
  %12304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12305 = load i32, ptr %12304, align 4, !tbaa !5
  %12306 = call ptr @s2n_strerror_debug(i32 noundef %12305, ptr noundef @.str.4)
  %12307 = call ptr @__errno_location() #13
  %12308 = load i32, ptr %12307, align 4, !tbaa !5
  %12309 = call ptr @strerror(i32 noundef %12308) #12
  %12310 = call ptr @__errno_location() #13
  %12311 = load i32, ptr %12310, align 4, !tbaa !5
  %12312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12299, ptr noundef @.str.5, i32 noundef %12300, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 587, ptr noundef %12303, ptr noundef %12306, ptr noundef %12309, i32 noundef %12311) #12
  br label %12313

12313:                                            ; preds = %12296, %12279
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #12
  br label %12314

12314:                                            ; preds = %12313
  br label %12315

12315:                                            ; preds = %12314
  call void @exit(i32 noundef 1) #14
  unreachable

12316:                                            ; No predecessors!
  br label %12317

12317:                                            ; preds = %12316
  br label %12318

12318:                                            ; preds = %12317, %12259
  br label %12319

12319:                                            ; preds = %12318
  br label %12320

12320:                                            ; preds = %12319
  %12321 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %12321, label %12322, label %12598

12322:                                            ; preds = %12320
  call void @llvm.lifetime.start.p0(i64 48, ptr %239) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %239, ptr align 16 @__const.main.test_cases, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #12
  store i64 0, ptr %240, align 8, !tbaa !61
  br label %12323

12323:                                            ; preds = %12594, %12322
  %12324 = load i64, ptr %240, align 8, !tbaa !61
  %12325 = icmp ult i64 %12324, 3
  br i1 %12325, label %12327, label %12326

12326:                                            ; preds = %12323
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #12
  br label %12597

12327:                                            ; preds = %12323
  br label %12328

12328:                                            ; preds = %12327
  %12329 = load i32, ptr @test_count, align 4, !tbaa !5
  %12330 = add nsw i32 %12329, 1
  store i32 %12330, ptr @test_count, align 4, !tbaa !5
  %12331 = load ptr, ptr %47, align 8, !tbaa !9
  %12332 = load i64, ptr %240, align 8, !tbaa !61
  %12333 = getelementptr inbounds [3 x %struct.test_case], ptr %239, i64 0, i64 %12332
  %12334 = getelementptr inbounds %struct.test_case, ptr %12333, i32 0, i32 0
  %12335 = load ptr, ptr %12334, align 16, !tbaa !62
  %12336 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %12331, ptr noundef %12335)
  %12337 = icmp eq i32 %12336, -1
  br i1 %12337, label %12338, label %12391

12338:                                            ; preds = %12328
  br label %12339

12339:                                            ; preds = %12338
  br label %12340

12340:                                            ; preds = %12339
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #12
  %12341 = call ptr @__errno_location() #13
  %12342 = load i32, ptr %12341, align 4, !tbaa !5
  store i32 %12342, ptr %241, align 4, !tbaa !5
  %12343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12344 = call i32 @s2n_print_stacktrace(ptr noundef %12343)
  %12345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12346 = trunc i8 %12345 to i1
  br i1 %12346, label %12347, label %12369

12347:                                            ; preds = %12340
  %12348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12349 = call i32 @fileno(ptr noundef %12348) #12
  %12350 = call i32 @isatty(i32 noundef %12349) #12
  %12351 = icmp ne i32 %12350, 0
  br i1 %12351, label %12352, label %12369

12352:                                            ; preds = %12347
  %12353 = load i32, ptr %241, align 4, !tbaa !5
  %12354 = call ptr @__errno_location() #13
  store i32 %12353, ptr %12354, align 4, !tbaa !5
  %12355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12356 = load i32, ptr @test_count, align 4, !tbaa !5
  %12357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12358 = load i32, ptr %12357, align 4, !tbaa !5
  %12359 = call ptr @s2n_strerror(i32 noundef %12358, ptr noundef @.str.4)
  %12360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12361 = load i32, ptr %12360, align 4, !tbaa !5
  %12362 = call ptr @s2n_strerror_debug(i32 noundef %12361, ptr noundef @.str.4)
  %12363 = call ptr @__errno_location() #13
  %12364 = load i32, ptr %12363, align 4, !tbaa !5
  %12365 = call ptr @strerror(i32 noundef %12364) #12
  %12366 = call ptr @__errno_location() #13
  %12367 = load i32, ptr %12366, align 4, !tbaa !5
  %12368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12355, ptr noundef @.str.2, i32 noundef %12356, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 604, ptr noundef %12359, ptr noundef %12362, ptr noundef %12365, i32 noundef %12367) #12
  br label %12386

12369:                                            ; preds = %12347, %12340
  %12370 = load i32, ptr %241, align 4, !tbaa !5
  %12371 = call ptr @__errno_location() #13
  store i32 %12370, ptr %12371, align 4, !tbaa !5
  %12372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12373 = load i32, ptr @test_count, align 4, !tbaa !5
  %12374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12375 = load i32, ptr %12374, align 4, !tbaa !5
  %12376 = call ptr @s2n_strerror(i32 noundef %12375, ptr noundef @.str.4)
  %12377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12378 = load i32, ptr %12377, align 4, !tbaa !5
  %12379 = call ptr @s2n_strerror_debug(i32 noundef %12378, ptr noundef @.str.4)
  %12380 = call ptr @__errno_location() #13
  %12381 = load i32, ptr %12380, align 4, !tbaa !5
  %12382 = call ptr @strerror(i32 noundef %12381) #12
  %12383 = call ptr @__errno_location() #13
  %12384 = load i32, ptr %12383, align 4, !tbaa !5
  %12385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12372, ptr noundef @.str.5, i32 noundef %12373, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 604, ptr noundef %12376, ptr noundef %12379, ptr noundef %12382, i32 noundef %12384) #12
  br label %12386

12386:                                            ; preds = %12369, %12352
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #12
  br label %12387

12387:                                            ; preds = %12386
  br label %12388

12388:                                            ; preds = %12387
  call void @exit(i32 noundef 1) #14
  unreachable

12389:                                            ; No predecessors!
  br label %12390

12390:                                            ; preds = %12389
  br label %12391

12391:                                            ; preds = %12390, %12328
  br label %12392

12392:                                            ; preds = %12391
  br label %12393

12393:                                            ; preds = %12392
  %12394 = load ptr, ptr %47, align 8, !tbaa !9
  %12395 = getelementptr inbounds %struct.s2n_connection, ptr %12394, i32 0, i32 21
  store i8 34, ptr %12395, align 2, !tbaa !15
  %12396 = load ptr, ptr %47, align 8, !tbaa !9
  %12397 = getelementptr inbounds %struct.s2n_connection, ptr %12396, i32 0, i32 23
  store i8 34, ptr %12397, align 4, !tbaa !42
  %12398 = load ptr, ptr %47, align 8, !tbaa !9
  %12399 = getelementptr inbounds %struct.s2n_connection, ptr %12398, i32 0, i32 22
  store i8 34, ptr %12399, align 1, !tbaa !43
  br label %12400

12400:                                            ; preds = %12393
  %12401 = load i32, ptr @test_count, align 4, !tbaa !5
  %12402 = add nsw i32 %12401, 1
  store i32 %12402, ptr @test_count, align 4, !tbaa !5
  %12403 = load ptr, ptr %47, align 8, !tbaa !9
  %12404 = getelementptr inbounds [8 x i8], ptr %233, i64 0, i64 0
  %12405 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %12403, ptr noundef %12404, i16 noundef zeroext 4)
  %12406 = icmp eq i32 %12405, -1
  br i1 %12406, label %12407, label %12460

12407:                                            ; preds = %12400
  br label %12408

12408:                                            ; preds = %12407
  br label %12409

12409:                                            ; preds = %12408
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #12
  %12410 = call ptr @__errno_location() #13
  %12411 = load i32, ptr %12410, align 4, !tbaa !5
  store i32 %12411, ptr %242, align 4, !tbaa !5
  %12412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12413 = call i32 @s2n_print_stacktrace(ptr noundef %12412)
  %12414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12415 = trunc i8 %12414 to i1
  br i1 %12415, label %12416, label %12438

12416:                                            ; preds = %12409
  %12417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12418 = call i32 @fileno(ptr noundef %12417) #12
  %12419 = call i32 @isatty(i32 noundef %12418) #12
  %12420 = icmp ne i32 %12419, 0
  br i1 %12420, label %12421, label %12438

12421:                                            ; preds = %12416
  %12422 = load i32, ptr %242, align 4, !tbaa !5
  %12423 = call ptr @__errno_location() #13
  store i32 %12422, ptr %12423, align 4, !tbaa !5
  %12424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12425 = load i32, ptr @test_count, align 4, !tbaa !5
  %12426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12427 = load i32, ptr %12426, align 4, !tbaa !5
  %12428 = call ptr @s2n_strerror(i32 noundef %12427, ptr noundef @.str.4)
  %12429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12430 = load i32, ptr %12429, align 4, !tbaa !5
  %12431 = call ptr @s2n_strerror_debug(i32 noundef %12430, ptr noundef @.str.4)
  %12432 = call ptr @__errno_location() #13
  %12433 = load i32, ptr %12432, align 4, !tbaa !5
  %12434 = call ptr @strerror(i32 noundef %12433) #12
  %12435 = call ptr @__errno_location() #13
  %12436 = load i32, ptr %12435, align 4, !tbaa !5
  %12437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12424, ptr noundef @.str.2, i32 noundef %12425, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 608, ptr noundef %12428, ptr noundef %12431, ptr noundef %12434, i32 noundef %12436) #12
  br label %12455

12438:                                            ; preds = %12416, %12409
  %12439 = load i32, ptr %242, align 4, !tbaa !5
  %12440 = call ptr @__errno_location() #13
  store i32 %12439, ptr %12440, align 4, !tbaa !5
  %12441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12442 = load i32, ptr @test_count, align 4, !tbaa !5
  %12443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12444 = load i32, ptr %12443, align 4, !tbaa !5
  %12445 = call ptr @s2n_strerror(i32 noundef %12444, ptr noundef @.str.4)
  %12446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12447 = load i32, ptr %12446, align 4, !tbaa !5
  %12448 = call ptr @s2n_strerror_debug(i32 noundef %12447, ptr noundef @.str.4)
  %12449 = call ptr @__errno_location() #13
  %12450 = load i32, ptr %12449, align 4, !tbaa !5
  %12451 = call ptr @strerror(i32 noundef %12450) #12
  %12452 = call ptr @__errno_location() #13
  %12453 = load i32, ptr %12452, align 4, !tbaa !5
  %12454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12441, ptr noundef @.str.5, i32 noundef %12442, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 608, ptr noundef %12445, ptr noundef %12448, ptr noundef %12451, i32 noundef %12453) #12
  br label %12455

12455:                                            ; preds = %12438, %12421
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #12
  br label %12456

12456:                                            ; preds = %12455
  br label %12457

12457:                                            ; preds = %12456
  call void @exit(i32 noundef 1) #14
  unreachable

12458:                                            ; No predecessors!
  br label %12459

12459:                                            ; preds = %12458
  br label %12460

12460:                                            ; preds = %12459, %12400
  br label %12461

12461:                                            ; preds = %12460
  br label %12462

12462:                                            ; preds = %12461
  br label %12463

12463:                                            ; preds = %12462
  %12464 = load i32, ptr @test_count, align 4, !tbaa !5
  %12465 = add nsw i32 %12464, 1
  store i32 %12465, ptr @test_count, align 4, !tbaa !5
  %12466 = load ptr, ptr %47, align 8, !tbaa !9
  %12467 = getelementptr inbounds %struct.s2n_connection, ptr %12466, i32 0, i32 27
  %12468 = load ptr, ptr %12467, align 8, !tbaa !48
  %12469 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %12468, i32 0, i32 0
  %12470 = load ptr, ptr %12469, align 8, !tbaa !49
  %12471 = load i64, ptr %240, align 8, !tbaa !61
  %12472 = getelementptr inbounds [3 x %struct.test_case], ptr %239, i64 0, i64 %12471
  %12473 = getelementptr inbounds %struct.test_case, ptr %12472, i32 0, i32 1
  %12474 = load ptr, ptr %12473, align 8, !tbaa !64
  %12475 = icmp eq ptr %12470, %12474
  br i1 %12475, label %12529, label %12476

12476:                                            ; preds = %12463
  br label %12477

12477:                                            ; preds = %12476
  br label %12478

12478:                                            ; preds = %12477
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #12
  %12479 = call ptr @__errno_location() #13
  %12480 = load i32, ptr %12479, align 4, !tbaa !5
  store i32 %12480, ptr %243, align 4, !tbaa !5
  %12481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12482 = call i32 @s2n_print_stacktrace(ptr noundef %12481)
  %12483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12484 = trunc i8 %12483 to i1
  br i1 %12484, label %12485, label %12507

12485:                                            ; preds = %12478
  %12486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12487 = call i32 @fileno(ptr noundef %12486) #12
  %12488 = call i32 @isatty(i32 noundef %12487) #12
  %12489 = icmp ne i32 %12488, 0
  br i1 %12489, label %12490, label %12507

12490:                                            ; preds = %12485
  %12491 = load i32, ptr %243, align 4, !tbaa !5
  %12492 = call ptr @__errno_location() #13
  store i32 %12491, ptr %12492, align 4, !tbaa !5
  %12493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12494 = load i32, ptr @test_count, align 4, !tbaa !5
  %12495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12496 = load i32, ptr %12495, align 4, !tbaa !5
  %12497 = call ptr @s2n_strerror(i32 noundef %12496, ptr noundef @.str.4)
  %12498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12499 = load i32, ptr %12498, align 4, !tbaa !5
  %12500 = call ptr @s2n_strerror_debug(i32 noundef %12499, ptr noundef @.str.4)
  %12501 = call ptr @__errno_location() #13
  %12502 = load i32, ptr %12501, align 4, !tbaa !5
  %12503 = call ptr @strerror(i32 noundef %12502) #12
  %12504 = call ptr @__errno_location() #13
  %12505 = load i32, ptr %12504, align 4, !tbaa !5
  %12506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12493, ptr noundef @.str.2, i32 noundef %12494, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 609, ptr noundef %12497, ptr noundef %12500, ptr noundef %12503, i32 noundef %12505) #12
  br label %12524

12507:                                            ; preds = %12485, %12478
  %12508 = load i32, ptr %243, align 4, !tbaa !5
  %12509 = call ptr @__errno_location() #13
  store i32 %12508, ptr %12509, align 4, !tbaa !5
  %12510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12511 = load i32, ptr @test_count, align 4, !tbaa !5
  %12512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12513 = load i32, ptr %12512, align 4, !tbaa !5
  %12514 = call ptr @s2n_strerror(i32 noundef %12513, ptr noundef @.str.4)
  %12515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12516 = load i32, ptr %12515, align 4, !tbaa !5
  %12517 = call ptr @s2n_strerror_debug(i32 noundef %12516, ptr noundef @.str.4)
  %12518 = call ptr @__errno_location() #13
  %12519 = load i32, ptr %12518, align 4, !tbaa !5
  %12520 = call ptr @strerror(i32 noundef %12519) #12
  %12521 = call ptr @__errno_location() #13
  %12522 = load i32, ptr %12521, align 4, !tbaa !5
  %12523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12510, ptr noundef @.str.5, i32 noundef %12511, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 609, ptr noundef %12514, ptr noundef %12517, ptr noundef %12520, i32 noundef %12522) #12
  br label %12524

12524:                                            ; preds = %12507, %12490
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #12
  br label %12525

12525:                                            ; preds = %12524
  br label %12526

12526:                                            ; preds = %12525
  call void @exit(i32 noundef 1) #14
  unreachable

12527:                                            ; No predecessors!
  br label %12528

12528:                                            ; preds = %12527
  br label %12529

12529:                                            ; preds = %12528, %12463
  br label %12530

12530:                                            ; preds = %12529
  br label %12531

12531:                                            ; preds = %12530
  br label %12532

12532:                                            ; preds = %12531
  %12533 = load i32, ptr @test_count, align 4, !tbaa !5
  %12534 = add nsw i32 %12533, 1
  store i32 %12534, ptr @test_count, align 4, !tbaa !5
  %12535 = load ptr, ptr %47, align 8, !tbaa !9
  %12536 = call i32 @s2n_connection_wipe(ptr noundef %12535)
  %12537 = icmp eq i32 %12536, -1
  br i1 %12537, label %12538, label %12591

12538:                                            ; preds = %12532
  br label %12539

12539:                                            ; preds = %12538
  br label %12540

12540:                                            ; preds = %12539
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #12
  %12541 = call ptr @__errno_location() #13
  %12542 = load i32, ptr %12541, align 4, !tbaa !5
  store i32 %12542, ptr %244, align 4, !tbaa !5
  %12543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12544 = call i32 @s2n_print_stacktrace(ptr noundef %12543)
  %12545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12546 = trunc i8 %12545 to i1
  br i1 %12546, label %12547, label %12569

12547:                                            ; preds = %12540
  %12548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12549 = call i32 @fileno(ptr noundef %12548) #12
  %12550 = call i32 @isatty(i32 noundef %12549) #12
  %12551 = icmp ne i32 %12550, 0
  br i1 %12551, label %12552, label %12569

12552:                                            ; preds = %12547
  %12553 = load i32, ptr %244, align 4, !tbaa !5
  %12554 = call ptr @__errno_location() #13
  store i32 %12553, ptr %12554, align 4, !tbaa !5
  %12555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12556 = load i32, ptr @test_count, align 4, !tbaa !5
  %12557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12558 = load i32, ptr %12557, align 4, !tbaa !5
  %12559 = call ptr @s2n_strerror(i32 noundef %12558, ptr noundef @.str.4)
  %12560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12561 = load i32, ptr %12560, align 4, !tbaa !5
  %12562 = call ptr @s2n_strerror_debug(i32 noundef %12561, ptr noundef @.str.4)
  %12563 = call ptr @__errno_location() #13
  %12564 = load i32, ptr %12563, align 4, !tbaa !5
  %12565 = call ptr @strerror(i32 noundef %12564) #12
  %12566 = call ptr @__errno_location() #13
  %12567 = load i32, ptr %12566, align 4, !tbaa !5
  %12568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12555, ptr noundef @.str.2, i32 noundef %12556, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 610, ptr noundef %12559, ptr noundef %12562, ptr noundef %12565, i32 noundef %12567) #12
  br label %12586

12569:                                            ; preds = %12547, %12540
  %12570 = load i32, ptr %244, align 4, !tbaa !5
  %12571 = call ptr @__errno_location() #13
  store i32 %12570, ptr %12571, align 4, !tbaa !5
  %12572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12573 = load i32, ptr @test_count, align 4, !tbaa !5
  %12574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12575 = load i32, ptr %12574, align 4, !tbaa !5
  %12576 = call ptr @s2n_strerror(i32 noundef %12575, ptr noundef @.str.4)
  %12577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12578 = load i32, ptr %12577, align 4, !tbaa !5
  %12579 = call ptr @s2n_strerror_debug(i32 noundef %12578, ptr noundef @.str.4)
  %12580 = call ptr @__errno_location() #13
  %12581 = load i32, ptr %12580, align 4, !tbaa !5
  %12582 = call ptr @strerror(i32 noundef %12581) #12
  %12583 = call ptr @__errno_location() #13
  %12584 = load i32, ptr %12583, align 4, !tbaa !5
  %12585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12572, ptr noundef @.str.5, i32 noundef %12573, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 610, ptr noundef %12576, ptr noundef %12579, ptr noundef %12582, i32 noundef %12584) #12
  br label %12586

12586:                                            ; preds = %12569, %12552
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #12
  br label %12587

12587:                                            ; preds = %12586
  br label %12588

12588:                                            ; preds = %12587
  call void @exit(i32 noundef 1) #14
  unreachable

12589:                                            ; No predecessors!
  br label %12590

12590:                                            ; preds = %12589
  br label %12591

12591:                                            ; preds = %12590, %12532
  br label %12592

12592:                                            ; preds = %12591
  br label %12593

12593:                                            ; preds = %12592
  br label %12594

12594:                                            ; preds = %12593
  %12595 = load i64, ptr %240, align 8, !tbaa !61
  %12596 = add i64 %12595, 1
  store i64 %12596, ptr %240, align 8, !tbaa !61
  br label %12323, !llvm.loop !65

12597:                                            ; preds = %12326
  call void @llvm.lifetime.end.p0(i64 48, ptr %239) #12
  br label %12598

12598:                                            ; preds = %12597, %12320
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %245, ptr align 1 @__const.main.wire_ciphers2, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %246) #12
  store i8 4, ptr %246, align 1, !tbaa !54
  br label %12599

12599:                                            ; preds = %12598
  %12600 = load i32, ptr @test_count, align 4, !tbaa !5
  %12601 = add nsw i32 %12600, 1
  store i32 %12601, ptr @test_count, align 4, !tbaa !5
  %12602 = load ptr, ptr %47, align 8, !tbaa !9
  %12603 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %12602, ptr noundef @.str.53)
  %12604 = icmp eq i32 %12603, -1
  br i1 %12604, label %12605, label %12658

12605:                                            ; preds = %12599
  br label %12606

12606:                                            ; preds = %12605
  br label %12607

12607:                                            ; preds = %12606
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #12
  %12608 = call ptr @__errno_location() #13
  %12609 = load i32, ptr %12608, align 4, !tbaa !5
  store i32 %12609, ptr %247, align 4, !tbaa !5
  %12610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12611 = call i32 @s2n_print_stacktrace(ptr noundef %12610)
  %12612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12613 = trunc i8 %12612 to i1
  br i1 %12613, label %12614, label %12636

12614:                                            ; preds = %12607
  %12615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12616 = call i32 @fileno(ptr noundef %12615) #12
  %12617 = call i32 @isatty(i32 noundef %12616) #12
  %12618 = icmp ne i32 %12617, 0
  br i1 %12618, label %12619, label %12636

12619:                                            ; preds = %12614
  %12620 = load i32, ptr %247, align 4, !tbaa !5
  %12621 = call ptr @__errno_location() #13
  store i32 %12620, ptr %12621, align 4, !tbaa !5
  %12622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12623 = load i32, ptr @test_count, align 4, !tbaa !5
  %12624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12625 = load i32, ptr %12624, align 4, !tbaa !5
  %12626 = call ptr @s2n_strerror(i32 noundef %12625, ptr noundef @.str.4)
  %12627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12628 = load i32, ptr %12627, align 4, !tbaa !5
  %12629 = call ptr @s2n_strerror_debug(i32 noundef %12628, ptr noundef @.str.4)
  %12630 = call ptr @__errno_location() #13
  %12631 = load i32, ptr %12630, align 4, !tbaa !5
  %12632 = call ptr @strerror(i32 noundef %12631) #12
  %12633 = call ptr @__errno_location() #13
  %12634 = load i32, ptr %12633, align 4, !tbaa !5
  %12635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12622, ptr noundef @.str.2, i32 noundef %12623, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 624, ptr noundef %12626, ptr noundef %12629, ptr noundef %12632, i32 noundef %12634) #12
  br label %12653

12636:                                            ; preds = %12614, %12607
  %12637 = load i32, ptr %247, align 4, !tbaa !5
  %12638 = call ptr @__errno_location() #13
  store i32 %12637, ptr %12638, align 4, !tbaa !5
  %12639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12640 = load i32, ptr @test_count, align 4, !tbaa !5
  %12641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12642 = load i32, ptr %12641, align 4, !tbaa !5
  %12643 = call ptr @s2n_strerror(i32 noundef %12642, ptr noundef @.str.4)
  %12644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12645 = load i32, ptr %12644, align 4, !tbaa !5
  %12646 = call ptr @s2n_strerror_debug(i32 noundef %12645, ptr noundef @.str.4)
  %12647 = call ptr @__errno_location() #13
  %12648 = load i32, ptr %12647, align 4, !tbaa !5
  %12649 = call ptr @strerror(i32 noundef %12648) #12
  %12650 = call ptr @__errno_location() #13
  %12651 = load i32, ptr %12650, align 4, !tbaa !5
  %12652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12639, ptr noundef @.str.5, i32 noundef %12640, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 624, ptr noundef %12643, ptr noundef %12646, ptr noundef %12649, i32 noundef %12651) #12
  br label %12653

12653:                                            ; preds = %12636, %12619
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #12
  br label %12654

12654:                                            ; preds = %12653
  br label %12655

12655:                                            ; preds = %12654
  call void @exit(i32 noundef 1) #14
  unreachable

12656:                                            ; No predecessors!
  br label %12657

12657:                                            ; preds = %12656
  br label %12658

12658:                                            ; preds = %12657, %12599
  br label %12659

12659:                                            ; preds = %12658
  br label %12660

12660:                                            ; preds = %12659
  %12661 = load ptr, ptr %47, align 8, !tbaa !9
  %12662 = getelementptr inbounds %struct.s2n_connection, ptr %12661, i32 0, i32 21
  store i8 34, ptr %12662, align 2, !tbaa !15
  %12663 = load ptr, ptr %47, align 8, !tbaa !9
  %12664 = getelementptr inbounds %struct.s2n_connection, ptr %12663, i32 0, i32 23
  store i8 34, ptr %12664, align 4, !tbaa !42
  %12665 = load ptr, ptr %47, align 8, !tbaa !9
  %12666 = getelementptr inbounds %struct.s2n_connection, ptr %12665, i32 0, i32 22
  store i8 34, ptr %12666, align 1, !tbaa !43
  %12667 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_chacha20_poly1305, i32 0, i32 3), align 8, !tbaa !67
  %12668 = call zeroext i1 %12667()
  br i1 %12668, label %12669, label %12798

12669:                                            ; preds = %12660
  br label %12670

12670:                                            ; preds = %12669
  %12671 = load i32, ptr @test_count, align 4, !tbaa !5
  %12672 = add nsw i32 %12671, 1
  store i32 %12672, ptr @test_count, align 4, !tbaa !5
  %12673 = load ptr, ptr %47, align 8, !tbaa !9
  %12674 = getelementptr inbounds [8 x i8], ptr %245, i64 0, i64 0
  %12675 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %12673, ptr noundef %12674, i16 noundef zeroext 4)
  %12676 = icmp eq i32 %12675, -1
  br i1 %12676, label %12677, label %12730

12677:                                            ; preds = %12670
  br label %12678

12678:                                            ; preds = %12677
  br label %12679

12679:                                            ; preds = %12678
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #12
  %12680 = call ptr @__errno_location() #13
  %12681 = load i32, ptr %12680, align 4, !tbaa !5
  store i32 %12681, ptr %248, align 4, !tbaa !5
  %12682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12683 = call i32 @s2n_print_stacktrace(ptr noundef %12682)
  %12684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12685 = trunc i8 %12684 to i1
  br i1 %12685, label %12686, label %12708

12686:                                            ; preds = %12679
  %12687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12688 = call i32 @fileno(ptr noundef %12687) #12
  %12689 = call i32 @isatty(i32 noundef %12688) #12
  %12690 = icmp ne i32 %12689, 0
  br i1 %12690, label %12691, label %12708

12691:                                            ; preds = %12686
  %12692 = load i32, ptr %248, align 4, !tbaa !5
  %12693 = call ptr @__errno_location() #13
  store i32 %12692, ptr %12693, align 4, !tbaa !5
  %12694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12695 = load i32, ptr @test_count, align 4, !tbaa !5
  %12696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12697 = load i32, ptr %12696, align 4, !tbaa !5
  %12698 = call ptr @s2n_strerror(i32 noundef %12697, ptr noundef @.str.4)
  %12699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12700 = load i32, ptr %12699, align 4, !tbaa !5
  %12701 = call ptr @s2n_strerror_debug(i32 noundef %12700, ptr noundef @.str.4)
  %12702 = call ptr @__errno_location() #13
  %12703 = load i32, ptr %12702, align 4, !tbaa !5
  %12704 = call ptr @strerror(i32 noundef %12703) #12
  %12705 = call ptr @__errno_location() #13
  %12706 = load i32, ptr %12705, align 4, !tbaa !5
  %12707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12694, ptr noundef @.str.2, i32 noundef %12695, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 630, ptr noundef %12698, ptr noundef %12701, ptr noundef %12704, i32 noundef %12706) #12
  br label %12725

12708:                                            ; preds = %12686, %12679
  %12709 = load i32, ptr %248, align 4, !tbaa !5
  %12710 = call ptr @__errno_location() #13
  store i32 %12709, ptr %12710, align 4, !tbaa !5
  %12711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12712 = load i32, ptr @test_count, align 4, !tbaa !5
  %12713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12714 = load i32, ptr %12713, align 4, !tbaa !5
  %12715 = call ptr @s2n_strerror(i32 noundef %12714, ptr noundef @.str.4)
  %12716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12717 = load i32, ptr %12716, align 4, !tbaa !5
  %12718 = call ptr @s2n_strerror_debug(i32 noundef %12717, ptr noundef @.str.4)
  %12719 = call ptr @__errno_location() #13
  %12720 = load i32, ptr %12719, align 4, !tbaa !5
  %12721 = call ptr @strerror(i32 noundef %12720) #12
  %12722 = call ptr @__errno_location() #13
  %12723 = load i32, ptr %12722, align 4, !tbaa !5
  %12724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12711, ptr noundef @.str.5, i32 noundef %12712, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 630, ptr noundef %12715, ptr noundef %12718, ptr noundef %12721, i32 noundef %12723) #12
  br label %12725

12725:                                            ; preds = %12708, %12691
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #12
  br label %12726

12726:                                            ; preds = %12725
  br label %12727

12727:                                            ; preds = %12726
  call void @exit(i32 noundef 1) #14
  unreachable

12728:                                            ; No predecessors!
  br label %12729

12729:                                            ; preds = %12728
  br label %12730

12730:                                            ; preds = %12729, %12670
  br label %12731

12731:                                            ; preds = %12730
  br label %12732

12732:                                            ; preds = %12731
  br label %12733

12733:                                            ; preds = %12732
  %12734 = load i32, ptr @test_count, align 4, !tbaa !5
  %12735 = add nsw i32 %12734, 1
  store i32 %12735, ptr @test_count, align 4, !tbaa !5
  %12736 = load ptr, ptr %47, align 8, !tbaa !9
  %12737 = getelementptr inbounds %struct.s2n_connection, ptr %12736, i32 0, i32 27
  %12738 = load ptr, ptr %12737, align 8, !tbaa !48
  %12739 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %12738, i32 0, i32 0
  %12740 = load ptr, ptr %12739, align 8, !tbaa !49
  %12741 = icmp eq ptr %12740, @s2n_tls13_chacha20_poly1305_sha256
  br i1 %12741, label %12795, label %12742

12742:                                            ; preds = %12733
  br label %12743

12743:                                            ; preds = %12742
  br label %12744

12744:                                            ; preds = %12743
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #12
  %12745 = call ptr @__errno_location() #13
  %12746 = load i32, ptr %12745, align 4, !tbaa !5
  store i32 %12746, ptr %249, align 4, !tbaa !5
  %12747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12748 = call i32 @s2n_print_stacktrace(ptr noundef %12747)
  %12749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12750 = trunc i8 %12749 to i1
  br i1 %12750, label %12751, label %12773

12751:                                            ; preds = %12744
  %12752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12753 = call i32 @fileno(ptr noundef %12752) #12
  %12754 = call i32 @isatty(i32 noundef %12753) #12
  %12755 = icmp ne i32 %12754, 0
  br i1 %12755, label %12756, label %12773

12756:                                            ; preds = %12751
  %12757 = load i32, ptr %249, align 4, !tbaa !5
  %12758 = call ptr @__errno_location() #13
  store i32 %12757, ptr %12758, align 4, !tbaa !5
  %12759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12760 = load i32, ptr @test_count, align 4, !tbaa !5
  %12761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12762 = load i32, ptr %12761, align 4, !tbaa !5
  %12763 = call ptr @s2n_strerror(i32 noundef %12762, ptr noundef @.str.4)
  %12764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12765 = load i32, ptr %12764, align 4, !tbaa !5
  %12766 = call ptr @s2n_strerror_debug(i32 noundef %12765, ptr noundef @.str.4)
  %12767 = call ptr @__errno_location() #13
  %12768 = load i32, ptr %12767, align 4, !tbaa !5
  %12769 = call ptr @strerror(i32 noundef %12768) #12
  %12770 = call ptr @__errno_location() #13
  %12771 = load i32, ptr %12770, align 4, !tbaa !5
  %12772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12759, ptr noundef @.str.2, i32 noundef %12760, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 631, ptr noundef %12763, ptr noundef %12766, ptr noundef %12769, i32 noundef %12771) #12
  br label %12790

12773:                                            ; preds = %12751, %12744
  %12774 = load i32, ptr %249, align 4, !tbaa !5
  %12775 = call ptr @__errno_location() #13
  store i32 %12774, ptr %12775, align 4, !tbaa !5
  %12776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12777 = load i32, ptr @test_count, align 4, !tbaa !5
  %12778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12779 = load i32, ptr %12778, align 4, !tbaa !5
  %12780 = call ptr @s2n_strerror(i32 noundef %12779, ptr noundef @.str.4)
  %12781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12782 = load i32, ptr %12781, align 4, !tbaa !5
  %12783 = call ptr @s2n_strerror_debug(i32 noundef %12782, ptr noundef @.str.4)
  %12784 = call ptr @__errno_location() #13
  %12785 = load i32, ptr %12784, align 4, !tbaa !5
  %12786 = call ptr @strerror(i32 noundef %12785) #12
  %12787 = call ptr @__errno_location() #13
  %12788 = load i32, ptr %12787, align 4, !tbaa !5
  %12789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12776, ptr noundef @.str.5, i32 noundef %12777, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 631, ptr noundef %12780, ptr noundef %12783, ptr noundef %12786, i32 noundef %12788) #12
  br label %12790

12790:                                            ; preds = %12773, %12756
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #12
  br label %12791

12791:                                            ; preds = %12790
  br label %12792

12792:                                            ; preds = %12791
  call void @exit(i32 noundef 1) #14
  unreachable

12793:                                            ; No predecessors!
  br label %12794

12794:                                            ; preds = %12793
  br label %12795

12795:                                            ; preds = %12794, %12733
  br label %12796

12796:                                            ; preds = %12795
  br label %12797

12797:                                            ; preds = %12796
  br label %12995

12798:                                            ; preds = %12660
  br label %12799

12799:                                            ; preds = %12798
  br label %12800

12800:                                            ; preds = %12799
  %12801 = load i32, ptr @test_count, align 4, !tbaa !5
  %12802 = add nsw i32 %12801, 1
  store i32 %12802, ptr @test_count, align 4, !tbaa !5
  %12803 = load ptr, ptr %47, align 8, !tbaa !9
  %12804 = getelementptr inbounds [8 x i8], ptr %245, i64 0, i64 0
  %12805 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %12803, ptr noundef %12804, i16 noundef zeroext 4)
  %12806 = icmp eq i32 %12805, -1
  br i1 %12806, label %12860, label %12807

12807:                                            ; preds = %12800
  br label %12808

12808:                                            ; preds = %12807
  br label %12809

12809:                                            ; preds = %12808
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #12
  %12810 = call ptr @__errno_location() #13
  %12811 = load i32, ptr %12810, align 4, !tbaa !5
  store i32 %12811, ptr %250, align 4, !tbaa !5
  %12812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12813 = call i32 @s2n_print_stacktrace(ptr noundef %12812)
  %12814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12815 = trunc i8 %12814 to i1
  br i1 %12815, label %12816, label %12838

12816:                                            ; preds = %12809
  %12817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12818 = call i32 @fileno(ptr noundef %12817) #12
  %12819 = call i32 @isatty(i32 noundef %12818) #12
  %12820 = icmp ne i32 %12819, 0
  br i1 %12820, label %12821, label %12838

12821:                                            ; preds = %12816
  %12822 = load i32, ptr %250, align 4, !tbaa !5
  %12823 = call ptr @__errno_location() #13
  store i32 %12822, ptr %12823, align 4, !tbaa !5
  %12824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12825 = load i32, ptr @test_count, align 4, !tbaa !5
  %12826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12827 = load i32, ptr %12826, align 4, !tbaa !5
  %12828 = call ptr @s2n_strerror(i32 noundef %12827, ptr noundef @.str.4)
  %12829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12830 = load i32, ptr %12829, align 4, !tbaa !5
  %12831 = call ptr @s2n_strerror_debug(i32 noundef %12830, ptr noundef @.str.4)
  %12832 = call ptr @__errno_location() #13
  %12833 = load i32, ptr %12832, align 4, !tbaa !5
  %12834 = call ptr @strerror(i32 noundef %12833) #12
  %12835 = call ptr @__errno_location() #13
  %12836 = load i32, ptr %12835, align 4, !tbaa !5
  %12837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12824, ptr noundef @.str.2, i32 noundef %12825, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 633, ptr noundef %12828, ptr noundef %12831, ptr noundef %12834, i32 noundef %12836) #12
  br label %12855

12838:                                            ; preds = %12816, %12809
  %12839 = load i32, ptr %250, align 4, !tbaa !5
  %12840 = call ptr @__errno_location() #13
  store i32 %12839, ptr %12840, align 4, !tbaa !5
  %12841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12842 = load i32, ptr @test_count, align 4, !tbaa !5
  %12843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12844 = load i32, ptr %12843, align 4, !tbaa !5
  %12845 = call ptr @s2n_strerror(i32 noundef %12844, ptr noundef @.str.4)
  %12846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12847 = load i32, ptr %12846, align 4, !tbaa !5
  %12848 = call ptr @s2n_strerror_debug(i32 noundef %12847, ptr noundef @.str.4)
  %12849 = call ptr @__errno_location() #13
  %12850 = load i32, ptr %12849, align 4, !tbaa !5
  %12851 = call ptr @strerror(i32 noundef %12850) #12
  %12852 = call ptr @__errno_location() #13
  %12853 = load i32, ptr %12852, align 4, !tbaa !5
  %12854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12841, ptr noundef @.str.5, i32 noundef %12842, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 633, ptr noundef %12845, ptr noundef %12848, ptr noundef %12851, i32 noundef %12853) #12
  br label %12855

12855:                                            ; preds = %12838, %12821
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #12
  br label %12856

12856:                                            ; preds = %12855
  br label %12857

12857:                                            ; preds = %12856
  call void @exit(i32 noundef 1) #14
  unreachable

12858:                                            ; No predecessors!
  br label %12859

12859:                                            ; preds = %12858
  br label %12860

12860:                                            ; preds = %12859, %12800
  br label %12861

12861:                                            ; preds = %12860
  br label %12862

12862:                                            ; preds = %12861
  br label %12863

12863:                                            ; preds = %12862
  %12864 = load i32, ptr @test_count, align 4, !tbaa !5
  %12865 = add nsw i32 %12864, 1
  store i32 %12865, ptr @test_count, align 4, !tbaa !5
  %12866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12867 = load i32, ptr %12866, align 4, !tbaa !5
  %12868 = icmp eq i32 %12867, 0
  br i1 %12868, label %12869, label %12922

12869:                                            ; preds = %12863
  br label %12870

12870:                                            ; preds = %12869
  br label %12871

12871:                                            ; preds = %12870
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #12
  %12872 = call ptr @__errno_location() #13
  %12873 = load i32, ptr %12872, align 4, !tbaa !5
  store i32 %12873, ptr %251, align 4, !tbaa !5
  %12874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12875 = call i32 @s2n_print_stacktrace(ptr noundef %12874)
  %12876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12877 = trunc i8 %12876 to i1
  br i1 %12877, label %12878, label %12900

12878:                                            ; preds = %12871
  %12879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12880 = call i32 @fileno(ptr noundef %12879) #12
  %12881 = call i32 @isatty(i32 noundef %12880) #12
  %12882 = icmp ne i32 %12881, 0
  br i1 %12882, label %12883, label %12900

12883:                                            ; preds = %12878
  %12884 = load i32, ptr %251, align 4, !tbaa !5
  %12885 = call ptr @__errno_location() #13
  store i32 %12884, ptr %12885, align 4, !tbaa !5
  %12886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12887 = load i32, ptr @test_count, align 4, !tbaa !5
  %12888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12889 = load i32, ptr %12888, align 4, !tbaa !5
  %12890 = call ptr @s2n_strerror(i32 noundef %12889, ptr noundef @.str.4)
  %12891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12892 = load i32, ptr %12891, align 4, !tbaa !5
  %12893 = call ptr @s2n_strerror_debug(i32 noundef %12892, ptr noundef @.str.4)
  %12894 = call ptr @__errno_location() #13
  %12895 = load i32, ptr %12894, align 4, !tbaa !5
  %12896 = call ptr @strerror(i32 noundef %12895) #12
  %12897 = call ptr @__errno_location() #13
  %12898 = load i32, ptr %12897, align 4, !tbaa !5
  %12899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12886, ptr noundef @.str.2, i32 noundef %12887, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 633, ptr noundef %12890, ptr noundef %12893, ptr noundef %12896, i32 noundef %12898) #12
  br label %12917

12900:                                            ; preds = %12878, %12871
  %12901 = load i32, ptr %251, align 4, !tbaa !5
  %12902 = call ptr @__errno_location() #13
  store i32 %12901, ptr %12902, align 4, !tbaa !5
  %12903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12904 = load i32, ptr @test_count, align 4, !tbaa !5
  %12905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12906 = load i32, ptr %12905, align 4, !tbaa !5
  %12907 = call ptr @s2n_strerror(i32 noundef %12906, ptr noundef @.str.4)
  %12908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12909 = load i32, ptr %12908, align 4, !tbaa !5
  %12910 = call ptr @s2n_strerror_debug(i32 noundef %12909, ptr noundef @.str.4)
  %12911 = call ptr @__errno_location() #13
  %12912 = load i32, ptr %12911, align 4, !tbaa !5
  %12913 = call ptr @strerror(i32 noundef %12912) #12
  %12914 = call ptr @__errno_location() #13
  %12915 = load i32, ptr %12914, align 4, !tbaa !5
  %12916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12903, ptr noundef @.str.5, i32 noundef %12904, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 633, ptr noundef %12907, ptr noundef %12910, ptr noundef %12913, i32 noundef %12915) #12
  br label %12917

12917:                                            ; preds = %12900, %12883
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #12
  br label %12918

12918:                                            ; preds = %12917
  br label %12919

12919:                                            ; preds = %12918
  call void @exit(i32 noundef 1) #14
  unreachable

12920:                                            ; No predecessors!
  br label %12921

12921:                                            ; preds = %12920
  br label %12922

12922:                                            ; preds = %12921, %12863
  br label %12923

12923:                                            ; preds = %12922
  br label %12924

12924:                                            ; preds = %12923
  br label %12925

12925:                                            ; preds = %12924
  %12926 = load i32, ptr @test_count, align 4, !tbaa !5
  %12927 = add nsw i32 %12926, 1
  store i32 %12927, ptr @test_count, align 4, !tbaa !5
  %12928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12929 = load i32, ptr %12928, align 4, !tbaa !5
  %12930 = call ptr @s2n_strerror_debug(i32 noundef %12929, ptr noundef @.str.4)
  %12931 = icmp eq ptr %12930, null
  br i1 %12931, label %12932, label %12985

12932:                                            ; preds = %12925
  br label %12933

12933:                                            ; preds = %12932
  br label %12934

12934:                                            ; preds = %12933
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #12
  %12935 = call ptr @__errno_location() #13
  %12936 = load i32, ptr %12935, align 4, !tbaa !5
  store i32 %12936, ptr %252, align 4, !tbaa !5
  %12937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12938 = call i32 @s2n_print_stacktrace(ptr noundef %12937)
  %12939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12940 = trunc i8 %12939 to i1
  br i1 %12940, label %12941, label %12963

12941:                                            ; preds = %12934
  %12942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12943 = call i32 @fileno(ptr noundef %12942) #12
  %12944 = call i32 @isatty(i32 noundef %12943) #12
  %12945 = icmp ne i32 %12944, 0
  br i1 %12945, label %12946, label %12963

12946:                                            ; preds = %12941
  %12947 = load i32, ptr %252, align 4, !tbaa !5
  %12948 = call ptr @__errno_location() #13
  store i32 %12947, ptr %12948, align 4, !tbaa !5
  %12949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12950 = load i32, ptr @test_count, align 4, !tbaa !5
  %12951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12952 = load i32, ptr %12951, align 4, !tbaa !5
  %12953 = call ptr @s2n_strerror(i32 noundef %12952, ptr noundef @.str.4)
  %12954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12955 = load i32, ptr %12954, align 4, !tbaa !5
  %12956 = call ptr @s2n_strerror_debug(i32 noundef %12955, ptr noundef @.str.4)
  %12957 = call ptr @__errno_location() #13
  %12958 = load i32, ptr %12957, align 4, !tbaa !5
  %12959 = call ptr @strerror(i32 noundef %12958) #12
  %12960 = call ptr @__errno_location() #13
  %12961 = load i32, ptr %12960, align 4, !tbaa !5
  %12962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12949, ptr noundef @.str.2, i32 noundef %12950, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 633, ptr noundef %12953, ptr noundef %12956, ptr noundef %12959, i32 noundef %12961) #12
  br label %12980

12963:                                            ; preds = %12941, %12934
  %12964 = load i32, ptr %252, align 4, !tbaa !5
  %12965 = call ptr @__errno_location() #13
  store i32 %12964, ptr %12965, align 4, !tbaa !5
  %12966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12967 = load i32, ptr @test_count, align 4, !tbaa !5
  %12968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12969 = load i32, ptr %12968, align 4, !tbaa !5
  %12970 = call ptr @s2n_strerror(i32 noundef %12969, ptr noundef @.str.4)
  %12971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12972 = load i32, ptr %12971, align 4, !tbaa !5
  %12973 = call ptr @s2n_strerror_debug(i32 noundef %12972, ptr noundef @.str.4)
  %12974 = call ptr @__errno_location() #13
  %12975 = load i32, ptr %12974, align 4, !tbaa !5
  %12976 = call ptr @strerror(i32 noundef %12975) #12
  %12977 = call ptr @__errno_location() #13
  %12978 = load i32, ptr %12977, align 4, !tbaa !5
  %12979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12966, ptr noundef @.str.5, i32 noundef %12967, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 633, ptr noundef %12970, ptr noundef %12973, ptr noundef %12976, i32 noundef %12978) #12
  br label %12980

12980:                                            ; preds = %12963, %12946
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #12
  br label %12981

12981:                                            ; preds = %12980
  br label %12982

12982:                                            ; preds = %12981
  call void @exit(i32 noundef 1) #14
  unreachable

12983:                                            ; No predecessors!
  br label %12984

12984:                                            ; preds = %12983
  br label %12985

12985:                                            ; preds = %12984, %12925
  br label %12986

12986:                                            ; preds = %12985
  br label %12987

12987:                                            ; preds = %12986
  br label %12988

12988:                                            ; preds = %12987
  %12989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %12989, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %12990 = call ptr @__errno_location() #13
  store i32 0, ptr %12990, align 4, !tbaa !5
  br label %12991

12991:                                            ; preds = %12988
  br label %12992

12992:                                            ; preds = %12991
  br label %12993

12993:                                            ; preds = %12992
  br label %12994

12994:                                            ; preds = %12993
  br label %12995

12995:                                            ; preds = %12994, %12797
  br label %12996

12996:                                            ; preds = %12995
  %12997 = load i32, ptr @test_count, align 4, !tbaa !5
  %12998 = add nsw i32 %12997, 1
  store i32 %12998, ptr @test_count, align 4, !tbaa !5
  %12999 = load ptr, ptr %47, align 8, !tbaa !9
  %13000 = call i32 @s2n_connection_wipe(ptr noundef %12999)
  %13001 = icmp eq i32 %13000, -1
  br i1 %13001, label %13002, label %13055

13002:                                            ; preds = %12996
  br label %13003

13003:                                            ; preds = %13002
  br label %13004

13004:                                            ; preds = %13003
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #12
  %13005 = call ptr @__errno_location() #13
  %13006 = load i32, ptr %13005, align 4, !tbaa !5
  store i32 %13006, ptr %253, align 4, !tbaa !5
  %13007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13008 = call i32 @s2n_print_stacktrace(ptr noundef %13007)
  %13009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13010 = trunc i8 %13009 to i1
  br i1 %13010, label %13011, label %13033

13011:                                            ; preds = %13004
  %13012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13013 = call i32 @fileno(ptr noundef %13012) #12
  %13014 = call i32 @isatty(i32 noundef %13013) #12
  %13015 = icmp ne i32 %13014, 0
  br i1 %13015, label %13016, label %13033

13016:                                            ; preds = %13011
  %13017 = load i32, ptr %253, align 4, !tbaa !5
  %13018 = call ptr @__errno_location() #13
  store i32 %13017, ptr %13018, align 4, !tbaa !5
  %13019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13020 = load i32, ptr @test_count, align 4, !tbaa !5
  %13021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13022 = load i32, ptr %13021, align 4, !tbaa !5
  %13023 = call ptr @s2n_strerror(i32 noundef %13022, ptr noundef @.str.4)
  %13024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13025 = load i32, ptr %13024, align 4, !tbaa !5
  %13026 = call ptr @s2n_strerror_debug(i32 noundef %13025, ptr noundef @.str.4)
  %13027 = call ptr @__errno_location() #13
  %13028 = load i32, ptr %13027, align 4, !tbaa !5
  %13029 = call ptr @strerror(i32 noundef %13028) #12
  %13030 = call ptr @__errno_location() #13
  %13031 = load i32, ptr %13030, align 4, !tbaa !5
  %13032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13019, ptr noundef @.str.2, i32 noundef %13020, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 635, ptr noundef %13023, ptr noundef %13026, ptr noundef %13029, i32 noundef %13031) #12
  br label %13050

13033:                                            ; preds = %13011, %13004
  %13034 = load i32, ptr %253, align 4, !tbaa !5
  %13035 = call ptr @__errno_location() #13
  store i32 %13034, ptr %13035, align 4, !tbaa !5
  %13036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13037 = load i32, ptr @test_count, align 4, !tbaa !5
  %13038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13039 = load i32, ptr %13038, align 4, !tbaa !5
  %13040 = call ptr @s2n_strerror(i32 noundef %13039, ptr noundef @.str.4)
  %13041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13042 = load i32, ptr %13041, align 4, !tbaa !5
  %13043 = call ptr @s2n_strerror_debug(i32 noundef %13042, ptr noundef @.str.4)
  %13044 = call ptr @__errno_location() #13
  %13045 = load i32, ptr %13044, align 4, !tbaa !5
  %13046 = call ptr @strerror(i32 noundef %13045) #12
  %13047 = call ptr @__errno_location() #13
  %13048 = load i32, ptr %13047, align 4, !tbaa !5
  %13049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13036, ptr noundef @.str.5, i32 noundef %13037, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 635, ptr noundef %13040, ptr noundef %13043, ptr noundef %13046, i32 noundef %13048) #12
  br label %13050

13050:                                            ; preds = %13033, %13016
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #12
  br label %13051

13051:                                            ; preds = %13050
  br label %13052

13052:                                            ; preds = %13051
  call void @exit(i32 noundef 1) #14
  unreachable

13053:                                            ; No predecessors!
  br label %13054

13054:                                            ; preds = %13053
  br label %13055

13055:                                            ; preds = %13054, %12996
  br label %13056

13056:                                            ; preds = %13055
  br label %13057

13057:                                            ; preds = %13056
  call void @llvm.lifetime.end.p0(i64 1, ptr %246) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %254, ptr align 1 @__const.main.test_wire_ciphers, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %255) #12
  store i8 2, ptr %255, align 1, !tbaa !54
  br label %13058

13058:                                            ; preds = %13057
  %13059 = load i32, ptr @test_count, align 4, !tbaa !5
  %13060 = add nsw i32 %13059, 1
  store i32 %13060, ptr @test_count, align 4, !tbaa !5
  %13061 = load ptr, ptr %47, align 8, !tbaa !9
  %13062 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %13061, ptr noundef @.str.53)
  %13063 = icmp eq i32 %13062, -1
  br i1 %13063, label %13064, label %13117

13064:                                            ; preds = %13058
  br label %13065

13065:                                            ; preds = %13064
  br label %13066

13066:                                            ; preds = %13065
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #12
  %13067 = call ptr @__errno_location() #13
  %13068 = load i32, ptr %13067, align 4, !tbaa !5
  store i32 %13068, ptr %256, align 4, !tbaa !5
  %13069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13070 = call i32 @s2n_print_stacktrace(ptr noundef %13069)
  %13071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13072 = trunc i8 %13071 to i1
  br i1 %13072, label %13073, label %13095

13073:                                            ; preds = %13066
  %13074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13075 = call i32 @fileno(ptr noundef %13074) #12
  %13076 = call i32 @isatty(i32 noundef %13075) #12
  %13077 = icmp ne i32 %13076, 0
  br i1 %13077, label %13078, label %13095

13078:                                            ; preds = %13073
  %13079 = load i32, ptr %256, align 4, !tbaa !5
  %13080 = call ptr @__errno_location() #13
  store i32 %13079, ptr %13080, align 4, !tbaa !5
  %13081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13082 = load i32, ptr @test_count, align 4, !tbaa !5
  %13083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13084 = load i32, ptr %13083, align 4, !tbaa !5
  %13085 = call ptr @s2n_strerror(i32 noundef %13084, ptr noundef @.str.4)
  %13086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13087 = load i32, ptr %13086, align 4, !tbaa !5
  %13088 = call ptr @s2n_strerror_debug(i32 noundef %13087, ptr noundef @.str.4)
  %13089 = call ptr @__errno_location() #13
  %13090 = load i32, ptr %13089, align 4, !tbaa !5
  %13091 = call ptr @strerror(i32 noundef %13090) #12
  %13092 = call ptr @__errno_location() #13
  %13093 = load i32, ptr %13092, align 4, !tbaa !5
  %13094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13081, ptr noundef @.str.2, i32 noundef %13082, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 646, ptr noundef %13085, ptr noundef %13088, ptr noundef %13091, i32 noundef %13093) #12
  br label %13112

13095:                                            ; preds = %13073, %13066
  %13096 = load i32, ptr %256, align 4, !tbaa !5
  %13097 = call ptr @__errno_location() #13
  store i32 %13096, ptr %13097, align 4, !tbaa !5
  %13098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13099 = load i32, ptr @test_count, align 4, !tbaa !5
  %13100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13101 = load i32, ptr %13100, align 4, !tbaa !5
  %13102 = call ptr @s2n_strerror(i32 noundef %13101, ptr noundef @.str.4)
  %13103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13104 = load i32, ptr %13103, align 4, !tbaa !5
  %13105 = call ptr @s2n_strerror_debug(i32 noundef %13104, ptr noundef @.str.4)
  %13106 = call ptr @__errno_location() #13
  %13107 = load i32, ptr %13106, align 4, !tbaa !5
  %13108 = call ptr @strerror(i32 noundef %13107) #12
  %13109 = call ptr @__errno_location() #13
  %13110 = load i32, ptr %13109, align 4, !tbaa !5
  %13111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13098, ptr noundef @.str.5, i32 noundef %13099, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 646, ptr noundef %13102, ptr noundef %13105, ptr noundef %13108, i32 noundef %13110) #12
  br label %13112

13112:                                            ; preds = %13095, %13078
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #12
  br label %13113

13113:                                            ; preds = %13112
  br label %13114

13114:                                            ; preds = %13113
  call void @exit(i32 noundef 1) #14
  unreachable

13115:                                            ; No predecessors!
  br label %13116

13116:                                            ; preds = %13115
  br label %13117

13117:                                            ; preds = %13116, %13058
  br label %13118

13118:                                            ; preds = %13117
  br label %13119

13119:                                            ; preds = %13118
  %13120 = load ptr, ptr %47, align 8, !tbaa !9
  %13121 = getelementptr inbounds %struct.s2n_connection, ptr %13120, i32 0, i32 23
  store i8 33, ptr %13121, align 4, !tbaa !42
  %13122 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %13123 = load ptr, ptr %47, align 8, !tbaa !9
  %13124 = getelementptr inbounds %struct.s2n_connection, ptr %13123, i32 0, i32 31
  %13125 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13124, i32 0, i32 1
  %13126 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13125, i32 0, i32 0
  store ptr %13122, ptr %13126, align 8, !tbaa !57
  br label %13127

13127:                                            ; preds = %13119
  %13128 = load i32, ptr @test_count, align 4, !tbaa !5
  %13129 = add nsw i32 %13128, 1
  store i32 %13129, ptr @test_count, align 4, !tbaa !5
  %13130 = load ptr, ptr %47, align 8, !tbaa !9
  %13131 = getelementptr inbounds [4 x i8], ptr %254, i64 0, i64 0
  %13132 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %13130, ptr noundef %13131, i16 noundef zeroext 2)
  %13133 = icmp eq i32 %13132, -1
  br i1 %13133, label %13134, label %13187

13134:                                            ; preds = %13127
  br label %13135

13135:                                            ; preds = %13134
  br label %13136

13136:                                            ; preds = %13135
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #12
  %13137 = call ptr @__errno_location() #13
  %13138 = load i32, ptr %13137, align 4, !tbaa !5
  store i32 %13138, ptr %257, align 4, !tbaa !5
  %13139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13140 = call i32 @s2n_print_stacktrace(ptr noundef %13139)
  %13141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13142 = trunc i8 %13141 to i1
  br i1 %13142, label %13143, label %13165

13143:                                            ; preds = %13136
  %13144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13145 = call i32 @fileno(ptr noundef %13144) #12
  %13146 = call i32 @isatty(i32 noundef %13145) #12
  %13147 = icmp ne i32 %13146, 0
  br i1 %13147, label %13148, label %13165

13148:                                            ; preds = %13143
  %13149 = load i32, ptr %257, align 4, !tbaa !5
  %13150 = call ptr @__errno_location() #13
  store i32 %13149, ptr %13150, align 4, !tbaa !5
  %13151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13152 = load i32, ptr @test_count, align 4, !tbaa !5
  %13153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13154 = load i32, ptr %13153, align 4, !tbaa !5
  %13155 = call ptr @s2n_strerror(i32 noundef %13154, ptr noundef @.str.4)
  %13156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13157 = load i32, ptr %13156, align 4, !tbaa !5
  %13158 = call ptr @s2n_strerror_debug(i32 noundef %13157, ptr noundef @.str.4)
  %13159 = call ptr @__errno_location() #13
  %13160 = load i32, ptr %13159, align 4, !tbaa !5
  %13161 = call ptr @strerror(i32 noundef %13160) #12
  %13162 = call ptr @__errno_location() #13
  %13163 = load i32, ptr %13162, align 4, !tbaa !5
  %13164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13151, ptr noundef @.str.2, i32 noundef %13152, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 650, ptr noundef %13155, ptr noundef %13158, ptr noundef %13161, i32 noundef %13163) #12
  br label %13182

13165:                                            ; preds = %13143, %13136
  %13166 = load i32, ptr %257, align 4, !tbaa !5
  %13167 = call ptr @__errno_location() #13
  store i32 %13166, ptr %13167, align 4, !tbaa !5
  %13168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13169 = load i32, ptr @test_count, align 4, !tbaa !5
  %13170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13171 = load i32, ptr %13170, align 4, !tbaa !5
  %13172 = call ptr @s2n_strerror(i32 noundef %13171, ptr noundef @.str.4)
  %13173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13174 = load i32, ptr %13173, align 4, !tbaa !5
  %13175 = call ptr @s2n_strerror_debug(i32 noundef %13174, ptr noundef @.str.4)
  %13176 = call ptr @__errno_location() #13
  %13177 = load i32, ptr %13176, align 4, !tbaa !5
  %13178 = call ptr @strerror(i32 noundef %13177) #12
  %13179 = call ptr @__errno_location() #13
  %13180 = load i32, ptr %13179, align 4, !tbaa !5
  %13181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13168, ptr noundef @.str.5, i32 noundef %13169, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 650, ptr noundef %13172, ptr noundef %13175, ptr noundef %13178, i32 noundef %13180) #12
  br label %13182

13182:                                            ; preds = %13165, %13148
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #12
  br label %13183

13183:                                            ; preds = %13182
  br label %13184

13184:                                            ; preds = %13183
  call void @exit(i32 noundef 1) #14
  unreachable

13185:                                            ; No predecessors!
  br label %13186

13186:                                            ; preds = %13185
  br label %13187

13187:                                            ; preds = %13186, %13127
  br label %13188

13188:                                            ; preds = %13187
  br label %13189

13189:                                            ; preds = %13188
  br label %13190

13190:                                            ; preds = %13189
  %13191 = load i32, ptr @test_count, align 4, !tbaa !5
  %13192 = add nsw i32 %13191, 1
  store i32 %13192, ptr @test_count, align 4, !tbaa !5
  %13193 = load ptr, ptr %47, align 8, !tbaa !9
  %13194 = getelementptr inbounds %struct.s2n_connection, ptr %13193, i32 0, i32 27
  %13195 = load ptr, ptr %13194, align 8, !tbaa !48
  %13196 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %13195, i32 0, i32 0
  %13197 = load ptr, ptr %13196, align 8, !tbaa !49
  %13198 = icmp eq ptr %13197, @s2n_ecdhe_rsa_with_aes_128_gcm_sha256
  br i1 %13198, label %13252, label %13199

13199:                                            ; preds = %13190
  br label %13200

13200:                                            ; preds = %13199
  br label %13201

13201:                                            ; preds = %13200
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #12
  %13202 = call ptr @__errno_location() #13
  %13203 = load i32, ptr %13202, align 4, !tbaa !5
  store i32 %13203, ptr %258, align 4, !tbaa !5
  %13204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13205 = call i32 @s2n_print_stacktrace(ptr noundef %13204)
  %13206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13207 = trunc i8 %13206 to i1
  br i1 %13207, label %13208, label %13230

13208:                                            ; preds = %13201
  %13209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13210 = call i32 @fileno(ptr noundef %13209) #12
  %13211 = call i32 @isatty(i32 noundef %13210) #12
  %13212 = icmp ne i32 %13211, 0
  br i1 %13212, label %13213, label %13230

13213:                                            ; preds = %13208
  %13214 = load i32, ptr %258, align 4, !tbaa !5
  %13215 = call ptr @__errno_location() #13
  store i32 %13214, ptr %13215, align 4, !tbaa !5
  %13216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13217 = load i32, ptr @test_count, align 4, !tbaa !5
  %13218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13219 = load i32, ptr %13218, align 4, !tbaa !5
  %13220 = call ptr @s2n_strerror(i32 noundef %13219, ptr noundef @.str.4)
  %13221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13222 = load i32, ptr %13221, align 4, !tbaa !5
  %13223 = call ptr @s2n_strerror_debug(i32 noundef %13222, ptr noundef @.str.4)
  %13224 = call ptr @__errno_location() #13
  %13225 = load i32, ptr %13224, align 4, !tbaa !5
  %13226 = call ptr @strerror(i32 noundef %13225) #12
  %13227 = call ptr @__errno_location() #13
  %13228 = load i32, ptr %13227, align 4, !tbaa !5
  %13229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13216, ptr noundef @.str.2, i32 noundef %13217, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 651, ptr noundef %13220, ptr noundef %13223, ptr noundef %13226, i32 noundef %13228) #12
  br label %13247

13230:                                            ; preds = %13208, %13201
  %13231 = load i32, ptr %258, align 4, !tbaa !5
  %13232 = call ptr @__errno_location() #13
  store i32 %13231, ptr %13232, align 4, !tbaa !5
  %13233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13234 = load i32, ptr @test_count, align 4, !tbaa !5
  %13235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13236 = load i32, ptr %13235, align 4, !tbaa !5
  %13237 = call ptr @s2n_strerror(i32 noundef %13236, ptr noundef @.str.4)
  %13238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13239 = load i32, ptr %13238, align 4, !tbaa !5
  %13240 = call ptr @s2n_strerror_debug(i32 noundef %13239, ptr noundef @.str.4)
  %13241 = call ptr @__errno_location() #13
  %13242 = load i32, ptr %13241, align 4, !tbaa !5
  %13243 = call ptr @strerror(i32 noundef %13242) #12
  %13244 = call ptr @__errno_location() #13
  %13245 = load i32, ptr %13244, align 4, !tbaa !5
  %13246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13233, ptr noundef @.str.5, i32 noundef %13234, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 651, ptr noundef %13237, ptr noundef %13240, ptr noundef %13243, i32 noundef %13245) #12
  br label %13247

13247:                                            ; preds = %13230, %13213
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #12
  br label %13248

13248:                                            ; preds = %13247
  br label %13249

13249:                                            ; preds = %13248
  call void @exit(i32 noundef 1) #14
  unreachable

13250:                                            ; No predecessors!
  br label %13251

13251:                                            ; preds = %13250
  br label %13252

13252:                                            ; preds = %13251, %13190
  br label %13253

13253:                                            ; preds = %13252
  br label %13254

13254:                                            ; preds = %13253
  br label %13255

13255:                                            ; preds = %13254
  %13256 = load i32, ptr @test_count, align 4, !tbaa !5
  %13257 = add nsw i32 %13256, 1
  store i32 %13257, ptr @test_count, align 4, !tbaa !5
  %13258 = load ptr, ptr %47, align 8, !tbaa !9
  %13259 = call i32 @s2n_connection_wipe(ptr noundef %13258)
  %13260 = icmp eq i32 %13259, -1
  br i1 %13260, label %13261, label %13314

13261:                                            ; preds = %13255
  br label %13262

13262:                                            ; preds = %13261
  br label %13263

13263:                                            ; preds = %13262
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #12
  %13264 = call ptr @__errno_location() #13
  %13265 = load i32, ptr %13264, align 4, !tbaa !5
  store i32 %13265, ptr %259, align 4, !tbaa !5
  %13266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13267 = call i32 @s2n_print_stacktrace(ptr noundef %13266)
  %13268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13269 = trunc i8 %13268 to i1
  br i1 %13269, label %13270, label %13292

13270:                                            ; preds = %13263
  %13271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13272 = call i32 @fileno(ptr noundef %13271) #12
  %13273 = call i32 @isatty(i32 noundef %13272) #12
  %13274 = icmp ne i32 %13273, 0
  br i1 %13274, label %13275, label %13292

13275:                                            ; preds = %13270
  %13276 = load i32, ptr %259, align 4, !tbaa !5
  %13277 = call ptr @__errno_location() #13
  store i32 %13276, ptr %13277, align 4, !tbaa !5
  %13278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13279 = load i32, ptr @test_count, align 4, !tbaa !5
  %13280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13281 = load i32, ptr %13280, align 4, !tbaa !5
  %13282 = call ptr @s2n_strerror(i32 noundef %13281, ptr noundef @.str.4)
  %13283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13284 = load i32, ptr %13283, align 4, !tbaa !5
  %13285 = call ptr @s2n_strerror_debug(i32 noundef %13284, ptr noundef @.str.4)
  %13286 = call ptr @__errno_location() #13
  %13287 = load i32, ptr %13286, align 4, !tbaa !5
  %13288 = call ptr @strerror(i32 noundef %13287) #12
  %13289 = call ptr @__errno_location() #13
  %13290 = load i32, ptr %13289, align 4, !tbaa !5
  %13291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13278, ptr noundef @.str.2, i32 noundef %13279, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 652, ptr noundef %13282, ptr noundef %13285, ptr noundef %13288, i32 noundef %13290) #12
  br label %13309

13292:                                            ; preds = %13270, %13263
  %13293 = load i32, ptr %259, align 4, !tbaa !5
  %13294 = call ptr @__errno_location() #13
  store i32 %13293, ptr %13294, align 4, !tbaa !5
  %13295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13296 = load i32, ptr @test_count, align 4, !tbaa !5
  %13297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13298 = load i32, ptr %13297, align 4, !tbaa !5
  %13299 = call ptr @s2n_strerror(i32 noundef %13298, ptr noundef @.str.4)
  %13300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13301 = load i32, ptr %13300, align 4, !tbaa !5
  %13302 = call ptr @s2n_strerror_debug(i32 noundef %13301, ptr noundef @.str.4)
  %13303 = call ptr @__errno_location() #13
  %13304 = load i32, ptr %13303, align 4, !tbaa !5
  %13305 = call ptr @strerror(i32 noundef %13304) #12
  %13306 = call ptr @__errno_location() #13
  %13307 = load i32, ptr %13306, align 4, !tbaa !5
  %13308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13295, ptr noundef @.str.5, i32 noundef %13296, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 652, ptr noundef %13299, ptr noundef %13302, ptr noundef %13305, i32 noundef %13307) #12
  br label %13309

13309:                                            ; preds = %13292, %13275
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #12
  br label %13310

13310:                                            ; preds = %13309
  br label %13311

13311:                                            ; preds = %13310
  call void @exit(i32 noundef 1) #14
  unreachable

13312:                                            ; No predecessors!
  br label %13313

13313:                                            ; preds = %13312
  br label %13314

13314:                                            ; preds = %13313, %13255
  br label %13315

13315:                                            ; preds = %13314
  br label %13316

13316:                                            ; preds = %13315
  call void @llvm.lifetime.end.p0(i64 1, ptr %255) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #12
  br label %13317

13317:                                            ; preds = %13316
  %13318 = load i32, ptr @test_count, align 4, !tbaa !5
  %13319 = add nsw i32 %13318, 1
  store i32 %13319, ptr @test_count, align 4, !tbaa !5
  %13320 = load ptr, ptr %47, align 8, !tbaa !9
  %13321 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %13320, ptr noundef @.str.53)
  %13322 = icmp eq i32 %13321, -1
  br i1 %13322, label %13323, label %13376

13323:                                            ; preds = %13317
  br label %13324

13324:                                            ; preds = %13323
  br label %13325

13325:                                            ; preds = %13324
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #12
  %13326 = call ptr @__errno_location() #13
  %13327 = load i32, ptr %13326, align 4, !tbaa !5
  store i32 %13327, ptr %260, align 4, !tbaa !5
  %13328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13329 = call i32 @s2n_print_stacktrace(ptr noundef %13328)
  %13330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13331 = trunc i8 %13330 to i1
  br i1 %13331, label %13332, label %13354

13332:                                            ; preds = %13325
  %13333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13334 = call i32 @fileno(ptr noundef %13333) #12
  %13335 = call i32 @isatty(i32 noundef %13334) #12
  %13336 = icmp ne i32 %13335, 0
  br i1 %13336, label %13337, label %13354

13337:                                            ; preds = %13332
  %13338 = load i32, ptr %260, align 4, !tbaa !5
  %13339 = call ptr @__errno_location() #13
  store i32 %13338, ptr %13339, align 4, !tbaa !5
  %13340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13341 = load i32, ptr @test_count, align 4, !tbaa !5
  %13342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13343 = load i32, ptr %13342, align 4, !tbaa !5
  %13344 = call ptr @s2n_strerror(i32 noundef %13343, ptr noundef @.str.4)
  %13345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13346 = load i32, ptr %13345, align 4, !tbaa !5
  %13347 = call ptr @s2n_strerror_debug(i32 noundef %13346, ptr noundef @.str.4)
  %13348 = call ptr @__errno_location() #13
  %13349 = load i32, ptr %13348, align 4, !tbaa !5
  %13350 = call ptr @strerror(i32 noundef %13349) #12
  %13351 = call ptr @__errno_location() #13
  %13352 = load i32, ptr %13351, align 4, !tbaa !5
  %13353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13340, ptr noundef @.str.2, i32 noundef %13341, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 661, ptr noundef %13344, ptr noundef %13347, ptr noundef %13350, i32 noundef %13352) #12
  br label %13371

13354:                                            ; preds = %13332, %13325
  %13355 = load i32, ptr %260, align 4, !tbaa !5
  %13356 = call ptr @__errno_location() #13
  store i32 %13355, ptr %13356, align 4, !tbaa !5
  %13357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13358 = load i32, ptr @test_count, align 4, !tbaa !5
  %13359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13360 = load i32, ptr %13359, align 4, !tbaa !5
  %13361 = call ptr @s2n_strerror(i32 noundef %13360, ptr noundef @.str.4)
  %13362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13363 = load i32, ptr %13362, align 4, !tbaa !5
  %13364 = call ptr @s2n_strerror_debug(i32 noundef %13363, ptr noundef @.str.4)
  %13365 = call ptr @__errno_location() #13
  %13366 = load i32, ptr %13365, align 4, !tbaa !5
  %13367 = call ptr @strerror(i32 noundef %13366) #12
  %13368 = call ptr @__errno_location() #13
  %13369 = load i32, ptr %13368, align 4, !tbaa !5
  %13370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13357, ptr noundef @.str.5, i32 noundef %13358, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 661, ptr noundef %13361, ptr noundef %13364, ptr noundef %13367, i32 noundef %13369) #12
  br label %13371

13371:                                            ; preds = %13354, %13337
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #12
  br label %13372

13372:                                            ; preds = %13371
  br label %13373

13373:                                            ; preds = %13372
  call void @exit(i32 noundef 1) #14
  unreachable

13374:                                            ; No predecessors!
  br label %13375

13375:                                            ; preds = %13374
  br label %13376

13376:                                            ; preds = %13375, %13317
  br label %13377

13377:                                            ; preds = %13376
  br label %13378

13378:                                            ; preds = %13377
  %13379 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %13380 = load ptr, ptr %47, align 8, !tbaa !9
  %13381 = getelementptr inbounds %struct.s2n_connection, ptr %13380, i32 0, i32 31
  %13382 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13381, i32 0, i32 1
  %13383 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13382, i32 0, i32 0
  store ptr %13379, ptr %13383, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 6, ptr %261) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %261, ptr align 1 @__const.main.test_wire_ciphers.115, i64 6, i1 false)
  %13384 = load ptr, ptr %47, align 8, !tbaa !9
  %13385 = getelementptr inbounds %struct.s2n_connection, ptr %13384, i32 0, i32 23
  store i8 31, ptr %13385, align 4, !tbaa !42
  br label %13386

13386:                                            ; preds = %13378
  %13387 = load i32, ptr @test_count, align 4, !tbaa !5
  %13388 = add nsw i32 %13387, 1
  store i32 %13388, ptr @test_count, align 4, !tbaa !5
  %13389 = load ptr, ptr %47, align 8, !tbaa !9
  %13390 = getelementptr inbounds [6 x i8], ptr %261, i64 0, i64 0
  %13391 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %13389, ptr noundef %13390, i16 noundef zeroext 3)
  %13392 = icmp eq i32 %13391, -1
  br i1 %13392, label %13393, label %13446

13393:                                            ; preds = %13386
  br label %13394

13394:                                            ; preds = %13393
  br label %13395

13395:                                            ; preds = %13394
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #12
  %13396 = call ptr @__errno_location() #13
  %13397 = load i32, ptr %13396, align 4, !tbaa !5
  store i32 %13397, ptr %262, align 4, !tbaa !5
  %13398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13399 = call i32 @s2n_print_stacktrace(ptr noundef %13398)
  %13400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13401 = trunc i8 %13400 to i1
  br i1 %13401, label %13402, label %13424

13402:                                            ; preds = %13395
  %13403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13404 = call i32 @fileno(ptr noundef %13403) #12
  %13405 = call i32 @isatty(i32 noundef %13404) #12
  %13406 = icmp ne i32 %13405, 0
  br i1 %13406, label %13407, label %13424

13407:                                            ; preds = %13402
  %13408 = load i32, ptr %262, align 4, !tbaa !5
  %13409 = call ptr @__errno_location() #13
  store i32 %13408, ptr %13409, align 4, !tbaa !5
  %13410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13411 = load i32, ptr @test_count, align 4, !tbaa !5
  %13412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13413 = load i32, ptr %13412, align 4, !tbaa !5
  %13414 = call ptr @s2n_strerror(i32 noundef %13413, ptr noundef @.str.4)
  %13415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13416 = load i32, ptr %13415, align 4, !tbaa !5
  %13417 = call ptr @s2n_strerror_debug(i32 noundef %13416, ptr noundef @.str.4)
  %13418 = call ptr @__errno_location() #13
  %13419 = load i32, ptr %13418, align 4, !tbaa !5
  %13420 = call ptr @strerror(i32 noundef %13419) #12
  %13421 = call ptr @__errno_location() #13
  %13422 = load i32, ptr %13421, align 4, !tbaa !5
  %13423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13410, ptr noundef @.str.2, i32 noundef %13411, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 673, ptr noundef %13414, ptr noundef %13417, ptr noundef %13420, i32 noundef %13422) #12
  br label %13441

13424:                                            ; preds = %13402, %13395
  %13425 = load i32, ptr %262, align 4, !tbaa !5
  %13426 = call ptr @__errno_location() #13
  store i32 %13425, ptr %13426, align 4, !tbaa !5
  %13427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13428 = load i32, ptr @test_count, align 4, !tbaa !5
  %13429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13430 = load i32, ptr %13429, align 4, !tbaa !5
  %13431 = call ptr @s2n_strerror(i32 noundef %13430, ptr noundef @.str.4)
  %13432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13433 = load i32, ptr %13432, align 4, !tbaa !5
  %13434 = call ptr @s2n_strerror_debug(i32 noundef %13433, ptr noundef @.str.4)
  %13435 = call ptr @__errno_location() #13
  %13436 = load i32, ptr %13435, align 4, !tbaa !5
  %13437 = call ptr @strerror(i32 noundef %13436) #12
  %13438 = call ptr @__errno_location() #13
  %13439 = load i32, ptr %13438, align 4, !tbaa !5
  %13440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13427, ptr noundef @.str.5, i32 noundef %13428, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 673, ptr noundef %13431, ptr noundef %13434, ptr noundef %13437, i32 noundef %13439) #12
  br label %13441

13441:                                            ; preds = %13424, %13407
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #12
  br label %13442

13442:                                            ; preds = %13441
  br label %13443

13443:                                            ; preds = %13442
  call void @exit(i32 noundef 1) #14
  unreachable

13444:                                            ; No predecessors!
  br label %13445

13445:                                            ; preds = %13444
  br label %13446

13446:                                            ; preds = %13445, %13386
  br label %13447

13447:                                            ; preds = %13446
  br label %13448

13448:                                            ; preds = %13447
  br label %13449

13449:                                            ; preds = %13448
  %13450 = load i32, ptr @test_count, align 4, !tbaa !5
  %13451 = add nsw i32 %13450, 1
  store i32 %13451, ptr @test_count, align 4, !tbaa !5
  %13452 = load ptr, ptr %47, align 8, !tbaa !9
  %13453 = getelementptr inbounds %struct.s2n_connection, ptr %13452, i32 0, i32 27
  %13454 = load ptr, ptr %13453, align 8, !tbaa !48
  %13455 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %13454, i32 0, i32 0
  %13456 = load ptr, ptr %13455, align 8, !tbaa !49
  %13457 = icmp eq ptr %13456, @s2n_ecdhe_rsa_with_aes_128_cbc_sha
  br i1 %13457, label %13511, label %13458

13458:                                            ; preds = %13449
  br label %13459

13459:                                            ; preds = %13458
  br label %13460

13460:                                            ; preds = %13459
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #12
  %13461 = call ptr @__errno_location() #13
  %13462 = load i32, ptr %13461, align 4, !tbaa !5
  store i32 %13462, ptr %263, align 4, !tbaa !5
  %13463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13464 = call i32 @s2n_print_stacktrace(ptr noundef %13463)
  %13465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13466 = trunc i8 %13465 to i1
  br i1 %13466, label %13467, label %13489

13467:                                            ; preds = %13460
  %13468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13469 = call i32 @fileno(ptr noundef %13468) #12
  %13470 = call i32 @isatty(i32 noundef %13469) #12
  %13471 = icmp ne i32 %13470, 0
  br i1 %13471, label %13472, label %13489

13472:                                            ; preds = %13467
  %13473 = load i32, ptr %263, align 4, !tbaa !5
  %13474 = call ptr @__errno_location() #13
  store i32 %13473, ptr %13474, align 4, !tbaa !5
  %13475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13476 = load i32, ptr @test_count, align 4, !tbaa !5
  %13477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13478 = load i32, ptr %13477, align 4, !tbaa !5
  %13479 = call ptr @s2n_strerror(i32 noundef %13478, ptr noundef @.str.4)
  %13480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13481 = load i32, ptr %13480, align 4, !tbaa !5
  %13482 = call ptr @s2n_strerror_debug(i32 noundef %13481, ptr noundef @.str.4)
  %13483 = call ptr @__errno_location() #13
  %13484 = load i32, ptr %13483, align 4, !tbaa !5
  %13485 = call ptr @strerror(i32 noundef %13484) #12
  %13486 = call ptr @__errno_location() #13
  %13487 = load i32, ptr %13486, align 4, !tbaa !5
  %13488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13475, ptr noundef @.str.2, i32 noundef %13476, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 674, ptr noundef %13479, ptr noundef %13482, ptr noundef %13485, i32 noundef %13487) #12
  br label %13506

13489:                                            ; preds = %13467, %13460
  %13490 = load i32, ptr %263, align 4, !tbaa !5
  %13491 = call ptr @__errno_location() #13
  store i32 %13490, ptr %13491, align 4, !tbaa !5
  %13492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13493 = load i32, ptr @test_count, align 4, !tbaa !5
  %13494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13495 = load i32, ptr %13494, align 4, !tbaa !5
  %13496 = call ptr @s2n_strerror(i32 noundef %13495, ptr noundef @.str.4)
  %13497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13498 = load i32, ptr %13497, align 4, !tbaa !5
  %13499 = call ptr @s2n_strerror_debug(i32 noundef %13498, ptr noundef @.str.4)
  %13500 = call ptr @__errno_location() #13
  %13501 = load i32, ptr %13500, align 4, !tbaa !5
  %13502 = call ptr @strerror(i32 noundef %13501) #12
  %13503 = call ptr @__errno_location() #13
  %13504 = load i32, ptr %13503, align 4, !tbaa !5
  %13505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13492, ptr noundef @.str.5, i32 noundef %13493, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 674, ptr noundef %13496, ptr noundef %13499, ptr noundef %13502, i32 noundef %13504) #12
  br label %13506

13506:                                            ; preds = %13489, %13472
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #12
  br label %13507

13507:                                            ; preds = %13506
  br label %13508

13508:                                            ; preds = %13507
  call void @exit(i32 noundef 1) #14
  unreachable

13509:                                            ; No predecessors!
  br label %13510

13510:                                            ; preds = %13509
  br label %13511

13511:                                            ; preds = %13510, %13449
  br label %13512

13512:                                            ; preds = %13511
  br label %13513

13513:                                            ; preds = %13512
  br label %13514

13514:                                            ; preds = %13513
  %13515 = load i32, ptr @test_count, align 4, !tbaa !5
  %13516 = add nsw i32 %13515, 1
  store i32 %13516, ptr @test_count, align 4, !tbaa !5
  %13517 = load ptr, ptr %47, align 8, !tbaa !9
  %13518 = getelementptr inbounds [6 x i8], ptr %261, i64 0, i64 0
  %13519 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %13517, ptr noundef %13518, i16 noundef zeroext 2)
  %13520 = icmp eq i32 %13519, -1
  br i1 %13520, label %13521, label %13574

13521:                                            ; preds = %13514
  br label %13522

13522:                                            ; preds = %13521
  br label %13523

13523:                                            ; preds = %13522
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #12
  %13524 = call ptr @__errno_location() #13
  %13525 = load i32, ptr %13524, align 4, !tbaa !5
  store i32 %13525, ptr %264, align 4, !tbaa !5
  %13526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13527 = call i32 @s2n_print_stacktrace(ptr noundef %13526)
  %13528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13529 = trunc i8 %13528 to i1
  br i1 %13529, label %13530, label %13552

13530:                                            ; preds = %13523
  %13531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13532 = call i32 @fileno(ptr noundef %13531) #12
  %13533 = call i32 @isatty(i32 noundef %13532) #12
  %13534 = icmp ne i32 %13533, 0
  br i1 %13534, label %13535, label %13552

13535:                                            ; preds = %13530
  %13536 = load i32, ptr %264, align 4, !tbaa !5
  %13537 = call ptr @__errno_location() #13
  store i32 %13536, ptr %13537, align 4, !tbaa !5
  %13538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13539 = load i32, ptr @test_count, align 4, !tbaa !5
  %13540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13541 = load i32, ptr %13540, align 4, !tbaa !5
  %13542 = call ptr @s2n_strerror(i32 noundef %13541, ptr noundef @.str.4)
  %13543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13544 = load i32, ptr %13543, align 4, !tbaa !5
  %13545 = call ptr @s2n_strerror_debug(i32 noundef %13544, ptr noundef @.str.4)
  %13546 = call ptr @__errno_location() #13
  %13547 = load i32, ptr %13546, align 4, !tbaa !5
  %13548 = call ptr @strerror(i32 noundef %13547) #12
  %13549 = call ptr @__errno_location() #13
  %13550 = load i32, ptr %13549, align 4, !tbaa !5
  %13551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13538, ptr noundef @.str.2, i32 noundef %13539, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 677, ptr noundef %13542, ptr noundef %13545, ptr noundef %13548, i32 noundef %13550) #12
  br label %13569

13552:                                            ; preds = %13530, %13523
  %13553 = load i32, ptr %264, align 4, !tbaa !5
  %13554 = call ptr @__errno_location() #13
  store i32 %13553, ptr %13554, align 4, !tbaa !5
  %13555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13556 = load i32, ptr @test_count, align 4, !tbaa !5
  %13557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13558 = load i32, ptr %13557, align 4, !tbaa !5
  %13559 = call ptr @s2n_strerror(i32 noundef %13558, ptr noundef @.str.4)
  %13560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13561 = load i32, ptr %13560, align 4, !tbaa !5
  %13562 = call ptr @s2n_strerror_debug(i32 noundef %13561, ptr noundef @.str.4)
  %13563 = call ptr @__errno_location() #13
  %13564 = load i32, ptr %13563, align 4, !tbaa !5
  %13565 = call ptr @strerror(i32 noundef %13564) #12
  %13566 = call ptr @__errno_location() #13
  %13567 = load i32, ptr %13566, align 4, !tbaa !5
  %13568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13555, ptr noundef @.str.5, i32 noundef %13556, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 677, ptr noundef %13559, ptr noundef %13562, ptr noundef %13565, i32 noundef %13567) #12
  br label %13569

13569:                                            ; preds = %13552, %13535
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #12
  br label %13570

13570:                                            ; preds = %13569
  br label %13571

13571:                                            ; preds = %13570
  call void @exit(i32 noundef 1) #14
  unreachable

13572:                                            ; No predecessors!
  br label %13573

13573:                                            ; preds = %13572
  br label %13574

13574:                                            ; preds = %13573, %13514
  br label %13575

13575:                                            ; preds = %13574
  br label %13576

13576:                                            ; preds = %13575
  br label %13577

13577:                                            ; preds = %13576
  %13578 = load i32, ptr @test_count, align 4, !tbaa !5
  %13579 = add nsw i32 %13578, 1
  store i32 %13579, ptr @test_count, align 4, !tbaa !5
  %13580 = load ptr, ptr %47, align 8, !tbaa !9
  %13581 = getelementptr inbounds %struct.s2n_connection, ptr %13580, i32 0, i32 27
  %13582 = load ptr, ptr %13581, align 8, !tbaa !48
  %13583 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %13582, i32 0, i32 0
  %13584 = load ptr, ptr %13583, align 8, !tbaa !49
  %13585 = icmp eq ptr %13584, @s2n_ecdhe_rsa_with_aes_128_gcm_sha256
  br i1 %13585, label %13639, label %13586

13586:                                            ; preds = %13577
  br label %13587

13587:                                            ; preds = %13586
  br label %13588

13588:                                            ; preds = %13587
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #12
  %13589 = call ptr @__errno_location() #13
  %13590 = load i32, ptr %13589, align 4, !tbaa !5
  store i32 %13590, ptr %265, align 4, !tbaa !5
  %13591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13592 = call i32 @s2n_print_stacktrace(ptr noundef %13591)
  %13593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13594 = trunc i8 %13593 to i1
  br i1 %13594, label %13595, label %13617

13595:                                            ; preds = %13588
  %13596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13597 = call i32 @fileno(ptr noundef %13596) #12
  %13598 = call i32 @isatty(i32 noundef %13597) #12
  %13599 = icmp ne i32 %13598, 0
  br i1 %13599, label %13600, label %13617

13600:                                            ; preds = %13595
  %13601 = load i32, ptr %265, align 4, !tbaa !5
  %13602 = call ptr @__errno_location() #13
  store i32 %13601, ptr %13602, align 4, !tbaa !5
  %13603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13604 = load i32, ptr @test_count, align 4, !tbaa !5
  %13605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13606 = load i32, ptr %13605, align 4, !tbaa !5
  %13607 = call ptr @s2n_strerror(i32 noundef %13606, ptr noundef @.str.4)
  %13608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13609 = load i32, ptr %13608, align 4, !tbaa !5
  %13610 = call ptr @s2n_strerror_debug(i32 noundef %13609, ptr noundef @.str.4)
  %13611 = call ptr @__errno_location() #13
  %13612 = load i32, ptr %13611, align 4, !tbaa !5
  %13613 = call ptr @strerror(i32 noundef %13612) #12
  %13614 = call ptr @__errno_location() #13
  %13615 = load i32, ptr %13614, align 4, !tbaa !5
  %13616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13603, ptr noundef @.str.2, i32 noundef %13604, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 678, ptr noundef %13607, ptr noundef %13610, ptr noundef %13613, i32 noundef %13615) #12
  br label %13634

13617:                                            ; preds = %13595, %13588
  %13618 = load i32, ptr %265, align 4, !tbaa !5
  %13619 = call ptr @__errno_location() #13
  store i32 %13618, ptr %13619, align 4, !tbaa !5
  %13620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13621 = load i32, ptr @test_count, align 4, !tbaa !5
  %13622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13623 = load i32, ptr %13622, align 4, !tbaa !5
  %13624 = call ptr @s2n_strerror(i32 noundef %13623, ptr noundef @.str.4)
  %13625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13626 = load i32, ptr %13625, align 4, !tbaa !5
  %13627 = call ptr @s2n_strerror_debug(i32 noundef %13626, ptr noundef @.str.4)
  %13628 = call ptr @__errno_location() #13
  %13629 = load i32, ptr %13628, align 4, !tbaa !5
  %13630 = call ptr @strerror(i32 noundef %13629) #12
  %13631 = call ptr @__errno_location() #13
  %13632 = load i32, ptr %13631, align 4, !tbaa !5
  %13633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13620, ptr noundef @.str.5, i32 noundef %13621, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 678, ptr noundef %13624, ptr noundef %13627, ptr noundef %13630, i32 noundef %13632) #12
  br label %13634

13634:                                            ; preds = %13617, %13600
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #12
  br label %13635

13635:                                            ; preds = %13634
  br label %13636

13636:                                            ; preds = %13635
  call void @exit(i32 noundef 1) #14
  unreachable

13637:                                            ; No predecessors!
  br label %13638

13638:                                            ; preds = %13637
  br label %13639

13639:                                            ; preds = %13638, %13577
  br label %13640

13640:                                            ; preds = %13639
  br label %13641

13641:                                            ; preds = %13640
  br label %13642

13642:                                            ; preds = %13641
  %13643 = load i32, ptr @test_count, align 4, !tbaa !5
  %13644 = add nsw i32 %13643, 1
  store i32 %13644, ptr @test_count, align 4, !tbaa !5
  %13645 = load ptr, ptr %47, align 8, !tbaa !9
  %13646 = call i32 @s2n_connection_wipe(ptr noundef %13645)
  %13647 = icmp eq i32 %13646, -1
  br i1 %13647, label %13648, label %13701

13648:                                            ; preds = %13642
  br label %13649

13649:                                            ; preds = %13648
  br label %13650

13650:                                            ; preds = %13649
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #12
  %13651 = call ptr @__errno_location() #13
  %13652 = load i32, ptr %13651, align 4, !tbaa !5
  store i32 %13652, ptr %266, align 4, !tbaa !5
  %13653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13654 = call i32 @s2n_print_stacktrace(ptr noundef %13653)
  %13655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13656 = trunc i8 %13655 to i1
  br i1 %13656, label %13657, label %13679

13657:                                            ; preds = %13650
  %13658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13659 = call i32 @fileno(ptr noundef %13658) #12
  %13660 = call i32 @isatty(i32 noundef %13659) #12
  %13661 = icmp ne i32 %13660, 0
  br i1 %13661, label %13662, label %13679

13662:                                            ; preds = %13657
  %13663 = load i32, ptr %266, align 4, !tbaa !5
  %13664 = call ptr @__errno_location() #13
  store i32 %13663, ptr %13664, align 4, !tbaa !5
  %13665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13666 = load i32, ptr @test_count, align 4, !tbaa !5
  %13667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13668 = load i32, ptr %13667, align 4, !tbaa !5
  %13669 = call ptr @s2n_strerror(i32 noundef %13668, ptr noundef @.str.4)
  %13670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13671 = load i32, ptr %13670, align 4, !tbaa !5
  %13672 = call ptr @s2n_strerror_debug(i32 noundef %13671, ptr noundef @.str.4)
  %13673 = call ptr @__errno_location() #13
  %13674 = load i32, ptr %13673, align 4, !tbaa !5
  %13675 = call ptr @strerror(i32 noundef %13674) #12
  %13676 = call ptr @__errno_location() #13
  %13677 = load i32, ptr %13676, align 4, !tbaa !5
  %13678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13665, ptr noundef @.str.2, i32 noundef %13666, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 680, ptr noundef %13669, ptr noundef %13672, ptr noundef %13675, i32 noundef %13677) #12
  br label %13696

13679:                                            ; preds = %13657, %13650
  %13680 = load i32, ptr %266, align 4, !tbaa !5
  %13681 = call ptr @__errno_location() #13
  store i32 %13680, ptr %13681, align 4, !tbaa !5
  %13682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13683 = load i32, ptr @test_count, align 4, !tbaa !5
  %13684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13685 = load i32, ptr %13684, align 4, !tbaa !5
  %13686 = call ptr @s2n_strerror(i32 noundef %13685, ptr noundef @.str.4)
  %13687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13688 = load i32, ptr %13687, align 4, !tbaa !5
  %13689 = call ptr @s2n_strerror_debug(i32 noundef %13688, ptr noundef @.str.4)
  %13690 = call ptr @__errno_location() #13
  %13691 = load i32, ptr %13690, align 4, !tbaa !5
  %13692 = call ptr @strerror(i32 noundef %13691) #12
  %13693 = call ptr @__errno_location() #13
  %13694 = load i32, ptr %13693, align 4, !tbaa !5
  %13695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13682, ptr noundef @.str.5, i32 noundef %13683, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 680, ptr noundef %13686, ptr noundef %13689, ptr noundef %13692, i32 noundef %13694) #12
  br label %13696

13696:                                            ; preds = %13679, %13662
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #12
  br label %13697

13697:                                            ; preds = %13696
  br label %13698

13698:                                            ; preds = %13697
  call void @exit(i32 noundef 1) #14
  unreachable

13699:                                            ; No predecessors!
  br label %13700

13700:                                            ; preds = %13699
  br label %13701

13701:                                            ; preds = %13700, %13642
  br label %13702

13702:                                            ; preds = %13701
  br label %13703

13703:                                            ; preds = %13702
  call void @llvm.lifetime.end.p0(i64 6, ptr %261) #12
  br label %13704

13704:                                            ; preds = %13703
  %13705 = load i32, ptr @test_count, align 4, !tbaa !5
  %13706 = add nsw i32 %13705, 1
  store i32 %13706, ptr @test_count, align 4, !tbaa !5
  %13707 = load ptr, ptr %47, align 8, !tbaa !9
  %13708 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %13707, ptr noundef @.str.53)
  %13709 = icmp eq i32 %13708, -1
  br i1 %13709, label %13710, label %13763

13710:                                            ; preds = %13704
  br label %13711

13711:                                            ; preds = %13710
  br label %13712

13712:                                            ; preds = %13711
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #12
  %13713 = call ptr @__errno_location() #13
  %13714 = load i32, ptr %13713, align 4, !tbaa !5
  store i32 %13714, ptr %267, align 4, !tbaa !5
  %13715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13716 = call i32 @s2n_print_stacktrace(ptr noundef %13715)
  %13717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13718 = trunc i8 %13717 to i1
  br i1 %13718, label %13719, label %13741

13719:                                            ; preds = %13712
  %13720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13721 = call i32 @fileno(ptr noundef %13720) #12
  %13722 = call i32 @isatty(i32 noundef %13721) #12
  %13723 = icmp ne i32 %13722, 0
  br i1 %13723, label %13724, label %13741

13724:                                            ; preds = %13719
  %13725 = load i32, ptr %267, align 4, !tbaa !5
  %13726 = call ptr @__errno_location() #13
  store i32 %13725, ptr %13726, align 4, !tbaa !5
  %13727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13728 = load i32, ptr @test_count, align 4, !tbaa !5
  %13729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13730 = load i32, ptr %13729, align 4, !tbaa !5
  %13731 = call ptr @s2n_strerror(i32 noundef %13730, ptr noundef @.str.4)
  %13732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13733 = load i32, ptr %13732, align 4, !tbaa !5
  %13734 = call ptr @s2n_strerror_debug(i32 noundef %13733, ptr noundef @.str.4)
  %13735 = call ptr @__errno_location() #13
  %13736 = load i32, ptr %13735, align 4, !tbaa !5
  %13737 = call ptr @strerror(i32 noundef %13736) #12
  %13738 = call ptr @__errno_location() #13
  %13739 = load i32, ptr %13738, align 4, !tbaa !5
  %13740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13727, ptr noundef @.str.2, i32 noundef %13728, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 685, ptr noundef %13731, ptr noundef %13734, ptr noundef %13737, i32 noundef %13739) #12
  br label %13758

13741:                                            ; preds = %13719, %13712
  %13742 = load i32, ptr %267, align 4, !tbaa !5
  %13743 = call ptr @__errno_location() #13
  store i32 %13742, ptr %13743, align 4, !tbaa !5
  %13744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13745 = load i32, ptr @test_count, align 4, !tbaa !5
  %13746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13747 = load i32, ptr %13746, align 4, !tbaa !5
  %13748 = call ptr @s2n_strerror(i32 noundef %13747, ptr noundef @.str.4)
  %13749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13750 = load i32, ptr %13749, align 4, !tbaa !5
  %13751 = call ptr @s2n_strerror_debug(i32 noundef %13750, ptr noundef @.str.4)
  %13752 = call ptr @__errno_location() #13
  %13753 = load i32, ptr %13752, align 4, !tbaa !5
  %13754 = call ptr @strerror(i32 noundef %13753) #12
  %13755 = call ptr @__errno_location() #13
  %13756 = load i32, ptr %13755, align 4, !tbaa !5
  %13757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13744, ptr noundef @.str.5, i32 noundef %13745, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 685, ptr noundef %13748, ptr noundef %13751, ptr noundef %13754, i32 noundef %13756) #12
  br label %13758

13758:                                            ; preds = %13741, %13724
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #12
  br label %13759

13759:                                            ; preds = %13758
  br label %13760

13760:                                            ; preds = %13759
  call void @exit(i32 noundef 1) #14
  unreachable

13761:                                            ; No predecessors!
  br label %13762

13762:                                            ; preds = %13761
  br label %13763

13763:                                            ; preds = %13762, %13704
  br label %13764

13764:                                            ; preds = %13763
  br label %13765

13765:                                            ; preds = %13764
  %13766 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %13767 = load ptr, ptr %47, align 8, !tbaa !9
  %13768 = getelementptr inbounds %struct.s2n_connection, ptr %13767, i32 0, i32 31
  %13769 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13768, i32 0, i32 1
  %13770 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13769, i32 0, i32 0
  store ptr %13766, ptr %13770, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %268, ptr align 1 @__const.main.test_wire_ciphers.119, i64 4, i1 false)
  %13771 = load ptr, ptr %47, align 8, !tbaa !9
  %13772 = getelementptr inbounds %struct.s2n_connection, ptr %13771, i32 0, i32 23
  store i8 33, ptr %13772, align 4, !tbaa !42
  br label %13773

13773:                                            ; preds = %13765
  %13774 = load i32, ptr @test_count, align 4, !tbaa !5
  %13775 = add nsw i32 %13774, 1
  store i32 %13775, ptr @test_count, align 4, !tbaa !5
  %13776 = load ptr, ptr %47, align 8, !tbaa !9
  %13777 = getelementptr inbounds [4 x i8], ptr %268, i64 0, i64 0
  %13778 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %13776, ptr noundef %13777, i16 noundef zeroext 2)
  %13779 = icmp eq i32 %13778, -1
  br i1 %13779, label %13780, label %13833

13780:                                            ; preds = %13773
  br label %13781

13781:                                            ; preds = %13780
  br label %13782

13782:                                            ; preds = %13781
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #12
  %13783 = call ptr @__errno_location() #13
  %13784 = load i32, ptr %13783, align 4, !tbaa !5
  store i32 %13784, ptr %269, align 4, !tbaa !5
  %13785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13786 = call i32 @s2n_print_stacktrace(ptr noundef %13785)
  %13787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13788 = trunc i8 %13787 to i1
  br i1 %13788, label %13789, label %13811

13789:                                            ; preds = %13782
  %13790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13791 = call i32 @fileno(ptr noundef %13790) #12
  %13792 = call i32 @isatty(i32 noundef %13791) #12
  %13793 = icmp ne i32 %13792, 0
  br i1 %13793, label %13794, label %13811

13794:                                            ; preds = %13789
  %13795 = load i32, ptr %269, align 4, !tbaa !5
  %13796 = call ptr @__errno_location() #13
  store i32 %13795, ptr %13796, align 4, !tbaa !5
  %13797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13798 = load i32, ptr @test_count, align 4, !tbaa !5
  %13799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13800 = load i32, ptr %13799, align 4, !tbaa !5
  %13801 = call ptr @s2n_strerror(i32 noundef %13800, ptr noundef @.str.4)
  %13802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13803 = load i32, ptr %13802, align 4, !tbaa !5
  %13804 = call ptr @s2n_strerror_debug(i32 noundef %13803, ptr noundef @.str.4)
  %13805 = call ptr @__errno_location() #13
  %13806 = load i32, ptr %13805, align 4, !tbaa !5
  %13807 = call ptr @strerror(i32 noundef %13806) #12
  %13808 = call ptr @__errno_location() #13
  %13809 = load i32, ptr %13808, align 4, !tbaa !5
  %13810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13797, ptr noundef @.str.2, i32 noundef %13798, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 696, ptr noundef %13801, ptr noundef %13804, ptr noundef %13807, i32 noundef %13809) #12
  br label %13828

13811:                                            ; preds = %13789, %13782
  %13812 = load i32, ptr %269, align 4, !tbaa !5
  %13813 = call ptr @__errno_location() #13
  store i32 %13812, ptr %13813, align 4, !tbaa !5
  %13814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13815 = load i32, ptr @test_count, align 4, !tbaa !5
  %13816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13817 = load i32, ptr %13816, align 4, !tbaa !5
  %13818 = call ptr @s2n_strerror(i32 noundef %13817, ptr noundef @.str.4)
  %13819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13820 = load i32, ptr %13819, align 4, !tbaa !5
  %13821 = call ptr @s2n_strerror_debug(i32 noundef %13820, ptr noundef @.str.4)
  %13822 = call ptr @__errno_location() #13
  %13823 = load i32, ptr %13822, align 4, !tbaa !5
  %13824 = call ptr @strerror(i32 noundef %13823) #12
  %13825 = call ptr @__errno_location() #13
  %13826 = load i32, ptr %13825, align 4, !tbaa !5
  %13827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13814, ptr noundef @.str.5, i32 noundef %13815, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 696, ptr noundef %13818, ptr noundef %13821, ptr noundef %13824, i32 noundef %13826) #12
  br label %13828

13828:                                            ; preds = %13811, %13794
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #12
  br label %13829

13829:                                            ; preds = %13828
  br label %13830

13830:                                            ; preds = %13829
  call void @exit(i32 noundef 1) #14
  unreachable

13831:                                            ; No predecessors!
  br label %13832

13832:                                            ; preds = %13831
  br label %13833

13833:                                            ; preds = %13832, %13773
  br label %13834

13834:                                            ; preds = %13833
  br label %13835

13835:                                            ; preds = %13834
  br label %13836

13836:                                            ; preds = %13835
  %13837 = load i32, ptr @test_count, align 4, !tbaa !5
  %13838 = add nsw i32 %13837, 1
  store i32 %13838, ptr @test_count, align 4, !tbaa !5
  %13839 = load ptr, ptr %47, align 8, !tbaa !9
  %13840 = getelementptr inbounds %struct.s2n_connection, ptr %13839, i32 0, i32 27
  %13841 = load ptr, ptr %13840, align 8, !tbaa !48
  %13842 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %13841, i32 0, i32 0
  %13843 = load ptr, ptr %13842, align 8, !tbaa !49
  %13844 = icmp eq ptr %13843, @s2n_ecdhe_rsa_with_aes_128_gcm_sha256
  br i1 %13844, label %13898, label %13845

13845:                                            ; preds = %13836
  br label %13846

13846:                                            ; preds = %13845
  br label %13847

13847:                                            ; preds = %13846
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #12
  %13848 = call ptr @__errno_location() #13
  %13849 = load i32, ptr %13848, align 4, !tbaa !5
  store i32 %13849, ptr %270, align 4, !tbaa !5
  %13850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13851 = call i32 @s2n_print_stacktrace(ptr noundef %13850)
  %13852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13853 = trunc i8 %13852 to i1
  br i1 %13853, label %13854, label %13876

13854:                                            ; preds = %13847
  %13855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13856 = call i32 @fileno(ptr noundef %13855) #12
  %13857 = call i32 @isatty(i32 noundef %13856) #12
  %13858 = icmp ne i32 %13857, 0
  br i1 %13858, label %13859, label %13876

13859:                                            ; preds = %13854
  %13860 = load i32, ptr %270, align 4, !tbaa !5
  %13861 = call ptr @__errno_location() #13
  store i32 %13860, ptr %13861, align 4, !tbaa !5
  %13862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13863 = load i32, ptr @test_count, align 4, !tbaa !5
  %13864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13865 = load i32, ptr %13864, align 4, !tbaa !5
  %13866 = call ptr @s2n_strerror(i32 noundef %13865, ptr noundef @.str.4)
  %13867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13868 = load i32, ptr %13867, align 4, !tbaa !5
  %13869 = call ptr @s2n_strerror_debug(i32 noundef %13868, ptr noundef @.str.4)
  %13870 = call ptr @__errno_location() #13
  %13871 = load i32, ptr %13870, align 4, !tbaa !5
  %13872 = call ptr @strerror(i32 noundef %13871) #12
  %13873 = call ptr @__errno_location() #13
  %13874 = load i32, ptr %13873, align 4, !tbaa !5
  %13875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13862, ptr noundef @.str.2, i32 noundef %13863, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 697, ptr noundef %13866, ptr noundef %13869, ptr noundef %13872, i32 noundef %13874) #12
  br label %13893

13876:                                            ; preds = %13854, %13847
  %13877 = load i32, ptr %270, align 4, !tbaa !5
  %13878 = call ptr @__errno_location() #13
  store i32 %13877, ptr %13878, align 4, !tbaa !5
  %13879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13880 = load i32, ptr @test_count, align 4, !tbaa !5
  %13881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13882 = load i32, ptr %13881, align 4, !tbaa !5
  %13883 = call ptr @s2n_strerror(i32 noundef %13882, ptr noundef @.str.4)
  %13884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13885 = load i32, ptr %13884, align 4, !tbaa !5
  %13886 = call ptr @s2n_strerror_debug(i32 noundef %13885, ptr noundef @.str.4)
  %13887 = call ptr @__errno_location() #13
  %13888 = load i32, ptr %13887, align 4, !tbaa !5
  %13889 = call ptr @strerror(i32 noundef %13888) #12
  %13890 = call ptr @__errno_location() #13
  %13891 = load i32, ptr %13890, align 4, !tbaa !5
  %13892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13879, ptr noundef @.str.5, i32 noundef %13880, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 697, ptr noundef %13883, ptr noundef %13886, ptr noundef %13889, i32 noundef %13891) #12
  br label %13893

13893:                                            ; preds = %13876, %13859
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #12
  br label %13894

13894:                                            ; preds = %13893
  br label %13895

13895:                                            ; preds = %13894
  call void @exit(i32 noundef 1) #14
  unreachable

13896:                                            ; No predecessors!
  br label %13897

13897:                                            ; preds = %13896
  br label %13898

13898:                                            ; preds = %13897, %13836
  br label %13899

13899:                                            ; preds = %13898
  br label %13900

13900:                                            ; preds = %13899
  br label %13901

13901:                                            ; preds = %13900
  br label %13902

13902:                                            ; preds = %13901
  br label %13903

13903:                                            ; preds = %13902
  %13904 = load i32, ptr @test_count, align 4, !tbaa !5
  %13905 = add nsw i32 %13904, 1
  store i32 %13905, ptr @test_count, align 4, !tbaa !5
  %13906 = load ptr, ptr %47, align 8, !tbaa !9
  %13907 = getelementptr inbounds [4 x i8], ptr %268, i64 0, i64 0
  %13908 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %13906, ptr noundef %13907, i16 noundef zeroext 1)
  %13909 = icmp eq i32 %13908, -1
  br i1 %13909, label %13963, label %13910

13910:                                            ; preds = %13903
  br label %13911

13911:                                            ; preds = %13910
  br label %13912

13912:                                            ; preds = %13911
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #12
  %13913 = call ptr @__errno_location() #13
  %13914 = load i32, ptr %13913, align 4, !tbaa !5
  store i32 %13914, ptr %271, align 4, !tbaa !5
  %13915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13916 = call i32 @s2n_print_stacktrace(ptr noundef %13915)
  %13917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13918 = trunc i8 %13917 to i1
  br i1 %13918, label %13919, label %13941

13919:                                            ; preds = %13912
  %13920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13921 = call i32 @fileno(ptr noundef %13920) #12
  %13922 = call i32 @isatty(i32 noundef %13921) #12
  %13923 = icmp ne i32 %13922, 0
  br i1 %13923, label %13924, label %13941

13924:                                            ; preds = %13919
  %13925 = load i32, ptr %271, align 4, !tbaa !5
  %13926 = call ptr @__errno_location() #13
  store i32 %13925, ptr %13926, align 4, !tbaa !5
  %13927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13928 = load i32, ptr @test_count, align 4, !tbaa !5
  %13929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13930 = load i32, ptr %13929, align 4, !tbaa !5
  %13931 = call ptr @s2n_strerror(i32 noundef %13930, ptr noundef @.str.4)
  %13932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13933 = load i32, ptr %13932, align 4, !tbaa !5
  %13934 = call ptr @s2n_strerror_debug(i32 noundef %13933, ptr noundef @.str.4)
  %13935 = call ptr @__errno_location() #13
  %13936 = load i32, ptr %13935, align 4, !tbaa !5
  %13937 = call ptr @strerror(i32 noundef %13936) #12
  %13938 = call ptr @__errno_location() #13
  %13939 = load i32, ptr %13938, align 4, !tbaa !5
  %13940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13927, ptr noundef @.str.2, i32 noundef %13928, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 702, ptr noundef %13931, ptr noundef %13934, ptr noundef %13937, i32 noundef %13939) #12
  br label %13958

13941:                                            ; preds = %13919, %13912
  %13942 = load i32, ptr %271, align 4, !tbaa !5
  %13943 = call ptr @__errno_location() #13
  store i32 %13942, ptr %13943, align 4, !tbaa !5
  %13944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13945 = load i32, ptr @test_count, align 4, !tbaa !5
  %13946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13947 = load i32, ptr %13946, align 4, !tbaa !5
  %13948 = call ptr @s2n_strerror(i32 noundef %13947, ptr noundef @.str.4)
  %13949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13950 = load i32, ptr %13949, align 4, !tbaa !5
  %13951 = call ptr @s2n_strerror_debug(i32 noundef %13950, ptr noundef @.str.4)
  %13952 = call ptr @__errno_location() #13
  %13953 = load i32, ptr %13952, align 4, !tbaa !5
  %13954 = call ptr @strerror(i32 noundef %13953) #12
  %13955 = call ptr @__errno_location() #13
  %13956 = load i32, ptr %13955, align 4, !tbaa !5
  %13957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13944, ptr noundef @.str.5, i32 noundef %13945, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 702, ptr noundef %13948, ptr noundef %13951, ptr noundef %13954, i32 noundef %13956) #12
  br label %13958

13958:                                            ; preds = %13941, %13924
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #12
  br label %13959

13959:                                            ; preds = %13958
  br label %13960

13960:                                            ; preds = %13959
  call void @exit(i32 noundef 1) #14
  unreachable

13961:                                            ; No predecessors!
  br label %13962

13962:                                            ; preds = %13961
  br label %13963

13963:                                            ; preds = %13962, %13903
  br label %13964

13964:                                            ; preds = %13963
  br label %13965

13965:                                            ; preds = %13964
  br label %13966

13966:                                            ; preds = %13965
  %13967 = load i32, ptr @test_count, align 4, !tbaa !5
  %13968 = add nsw i32 %13967, 1
  store i32 %13968, ptr @test_count, align 4, !tbaa !5
  %13969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13970 = load i32, ptr %13969, align 4, !tbaa !5
  %13971 = icmp eq i32 %13970, 335544334
  br i1 %13971, label %14025, label %13972

13972:                                            ; preds = %13966
  br label %13973

13973:                                            ; preds = %13972
  br label %13974

13974:                                            ; preds = %13973
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #12
  %13975 = call ptr @__errno_location() #13
  %13976 = load i32, ptr %13975, align 4, !tbaa !5
  store i32 %13976, ptr %272, align 4, !tbaa !5
  %13977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13978 = call i32 @s2n_print_stacktrace(ptr noundef %13977)
  %13979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13980 = trunc i8 %13979 to i1
  br i1 %13980, label %13981, label %14003

13981:                                            ; preds = %13974
  %13982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13983 = call i32 @fileno(ptr noundef %13982) #12
  %13984 = call i32 @isatty(i32 noundef %13983) #12
  %13985 = icmp ne i32 %13984, 0
  br i1 %13985, label %13986, label %14003

13986:                                            ; preds = %13981
  %13987 = load i32, ptr %272, align 4, !tbaa !5
  %13988 = call ptr @__errno_location() #13
  store i32 %13987, ptr %13988, align 4, !tbaa !5
  %13989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13990 = load i32, ptr @test_count, align 4, !tbaa !5
  %13991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13992 = load i32, ptr %13991, align 4, !tbaa !5
  %13993 = call ptr @s2n_strerror(i32 noundef %13992, ptr noundef @.str.4)
  %13994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13995 = load i32, ptr %13994, align 4, !tbaa !5
  %13996 = call ptr @s2n_strerror_debug(i32 noundef %13995, ptr noundef @.str.4)
  %13997 = call ptr @__errno_location() #13
  %13998 = load i32, ptr %13997, align 4, !tbaa !5
  %13999 = call ptr @strerror(i32 noundef %13998) #12
  %14000 = call ptr @__errno_location() #13
  %14001 = load i32, ptr %14000, align 4, !tbaa !5
  %14002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13989, ptr noundef @.str.2, i32 noundef %13990, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 702, ptr noundef %13993, ptr noundef %13996, ptr noundef %13999, i32 noundef %14001) #12
  br label %14020

14003:                                            ; preds = %13981, %13974
  %14004 = load i32, ptr %272, align 4, !tbaa !5
  %14005 = call ptr @__errno_location() #13
  store i32 %14004, ptr %14005, align 4, !tbaa !5
  %14006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14007 = load i32, ptr @test_count, align 4, !tbaa !5
  %14008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14009 = load i32, ptr %14008, align 4, !tbaa !5
  %14010 = call ptr @s2n_strerror(i32 noundef %14009, ptr noundef @.str.4)
  %14011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14012 = load i32, ptr %14011, align 4, !tbaa !5
  %14013 = call ptr @s2n_strerror_debug(i32 noundef %14012, ptr noundef @.str.4)
  %14014 = call ptr @__errno_location() #13
  %14015 = load i32, ptr %14014, align 4, !tbaa !5
  %14016 = call ptr @strerror(i32 noundef %14015) #12
  %14017 = call ptr @__errno_location() #13
  %14018 = load i32, ptr %14017, align 4, !tbaa !5
  %14019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14006, ptr noundef @.str.5, i32 noundef %14007, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 702, ptr noundef %14010, ptr noundef %14013, ptr noundef %14016, i32 noundef %14018) #12
  br label %14020

14020:                                            ; preds = %14003, %13986
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #12
  br label %14021

14021:                                            ; preds = %14020
  br label %14022

14022:                                            ; preds = %14021
  call void @exit(i32 noundef 1) #14
  unreachable

14023:                                            ; No predecessors!
  br label %14024

14024:                                            ; preds = %14023
  br label %14025

14025:                                            ; preds = %14024, %13966
  br label %14026

14026:                                            ; preds = %14025
  br label %14027

14027:                                            ; preds = %14026
  br label %14028

14028:                                            ; preds = %14027
  %14029 = load i32, ptr @test_count, align 4, !tbaa !5
  %14030 = add nsw i32 %14029, 1
  store i32 %14030, ptr @test_count, align 4, !tbaa !5
  %14031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14032 = load i32, ptr %14031, align 4, !tbaa !5
  %14033 = call ptr @s2n_strerror_debug(i32 noundef %14032, ptr noundef @.str.4)
  %14034 = icmp eq ptr %14033, null
  br i1 %14034, label %14035, label %14088

14035:                                            ; preds = %14028
  br label %14036

14036:                                            ; preds = %14035
  br label %14037

14037:                                            ; preds = %14036
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #12
  %14038 = call ptr @__errno_location() #13
  %14039 = load i32, ptr %14038, align 4, !tbaa !5
  store i32 %14039, ptr %273, align 4, !tbaa !5
  %14040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14041 = call i32 @s2n_print_stacktrace(ptr noundef %14040)
  %14042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14043 = trunc i8 %14042 to i1
  br i1 %14043, label %14044, label %14066

14044:                                            ; preds = %14037
  %14045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14046 = call i32 @fileno(ptr noundef %14045) #12
  %14047 = call i32 @isatty(i32 noundef %14046) #12
  %14048 = icmp ne i32 %14047, 0
  br i1 %14048, label %14049, label %14066

14049:                                            ; preds = %14044
  %14050 = load i32, ptr %273, align 4, !tbaa !5
  %14051 = call ptr @__errno_location() #13
  store i32 %14050, ptr %14051, align 4, !tbaa !5
  %14052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14053 = load i32, ptr @test_count, align 4, !tbaa !5
  %14054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14055 = load i32, ptr %14054, align 4, !tbaa !5
  %14056 = call ptr @s2n_strerror(i32 noundef %14055, ptr noundef @.str.4)
  %14057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14058 = load i32, ptr %14057, align 4, !tbaa !5
  %14059 = call ptr @s2n_strerror_debug(i32 noundef %14058, ptr noundef @.str.4)
  %14060 = call ptr @__errno_location() #13
  %14061 = load i32, ptr %14060, align 4, !tbaa !5
  %14062 = call ptr @strerror(i32 noundef %14061) #12
  %14063 = call ptr @__errno_location() #13
  %14064 = load i32, ptr %14063, align 4, !tbaa !5
  %14065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14052, ptr noundef @.str.2, i32 noundef %14053, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 702, ptr noundef %14056, ptr noundef %14059, ptr noundef %14062, i32 noundef %14064) #12
  br label %14083

14066:                                            ; preds = %14044, %14037
  %14067 = load i32, ptr %273, align 4, !tbaa !5
  %14068 = call ptr @__errno_location() #13
  store i32 %14067, ptr %14068, align 4, !tbaa !5
  %14069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14070 = load i32, ptr @test_count, align 4, !tbaa !5
  %14071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14072 = load i32, ptr %14071, align 4, !tbaa !5
  %14073 = call ptr @s2n_strerror(i32 noundef %14072, ptr noundef @.str.4)
  %14074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14075 = load i32, ptr %14074, align 4, !tbaa !5
  %14076 = call ptr @s2n_strerror_debug(i32 noundef %14075, ptr noundef @.str.4)
  %14077 = call ptr @__errno_location() #13
  %14078 = load i32, ptr %14077, align 4, !tbaa !5
  %14079 = call ptr @strerror(i32 noundef %14078) #12
  %14080 = call ptr @__errno_location() #13
  %14081 = load i32, ptr %14080, align 4, !tbaa !5
  %14082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14069, ptr noundef @.str.5, i32 noundef %14070, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 702, ptr noundef %14073, ptr noundef %14076, ptr noundef %14079, i32 noundef %14081) #12
  br label %14083

14083:                                            ; preds = %14066, %14049
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #12
  br label %14084

14084:                                            ; preds = %14083
  br label %14085

14085:                                            ; preds = %14084
  call void @exit(i32 noundef 1) #14
  unreachable

14086:                                            ; No predecessors!
  br label %14087

14087:                                            ; preds = %14086
  br label %14088

14088:                                            ; preds = %14087, %14028
  br label %14089

14089:                                            ; preds = %14088
  br label %14090

14090:                                            ; preds = %14089
  br label %14091

14091:                                            ; preds = %14090
  br label %14092

14092:                                            ; preds = %14091
  br label %14093

14093:                                            ; preds = %14092
  %14094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14094, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14095 = call ptr @__errno_location() #13
  store i32 0, ptr %14095, align 4, !tbaa !5
  br label %14096

14096:                                            ; preds = %14093
  br label %14097

14097:                                            ; preds = %14096
  br label %14098

14098:                                            ; preds = %14097
  br label %14099

14099:                                            ; preds = %14098
  br label %14100

14100:                                            ; preds = %14099
  %14101 = load i32, ptr @test_count, align 4, !tbaa !5
  %14102 = add nsw i32 %14101, 1
  store i32 %14102, ptr @test_count, align 4, !tbaa !5
  %14103 = load ptr, ptr %47, align 8, !tbaa !9
  %14104 = call i32 @s2n_connection_wipe(ptr noundef %14103)
  %14105 = icmp eq i32 %14104, -1
  br i1 %14105, label %14106, label %14159

14106:                                            ; preds = %14100
  br label %14107

14107:                                            ; preds = %14106
  br label %14108

14108:                                            ; preds = %14107
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #12
  %14109 = call ptr @__errno_location() #13
  %14110 = load i32, ptr %14109, align 4, !tbaa !5
  store i32 %14110, ptr %274, align 4, !tbaa !5
  %14111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14112 = call i32 @s2n_print_stacktrace(ptr noundef %14111)
  %14113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14114 = trunc i8 %14113 to i1
  br i1 %14114, label %14115, label %14137

14115:                                            ; preds = %14108
  %14116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14117 = call i32 @fileno(ptr noundef %14116) #12
  %14118 = call i32 @isatty(i32 noundef %14117) #12
  %14119 = icmp ne i32 %14118, 0
  br i1 %14119, label %14120, label %14137

14120:                                            ; preds = %14115
  %14121 = load i32, ptr %274, align 4, !tbaa !5
  %14122 = call ptr @__errno_location() #13
  store i32 %14121, ptr %14122, align 4, !tbaa !5
  %14123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14124 = load i32, ptr @test_count, align 4, !tbaa !5
  %14125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14126 = load i32, ptr %14125, align 4, !tbaa !5
  %14127 = call ptr @s2n_strerror(i32 noundef %14126, ptr noundef @.str.4)
  %14128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14129 = load i32, ptr %14128, align 4, !tbaa !5
  %14130 = call ptr @s2n_strerror_debug(i32 noundef %14129, ptr noundef @.str.4)
  %14131 = call ptr @__errno_location() #13
  %14132 = load i32, ptr %14131, align 4, !tbaa !5
  %14133 = call ptr @strerror(i32 noundef %14132) #12
  %14134 = call ptr @__errno_location() #13
  %14135 = load i32, ptr %14134, align 4, !tbaa !5
  %14136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14123, ptr noundef @.str.2, i32 noundef %14124, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 704, ptr noundef %14127, ptr noundef %14130, ptr noundef %14133, i32 noundef %14135) #12
  br label %14154

14137:                                            ; preds = %14115, %14108
  %14138 = load i32, ptr %274, align 4, !tbaa !5
  %14139 = call ptr @__errno_location() #13
  store i32 %14138, ptr %14139, align 4, !tbaa !5
  %14140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14141 = load i32, ptr @test_count, align 4, !tbaa !5
  %14142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14143 = load i32, ptr %14142, align 4, !tbaa !5
  %14144 = call ptr @s2n_strerror(i32 noundef %14143, ptr noundef @.str.4)
  %14145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14146 = load i32, ptr %14145, align 4, !tbaa !5
  %14147 = call ptr @s2n_strerror_debug(i32 noundef %14146, ptr noundef @.str.4)
  %14148 = call ptr @__errno_location() #13
  %14149 = load i32, ptr %14148, align 4, !tbaa !5
  %14150 = call ptr @strerror(i32 noundef %14149) #12
  %14151 = call ptr @__errno_location() #13
  %14152 = load i32, ptr %14151, align 4, !tbaa !5
  %14153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14140, ptr noundef @.str.5, i32 noundef %14141, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 704, ptr noundef %14144, ptr noundef %14147, ptr noundef %14150, i32 noundef %14152) #12
  br label %14154

14154:                                            ; preds = %14137, %14120
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #12
  br label %14155

14155:                                            ; preds = %14154
  br label %14156

14156:                                            ; preds = %14155
  call void @exit(i32 noundef 1) #14
  unreachable

14157:                                            ; No predecessors!
  br label %14158

14158:                                            ; preds = %14157
  br label %14159

14159:                                            ; preds = %14158, %14100
  br label %14160

14160:                                            ; preds = %14159
  br label %14161

14161:                                            ; preds = %14160
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #12
  br label %14162

14162:                                            ; preds = %14161
  %14163 = load i32, ptr @test_count, align 4, !tbaa !5
  %14164 = add nsw i32 %14163, 1
  store i32 %14164, ptr @test_count, align 4, !tbaa !5
  %14165 = load ptr, ptr %47, align 8, !tbaa !9
  %14166 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %14165, ptr noundef @.str.53)
  %14167 = icmp eq i32 %14166, -1
  br i1 %14167, label %14168, label %14221

14168:                                            ; preds = %14162
  br label %14169

14169:                                            ; preds = %14168
  br label %14170

14170:                                            ; preds = %14169
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #12
  %14171 = call ptr @__errno_location() #13
  %14172 = load i32, ptr %14171, align 4, !tbaa !5
  store i32 %14172, ptr %275, align 4, !tbaa !5
  %14173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14174 = call i32 @s2n_print_stacktrace(ptr noundef %14173)
  %14175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14176 = trunc i8 %14175 to i1
  br i1 %14176, label %14177, label %14199

14177:                                            ; preds = %14170
  %14178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14179 = call i32 @fileno(ptr noundef %14178) #12
  %14180 = call i32 @isatty(i32 noundef %14179) #12
  %14181 = icmp ne i32 %14180, 0
  br i1 %14181, label %14182, label %14199

14182:                                            ; preds = %14177
  %14183 = load i32, ptr %275, align 4, !tbaa !5
  %14184 = call ptr @__errno_location() #13
  store i32 %14183, ptr %14184, align 4, !tbaa !5
  %14185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14186 = load i32, ptr @test_count, align 4, !tbaa !5
  %14187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14188 = load i32, ptr %14187, align 4, !tbaa !5
  %14189 = call ptr @s2n_strerror(i32 noundef %14188, ptr noundef @.str.4)
  %14190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14191 = load i32, ptr %14190, align 4, !tbaa !5
  %14192 = call ptr @s2n_strerror_debug(i32 noundef %14191, ptr noundef @.str.4)
  %14193 = call ptr @__errno_location() #13
  %14194 = load i32, ptr %14193, align 4, !tbaa !5
  %14195 = call ptr @strerror(i32 noundef %14194) #12
  %14196 = call ptr @__errno_location() #13
  %14197 = load i32, ptr %14196, align 4, !tbaa !5
  %14198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14185, ptr noundef @.str.2, i32 noundef %14186, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 709, ptr noundef %14189, ptr noundef %14192, ptr noundef %14195, i32 noundef %14197) #12
  br label %14216

14199:                                            ; preds = %14177, %14170
  %14200 = load i32, ptr %275, align 4, !tbaa !5
  %14201 = call ptr @__errno_location() #13
  store i32 %14200, ptr %14201, align 4, !tbaa !5
  %14202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14203 = load i32, ptr @test_count, align 4, !tbaa !5
  %14204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14205 = load i32, ptr %14204, align 4, !tbaa !5
  %14206 = call ptr @s2n_strerror(i32 noundef %14205, ptr noundef @.str.4)
  %14207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14208 = load i32, ptr %14207, align 4, !tbaa !5
  %14209 = call ptr @s2n_strerror_debug(i32 noundef %14208, ptr noundef @.str.4)
  %14210 = call ptr @__errno_location() #13
  %14211 = load i32, ptr %14210, align 4, !tbaa !5
  %14212 = call ptr @strerror(i32 noundef %14211) #12
  %14213 = call ptr @__errno_location() #13
  %14214 = load i32, ptr %14213, align 4, !tbaa !5
  %14215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14202, ptr noundef @.str.5, i32 noundef %14203, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 709, ptr noundef %14206, ptr noundef %14209, ptr noundef %14212, i32 noundef %14214) #12
  br label %14216

14216:                                            ; preds = %14199, %14182
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #12
  br label %14217

14217:                                            ; preds = %14216
  br label %14218

14218:                                            ; preds = %14217
  call void @exit(i32 noundef 1) #14
  unreachable

14219:                                            ; No predecessors!
  br label %14220

14220:                                            ; preds = %14219
  br label %14221

14221:                                            ; preds = %14220, %14162
  br label %14222

14222:                                            ; preds = %14221
  br label %14223

14223:                                            ; preds = %14222
  %14224 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %14225 = load ptr, ptr %47, align 8, !tbaa !9
  %14226 = getelementptr inbounds %struct.s2n_connection, ptr %14225, i32 0, i32 31
  %14227 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14226, i32 0, i32 1
  %14228 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %14227, i32 0, i32 0
  store ptr %14224, ptr %14228, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %276, ptr align 1 @__const.main.test_wire_ciphers.121, i64 4, i1 false)
  %14229 = load ptr, ptr %47, align 8, !tbaa !9
  %14230 = getelementptr inbounds %struct.s2n_connection, ptr %14229, i32 0, i32 23
  store i8 34, ptr %14230, align 4, !tbaa !42
  br label %14231

14231:                                            ; preds = %14223
  %14232 = load i32, ptr @test_count, align 4, !tbaa !5
  %14233 = add nsw i32 %14232, 1
  store i32 %14233, ptr @test_count, align 4, !tbaa !5
  %14234 = load ptr, ptr %47, align 8, !tbaa !9
  %14235 = getelementptr inbounds [4 x i8], ptr %276, i64 0, i64 0
  %14236 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %14234, ptr noundef %14235, i16 noundef zeroext 2)
  %14237 = icmp eq i32 %14236, -1
  br i1 %14237, label %14238, label %14291

14238:                                            ; preds = %14231
  br label %14239

14239:                                            ; preds = %14238
  br label %14240

14240:                                            ; preds = %14239
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #12
  %14241 = call ptr @__errno_location() #13
  %14242 = load i32, ptr %14241, align 4, !tbaa !5
  store i32 %14242, ptr %277, align 4, !tbaa !5
  %14243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14244 = call i32 @s2n_print_stacktrace(ptr noundef %14243)
  %14245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14246 = trunc i8 %14245 to i1
  br i1 %14246, label %14247, label %14269

14247:                                            ; preds = %14240
  %14248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14249 = call i32 @fileno(ptr noundef %14248) #12
  %14250 = call i32 @isatty(i32 noundef %14249) #12
  %14251 = icmp ne i32 %14250, 0
  br i1 %14251, label %14252, label %14269

14252:                                            ; preds = %14247
  %14253 = load i32, ptr %277, align 4, !tbaa !5
  %14254 = call ptr @__errno_location() #13
  store i32 %14253, ptr %14254, align 4, !tbaa !5
  %14255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14256 = load i32, ptr @test_count, align 4, !tbaa !5
  %14257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14258 = load i32, ptr %14257, align 4, !tbaa !5
  %14259 = call ptr @s2n_strerror(i32 noundef %14258, ptr noundef @.str.4)
  %14260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14261 = load i32, ptr %14260, align 4, !tbaa !5
  %14262 = call ptr @s2n_strerror_debug(i32 noundef %14261, ptr noundef @.str.4)
  %14263 = call ptr @__errno_location() #13
  %14264 = load i32, ptr %14263, align 4, !tbaa !5
  %14265 = call ptr @strerror(i32 noundef %14264) #12
  %14266 = call ptr @__errno_location() #13
  %14267 = load i32, ptr %14266, align 4, !tbaa !5
  %14268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14255, ptr noundef @.str.2, i32 noundef %14256, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 720, ptr noundef %14259, ptr noundef %14262, ptr noundef %14265, i32 noundef %14267) #12
  br label %14286

14269:                                            ; preds = %14247, %14240
  %14270 = load i32, ptr %277, align 4, !tbaa !5
  %14271 = call ptr @__errno_location() #13
  store i32 %14270, ptr %14271, align 4, !tbaa !5
  %14272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14273 = load i32, ptr @test_count, align 4, !tbaa !5
  %14274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14275 = load i32, ptr %14274, align 4, !tbaa !5
  %14276 = call ptr @s2n_strerror(i32 noundef %14275, ptr noundef @.str.4)
  %14277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14278 = load i32, ptr %14277, align 4, !tbaa !5
  %14279 = call ptr @s2n_strerror_debug(i32 noundef %14278, ptr noundef @.str.4)
  %14280 = call ptr @__errno_location() #13
  %14281 = load i32, ptr %14280, align 4, !tbaa !5
  %14282 = call ptr @strerror(i32 noundef %14281) #12
  %14283 = call ptr @__errno_location() #13
  %14284 = load i32, ptr %14283, align 4, !tbaa !5
  %14285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14272, ptr noundef @.str.5, i32 noundef %14273, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 720, ptr noundef %14276, ptr noundef %14279, ptr noundef %14282, i32 noundef %14284) #12
  br label %14286

14286:                                            ; preds = %14269, %14252
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #12
  br label %14287

14287:                                            ; preds = %14286
  br label %14288

14288:                                            ; preds = %14287
  call void @exit(i32 noundef 1) #14
  unreachable

14289:                                            ; No predecessors!
  br label %14290

14290:                                            ; preds = %14289
  br label %14291

14291:                                            ; preds = %14290, %14231
  br label %14292

14292:                                            ; preds = %14291
  br label %14293

14293:                                            ; preds = %14292
  br label %14294

14294:                                            ; preds = %14293
  %14295 = load i32, ptr @test_count, align 4, !tbaa !5
  %14296 = add nsw i32 %14295, 1
  store i32 %14296, ptr @test_count, align 4, !tbaa !5
  %14297 = load ptr, ptr %47, align 8, !tbaa !9
  %14298 = getelementptr inbounds %struct.s2n_connection, ptr %14297, i32 0, i32 27
  %14299 = load ptr, ptr %14298, align 8, !tbaa !48
  %14300 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %14299, i32 0, i32 0
  %14301 = load ptr, ptr %14300, align 8, !tbaa !49
  %14302 = icmp eq ptr %14301, @s2n_tls13_aes_128_gcm_sha256
  br i1 %14302, label %14356, label %14303

14303:                                            ; preds = %14294
  br label %14304

14304:                                            ; preds = %14303
  br label %14305

14305:                                            ; preds = %14304
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #12
  %14306 = call ptr @__errno_location() #13
  %14307 = load i32, ptr %14306, align 4, !tbaa !5
  store i32 %14307, ptr %278, align 4, !tbaa !5
  %14308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14309 = call i32 @s2n_print_stacktrace(ptr noundef %14308)
  %14310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14311 = trunc i8 %14310 to i1
  br i1 %14311, label %14312, label %14334

14312:                                            ; preds = %14305
  %14313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14314 = call i32 @fileno(ptr noundef %14313) #12
  %14315 = call i32 @isatty(i32 noundef %14314) #12
  %14316 = icmp ne i32 %14315, 0
  br i1 %14316, label %14317, label %14334

14317:                                            ; preds = %14312
  %14318 = load i32, ptr %278, align 4, !tbaa !5
  %14319 = call ptr @__errno_location() #13
  store i32 %14318, ptr %14319, align 4, !tbaa !5
  %14320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14321 = load i32, ptr @test_count, align 4, !tbaa !5
  %14322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14323 = load i32, ptr %14322, align 4, !tbaa !5
  %14324 = call ptr @s2n_strerror(i32 noundef %14323, ptr noundef @.str.4)
  %14325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14326 = load i32, ptr %14325, align 4, !tbaa !5
  %14327 = call ptr @s2n_strerror_debug(i32 noundef %14326, ptr noundef @.str.4)
  %14328 = call ptr @__errno_location() #13
  %14329 = load i32, ptr %14328, align 4, !tbaa !5
  %14330 = call ptr @strerror(i32 noundef %14329) #12
  %14331 = call ptr @__errno_location() #13
  %14332 = load i32, ptr %14331, align 4, !tbaa !5
  %14333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14320, ptr noundef @.str.2, i32 noundef %14321, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 721, ptr noundef %14324, ptr noundef %14327, ptr noundef %14330, i32 noundef %14332) #12
  br label %14351

14334:                                            ; preds = %14312, %14305
  %14335 = load i32, ptr %278, align 4, !tbaa !5
  %14336 = call ptr @__errno_location() #13
  store i32 %14335, ptr %14336, align 4, !tbaa !5
  %14337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14338 = load i32, ptr @test_count, align 4, !tbaa !5
  %14339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14340 = load i32, ptr %14339, align 4, !tbaa !5
  %14341 = call ptr @s2n_strerror(i32 noundef %14340, ptr noundef @.str.4)
  %14342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14343 = load i32, ptr %14342, align 4, !tbaa !5
  %14344 = call ptr @s2n_strerror_debug(i32 noundef %14343, ptr noundef @.str.4)
  %14345 = call ptr @__errno_location() #13
  %14346 = load i32, ptr %14345, align 4, !tbaa !5
  %14347 = call ptr @strerror(i32 noundef %14346) #12
  %14348 = call ptr @__errno_location() #13
  %14349 = load i32, ptr %14348, align 4, !tbaa !5
  %14350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14337, ptr noundef @.str.5, i32 noundef %14338, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 721, ptr noundef %14341, ptr noundef %14344, ptr noundef %14347, i32 noundef %14349) #12
  br label %14351

14351:                                            ; preds = %14334, %14317
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #12
  br label %14352

14352:                                            ; preds = %14351
  br label %14353

14353:                                            ; preds = %14352
  call void @exit(i32 noundef 1) #14
  unreachable

14354:                                            ; No predecessors!
  br label %14355

14355:                                            ; preds = %14354
  br label %14356

14356:                                            ; preds = %14355, %14294
  br label %14357

14357:                                            ; preds = %14356
  br label %14358

14358:                                            ; preds = %14357
  br label %14359

14359:                                            ; preds = %14358
  br label %14360

14360:                                            ; preds = %14359
  br label %14361

14361:                                            ; preds = %14360
  %14362 = load i32, ptr @test_count, align 4, !tbaa !5
  %14363 = add nsw i32 %14362, 1
  store i32 %14363, ptr @test_count, align 4, !tbaa !5
  %14364 = load ptr, ptr %47, align 8, !tbaa !9
  %14365 = getelementptr inbounds [4 x i8], ptr %276, i64 0, i64 0
  %14366 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %14364, ptr noundef %14365, i16 noundef zeroext 1)
  %14367 = icmp eq i32 %14366, -1
  br i1 %14367, label %14421, label %14368

14368:                                            ; preds = %14361
  br label %14369

14369:                                            ; preds = %14368
  br label %14370

14370:                                            ; preds = %14369
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #12
  %14371 = call ptr @__errno_location() #13
  %14372 = load i32, ptr %14371, align 4, !tbaa !5
  store i32 %14372, ptr %279, align 4, !tbaa !5
  %14373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14374 = call i32 @s2n_print_stacktrace(ptr noundef %14373)
  %14375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14376 = trunc i8 %14375 to i1
  br i1 %14376, label %14377, label %14399

14377:                                            ; preds = %14370
  %14378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14379 = call i32 @fileno(ptr noundef %14378) #12
  %14380 = call i32 @isatty(i32 noundef %14379) #12
  %14381 = icmp ne i32 %14380, 0
  br i1 %14381, label %14382, label %14399

14382:                                            ; preds = %14377
  %14383 = load i32, ptr %279, align 4, !tbaa !5
  %14384 = call ptr @__errno_location() #13
  store i32 %14383, ptr %14384, align 4, !tbaa !5
  %14385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14386 = load i32, ptr @test_count, align 4, !tbaa !5
  %14387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14388 = load i32, ptr %14387, align 4, !tbaa !5
  %14389 = call ptr @s2n_strerror(i32 noundef %14388, ptr noundef @.str.4)
  %14390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14391 = load i32, ptr %14390, align 4, !tbaa !5
  %14392 = call ptr @s2n_strerror_debug(i32 noundef %14391, ptr noundef @.str.4)
  %14393 = call ptr @__errno_location() #13
  %14394 = load i32, ptr %14393, align 4, !tbaa !5
  %14395 = call ptr @strerror(i32 noundef %14394) #12
  %14396 = call ptr @__errno_location() #13
  %14397 = load i32, ptr %14396, align 4, !tbaa !5
  %14398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14385, ptr noundef @.str.2, i32 noundef %14386, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 726, ptr noundef %14389, ptr noundef %14392, ptr noundef %14395, i32 noundef %14397) #12
  br label %14416

14399:                                            ; preds = %14377, %14370
  %14400 = load i32, ptr %279, align 4, !tbaa !5
  %14401 = call ptr @__errno_location() #13
  store i32 %14400, ptr %14401, align 4, !tbaa !5
  %14402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14403 = load i32, ptr @test_count, align 4, !tbaa !5
  %14404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14405 = load i32, ptr %14404, align 4, !tbaa !5
  %14406 = call ptr @s2n_strerror(i32 noundef %14405, ptr noundef @.str.4)
  %14407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14408 = load i32, ptr %14407, align 4, !tbaa !5
  %14409 = call ptr @s2n_strerror_debug(i32 noundef %14408, ptr noundef @.str.4)
  %14410 = call ptr @__errno_location() #13
  %14411 = load i32, ptr %14410, align 4, !tbaa !5
  %14412 = call ptr @strerror(i32 noundef %14411) #12
  %14413 = call ptr @__errno_location() #13
  %14414 = load i32, ptr %14413, align 4, !tbaa !5
  %14415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14402, ptr noundef @.str.5, i32 noundef %14403, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 726, ptr noundef %14406, ptr noundef %14409, ptr noundef %14412, i32 noundef %14414) #12
  br label %14416

14416:                                            ; preds = %14399, %14382
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #12
  br label %14417

14417:                                            ; preds = %14416
  br label %14418

14418:                                            ; preds = %14417
  call void @exit(i32 noundef 1) #14
  unreachable

14419:                                            ; No predecessors!
  br label %14420

14420:                                            ; preds = %14419
  br label %14421

14421:                                            ; preds = %14420, %14361
  br label %14422

14422:                                            ; preds = %14421
  br label %14423

14423:                                            ; preds = %14422
  br label %14424

14424:                                            ; preds = %14423
  %14425 = load i32, ptr @test_count, align 4, !tbaa !5
  %14426 = add nsw i32 %14425, 1
  store i32 %14426, ptr @test_count, align 4, !tbaa !5
  %14427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14428 = load i32, ptr %14427, align 4, !tbaa !5
  %14429 = icmp eq i32 %14428, 335544334
  br i1 %14429, label %14483, label %14430

14430:                                            ; preds = %14424
  br label %14431

14431:                                            ; preds = %14430
  br label %14432

14432:                                            ; preds = %14431
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #12
  %14433 = call ptr @__errno_location() #13
  %14434 = load i32, ptr %14433, align 4, !tbaa !5
  store i32 %14434, ptr %280, align 4, !tbaa !5
  %14435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14436 = call i32 @s2n_print_stacktrace(ptr noundef %14435)
  %14437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14438 = trunc i8 %14437 to i1
  br i1 %14438, label %14439, label %14461

14439:                                            ; preds = %14432
  %14440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14441 = call i32 @fileno(ptr noundef %14440) #12
  %14442 = call i32 @isatty(i32 noundef %14441) #12
  %14443 = icmp ne i32 %14442, 0
  br i1 %14443, label %14444, label %14461

14444:                                            ; preds = %14439
  %14445 = load i32, ptr %280, align 4, !tbaa !5
  %14446 = call ptr @__errno_location() #13
  store i32 %14445, ptr %14446, align 4, !tbaa !5
  %14447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14448 = load i32, ptr @test_count, align 4, !tbaa !5
  %14449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14450 = load i32, ptr %14449, align 4, !tbaa !5
  %14451 = call ptr @s2n_strerror(i32 noundef %14450, ptr noundef @.str.4)
  %14452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14453 = load i32, ptr %14452, align 4, !tbaa !5
  %14454 = call ptr @s2n_strerror_debug(i32 noundef %14453, ptr noundef @.str.4)
  %14455 = call ptr @__errno_location() #13
  %14456 = load i32, ptr %14455, align 4, !tbaa !5
  %14457 = call ptr @strerror(i32 noundef %14456) #12
  %14458 = call ptr @__errno_location() #13
  %14459 = load i32, ptr %14458, align 4, !tbaa !5
  %14460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14447, ptr noundef @.str.2, i32 noundef %14448, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 726, ptr noundef %14451, ptr noundef %14454, ptr noundef %14457, i32 noundef %14459) #12
  br label %14478

14461:                                            ; preds = %14439, %14432
  %14462 = load i32, ptr %280, align 4, !tbaa !5
  %14463 = call ptr @__errno_location() #13
  store i32 %14462, ptr %14463, align 4, !tbaa !5
  %14464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14465 = load i32, ptr @test_count, align 4, !tbaa !5
  %14466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14467 = load i32, ptr %14466, align 4, !tbaa !5
  %14468 = call ptr @s2n_strerror(i32 noundef %14467, ptr noundef @.str.4)
  %14469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14470 = load i32, ptr %14469, align 4, !tbaa !5
  %14471 = call ptr @s2n_strerror_debug(i32 noundef %14470, ptr noundef @.str.4)
  %14472 = call ptr @__errno_location() #13
  %14473 = load i32, ptr %14472, align 4, !tbaa !5
  %14474 = call ptr @strerror(i32 noundef %14473) #12
  %14475 = call ptr @__errno_location() #13
  %14476 = load i32, ptr %14475, align 4, !tbaa !5
  %14477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14464, ptr noundef @.str.5, i32 noundef %14465, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 726, ptr noundef %14468, ptr noundef %14471, ptr noundef %14474, i32 noundef %14476) #12
  br label %14478

14478:                                            ; preds = %14461, %14444
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #12
  br label %14479

14479:                                            ; preds = %14478
  br label %14480

14480:                                            ; preds = %14479
  call void @exit(i32 noundef 1) #14
  unreachable

14481:                                            ; No predecessors!
  br label %14482

14482:                                            ; preds = %14481
  br label %14483

14483:                                            ; preds = %14482, %14424
  br label %14484

14484:                                            ; preds = %14483
  br label %14485

14485:                                            ; preds = %14484
  br label %14486

14486:                                            ; preds = %14485
  %14487 = load i32, ptr @test_count, align 4, !tbaa !5
  %14488 = add nsw i32 %14487, 1
  store i32 %14488, ptr @test_count, align 4, !tbaa !5
  %14489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14490 = load i32, ptr %14489, align 4, !tbaa !5
  %14491 = call ptr @s2n_strerror_debug(i32 noundef %14490, ptr noundef @.str.4)
  %14492 = icmp eq ptr %14491, null
  br i1 %14492, label %14493, label %14546

14493:                                            ; preds = %14486
  br label %14494

14494:                                            ; preds = %14493
  br label %14495

14495:                                            ; preds = %14494
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #12
  %14496 = call ptr @__errno_location() #13
  %14497 = load i32, ptr %14496, align 4, !tbaa !5
  store i32 %14497, ptr %281, align 4, !tbaa !5
  %14498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14499 = call i32 @s2n_print_stacktrace(ptr noundef %14498)
  %14500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14501 = trunc i8 %14500 to i1
  br i1 %14501, label %14502, label %14524

14502:                                            ; preds = %14495
  %14503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14504 = call i32 @fileno(ptr noundef %14503) #12
  %14505 = call i32 @isatty(i32 noundef %14504) #12
  %14506 = icmp ne i32 %14505, 0
  br i1 %14506, label %14507, label %14524

14507:                                            ; preds = %14502
  %14508 = load i32, ptr %281, align 4, !tbaa !5
  %14509 = call ptr @__errno_location() #13
  store i32 %14508, ptr %14509, align 4, !tbaa !5
  %14510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14511 = load i32, ptr @test_count, align 4, !tbaa !5
  %14512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14513 = load i32, ptr %14512, align 4, !tbaa !5
  %14514 = call ptr @s2n_strerror(i32 noundef %14513, ptr noundef @.str.4)
  %14515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14516 = load i32, ptr %14515, align 4, !tbaa !5
  %14517 = call ptr @s2n_strerror_debug(i32 noundef %14516, ptr noundef @.str.4)
  %14518 = call ptr @__errno_location() #13
  %14519 = load i32, ptr %14518, align 4, !tbaa !5
  %14520 = call ptr @strerror(i32 noundef %14519) #12
  %14521 = call ptr @__errno_location() #13
  %14522 = load i32, ptr %14521, align 4, !tbaa !5
  %14523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14510, ptr noundef @.str.2, i32 noundef %14511, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 726, ptr noundef %14514, ptr noundef %14517, ptr noundef %14520, i32 noundef %14522) #12
  br label %14541

14524:                                            ; preds = %14502, %14495
  %14525 = load i32, ptr %281, align 4, !tbaa !5
  %14526 = call ptr @__errno_location() #13
  store i32 %14525, ptr %14526, align 4, !tbaa !5
  %14527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14528 = load i32, ptr @test_count, align 4, !tbaa !5
  %14529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14530 = load i32, ptr %14529, align 4, !tbaa !5
  %14531 = call ptr @s2n_strerror(i32 noundef %14530, ptr noundef @.str.4)
  %14532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14533 = load i32, ptr %14532, align 4, !tbaa !5
  %14534 = call ptr @s2n_strerror_debug(i32 noundef %14533, ptr noundef @.str.4)
  %14535 = call ptr @__errno_location() #13
  %14536 = load i32, ptr %14535, align 4, !tbaa !5
  %14537 = call ptr @strerror(i32 noundef %14536) #12
  %14538 = call ptr @__errno_location() #13
  %14539 = load i32, ptr %14538, align 4, !tbaa !5
  %14540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14527, ptr noundef @.str.5, i32 noundef %14528, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 726, ptr noundef %14531, ptr noundef %14534, ptr noundef %14537, i32 noundef %14539) #12
  br label %14541

14541:                                            ; preds = %14524, %14507
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #12
  br label %14542

14542:                                            ; preds = %14541
  br label %14543

14543:                                            ; preds = %14542
  call void @exit(i32 noundef 1) #14
  unreachable

14544:                                            ; No predecessors!
  br label %14545

14545:                                            ; preds = %14544
  br label %14546

14546:                                            ; preds = %14545, %14486
  br label %14547

14547:                                            ; preds = %14546
  br label %14548

14548:                                            ; preds = %14547
  br label %14549

14549:                                            ; preds = %14548
  br label %14550

14550:                                            ; preds = %14549
  br label %14551

14551:                                            ; preds = %14550
  %14552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14552, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14553 = call ptr @__errno_location() #13
  store i32 0, ptr %14553, align 4, !tbaa !5
  br label %14554

14554:                                            ; preds = %14551
  br label %14555

14555:                                            ; preds = %14554
  br label %14556

14556:                                            ; preds = %14555
  br label %14557

14557:                                            ; preds = %14556
  br label %14558

14558:                                            ; preds = %14557
  %14559 = load i32, ptr @test_count, align 4, !tbaa !5
  %14560 = add nsw i32 %14559, 1
  store i32 %14560, ptr @test_count, align 4, !tbaa !5
  %14561 = load ptr, ptr %47, align 8, !tbaa !9
  %14562 = call i32 @s2n_connection_wipe(ptr noundef %14561)
  %14563 = icmp eq i32 %14562, -1
  br i1 %14563, label %14564, label %14617

14564:                                            ; preds = %14558
  br label %14565

14565:                                            ; preds = %14564
  br label %14566

14566:                                            ; preds = %14565
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #12
  %14567 = call ptr @__errno_location() #13
  %14568 = load i32, ptr %14567, align 4, !tbaa !5
  store i32 %14568, ptr %282, align 4, !tbaa !5
  %14569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14570 = call i32 @s2n_print_stacktrace(ptr noundef %14569)
  %14571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14572 = trunc i8 %14571 to i1
  br i1 %14572, label %14573, label %14595

14573:                                            ; preds = %14566
  %14574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14575 = call i32 @fileno(ptr noundef %14574) #12
  %14576 = call i32 @isatty(i32 noundef %14575) #12
  %14577 = icmp ne i32 %14576, 0
  br i1 %14577, label %14578, label %14595

14578:                                            ; preds = %14573
  %14579 = load i32, ptr %282, align 4, !tbaa !5
  %14580 = call ptr @__errno_location() #13
  store i32 %14579, ptr %14580, align 4, !tbaa !5
  %14581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14582 = load i32, ptr @test_count, align 4, !tbaa !5
  %14583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14584 = load i32, ptr %14583, align 4, !tbaa !5
  %14585 = call ptr @s2n_strerror(i32 noundef %14584, ptr noundef @.str.4)
  %14586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14587 = load i32, ptr %14586, align 4, !tbaa !5
  %14588 = call ptr @s2n_strerror_debug(i32 noundef %14587, ptr noundef @.str.4)
  %14589 = call ptr @__errno_location() #13
  %14590 = load i32, ptr %14589, align 4, !tbaa !5
  %14591 = call ptr @strerror(i32 noundef %14590) #12
  %14592 = call ptr @__errno_location() #13
  %14593 = load i32, ptr %14592, align 4, !tbaa !5
  %14594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14581, ptr noundef @.str.2, i32 noundef %14582, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 728, ptr noundef %14585, ptr noundef %14588, ptr noundef %14591, i32 noundef %14593) #12
  br label %14612

14595:                                            ; preds = %14573, %14566
  %14596 = load i32, ptr %282, align 4, !tbaa !5
  %14597 = call ptr @__errno_location() #13
  store i32 %14596, ptr %14597, align 4, !tbaa !5
  %14598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14599 = load i32, ptr @test_count, align 4, !tbaa !5
  %14600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14601 = load i32, ptr %14600, align 4, !tbaa !5
  %14602 = call ptr @s2n_strerror(i32 noundef %14601, ptr noundef @.str.4)
  %14603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14604 = load i32, ptr %14603, align 4, !tbaa !5
  %14605 = call ptr @s2n_strerror_debug(i32 noundef %14604, ptr noundef @.str.4)
  %14606 = call ptr @__errno_location() #13
  %14607 = load i32, ptr %14606, align 4, !tbaa !5
  %14608 = call ptr @strerror(i32 noundef %14607) #12
  %14609 = call ptr @__errno_location() #13
  %14610 = load i32, ptr %14609, align 4, !tbaa !5
  %14611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14598, ptr noundef @.str.5, i32 noundef %14599, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 728, ptr noundef %14602, ptr noundef %14605, ptr noundef %14608, i32 noundef %14610) #12
  br label %14612

14612:                                            ; preds = %14595, %14578
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #12
  br label %14613

14613:                                            ; preds = %14612
  br label %14614

14614:                                            ; preds = %14613
  call void @exit(i32 noundef 1) #14
  unreachable

14615:                                            ; No predecessors!
  br label %14616

14616:                                            ; preds = %14615
  br label %14617

14617:                                            ; preds = %14616, %14558
  br label %14618

14618:                                            ; preds = %14617
  br label %14619

14619:                                            ; preds = %14618
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #12
  %14620 = load ptr, ptr %47, align 8, !tbaa !9
  %14621 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %14620, ptr noundef @.str.53)
  %14622 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %14623 = load ptr, ptr %47, align 8, !tbaa !9
  %14624 = getelementptr inbounds %struct.s2n_connection, ptr %14623, i32 0, i32 31
  %14625 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14624, i32 0, i32 1
  %14626 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %14625, i32 0, i32 0
  store ptr %14622, ptr %14626, align 8, !tbaa !57
  %14627 = load ptr, ptr %47, align 8, !tbaa !9
  %14628 = getelementptr inbounds %struct.s2n_connection, ptr %14627, i32 0, i32 23
  store i8 34, ptr %14628, align 4, !tbaa !42
  br label %14629

14629:                                            ; preds = %14619
  %14630 = load i32, ptr @test_count, align 4, !tbaa !5
  %14631 = add nsw i32 %14630, 1
  store i32 %14631, ptr @test_count, align 4, !tbaa !5
  %14632 = load ptr, ptr %47, align 8, !tbaa !9
  %14633 = call i32 @s2n_conn_set_chosen_psk(ptr noundef %14632)
  %14634 = getelementptr inbounds %struct.s2n_result, ptr %283, i32 0, i32 0
  store i32 %14633, ptr %14634, align 4
  %14635 = getelementptr inbounds %struct.s2n_result, ptr %283, i32 0, i32 0
  %14636 = load i32, ptr %14635, align 4
  %14637 = call zeroext i1 @s2n_result_is_ok(i32 %14636)
  br i1 %14637, label %14691, label %14638

14638:                                            ; preds = %14629
  br label %14639

14639:                                            ; preds = %14638
  br label %14640

14640:                                            ; preds = %14639
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #12
  %14641 = call ptr @__errno_location() #13
  %14642 = load i32, ptr %14641, align 4, !tbaa !5
  store i32 %14642, ptr %284, align 4, !tbaa !5
  %14643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14644 = call i32 @s2n_print_stacktrace(ptr noundef %14643)
  %14645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14646 = trunc i8 %14645 to i1
  br i1 %14646, label %14647, label %14669

14647:                                            ; preds = %14640
  %14648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14649 = call i32 @fileno(ptr noundef %14648) #12
  %14650 = call i32 @isatty(i32 noundef %14649) #12
  %14651 = icmp ne i32 %14650, 0
  br i1 %14651, label %14652, label %14669

14652:                                            ; preds = %14647
  %14653 = load i32, ptr %284, align 4, !tbaa !5
  %14654 = call ptr @__errno_location() #13
  store i32 %14653, ptr %14654, align 4, !tbaa !5
  %14655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14656 = load i32, ptr @test_count, align 4, !tbaa !5
  %14657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14658 = load i32, ptr %14657, align 4, !tbaa !5
  %14659 = call ptr @s2n_strerror(i32 noundef %14658, ptr noundef @.str.4)
  %14660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14661 = load i32, ptr %14660, align 4, !tbaa !5
  %14662 = call ptr @s2n_strerror_debug(i32 noundef %14661, ptr noundef @.str.4)
  %14663 = call ptr @__errno_location() #13
  %14664 = load i32, ptr %14663, align 4, !tbaa !5
  %14665 = call ptr @strerror(i32 noundef %14664) #12
  %14666 = call ptr @__errno_location() #13
  %14667 = load i32, ptr %14666, align 4, !tbaa !5
  %14668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14655, ptr noundef @.str.2, i32 noundef %14656, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 746, ptr noundef %14659, ptr noundef %14662, ptr noundef %14665, i32 noundef %14667) #12
  br label %14686

14669:                                            ; preds = %14647, %14640
  %14670 = load i32, ptr %284, align 4, !tbaa !5
  %14671 = call ptr @__errno_location() #13
  store i32 %14670, ptr %14671, align 4, !tbaa !5
  %14672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14673 = load i32, ptr @test_count, align 4, !tbaa !5
  %14674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14675 = load i32, ptr %14674, align 4, !tbaa !5
  %14676 = call ptr @s2n_strerror(i32 noundef %14675, ptr noundef @.str.4)
  %14677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14678 = load i32, ptr %14677, align 4, !tbaa !5
  %14679 = call ptr @s2n_strerror_debug(i32 noundef %14678, ptr noundef @.str.4)
  %14680 = call ptr @__errno_location() #13
  %14681 = load i32, ptr %14680, align 4, !tbaa !5
  %14682 = call ptr @strerror(i32 noundef %14681) #12
  %14683 = call ptr @__errno_location() #13
  %14684 = load i32, ptr %14683, align 4, !tbaa !5
  %14685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14672, ptr noundef @.str.5, i32 noundef %14673, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 746, ptr noundef %14676, ptr noundef %14679, ptr noundef %14682, i32 noundef %14684) #12
  br label %14686

14686:                                            ; preds = %14669, %14652
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #12
  br label %14687

14687:                                            ; preds = %14686
  br label %14688

14688:                                            ; preds = %14687
  call void @exit(i32 noundef 1) #14
  unreachable

14689:                                            ; No predecessors!
  br label %14690

14690:                                            ; preds = %14689
  br label %14691

14691:                                            ; preds = %14690, %14629
  br label %14692

14692:                                            ; preds = %14691
  br label %14693

14693:                                            ; preds = %14692
  %14694 = load ptr, ptr %47, align 8, !tbaa !9
  %14695 = getelementptr inbounds %struct.s2n_connection, ptr %14694, i32 0, i32 33
  %14696 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %14695, i32 0, i32 4
  %14697 = load ptr, ptr %14696, align 8, !tbaa !44
  %14698 = getelementptr inbounds %struct.s2n_psk, ptr %14697, i32 0, i32 3
  store i32 4, ptr %14698, align 8, !tbaa !45
  br label %14699

14699:                                            ; preds = %14693
  %14700 = load i32, ptr @test_count, align 4, !tbaa !5
  %14701 = add nsw i32 %14700, 1
  store i32 %14701, ptr @test_count, align 4, !tbaa !5
  %14702 = load ptr, ptr %47, align 8, !tbaa !9
  %14703 = getelementptr inbounds [8 x i8], ptr %233, i64 0, i64 0
  %14704 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %14702, ptr noundef %14703, i16 noundef zeroext 4)
  %14705 = icmp eq i32 %14704, -1
  br i1 %14705, label %14706, label %14759

14706:                                            ; preds = %14699
  br label %14707

14707:                                            ; preds = %14706
  br label %14708

14708:                                            ; preds = %14707
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #12
  %14709 = call ptr @__errno_location() #13
  %14710 = load i32, ptr %14709, align 4, !tbaa !5
  store i32 %14710, ptr %285, align 4, !tbaa !5
  %14711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14712 = call i32 @s2n_print_stacktrace(ptr noundef %14711)
  %14713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14714 = trunc i8 %14713 to i1
  br i1 %14714, label %14715, label %14737

14715:                                            ; preds = %14708
  %14716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14717 = call i32 @fileno(ptr noundef %14716) #12
  %14718 = call i32 @isatty(i32 noundef %14717) #12
  %14719 = icmp ne i32 %14718, 0
  br i1 %14719, label %14720, label %14737

14720:                                            ; preds = %14715
  %14721 = load i32, ptr %285, align 4, !tbaa !5
  %14722 = call ptr @__errno_location() #13
  store i32 %14721, ptr %14722, align 4, !tbaa !5
  %14723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14724 = load i32, ptr @test_count, align 4, !tbaa !5
  %14725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14726 = load i32, ptr %14725, align 4, !tbaa !5
  %14727 = call ptr @s2n_strerror(i32 noundef %14726, ptr noundef @.str.4)
  %14728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14729 = load i32, ptr %14728, align 4, !tbaa !5
  %14730 = call ptr @s2n_strerror_debug(i32 noundef %14729, ptr noundef @.str.4)
  %14731 = call ptr @__errno_location() #13
  %14732 = load i32, ptr %14731, align 4, !tbaa !5
  %14733 = call ptr @strerror(i32 noundef %14732) #12
  %14734 = call ptr @__errno_location() #13
  %14735 = load i32, ptr %14734, align 4, !tbaa !5
  %14736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14723, ptr noundef @.str.2, i32 noundef %14724, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 749, ptr noundef %14727, ptr noundef %14730, ptr noundef %14733, i32 noundef %14735) #12
  br label %14754

14737:                                            ; preds = %14715, %14708
  %14738 = load i32, ptr %285, align 4, !tbaa !5
  %14739 = call ptr @__errno_location() #13
  store i32 %14738, ptr %14739, align 4, !tbaa !5
  %14740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14741 = load i32, ptr @test_count, align 4, !tbaa !5
  %14742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14743 = load i32, ptr %14742, align 4, !tbaa !5
  %14744 = call ptr @s2n_strerror(i32 noundef %14743, ptr noundef @.str.4)
  %14745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14746 = load i32, ptr %14745, align 4, !tbaa !5
  %14747 = call ptr @s2n_strerror_debug(i32 noundef %14746, ptr noundef @.str.4)
  %14748 = call ptr @__errno_location() #13
  %14749 = load i32, ptr %14748, align 4, !tbaa !5
  %14750 = call ptr @strerror(i32 noundef %14749) #12
  %14751 = call ptr @__errno_location() #13
  %14752 = load i32, ptr %14751, align 4, !tbaa !5
  %14753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14740, ptr noundef @.str.5, i32 noundef %14741, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 749, ptr noundef %14744, ptr noundef %14747, ptr noundef %14750, i32 noundef %14752) #12
  br label %14754

14754:                                            ; preds = %14737, %14720
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #12
  br label %14755

14755:                                            ; preds = %14754
  br label %14756

14756:                                            ; preds = %14755
  call void @exit(i32 noundef 1) #14
  unreachable

14757:                                            ; No predecessors!
  br label %14758

14758:                                            ; preds = %14757
  br label %14759

14759:                                            ; preds = %14758, %14699
  br label %14760

14760:                                            ; preds = %14759
  br label %14761

14761:                                            ; preds = %14760
  br label %14762

14762:                                            ; preds = %14761
  %14763 = load i32, ptr @test_count, align 4, !tbaa !5
  %14764 = add nsw i32 %14763, 1
  store i32 %14764, ptr @test_count, align 4, !tbaa !5
  %14765 = load ptr, ptr %47, align 8, !tbaa !9
  %14766 = getelementptr inbounds %struct.s2n_connection, ptr %14765, i32 0, i32 27
  %14767 = load ptr, ptr %14766, align 8, !tbaa !48
  %14768 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %14767, i32 0, i32 0
  %14769 = load ptr, ptr %14768, align 8, !tbaa !49
  %14770 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %14769, i32 0, i32 11
  %14771 = load i32, ptr %14770, align 8, !tbaa !69
  %14772 = load ptr, ptr %47, align 8, !tbaa !9
  %14773 = getelementptr inbounds %struct.s2n_connection, ptr %14772, i32 0, i32 33
  %14774 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %14773, i32 0, i32 4
  %14775 = load ptr, ptr %14774, align 8, !tbaa !44
  %14776 = getelementptr inbounds %struct.s2n_psk, ptr %14775, i32 0, i32 3
  %14777 = load i32, ptr %14776, align 8, !tbaa !45
  %14778 = icmp eq i32 %14771, %14777
  br i1 %14778, label %14832, label %14779

14779:                                            ; preds = %14762
  br label %14780

14780:                                            ; preds = %14779
  br label %14781

14781:                                            ; preds = %14780
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #12
  %14782 = call ptr @__errno_location() #13
  %14783 = load i32, ptr %14782, align 4, !tbaa !5
  store i32 %14783, ptr %286, align 4, !tbaa !5
  %14784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14785 = call i32 @s2n_print_stacktrace(ptr noundef %14784)
  %14786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14787 = trunc i8 %14786 to i1
  br i1 %14787, label %14788, label %14810

14788:                                            ; preds = %14781
  %14789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14790 = call i32 @fileno(ptr noundef %14789) #12
  %14791 = call i32 @isatty(i32 noundef %14790) #12
  %14792 = icmp ne i32 %14791, 0
  br i1 %14792, label %14793, label %14810

14793:                                            ; preds = %14788
  %14794 = load i32, ptr %286, align 4, !tbaa !5
  %14795 = call ptr @__errno_location() #13
  store i32 %14794, ptr %14795, align 4, !tbaa !5
  %14796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14797 = load i32, ptr @test_count, align 4, !tbaa !5
  %14798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14799 = load i32, ptr %14798, align 4, !tbaa !5
  %14800 = call ptr @s2n_strerror(i32 noundef %14799, ptr noundef @.str.4)
  %14801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14802 = load i32, ptr %14801, align 4, !tbaa !5
  %14803 = call ptr @s2n_strerror_debug(i32 noundef %14802, ptr noundef @.str.4)
  %14804 = call ptr @__errno_location() #13
  %14805 = load i32, ptr %14804, align 4, !tbaa !5
  %14806 = call ptr @strerror(i32 noundef %14805) #12
  %14807 = call ptr @__errno_location() #13
  %14808 = load i32, ptr %14807, align 4, !tbaa !5
  %14809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14796, ptr noundef @.str.2, i32 noundef %14797, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 750, ptr noundef %14800, ptr noundef %14803, ptr noundef %14806, i32 noundef %14808) #12
  br label %14827

14810:                                            ; preds = %14788, %14781
  %14811 = load i32, ptr %286, align 4, !tbaa !5
  %14812 = call ptr @__errno_location() #13
  store i32 %14811, ptr %14812, align 4, !tbaa !5
  %14813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14814 = load i32, ptr @test_count, align 4, !tbaa !5
  %14815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14816 = load i32, ptr %14815, align 4, !tbaa !5
  %14817 = call ptr @s2n_strerror(i32 noundef %14816, ptr noundef @.str.4)
  %14818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14819 = load i32, ptr %14818, align 4, !tbaa !5
  %14820 = call ptr @s2n_strerror_debug(i32 noundef %14819, ptr noundef @.str.4)
  %14821 = call ptr @__errno_location() #13
  %14822 = load i32, ptr %14821, align 4, !tbaa !5
  %14823 = call ptr @strerror(i32 noundef %14822) #12
  %14824 = call ptr @__errno_location() #13
  %14825 = load i32, ptr %14824, align 4, !tbaa !5
  %14826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14813, ptr noundef @.str.5, i32 noundef %14814, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 750, ptr noundef %14817, ptr noundef %14820, ptr noundef %14823, i32 noundef %14825) #12
  br label %14827

14827:                                            ; preds = %14810, %14793
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #12
  br label %14828

14828:                                            ; preds = %14827
  br label %14829

14829:                                            ; preds = %14828
  call void @exit(i32 noundef 1) #14
  unreachable

14830:                                            ; No predecessors!
  br label %14831

14831:                                            ; preds = %14830
  br label %14832

14832:                                            ; preds = %14831, %14762
  br label %14833

14833:                                            ; preds = %14832
  br label %14834

14834:                                            ; preds = %14833
  %14835 = load ptr, ptr %47, align 8, !tbaa !9
  %14836 = getelementptr inbounds %struct.s2n_connection, ptr %14835, i32 0, i32 33
  %14837 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %14836, i32 0, i32 4
  %14838 = load ptr, ptr %14837, align 8, !tbaa !44
  %14839 = getelementptr inbounds %struct.s2n_psk, ptr %14838, i32 0, i32 3
  store i32 5, ptr %14839, align 8, !tbaa !45
  br label %14840

14840:                                            ; preds = %14834
  %14841 = load i32, ptr @test_count, align 4, !tbaa !5
  %14842 = add nsw i32 %14841, 1
  store i32 %14842, ptr @test_count, align 4, !tbaa !5
  %14843 = load ptr, ptr %47, align 8, !tbaa !9
  %14844 = getelementptr inbounds [8 x i8], ptr %233, i64 0, i64 0
  %14845 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %14843, ptr noundef %14844, i16 noundef zeroext 4)
  %14846 = icmp eq i32 %14845, -1
  br i1 %14846, label %14847, label %14900

14847:                                            ; preds = %14840
  br label %14848

14848:                                            ; preds = %14847
  br label %14849

14849:                                            ; preds = %14848
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #12
  %14850 = call ptr @__errno_location() #13
  %14851 = load i32, ptr %14850, align 4, !tbaa !5
  store i32 %14851, ptr %287, align 4, !tbaa !5
  %14852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14853 = call i32 @s2n_print_stacktrace(ptr noundef %14852)
  %14854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14855 = trunc i8 %14854 to i1
  br i1 %14855, label %14856, label %14878

14856:                                            ; preds = %14849
  %14857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14858 = call i32 @fileno(ptr noundef %14857) #12
  %14859 = call i32 @isatty(i32 noundef %14858) #12
  %14860 = icmp ne i32 %14859, 0
  br i1 %14860, label %14861, label %14878

14861:                                            ; preds = %14856
  %14862 = load i32, ptr %287, align 4, !tbaa !5
  %14863 = call ptr @__errno_location() #13
  store i32 %14862, ptr %14863, align 4, !tbaa !5
  %14864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14865 = load i32, ptr @test_count, align 4, !tbaa !5
  %14866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14867 = load i32, ptr %14866, align 4, !tbaa !5
  %14868 = call ptr @s2n_strerror(i32 noundef %14867, ptr noundef @.str.4)
  %14869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14870 = load i32, ptr %14869, align 4, !tbaa !5
  %14871 = call ptr @s2n_strerror_debug(i32 noundef %14870, ptr noundef @.str.4)
  %14872 = call ptr @__errno_location() #13
  %14873 = load i32, ptr %14872, align 4, !tbaa !5
  %14874 = call ptr @strerror(i32 noundef %14873) #12
  %14875 = call ptr @__errno_location() #13
  %14876 = load i32, ptr %14875, align 4, !tbaa !5
  %14877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14864, ptr noundef @.str.2, i32 noundef %14865, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 753, ptr noundef %14868, ptr noundef %14871, ptr noundef %14874, i32 noundef %14876) #12
  br label %14895

14878:                                            ; preds = %14856, %14849
  %14879 = load i32, ptr %287, align 4, !tbaa !5
  %14880 = call ptr @__errno_location() #13
  store i32 %14879, ptr %14880, align 4, !tbaa !5
  %14881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14882 = load i32, ptr @test_count, align 4, !tbaa !5
  %14883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14884 = load i32, ptr %14883, align 4, !tbaa !5
  %14885 = call ptr @s2n_strerror(i32 noundef %14884, ptr noundef @.str.4)
  %14886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14887 = load i32, ptr %14886, align 4, !tbaa !5
  %14888 = call ptr @s2n_strerror_debug(i32 noundef %14887, ptr noundef @.str.4)
  %14889 = call ptr @__errno_location() #13
  %14890 = load i32, ptr %14889, align 4, !tbaa !5
  %14891 = call ptr @strerror(i32 noundef %14890) #12
  %14892 = call ptr @__errno_location() #13
  %14893 = load i32, ptr %14892, align 4, !tbaa !5
  %14894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14881, ptr noundef @.str.5, i32 noundef %14882, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 753, ptr noundef %14885, ptr noundef %14888, ptr noundef %14891, i32 noundef %14893) #12
  br label %14895

14895:                                            ; preds = %14878, %14861
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #12
  br label %14896

14896:                                            ; preds = %14895
  br label %14897

14897:                                            ; preds = %14896
  call void @exit(i32 noundef 1) #14
  unreachable

14898:                                            ; No predecessors!
  br label %14899

14899:                                            ; preds = %14898
  br label %14900

14900:                                            ; preds = %14899, %14840
  br label %14901

14901:                                            ; preds = %14900
  br label %14902

14902:                                            ; preds = %14901
  br label %14903

14903:                                            ; preds = %14902
  %14904 = load i32, ptr @test_count, align 4, !tbaa !5
  %14905 = add nsw i32 %14904, 1
  store i32 %14905, ptr @test_count, align 4, !tbaa !5
  %14906 = load ptr, ptr %47, align 8, !tbaa !9
  %14907 = getelementptr inbounds %struct.s2n_connection, ptr %14906, i32 0, i32 27
  %14908 = load ptr, ptr %14907, align 8, !tbaa !48
  %14909 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %14908, i32 0, i32 0
  %14910 = load ptr, ptr %14909, align 8, !tbaa !49
  %14911 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %14910, i32 0, i32 11
  %14912 = load i32, ptr %14911, align 8, !tbaa !69
  %14913 = load ptr, ptr %47, align 8, !tbaa !9
  %14914 = getelementptr inbounds %struct.s2n_connection, ptr %14913, i32 0, i32 33
  %14915 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %14914, i32 0, i32 4
  %14916 = load ptr, ptr %14915, align 8, !tbaa !44
  %14917 = getelementptr inbounds %struct.s2n_psk, ptr %14916, i32 0, i32 3
  %14918 = load i32, ptr %14917, align 8, !tbaa !45
  %14919 = icmp eq i32 %14912, %14918
  br i1 %14919, label %14973, label %14920

14920:                                            ; preds = %14903
  br label %14921

14921:                                            ; preds = %14920
  br label %14922

14922:                                            ; preds = %14921
  call void @llvm.lifetime.start.p0(i64 4, ptr %288) #12
  %14923 = call ptr @__errno_location() #13
  %14924 = load i32, ptr %14923, align 4, !tbaa !5
  store i32 %14924, ptr %288, align 4, !tbaa !5
  %14925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14926 = call i32 @s2n_print_stacktrace(ptr noundef %14925)
  %14927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14928 = trunc i8 %14927 to i1
  br i1 %14928, label %14929, label %14951

14929:                                            ; preds = %14922
  %14930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14931 = call i32 @fileno(ptr noundef %14930) #12
  %14932 = call i32 @isatty(i32 noundef %14931) #12
  %14933 = icmp ne i32 %14932, 0
  br i1 %14933, label %14934, label %14951

14934:                                            ; preds = %14929
  %14935 = load i32, ptr %288, align 4, !tbaa !5
  %14936 = call ptr @__errno_location() #13
  store i32 %14935, ptr %14936, align 4, !tbaa !5
  %14937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14938 = load i32, ptr @test_count, align 4, !tbaa !5
  %14939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14940 = load i32, ptr %14939, align 4, !tbaa !5
  %14941 = call ptr @s2n_strerror(i32 noundef %14940, ptr noundef @.str.4)
  %14942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14943 = load i32, ptr %14942, align 4, !tbaa !5
  %14944 = call ptr @s2n_strerror_debug(i32 noundef %14943, ptr noundef @.str.4)
  %14945 = call ptr @__errno_location() #13
  %14946 = load i32, ptr %14945, align 4, !tbaa !5
  %14947 = call ptr @strerror(i32 noundef %14946) #12
  %14948 = call ptr @__errno_location() #13
  %14949 = load i32, ptr %14948, align 4, !tbaa !5
  %14950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14937, ptr noundef @.str.2, i32 noundef %14938, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 754, ptr noundef %14941, ptr noundef %14944, ptr noundef %14947, i32 noundef %14949) #12
  br label %14968

14951:                                            ; preds = %14929, %14922
  %14952 = load i32, ptr %288, align 4, !tbaa !5
  %14953 = call ptr @__errno_location() #13
  store i32 %14952, ptr %14953, align 4, !tbaa !5
  %14954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14955 = load i32, ptr @test_count, align 4, !tbaa !5
  %14956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14957 = load i32, ptr %14956, align 4, !tbaa !5
  %14958 = call ptr @s2n_strerror(i32 noundef %14957, ptr noundef @.str.4)
  %14959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14960 = load i32, ptr %14959, align 4, !tbaa !5
  %14961 = call ptr @s2n_strerror_debug(i32 noundef %14960, ptr noundef @.str.4)
  %14962 = call ptr @__errno_location() #13
  %14963 = load i32, ptr %14962, align 4, !tbaa !5
  %14964 = call ptr @strerror(i32 noundef %14963) #12
  %14965 = call ptr @__errno_location() #13
  %14966 = load i32, ptr %14965, align 4, !tbaa !5
  %14967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14954, ptr noundef @.str.5, i32 noundef %14955, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 754, ptr noundef %14958, ptr noundef %14961, ptr noundef %14964, i32 noundef %14966) #12
  br label %14968

14968:                                            ; preds = %14951, %14934
  call void @llvm.lifetime.end.p0(i64 4, ptr %288) #12
  br label %14969

14969:                                            ; preds = %14968
  br label %14970

14970:                                            ; preds = %14969
  call void @exit(i32 noundef 1) #14
  unreachable

14971:                                            ; No predecessors!
  br label %14972

14972:                                            ; preds = %14971
  br label %14973

14973:                                            ; preds = %14972, %14903
  br label %14974

14974:                                            ; preds = %14973
  br label %14975

14975:                                            ; preds = %14974
  br label %14976

14976:                                            ; preds = %14975
  %14977 = load i32, ptr @test_count, align 4, !tbaa !5
  %14978 = add nsw i32 %14977, 1
  store i32 %14978, ptr @test_count, align 4, !tbaa !5
  %14979 = load ptr, ptr %47, align 8, !tbaa !9
  %14980 = call i32 @s2n_connection_wipe(ptr noundef %14979)
  %14981 = icmp eq i32 %14980, -1
  br i1 %14981, label %14982, label %15035

14982:                                            ; preds = %14976
  br label %14983

14983:                                            ; preds = %14982
  br label %14984

14984:                                            ; preds = %14983
  call void @llvm.lifetime.start.p0(i64 4, ptr %289) #12
  %14985 = call ptr @__errno_location() #13
  %14986 = load i32, ptr %14985, align 4, !tbaa !5
  store i32 %14986, ptr %289, align 4, !tbaa !5
  %14987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14988 = call i32 @s2n_print_stacktrace(ptr noundef %14987)
  %14989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14990 = trunc i8 %14989 to i1
  br i1 %14990, label %14991, label %15013

14991:                                            ; preds = %14984
  %14992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14993 = call i32 @fileno(ptr noundef %14992) #12
  %14994 = call i32 @isatty(i32 noundef %14993) #12
  %14995 = icmp ne i32 %14994, 0
  br i1 %14995, label %14996, label %15013

14996:                                            ; preds = %14991
  %14997 = load i32, ptr %289, align 4, !tbaa !5
  %14998 = call ptr @__errno_location() #13
  store i32 %14997, ptr %14998, align 4, !tbaa !5
  %14999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15000 = load i32, ptr @test_count, align 4, !tbaa !5
  %15001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15002 = load i32, ptr %15001, align 4, !tbaa !5
  %15003 = call ptr @s2n_strerror(i32 noundef %15002, ptr noundef @.str.4)
  %15004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15005 = load i32, ptr %15004, align 4, !tbaa !5
  %15006 = call ptr @s2n_strerror_debug(i32 noundef %15005, ptr noundef @.str.4)
  %15007 = call ptr @__errno_location() #13
  %15008 = load i32, ptr %15007, align 4, !tbaa !5
  %15009 = call ptr @strerror(i32 noundef %15008) #12
  %15010 = call ptr @__errno_location() #13
  %15011 = load i32, ptr %15010, align 4, !tbaa !5
  %15012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14999, ptr noundef @.str.2, i32 noundef %15000, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 756, ptr noundef %15003, ptr noundef %15006, ptr noundef %15009, i32 noundef %15011) #12
  br label %15030

15013:                                            ; preds = %14991, %14984
  %15014 = load i32, ptr %289, align 4, !tbaa !5
  %15015 = call ptr @__errno_location() #13
  store i32 %15014, ptr %15015, align 4, !tbaa !5
  %15016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15017 = load i32, ptr @test_count, align 4, !tbaa !5
  %15018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15019 = load i32, ptr %15018, align 4, !tbaa !5
  %15020 = call ptr @s2n_strerror(i32 noundef %15019, ptr noundef @.str.4)
  %15021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15022 = load i32, ptr %15021, align 4, !tbaa !5
  %15023 = call ptr @s2n_strerror_debug(i32 noundef %15022, ptr noundef @.str.4)
  %15024 = call ptr @__errno_location() #13
  %15025 = load i32, ptr %15024, align 4, !tbaa !5
  %15026 = call ptr @strerror(i32 noundef %15025) #12
  %15027 = call ptr @__errno_location() #13
  %15028 = load i32, ptr %15027, align 4, !tbaa !5
  %15029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15016, ptr noundef @.str.5, i32 noundef %15017, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 756, ptr noundef %15020, ptr noundef %15023, ptr noundef %15026, i32 noundef %15028) #12
  br label %15030

15030:                                            ; preds = %15013, %14996
  call void @llvm.lifetime.end.p0(i64 4, ptr %289) #12
  br label %15031

15031:                                            ; preds = %15030
  br label %15032

15032:                                            ; preds = %15031
  call void @exit(i32 noundef 1) #14
  unreachable

15033:                                            ; No predecessors!
  br label %15034

15034:                                            ; preds = %15033
  br label %15035

15035:                                            ; preds = %15034, %14976
  br label %15036

15036:                                            ; preds = %15035
  br label %15037

15037:                                            ; preds = %15036
  %15038 = load ptr, ptr %47, align 8, !tbaa !9
  %15039 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %15038, ptr noundef @.str.53)
  %15040 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %15041 = load ptr, ptr %47, align 8, !tbaa !9
  %15042 = getelementptr inbounds %struct.s2n_connection, ptr %15041, i32 0, i32 31
  %15043 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15042, i32 0, i32 1
  %15044 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %15043, i32 0, i32 0
  store ptr %15040, ptr %15044, align 8, !tbaa !57
  %15045 = load ptr, ptr %47, align 8, !tbaa !9
  %15046 = getelementptr inbounds %struct.s2n_connection, ptr %15045, i32 0, i32 23
  store i8 34, ptr %15046, align 4, !tbaa !42
  br label %15047

15047:                                            ; preds = %15037
  %15048 = load i32, ptr @test_count, align 4, !tbaa !5
  %15049 = add nsw i32 %15048, 1
  store i32 %15049, ptr @test_count, align 4, !tbaa !5
  %15050 = load ptr, ptr %47, align 8, !tbaa !9
  %15051 = call i32 @s2n_conn_set_chosen_psk(ptr noundef %15050)
  %15052 = getelementptr inbounds %struct.s2n_result, ptr %290, i32 0, i32 0
  store i32 %15051, ptr %15052, align 4
  %15053 = getelementptr inbounds %struct.s2n_result, ptr %290, i32 0, i32 0
  %15054 = load i32, ptr %15053, align 4
  %15055 = call zeroext i1 @s2n_result_is_ok(i32 %15054)
  br i1 %15055, label %15109, label %15056

15056:                                            ; preds = %15047
  br label %15057

15057:                                            ; preds = %15056
  br label %15058

15058:                                            ; preds = %15057
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #12
  %15059 = call ptr @__errno_location() #13
  %15060 = load i32, ptr %15059, align 4, !tbaa !5
  store i32 %15060, ptr %291, align 4, !tbaa !5
  %15061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15062 = call i32 @s2n_print_stacktrace(ptr noundef %15061)
  %15063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15064 = trunc i8 %15063 to i1
  br i1 %15064, label %15065, label %15087

15065:                                            ; preds = %15058
  %15066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15067 = call i32 @fileno(ptr noundef %15066) #12
  %15068 = call i32 @isatty(i32 noundef %15067) #12
  %15069 = icmp ne i32 %15068, 0
  br i1 %15069, label %15070, label %15087

15070:                                            ; preds = %15065
  %15071 = load i32, ptr %291, align 4, !tbaa !5
  %15072 = call ptr @__errno_location() #13
  store i32 %15071, ptr %15072, align 4, !tbaa !5
  %15073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15074 = load i32, ptr @test_count, align 4, !tbaa !5
  %15075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15076 = load i32, ptr %15075, align 4, !tbaa !5
  %15077 = call ptr @s2n_strerror(i32 noundef %15076, ptr noundef @.str.4)
  %15078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15079 = load i32, ptr %15078, align 4, !tbaa !5
  %15080 = call ptr @s2n_strerror_debug(i32 noundef %15079, ptr noundef @.str.4)
  %15081 = call ptr @__errno_location() #13
  %15082 = load i32, ptr %15081, align 4, !tbaa !5
  %15083 = call ptr @strerror(i32 noundef %15082) #12
  %15084 = call ptr @__errno_location() #13
  %15085 = load i32, ptr %15084, align 4, !tbaa !5
  %15086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15073, ptr noundef @.str.2, i32 noundef %15074, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 766, ptr noundef %15077, ptr noundef %15080, ptr noundef %15083, i32 noundef %15085) #12
  br label %15104

15087:                                            ; preds = %15065, %15058
  %15088 = load i32, ptr %291, align 4, !tbaa !5
  %15089 = call ptr @__errno_location() #13
  store i32 %15088, ptr %15089, align 4, !tbaa !5
  %15090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15091 = load i32, ptr @test_count, align 4, !tbaa !5
  %15092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15093 = load i32, ptr %15092, align 4, !tbaa !5
  %15094 = call ptr @s2n_strerror(i32 noundef %15093, ptr noundef @.str.4)
  %15095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15096 = load i32, ptr %15095, align 4, !tbaa !5
  %15097 = call ptr @s2n_strerror_debug(i32 noundef %15096, ptr noundef @.str.4)
  %15098 = call ptr @__errno_location() #13
  %15099 = load i32, ptr %15098, align 4, !tbaa !5
  %15100 = call ptr @strerror(i32 noundef %15099) #12
  %15101 = call ptr @__errno_location() #13
  %15102 = load i32, ptr %15101, align 4, !tbaa !5
  %15103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15090, ptr noundef @.str.5, i32 noundef %15091, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 766, ptr noundef %15094, ptr noundef %15097, ptr noundef %15100, i32 noundef %15102) #12
  br label %15104

15104:                                            ; preds = %15087, %15070
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #12
  br label %15105

15105:                                            ; preds = %15104
  br label %15106

15106:                                            ; preds = %15105
  call void @exit(i32 noundef 1) #14
  unreachable

15107:                                            ; No predecessors!
  br label %15108

15108:                                            ; preds = %15107
  br label %15109

15109:                                            ; preds = %15108, %15047
  br label %15110

15110:                                            ; preds = %15109
  br label %15111

15111:                                            ; preds = %15110
  %15112 = load ptr, ptr %47, align 8, !tbaa !9
  %15113 = getelementptr inbounds %struct.s2n_connection, ptr %15112, i32 0, i32 33
  %15114 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %15113, i32 0, i32 4
  %15115 = load ptr, ptr %15114, align 8, !tbaa !44
  %15116 = getelementptr inbounds %struct.s2n_psk, ptr %15115, i32 0, i32 3
  store i32 2, ptr %15116, align 8, !tbaa !45
  br label %15117

15117:                                            ; preds = %15111
  br label %15118

15118:                                            ; preds = %15117
  br label %15119

15119:                                            ; preds = %15118
  %15120 = load i32, ptr @test_count, align 4, !tbaa !5
  %15121 = add nsw i32 %15120, 1
  store i32 %15121, ptr @test_count, align 4, !tbaa !5
  %15122 = load ptr, ptr %47, align 8, !tbaa !9
  %15123 = getelementptr inbounds [8 x i8], ptr %233, i64 0, i64 0
  %15124 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %15122, ptr noundef %15123, i16 noundef zeroext 4)
  %15125 = icmp eq i32 %15124, -1
  br i1 %15125, label %15179, label %15126

15126:                                            ; preds = %15119
  br label %15127

15127:                                            ; preds = %15126
  br label %15128

15128:                                            ; preds = %15127
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #12
  %15129 = call ptr @__errno_location() #13
  %15130 = load i32, ptr %15129, align 4, !tbaa !5
  store i32 %15130, ptr %292, align 4, !tbaa !5
  %15131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15132 = call i32 @s2n_print_stacktrace(ptr noundef %15131)
  %15133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15134 = trunc i8 %15133 to i1
  br i1 %15134, label %15135, label %15157

15135:                                            ; preds = %15128
  %15136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15137 = call i32 @fileno(ptr noundef %15136) #12
  %15138 = call i32 @isatty(i32 noundef %15137) #12
  %15139 = icmp ne i32 %15138, 0
  br i1 %15139, label %15140, label %15157

15140:                                            ; preds = %15135
  %15141 = load i32, ptr %292, align 4, !tbaa !5
  %15142 = call ptr @__errno_location() #13
  store i32 %15141, ptr %15142, align 4, !tbaa !5
  %15143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15144 = load i32, ptr @test_count, align 4, !tbaa !5
  %15145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15146 = load i32, ptr %15145, align 4, !tbaa !5
  %15147 = call ptr @s2n_strerror(i32 noundef %15146, ptr noundef @.str.4)
  %15148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15149 = load i32, ptr %15148, align 4, !tbaa !5
  %15150 = call ptr @s2n_strerror_debug(i32 noundef %15149, ptr noundef @.str.4)
  %15151 = call ptr @__errno_location() #13
  %15152 = load i32, ptr %15151, align 4, !tbaa !5
  %15153 = call ptr @strerror(i32 noundef %15152) #12
  %15154 = call ptr @__errno_location() #13
  %15155 = load i32, ptr %15154, align 4, !tbaa !5
  %15156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15143, ptr noundef @.str.2, i32 noundef %15144, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 770, ptr noundef %15147, ptr noundef %15150, ptr noundef %15153, i32 noundef %15155) #12
  br label %15174

15157:                                            ; preds = %15135, %15128
  %15158 = load i32, ptr %292, align 4, !tbaa !5
  %15159 = call ptr @__errno_location() #13
  store i32 %15158, ptr %15159, align 4, !tbaa !5
  %15160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15161 = load i32, ptr @test_count, align 4, !tbaa !5
  %15162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15163 = load i32, ptr %15162, align 4, !tbaa !5
  %15164 = call ptr @s2n_strerror(i32 noundef %15163, ptr noundef @.str.4)
  %15165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15166 = load i32, ptr %15165, align 4, !tbaa !5
  %15167 = call ptr @s2n_strerror_debug(i32 noundef %15166, ptr noundef @.str.4)
  %15168 = call ptr @__errno_location() #13
  %15169 = load i32, ptr %15168, align 4, !tbaa !5
  %15170 = call ptr @strerror(i32 noundef %15169) #12
  %15171 = call ptr @__errno_location() #13
  %15172 = load i32, ptr %15171, align 4, !tbaa !5
  %15173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15160, ptr noundef @.str.5, i32 noundef %15161, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 770, ptr noundef %15164, ptr noundef %15167, ptr noundef %15170, i32 noundef %15172) #12
  br label %15174

15174:                                            ; preds = %15157, %15140
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #12
  br label %15175

15175:                                            ; preds = %15174
  br label %15176

15176:                                            ; preds = %15175
  call void @exit(i32 noundef 1) #14
  unreachable

15177:                                            ; No predecessors!
  br label %15178

15178:                                            ; preds = %15177
  br label %15179

15179:                                            ; preds = %15178, %15119
  br label %15180

15180:                                            ; preds = %15179
  br label %15181

15181:                                            ; preds = %15180
  br label %15182

15182:                                            ; preds = %15181
  %15183 = load i32, ptr @test_count, align 4, !tbaa !5
  %15184 = add nsw i32 %15183, 1
  store i32 %15184, ptr @test_count, align 4, !tbaa !5
  %15185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15186 = load i32, ptr %15185, align 4, !tbaa !5
  %15187 = icmp eq i32 %15186, 335544334
  br i1 %15187, label %15241, label %15188

15188:                                            ; preds = %15182
  br label %15189

15189:                                            ; preds = %15188
  br label %15190

15190:                                            ; preds = %15189
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #12
  %15191 = call ptr @__errno_location() #13
  %15192 = load i32, ptr %15191, align 4, !tbaa !5
  store i32 %15192, ptr %293, align 4, !tbaa !5
  %15193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15194 = call i32 @s2n_print_stacktrace(ptr noundef %15193)
  %15195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15196 = trunc i8 %15195 to i1
  br i1 %15196, label %15197, label %15219

15197:                                            ; preds = %15190
  %15198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15199 = call i32 @fileno(ptr noundef %15198) #12
  %15200 = call i32 @isatty(i32 noundef %15199) #12
  %15201 = icmp ne i32 %15200, 0
  br i1 %15201, label %15202, label %15219

15202:                                            ; preds = %15197
  %15203 = load i32, ptr %293, align 4, !tbaa !5
  %15204 = call ptr @__errno_location() #13
  store i32 %15203, ptr %15204, align 4, !tbaa !5
  %15205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15206 = load i32, ptr @test_count, align 4, !tbaa !5
  %15207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15208 = load i32, ptr %15207, align 4, !tbaa !5
  %15209 = call ptr @s2n_strerror(i32 noundef %15208, ptr noundef @.str.4)
  %15210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15211 = load i32, ptr %15210, align 4, !tbaa !5
  %15212 = call ptr @s2n_strerror_debug(i32 noundef %15211, ptr noundef @.str.4)
  %15213 = call ptr @__errno_location() #13
  %15214 = load i32, ptr %15213, align 4, !tbaa !5
  %15215 = call ptr @strerror(i32 noundef %15214) #12
  %15216 = call ptr @__errno_location() #13
  %15217 = load i32, ptr %15216, align 4, !tbaa !5
  %15218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15205, ptr noundef @.str.2, i32 noundef %15206, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 770, ptr noundef %15209, ptr noundef %15212, ptr noundef %15215, i32 noundef %15217) #12
  br label %15236

15219:                                            ; preds = %15197, %15190
  %15220 = load i32, ptr %293, align 4, !tbaa !5
  %15221 = call ptr @__errno_location() #13
  store i32 %15220, ptr %15221, align 4, !tbaa !5
  %15222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15223 = load i32, ptr @test_count, align 4, !tbaa !5
  %15224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15225 = load i32, ptr %15224, align 4, !tbaa !5
  %15226 = call ptr @s2n_strerror(i32 noundef %15225, ptr noundef @.str.4)
  %15227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15228 = load i32, ptr %15227, align 4, !tbaa !5
  %15229 = call ptr @s2n_strerror_debug(i32 noundef %15228, ptr noundef @.str.4)
  %15230 = call ptr @__errno_location() #13
  %15231 = load i32, ptr %15230, align 4, !tbaa !5
  %15232 = call ptr @strerror(i32 noundef %15231) #12
  %15233 = call ptr @__errno_location() #13
  %15234 = load i32, ptr %15233, align 4, !tbaa !5
  %15235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15222, ptr noundef @.str.5, i32 noundef %15223, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 770, ptr noundef %15226, ptr noundef %15229, ptr noundef %15232, i32 noundef %15234) #12
  br label %15236

15236:                                            ; preds = %15219, %15202
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #12
  br label %15237

15237:                                            ; preds = %15236
  br label %15238

15238:                                            ; preds = %15237
  call void @exit(i32 noundef 1) #14
  unreachable

15239:                                            ; No predecessors!
  br label %15240

15240:                                            ; preds = %15239
  br label %15241

15241:                                            ; preds = %15240, %15182
  br label %15242

15242:                                            ; preds = %15241
  br label %15243

15243:                                            ; preds = %15242
  br label %15244

15244:                                            ; preds = %15243
  %15245 = load i32, ptr @test_count, align 4, !tbaa !5
  %15246 = add nsw i32 %15245, 1
  store i32 %15246, ptr @test_count, align 4, !tbaa !5
  %15247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15248 = load i32, ptr %15247, align 4, !tbaa !5
  %15249 = call ptr @s2n_strerror_debug(i32 noundef %15248, ptr noundef @.str.4)
  %15250 = icmp eq ptr %15249, null
  br i1 %15250, label %15251, label %15304

15251:                                            ; preds = %15244
  br label %15252

15252:                                            ; preds = %15251
  br label %15253

15253:                                            ; preds = %15252
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #12
  %15254 = call ptr @__errno_location() #13
  %15255 = load i32, ptr %15254, align 4, !tbaa !5
  store i32 %15255, ptr %294, align 4, !tbaa !5
  %15256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15257 = call i32 @s2n_print_stacktrace(ptr noundef %15256)
  %15258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15259 = trunc i8 %15258 to i1
  br i1 %15259, label %15260, label %15282

15260:                                            ; preds = %15253
  %15261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15262 = call i32 @fileno(ptr noundef %15261) #12
  %15263 = call i32 @isatty(i32 noundef %15262) #12
  %15264 = icmp ne i32 %15263, 0
  br i1 %15264, label %15265, label %15282

15265:                                            ; preds = %15260
  %15266 = load i32, ptr %294, align 4, !tbaa !5
  %15267 = call ptr @__errno_location() #13
  store i32 %15266, ptr %15267, align 4, !tbaa !5
  %15268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15269 = load i32, ptr @test_count, align 4, !tbaa !5
  %15270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15271 = load i32, ptr %15270, align 4, !tbaa !5
  %15272 = call ptr @s2n_strerror(i32 noundef %15271, ptr noundef @.str.4)
  %15273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15274 = load i32, ptr %15273, align 4, !tbaa !5
  %15275 = call ptr @s2n_strerror_debug(i32 noundef %15274, ptr noundef @.str.4)
  %15276 = call ptr @__errno_location() #13
  %15277 = load i32, ptr %15276, align 4, !tbaa !5
  %15278 = call ptr @strerror(i32 noundef %15277) #12
  %15279 = call ptr @__errno_location() #13
  %15280 = load i32, ptr %15279, align 4, !tbaa !5
  %15281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15268, ptr noundef @.str.2, i32 noundef %15269, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 770, ptr noundef %15272, ptr noundef %15275, ptr noundef %15278, i32 noundef %15280) #12
  br label %15299

15282:                                            ; preds = %15260, %15253
  %15283 = load i32, ptr %294, align 4, !tbaa !5
  %15284 = call ptr @__errno_location() #13
  store i32 %15283, ptr %15284, align 4, !tbaa !5
  %15285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15286 = load i32, ptr @test_count, align 4, !tbaa !5
  %15287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15288 = load i32, ptr %15287, align 4, !tbaa !5
  %15289 = call ptr @s2n_strerror(i32 noundef %15288, ptr noundef @.str.4)
  %15290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15291 = load i32, ptr %15290, align 4, !tbaa !5
  %15292 = call ptr @s2n_strerror_debug(i32 noundef %15291, ptr noundef @.str.4)
  %15293 = call ptr @__errno_location() #13
  %15294 = load i32, ptr %15293, align 4, !tbaa !5
  %15295 = call ptr @strerror(i32 noundef %15294) #12
  %15296 = call ptr @__errno_location() #13
  %15297 = load i32, ptr %15296, align 4, !tbaa !5
  %15298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15285, ptr noundef @.str.5, i32 noundef %15286, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 770, ptr noundef %15289, ptr noundef %15292, ptr noundef %15295, i32 noundef %15297) #12
  br label %15299

15299:                                            ; preds = %15282, %15265
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #12
  br label %15300

15300:                                            ; preds = %15299
  br label %15301

15301:                                            ; preds = %15300
  call void @exit(i32 noundef 1) #14
  unreachable

15302:                                            ; No predecessors!
  br label %15303

15303:                                            ; preds = %15302
  br label %15304

15304:                                            ; preds = %15303, %15244
  br label %15305

15305:                                            ; preds = %15304
  br label %15306

15306:                                            ; preds = %15305
  br label %15307

15307:                                            ; preds = %15306
  br label %15308

15308:                                            ; preds = %15307
  br label %15309

15309:                                            ; preds = %15308
  %15310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %15310, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %15311 = call ptr @__errno_location() #13
  store i32 0, ptr %15311, align 4, !tbaa !5
  br label %15312

15312:                                            ; preds = %15309
  br label %15313

15313:                                            ; preds = %15312
  br label %15314

15314:                                            ; preds = %15313
  br label %15315

15315:                                            ; preds = %15314
  br label %15316

15316:                                            ; preds = %15315
  %15317 = load i32, ptr @test_count, align 4, !tbaa !5
  %15318 = add nsw i32 %15317, 1
  store i32 %15318, ptr @test_count, align 4, !tbaa !5
  %15319 = load ptr, ptr %47, align 8, !tbaa !9
  %15320 = call i32 @s2n_connection_wipe(ptr noundef %15319)
  %15321 = icmp eq i32 %15320, -1
  br i1 %15321, label %15322, label %15375

15322:                                            ; preds = %15316
  br label %15323

15323:                                            ; preds = %15322
  br label %15324

15324:                                            ; preds = %15323
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #12
  %15325 = call ptr @__errno_location() #13
  %15326 = load i32, ptr %15325, align 4, !tbaa !5
  store i32 %15326, ptr %295, align 4, !tbaa !5
  %15327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15328 = call i32 @s2n_print_stacktrace(ptr noundef %15327)
  %15329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15330 = trunc i8 %15329 to i1
  br i1 %15330, label %15331, label %15353

15331:                                            ; preds = %15324
  %15332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15333 = call i32 @fileno(ptr noundef %15332) #12
  %15334 = call i32 @isatty(i32 noundef %15333) #12
  %15335 = icmp ne i32 %15334, 0
  br i1 %15335, label %15336, label %15353

15336:                                            ; preds = %15331
  %15337 = load i32, ptr %295, align 4, !tbaa !5
  %15338 = call ptr @__errno_location() #13
  store i32 %15337, ptr %15338, align 4, !tbaa !5
  %15339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15340 = load i32, ptr @test_count, align 4, !tbaa !5
  %15341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15342 = load i32, ptr %15341, align 4, !tbaa !5
  %15343 = call ptr @s2n_strerror(i32 noundef %15342, ptr noundef @.str.4)
  %15344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15345 = load i32, ptr %15344, align 4, !tbaa !5
  %15346 = call ptr @s2n_strerror_debug(i32 noundef %15345, ptr noundef @.str.4)
  %15347 = call ptr @__errno_location() #13
  %15348 = load i32, ptr %15347, align 4, !tbaa !5
  %15349 = call ptr @strerror(i32 noundef %15348) #12
  %15350 = call ptr @__errno_location() #13
  %15351 = load i32, ptr %15350, align 4, !tbaa !5
  %15352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15339, ptr noundef @.str.2, i32 noundef %15340, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 772, ptr noundef %15343, ptr noundef %15346, ptr noundef %15349, i32 noundef %15351) #12
  br label %15370

15353:                                            ; preds = %15331, %15324
  %15354 = load i32, ptr %295, align 4, !tbaa !5
  %15355 = call ptr @__errno_location() #13
  store i32 %15354, ptr %15355, align 4, !tbaa !5
  %15356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15357 = load i32, ptr @test_count, align 4, !tbaa !5
  %15358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15359 = load i32, ptr %15358, align 4, !tbaa !5
  %15360 = call ptr @s2n_strerror(i32 noundef %15359, ptr noundef @.str.4)
  %15361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15362 = load i32, ptr %15361, align 4, !tbaa !5
  %15363 = call ptr @s2n_strerror_debug(i32 noundef %15362, ptr noundef @.str.4)
  %15364 = call ptr @__errno_location() #13
  %15365 = load i32, ptr %15364, align 4, !tbaa !5
  %15366 = call ptr @strerror(i32 noundef %15365) #12
  %15367 = call ptr @__errno_location() #13
  %15368 = load i32, ptr %15367, align 4, !tbaa !5
  %15369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15356, ptr noundef @.str.5, i32 noundef %15357, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 772, ptr noundef %15360, ptr noundef %15363, ptr noundef %15366, i32 noundef %15368) #12
  br label %15370

15370:                                            ; preds = %15353, %15336
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #12
  br label %15371

15371:                                            ; preds = %15370
  br label %15372

15372:                                            ; preds = %15371
  call void @exit(i32 noundef 1) #14
  unreachable

15373:                                            ; No predecessors!
  br label %15374

15374:                                            ; preds = %15373
  br label %15375

15375:                                            ; preds = %15374, %15316
  br label %15376

15376:                                            ; preds = %15375
  br label %15377

15377:                                            ; preds = %15376
  br label %15378

15378:                                            ; preds = %15377
  %15379 = load i32, ptr @test_count, align 4, !tbaa !5
  %15380 = add nsw i32 %15379, 1
  store i32 %15380, ptr @test_count, align 4, !tbaa !5
  %15381 = call i32 (...) @s2n_enable_tls13_in_test()
  %15382 = icmp eq i32 %15381, -1
  br i1 %15382, label %15383, label %15436

15383:                                            ; preds = %15378
  br label %15384

15384:                                            ; preds = %15383
  br label %15385

15385:                                            ; preds = %15384
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #12
  %15386 = call ptr @__errno_location() #13
  %15387 = load i32, ptr %15386, align 4, !tbaa !5
  store i32 %15387, ptr %296, align 4, !tbaa !5
  %15388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15389 = call i32 @s2n_print_stacktrace(ptr noundef %15388)
  %15390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15391 = trunc i8 %15390 to i1
  br i1 %15391, label %15392, label %15414

15392:                                            ; preds = %15385
  %15393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15394 = call i32 @fileno(ptr noundef %15393) #12
  %15395 = call i32 @isatty(i32 noundef %15394) #12
  %15396 = icmp ne i32 %15395, 0
  br i1 %15396, label %15397, label %15414

15397:                                            ; preds = %15392
  %15398 = load i32, ptr %296, align 4, !tbaa !5
  %15399 = call ptr @__errno_location() #13
  store i32 %15398, ptr %15399, align 4, !tbaa !5
  %15400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15401 = load i32, ptr @test_count, align 4, !tbaa !5
  %15402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15403 = load i32, ptr %15402, align 4, !tbaa !5
  %15404 = call ptr @s2n_strerror(i32 noundef %15403, ptr noundef @.str.4)
  %15405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15406 = load i32, ptr %15405, align 4, !tbaa !5
  %15407 = call ptr @s2n_strerror_debug(i32 noundef %15406, ptr noundef @.str.4)
  %15408 = call ptr @__errno_location() #13
  %15409 = load i32, ptr %15408, align 4, !tbaa !5
  %15410 = call ptr @strerror(i32 noundef %15409) #12
  %15411 = call ptr @__errno_location() #13
  %15412 = load i32, ptr %15411, align 4, !tbaa !5
  %15413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15400, ptr noundef @.str.2, i32 noundef %15401, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 778, ptr noundef %15404, ptr noundef %15407, ptr noundef %15410, i32 noundef %15412) #12
  br label %15431

15414:                                            ; preds = %15392, %15385
  %15415 = load i32, ptr %296, align 4, !tbaa !5
  %15416 = call ptr @__errno_location() #13
  store i32 %15415, ptr %15416, align 4, !tbaa !5
  %15417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15418 = load i32, ptr @test_count, align 4, !tbaa !5
  %15419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15420 = load i32, ptr %15419, align 4, !tbaa !5
  %15421 = call ptr @s2n_strerror(i32 noundef %15420, ptr noundef @.str.4)
  %15422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15423 = load i32, ptr %15422, align 4, !tbaa !5
  %15424 = call ptr @s2n_strerror_debug(i32 noundef %15423, ptr noundef @.str.4)
  %15425 = call ptr @__errno_location() #13
  %15426 = load i32, ptr %15425, align 4, !tbaa !5
  %15427 = call ptr @strerror(i32 noundef %15426) #12
  %15428 = call ptr @__errno_location() #13
  %15429 = load i32, ptr %15428, align 4, !tbaa !5
  %15430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15417, ptr noundef @.str.5, i32 noundef %15418, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 778, ptr noundef %15421, ptr noundef %15424, ptr noundef %15427, i32 noundef %15429) #12
  br label %15431

15431:                                            ; preds = %15414, %15397
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #12
  br label %15432

15432:                                            ; preds = %15431
  br label %15433

15433:                                            ; preds = %15432
  call void @exit(i32 noundef 1) #14
  unreachable

15434:                                            ; No predecessors!
  br label %15435

15435:                                            ; preds = %15434
  br label %15436

15436:                                            ; preds = %15435, %15378
  br label %15437

15437:                                            ; preds = %15436
  br label %15438

15438:                                            ; preds = %15437
  call void @llvm.lifetime.start.p0(i64 2, ptr %297) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %297, ptr align 1 @__const.main.invalid_cipher_pref, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %298) #12
  store i8 1, ptr %298, align 1, !tbaa !54
  br label %15439

15439:                                            ; preds = %15438
  %15440 = load i32, ptr @test_count, align 4, !tbaa !5
  %15441 = add nsw i32 %15440, 1
  store i32 %15441, ptr @test_count, align 4, !tbaa !5
  %15442 = load ptr, ptr %47, align 8, !tbaa !9
  %15443 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %15442, ptr noundef @.str.18)
  %15444 = icmp eq i32 %15443, -1
  br i1 %15444, label %15445, label %15498

15445:                                            ; preds = %15439
  br label %15446

15446:                                            ; preds = %15445
  br label %15447

15447:                                            ; preds = %15446
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #12
  %15448 = call ptr @__errno_location() #13
  %15449 = load i32, ptr %15448, align 4, !tbaa !5
  store i32 %15449, ptr %299, align 4, !tbaa !5
  %15450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15451 = call i32 @s2n_print_stacktrace(ptr noundef %15450)
  %15452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15453 = trunc i8 %15452 to i1
  br i1 %15453, label %15454, label %15476

15454:                                            ; preds = %15447
  %15455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15456 = call i32 @fileno(ptr noundef %15455) #12
  %15457 = call i32 @isatty(i32 noundef %15456) #12
  %15458 = icmp ne i32 %15457, 0
  br i1 %15458, label %15459, label %15476

15459:                                            ; preds = %15454
  %15460 = load i32, ptr %299, align 4, !tbaa !5
  %15461 = call ptr @__errno_location() #13
  store i32 %15460, ptr %15461, align 4, !tbaa !5
  %15462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15463 = load i32, ptr @test_count, align 4, !tbaa !5
  %15464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15465 = load i32, ptr %15464, align 4, !tbaa !5
  %15466 = call ptr @s2n_strerror(i32 noundef %15465, ptr noundef @.str.4)
  %15467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15468 = load i32, ptr %15467, align 4, !tbaa !5
  %15469 = call ptr @s2n_strerror_debug(i32 noundef %15468, ptr noundef @.str.4)
  %15470 = call ptr @__errno_location() #13
  %15471 = load i32, ptr %15470, align 4, !tbaa !5
  %15472 = call ptr @strerror(i32 noundef %15471) #12
  %15473 = call ptr @__errno_location() #13
  %15474 = load i32, ptr %15473, align 4, !tbaa !5
  %15475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15462, ptr noundef @.str.2, i32 noundef %15463, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 784, ptr noundef %15466, ptr noundef %15469, ptr noundef %15472, i32 noundef %15474) #12
  br label %15493

15476:                                            ; preds = %15454, %15447
  %15477 = load i32, ptr %299, align 4, !tbaa !5
  %15478 = call ptr @__errno_location() #13
  store i32 %15477, ptr %15478, align 4, !tbaa !5
  %15479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15480 = load i32, ptr @test_count, align 4, !tbaa !5
  %15481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15482 = load i32, ptr %15481, align 4, !tbaa !5
  %15483 = call ptr @s2n_strerror(i32 noundef %15482, ptr noundef @.str.4)
  %15484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15485 = load i32, ptr %15484, align 4, !tbaa !5
  %15486 = call ptr @s2n_strerror_debug(i32 noundef %15485, ptr noundef @.str.4)
  %15487 = call ptr @__errno_location() #13
  %15488 = load i32, ptr %15487, align 4, !tbaa !5
  %15489 = call ptr @strerror(i32 noundef %15488) #12
  %15490 = call ptr @__errno_location() #13
  %15491 = load i32, ptr %15490, align 4, !tbaa !5
  %15492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15479, ptr noundef @.str.5, i32 noundef %15480, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 784, ptr noundef %15483, ptr noundef %15486, ptr noundef %15489, i32 noundef %15491) #12
  br label %15493

15493:                                            ; preds = %15476, %15459
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #12
  br label %15494

15494:                                            ; preds = %15493
  br label %15495

15495:                                            ; preds = %15494
  call void @exit(i32 noundef 1) #14
  unreachable

15496:                                            ; No predecessors!
  br label %15497

15497:                                            ; preds = %15496
  br label %15498

15498:                                            ; preds = %15497, %15439
  br label %15499

15499:                                            ; preds = %15498
  br label %15500

15500:                                            ; preds = %15499
  %15501 = load ptr, ptr %47, align 8, !tbaa !9
  %15502 = getelementptr inbounds %struct.s2n_connection, ptr %15501, i32 0, i32 21
  store i8 34, ptr %15502, align 2, !tbaa !15
  %15503 = load ptr, ptr %47, align 8, !tbaa !9
  %15504 = getelementptr inbounds %struct.s2n_connection, ptr %15503, i32 0, i32 23
  store i8 34, ptr %15504, align 4, !tbaa !42
  br label %15505

15505:                                            ; preds = %15500
  br label %15506

15506:                                            ; preds = %15505
  br label %15507

15507:                                            ; preds = %15506
  %15508 = load i32, ptr @test_count, align 4, !tbaa !5
  %15509 = add nsw i32 %15508, 1
  store i32 %15509, ptr @test_count, align 4, !tbaa !5
  %15510 = load ptr, ptr %47, align 8, !tbaa !9
  %15511 = getelementptr inbounds [2 x i8], ptr %297, i64 0, i64 0
  %15512 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %15510, ptr noundef %15511, i16 noundef zeroext 1)
  %15513 = icmp eq i32 %15512, -1
  br i1 %15513, label %15567, label %15514

15514:                                            ; preds = %15507
  br label %15515

15515:                                            ; preds = %15514
  br label %15516

15516:                                            ; preds = %15515
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #12
  %15517 = call ptr @__errno_location() #13
  %15518 = load i32, ptr %15517, align 4, !tbaa !5
  store i32 %15518, ptr %300, align 4, !tbaa !5
  %15519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15520 = call i32 @s2n_print_stacktrace(ptr noundef %15519)
  %15521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15522 = trunc i8 %15521 to i1
  br i1 %15522, label %15523, label %15545

15523:                                            ; preds = %15516
  %15524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15525 = call i32 @fileno(ptr noundef %15524) #12
  %15526 = call i32 @isatty(i32 noundef %15525) #12
  %15527 = icmp ne i32 %15526, 0
  br i1 %15527, label %15528, label %15545

15528:                                            ; preds = %15523
  %15529 = load i32, ptr %300, align 4, !tbaa !5
  %15530 = call ptr @__errno_location() #13
  store i32 %15529, ptr %15530, align 4, !tbaa !5
  %15531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15532 = load i32, ptr @test_count, align 4, !tbaa !5
  %15533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15534 = load i32, ptr %15533, align 4, !tbaa !5
  %15535 = call ptr @s2n_strerror(i32 noundef %15534, ptr noundef @.str.4)
  %15536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15537 = load i32, ptr %15536, align 4, !tbaa !5
  %15538 = call ptr @s2n_strerror_debug(i32 noundef %15537, ptr noundef @.str.4)
  %15539 = call ptr @__errno_location() #13
  %15540 = load i32, ptr %15539, align 4, !tbaa !5
  %15541 = call ptr @strerror(i32 noundef %15540) #12
  %15542 = call ptr @__errno_location() #13
  %15543 = load i32, ptr %15542, align 4, !tbaa !5
  %15544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15531, ptr noundef @.str.2, i32 noundef %15532, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 787, ptr noundef %15535, ptr noundef %15538, ptr noundef %15541, i32 noundef %15543) #12
  br label %15562

15545:                                            ; preds = %15523, %15516
  %15546 = load i32, ptr %300, align 4, !tbaa !5
  %15547 = call ptr @__errno_location() #13
  store i32 %15546, ptr %15547, align 4, !tbaa !5
  %15548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15549 = load i32, ptr @test_count, align 4, !tbaa !5
  %15550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15551 = load i32, ptr %15550, align 4, !tbaa !5
  %15552 = call ptr @s2n_strerror(i32 noundef %15551, ptr noundef @.str.4)
  %15553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15554 = load i32, ptr %15553, align 4, !tbaa !5
  %15555 = call ptr @s2n_strerror_debug(i32 noundef %15554, ptr noundef @.str.4)
  %15556 = call ptr @__errno_location() #13
  %15557 = load i32, ptr %15556, align 4, !tbaa !5
  %15558 = call ptr @strerror(i32 noundef %15557) #12
  %15559 = call ptr @__errno_location() #13
  %15560 = load i32, ptr %15559, align 4, !tbaa !5
  %15561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15548, ptr noundef @.str.5, i32 noundef %15549, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 787, ptr noundef %15552, ptr noundef %15555, ptr noundef %15558, i32 noundef %15560) #12
  br label %15562

15562:                                            ; preds = %15545, %15528
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #12
  br label %15563

15563:                                            ; preds = %15562
  br label %15564

15564:                                            ; preds = %15563
  call void @exit(i32 noundef 1) #14
  unreachable

15565:                                            ; No predecessors!
  br label %15566

15566:                                            ; preds = %15565
  br label %15567

15567:                                            ; preds = %15566, %15507
  br label %15568

15568:                                            ; preds = %15567
  br label %15569

15569:                                            ; preds = %15568
  br label %15570

15570:                                            ; preds = %15569
  %15571 = load i32, ptr @test_count, align 4, !tbaa !5
  %15572 = add nsw i32 %15571, 1
  store i32 %15572, ptr @test_count, align 4, !tbaa !5
  %15573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15574 = load i32, ptr %15573, align 4, !tbaa !5
  %15575 = icmp eq i32 %15574, 335544334
  br i1 %15575, label %15629, label %15576

15576:                                            ; preds = %15570
  br label %15577

15577:                                            ; preds = %15576
  br label %15578

15578:                                            ; preds = %15577
  call void @llvm.lifetime.start.p0(i64 4, ptr %301) #12
  %15579 = call ptr @__errno_location() #13
  %15580 = load i32, ptr %15579, align 4, !tbaa !5
  store i32 %15580, ptr %301, align 4, !tbaa !5
  %15581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15582 = call i32 @s2n_print_stacktrace(ptr noundef %15581)
  %15583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15584 = trunc i8 %15583 to i1
  br i1 %15584, label %15585, label %15607

15585:                                            ; preds = %15578
  %15586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15587 = call i32 @fileno(ptr noundef %15586) #12
  %15588 = call i32 @isatty(i32 noundef %15587) #12
  %15589 = icmp ne i32 %15588, 0
  br i1 %15589, label %15590, label %15607

15590:                                            ; preds = %15585
  %15591 = load i32, ptr %301, align 4, !tbaa !5
  %15592 = call ptr @__errno_location() #13
  store i32 %15591, ptr %15592, align 4, !tbaa !5
  %15593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15594 = load i32, ptr @test_count, align 4, !tbaa !5
  %15595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15596 = load i32, ptr %15595, align 4, !tbaa !5
  %15597 = call ptr @s2n_strerror(i32 noundef %15596, ptr noundef @.str.4)
  %15598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15599 = load i32, ptr %15598, align 4, !tbaa !5
  %15600 = call ptr @s2n_strerror_debug(i32 noundef %15599, ptr noundef @.str.4)
  %15601 = call ptr @__errno_location() #13
  %15602 = load i32, ptr %15601, align 4, !tbaa !5
  %15603 = call ptr @strerror(i32 noundef %15602) #12
  %15604 = call ptr @__errno_location() #13
  %15605 = load i32, ptr %15604, align 4, !tbaa !5
  %15606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15593, ptr noundef @.str.2, i32 noundef %15594, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 787, ptr noundef %15597, ptr noundef %15600, ptr noundef %15603, i32 noundef %15605) #12
  br label %15624

15607:                                            ; preds = %15585, %15578
  %15608 = load i32, ptr %301, align 4, !tbaa !5
  %15609 = call ptr @__errno_location() #13
  store i32 %15608, ptr %15609, align 4, !tbaa !5
  %15610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15611 = load i32, ptr @test_count, align 4, !tbaa !5
  %15612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15613 = load i32, ptr %15612, align 4, !tbaa !5
  %15614 = call ptr @s2n_strerror(i32 noundef %15613, ptr noundef @.str.4)
  %15615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15616 = load i32, ptr %15615, align 4, !tbaa !5
  %15617 = call ptr @s2n_strerror_debug(i32 noundef %15616, ptr noundef @.str.4)
  %15618 = call ptr @__errno_location() #13
  %15619 = load i32, ptr %15618, align 4, !tbaa !5
  %15620 = call ptr @strerror(i32 noundef %15619) #12
  %15621 = call ptr @__errno_location() #13
  %15622 = load i32, ptr %15621, align 4, !tbaa !5
  %15623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15610, ptr noundef @.str.5, i32 noundef %15611, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 787, ptr noundef %15614, ptr noundef %15617, ptr noundef %15620, i32 noundef %15622) #12
  br label %15624

15624:                                            ; preds = %15607, %15590
  call void @llvm.lifetime.end.p0(i64 4, ptr %301) #12
  br label %15625

15625:                                            ; preds = %15624
  br label %15626

15626:                                            ; preds = %15625
  call void @exit(i32 noundef 1) #14
  unreachable

15627:                                            ; No predecessors!
  br label %15628

15628:                                            ; preds = %15627
  br label %15629

15629:                                            ; preds = %15628, %15570
  br label %15630

15630:                                            ; preds = %15629
  br label %15631

15631:                                            ; preds = %15630
  br label %15632

15632:                                            ; preds = %15631
  %15633 = load i32, ptr @test_count, align 4, !tbaa !5
  %15634 = add nsw i32 %15633, 1
  store i32 %15634, ptr @test_count, align 4, !tbaa !5
  %15635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15636 = load i32, ptr %15635, align 4, !tbaa !5
  %15637 = call ptr @s2n_strerror_debug(i32 noundef %15636, ptr noundef @.str.4)
  %15638 = icmp eq ptr %15637, null
  br i1 %15638, label %15639, label %15692

15639:                                            ; preds = %15632
  br label %15640

15640:                                            ; preds = %15639
  br label %15641

15641:                                            ; preds = %15640
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #12
  %15642 = call ptr @__errno_location() #13
  %15643 = load i32, ptr %15642, align 4, !tbaa !5
  store i32 %15643, ptr %302, align 4, !tbaa !5
  %15644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15645 = call i32 @s2n_print_stacktrace(ptr noundef %15644)
  %15646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15647 = trunc i8 %15646 to i1
  br i1 %15647, label %15648, label %15670

15648:                                            ; preds = %15641
  %15649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15650 = call i32 @fileno(ptr noundef %15649) #12
  %15651 = call i32 @isatty(i32 noundef %15650) #12
  %15652 = icmp ne i32 %15651, 0
  br i1 %15652, label %15653, label %15670

15653:                                            ; preds = %15648
  %15654 = load i32, ptr %302, align 4, !tbaa !5
  %15655 = call ptr @__errno_location() #13
  store i32 %15654, ptr %15655, align 4, !tbaa !5
  %15656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15657 = load i32, ptr @test_count, align 4, !tbaa !5
  %15658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15659 = load i32, ptr %15658, align 4, !tbaa !5
  %15660 = call ptr @s2n_strerror(i32 noundef %15659, ptr noundef @.str.4)
  %15661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15662 = load i32, ptr %15661, align 4, !tbaa !5
  %15663 = call ptr @s2n_strerror_debug(i32 noundef %15662, ptr noundef @.str.4)
  %15664 = call ptr @__errno_location() #13
  %15665 = load i32, ptr %15664, align 4, !tbaa !5
  %15666 = call ptr @strerror(i32 noundef %15665) #12
  %15667 = call ptr @__errno_location() #13
  %15668 = load i32, ptr %15667, align 4, !tbaa !5
  %15669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15656, ptr noundef @.str.2, i32 noundef %15657, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 787, ptr noundef %15660, ptr noundef %15663, ptr noundef %15666, i32 noundef %15668) #12
  br label %15687

15670:                                            ; preds = %15648, %15641
  %15671 = load i32, ptr %302, align 4, !tbaa !5
  %15672 = call ptr @__errno_location() #13
  store i32 %15671, ptr %15672, align 4, !tbaa !5
  %15673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15674 = load i32, ptr @test_count, align 4, !tbaa !5
  %15675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15676 = load i32, ptr %15675, align 4, !tbaa !5
  %15677 = call ptr @s2n_strerror(i32 noundef %15676, ptr noundef @.str.4)
  %15678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15679 = load i32, ptr %15678, align 4, !tbaa !5
  %15680 = call ptr @s2n_strerror_debug(i32 noundef %15679, ptr noundef @.str.4)
  %15681 = call ptr @__errno_location() #13
  %15682 = load i32, ptr %15681, align 4, !tbaa !5
  %15683 = call ptr @strerror(i32 noundef %15682) #12
  %15684 = call ptr @__errno_location() #13
  %15685 = load i32, ptr %15684, align 4, !tbaa !5
  %15686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15673, ptr noundef @.str.5, i32 noundef %15674, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 787, ptr noundef %15677, ptr noundef %15680, ptr noundef %15683, i32 noundef %15685) #12
  br label %15687

15687:                                            ; preds = %15670, %15653
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #12
  br label %15688

15688:                                            ; preds = %15687
  br label %15689

15689:                                            ; preds = %15688
  call void @exit(i32 noundef 1) #14
  unreachable

15690:                                            ; No predecessors!
  br label %15691

15691:                                            ; preds = %15690
  br label %15692

15692:                                            ; preds = %15691, %15632
  br label %15693

15693:                                            ; preds = %15692
  br label %15694

15694:                                            ; preds = %15693
  br label %15695

15695:                                            ; preds = %15694
  br label %15696

15696:                                            ; preds = %15695
  br label %15697

15697:                                            ; preds = %15696
  %15698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %15698, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %15699 = call ptr @__errno_location() #13
  store i32 0, ptr %15699, align 4, !tbaa !5
  br label %15700

15700:                                            ; preds = %15697
  br label %15701

15701:                                            ; preds = %15700
  br label %15702

15702:                                            ; preds = %15701
  br label %15703

15703:                                            ; preds = %15702
  br label %15704

15704:                                            ; preds = %15703
  %15705 = load i32, ptr @test_count, align 4, !tbaa !5
  %15706 = add nsw i32 %15705, 1
  store i32 %15706, ptr @test_count, align 4, !tbaa !5
  %15707 = load ptr, ptr %47, align 8, !tbaa !9
  %15708 = call i32 @s2n_connection_wipe(ptr noundef %15707)
  %15709 = icmp eq i32 %15708, -1
  br i1 %15709, label %15710, label %15763

15710:                                            ; preds = %15704
  br label %15711

15711:                                            ; preds = %15710
  br label %15712

15712:                                            ; preds = %15711
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #12
  %15713 = call ptr @__errno_location() #13
  %15714 = load i32, ptr %15713, align 4, !tbaa !5
  store i32 %15714, ptr %303, align 4, !tbaa !5
  %15715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15716 = call i32 @s2n_print_stacktrace(ptr noundef %15715)
  %15717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15718 = trunc i8 %15717 to i1
  br i1 %15718, label %15719, label %15741

15719:                                            ; preds = %15712
  %15720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15721 = call i32 @fileno(ptr noundef %15720) #12
  %15722 = call i32 @isatty(i32 noundef %15721) #12
  %15723 = icmp ne i32 %15722, 0
  br i1 %15723, label %15724, label %15741

15724:                                            ; preds = %15719
  %15725 = load i32, ptr %303, align 4, !tbaa !5
  %15726 = call ptr @__errno_location() #13
  store i32 %15725, ptr %15726, align 4, !tbaa !5
  %15727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15728 = load i32, ptr @test_count, align 4, !tbaa !5
  %15729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15730 = load i32, ptr %15729, align 4, !tbaa !5
  %15731 = call ptr @s2n_strerror(i32 noundef %15730, ptr noundef @.str.4)
  %15732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15733 = load i32, ptr %15732, align 4, !tbaa !5
  %15734 = call ptr @s2n_strerror_debug(i32 noundef %15733, ptr noundef @.str.4)
  %15735 = call ptr @__errno_location() #13
  %15736 = load i32, ptr %15735, align 4, !tbaa !5
  %15737 = call ptr @strerror(i32 noundef %15736) #12
  %15738 = call ptr @__errno_location() #13
  %15739 = load i32, ptr %15738, align 4, !tbaa !5
  %15740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15727, ptr noundef @.str.2, i32 noundef %15728, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 788, ptr noundef %15731, ptr noundef %15734, ptr noundef %15737, i32 noundef %15739) #12
  br label %15758

15741:                                            ; preds = %15719, %15712
  %15742 = load i32, ptr %303, align 4, !tbaa !5
  %15743 = call ptr @__errno_location() #13
  store i32 %15742, ptr %15743, align 4, !tbaa !5
  %15744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15745 = load i32, ptr @test_count, align 4, !tbaa !5
  %15746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15747 = load i32, ptr %15746, align 4, !tbaa !5
  %15748 = call ptr @s2n_strerror(i32 noundef %15747, ptr noundef @.str.4)
  %15749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15750 = load i32, ptr %15749, align 4, !tbaa !5
  %15751 = call ptr @s2n_strerror_debug(i32 noundef %15750, ptr noundef @.str.4)
  %15752 = call ptr @__errno_location() #13
  %15753 = load i32, ptr %15752, align 4, !tbaa !5
  %15754 = call ptr @strerror(i32 noundef %15753) #12
  %15755 = call ptr @__errno_location() #13
  %15756 = load i32, ptr %15755, align 4, !tbaa !5
  %15757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15744, ptr noundef @.str.5, i32 noundef %15745, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 788, ptr noundef %15748, ptr noundef %15751, ptr noundef %15754, i32 noundef %15756) #12
  br label %15758

15758:                                            ; preds = %15741, %15724
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #12
  br label %15759

15759:                                            ; preds = %15758
  br label %15760

15760:                                            ; preds = %15759
  call void @exit(i32 noundef 1) #14
  unreachable

15761:                                            ; No predecessors!
  br label %15762

15762:                                            ; preds = %15761
  br label %15763

15763:                                            ; preds = %15762, %15704
  br label %15764

15764:                                            ; preds = %15763
  br label %15765

15765:                                            ; preds = %15764
  br label %15766

15766:                                            ; preds = %15765
  %15767 = load i32, ptr @test_count, align 4, !tbaa !5
  %15768 = add nsw i32 %15767, 1
  store i32 %15768, ptr @test_count, align 4, !tbaa !5
  %15769 = call i32 (...) @s2n_disable_tls13_in_test()
  %15770 = icmp eq i32 %15769, -1
  br i1 %15770, label %15771, label %15824

15771:                                            ; preds = %15766
  br label %15772

15772:                                            ; preds = %15771
  br label %15773

15773:                                            ; preds = %15772
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #12
  %15774 = call ptr @__errno_location() #13
  %15775 = load i32, ptr %15774, align 4, !tbaa !5
  store i32 %15775, ptr %304, align 4, !tbaa !5
  %15776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15777 = call i32 @s2n_print_stacktrace(ptr noundef %15776)
  %15778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15779 = trunc i8 %15778 to i1
  br i1 %15779, label %15780, label %15802

15780:                                            ; preds = %15773
  %15781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15782 = call i32 @fileno(ptr noundef %15781) #12
  %15783 = call i32 @isatty(i32 noundef %15782) #12
  %15784 = icmp ne i32 %15783, 0
  br i1 %15784, label %15785, label %15802

15785:                                            ; preds = %15780
  %15786 = load i32, ptr %304, align 4, !tbaa !5
  %15787 = call ptr @__errno_location() #13
  store i32 %15786, ptr %15787, align 4, !tbaa !5
  %15788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15789 = load i32, ptr @test_count, align 4, !tbaa !5
  %15790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15791 = load i32, ptr %15790, align 4, !tbaa !5
  %15792 = call ptr @s2n_strerror(i32 noundef %15791, ptr noundef @.str.4)
  %15793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15794 = load i32, ptr %15793, align 4, !tbaa !5
  %15795 = call ptr @s2n_strerror_debug(i32 noundef %15794, ptr noundef @.str.4)
  %15796 = call ptr @__errno_location() #13
  %15797 = load i32, ptr %15796, align 4, !tbaa !5
  %15798 = call ptr @strerror(i32 noundef %15797) #12
  %15799 = call ptr @__errno_location() #13
  %15800 = load i32, ptr %15799, align 4, !tbaa !5
  %15801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15788, ptr noundef @.str.2, i32 noundef %15789, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 789, ptr noundef %15792, ptr noundef %15795, ptr noundef %15798, i32 noundef %15800) #12
  br label %15819

15802:                                            ; preds = %15780, %15773
  %15803 = load i32, ptr %304, align 4, !tbaa !5
  %15804 = call ptr @__errno_location() #13
  store i32 %15803, ptr %15804, align 4, !tbaa !5
  %15805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15806 = load i32, ptr @test_count, align 4, !tbaa !5
  %15807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15808 = load i32, ptr %15807, align 4, !tbaa !5
  %15809 = call ptr @s2n_strerror(i32 noundef %15808, ptr noundef @.str.4)
  %15810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15811 = load i32, ptr %15810, align 4, !tbaa !5
  %15812 = call ptr @s2n_strerror_debug(i32 noundef %15811, ptr noundef @.str.4)
  %15813 = call ptr @__errno_location() #13
  %15814 = load i32, ptr %15813, align 4, !tbaa !5
  %15815 = call ptr @strerror(i32 noundef %15814) #12
  %15816 = call ptr @__errno_location() #13
  %15817 = load i32, ptr %15816, align 4, !tbaa !5
  %15818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15805, ptr noundef @.str.5, i32 noundef %15806, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 789, ptr noundef %15809, ptr noundef %15812, ptr noundef %15815, i32 noundef %15817) #12
  br label %15819

15819:                                            ; preds = %15802, %15785
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #12
  br label %15820

15820:                                            ; preds = %15819
  br label %15821

15821:                                            ; preds = %15820
  call void @exit(i32 noundef 1) #14
  unreachable

15822:                                            ; No predecessors!
  br label %15823

15823:                                            ; preds = %15822
  br label %15824

15824:                                            ; preds = %15823, %15766
  br label %15825

15825:                                            ; preds = %15824
  br label %15826

15826:                                            ; preds = %15825
  call void @llvm.lifetime.end.p0(i64 1, ptr %298) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %297) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %305) #12
  %15827 = call ptr @s2n_config_new()
  store ptr %15827, ptr %305, align 8, !tbaa !9
  br label %15828

15828:                                            ; preds = %15826
  %15829 = load i32, ptr @test_count, align 4, !tbaa !5
  %15830 = add nsw i32 %15829, 1
  store i32 %15830, ptr @test_count, align 4, !tbaa !5
  %15831 = load ptr, ptr %305, align 8, !tbaa !9
  %15832 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %15831, ptr noundef @.str.53)
  %15833 = icmp eq i32 %15832, -1
  br i1 %15833, label %15834, label %15887

15834:                                            ; preds = %15828
  br label %15835

15835:                                            ; preds = %15834
  br label %15836

15836:                                            ; preds = %15835
  call void @llvm.lifetime.start.p0(i64 4, ptr %306) #12
  %15837 = call ptr @__errno_location() #13
  %15838 = load i32, ptr %15837, align 4, !tbaa !5
  store i32 %15838, ptr %306, align 4, !tbaa !5
  %15839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15840 = call i32 @s2n_print_stacktrace(ptr noundef %15839)
  %15841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15842 = trunc i8 %15841 to i1
  br i1 %15842, label %15843, label %15865

15843:                                            ; preds = %15836
  %15844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15845 = call i32 @fileno(ptr noundef %15844) #12
  %15846 = call i32 @isatty(i32 noundef %15845) #12
  %15847 = icmp ne i32 %15846, 0
  br i1 %15847, label %15848, label %15865

15848:                                            ; preds = %15843
  %15849 = load i32, ptr %306, align 4, !tbaa !5
  %15850 = call ptr @__errno_location() #13
  store i32 %15849, ptr %15850, align 4, !tbaa !5
  %15851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15852 = load i32, ptr @test_count, align 4, !tbaa !5
  %15853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15854 = load i32, ptr %15853, align 4, !tbaa !5
  %15855 = call ptr @s2n_strerror(i32 noundef %15854, ptr noundef @.str.4)
  %15856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15857 = load i32, ptr %15856, align 4, !tbaa !5
  %15858 = call ptr @s2n_strerror_debug(i32 noundef %15857, ptr noundef @.str.4)
  %15859 = call ptr @__errno_location() #13
  %15860 = load i32, ptr %15859, align 4, !tbaa !5
  %15861 = call ptr @strerror(i32 noundef %15860) #12
  %15862 = call ptr @__errno_location() #13
  %15863 = load i32, ptr %15862, align 4, !tbaa !5
  %15864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15851, ptr noundef @.str.2, i32 noundef %15852, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 796, ptr noundef %15855, ptr noundef %15858, ptr noundef %15861, i32 noundef %15863) #12
  br label %15882

15865:                                            ; preds = %15843, %15836
  %15866 = load i32, ptr %306, align 4, !tbaa !5
  %15867 = call ptr @__errno_location() #13
  store i32 %15866, ptr %15867, align 4, !tbaa !5
  %15868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15869 = load i32, ptr @test_count, align 4, !tbaa !5
  %15870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15871 = load i32, ptr %15870, align 4, !tbaa !5
  %15872 = call ptr @s2n_strerror(i32 noundef %15871, ptr noundef @.str.4)
  %15873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15874 = load i32, ptr %15873, align 4, !tbaa !5
  %15875 = call ptr @s2n_strerror_debug(i32 noundef %15874, ptr noundef @.str.4)
  %15876 = call ptr @__errno_location() #13
  %15877 = load i32, ptr %15876, align 4, !tbaa !5
  %15878 = call ptr @strerror(i32 noundef %15877) #12
  %15879 = call ptr @__errno_location() #13
  %15880 = load i32, ptr %15879, align 4, !tbaa !5
  %15881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15868, ptr noundef @.str.5, i32 noundef %15869, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 796, ptr noundef %15872, ptr noundef %15875, ptr noundef %15878, i32 noundef %15880) #12
  br label %15882

15882:                                            ; preds = %15865, %15848
  call void @llvm.lifetime.end.p0(i64 4, ptr %306) #12
  br label %15883

15883:                                            ; preds = %15882
  br label %15884

15884:                                            ; preds = %15883
  call void @exit(i32 noundef 1) #14
  unreachable

15885:                                            ; No predecessors!
  br label %15886

15886:                                            ; preds = %15885
  br label %15887

15887:                                            ; preds = %15886, %15828
  br label %15888

15888:                                            ; preds = %15887
  br label %15889

15889:                                            ; preds = %15888
  br label %15890

15890:                                            ; preds = %15889
  %15891 = load i32, ptr @test_count, align 4, !tbaa !5
  %15892 = add nsw i32 %15891, 1
  store i32 %15892, ptr @test_count, align 4, !tbaa !5
  %15893 = load ptr, ptr %305, align 8, !tbaa !9
  %15894 = load ptr, ptr %53, align 8, !tbaa !9
  %15895 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %15893, ptr noundef %15894)
  %15896 = icmp eq i32 %15895, -1
  br i1 %15896, label %15897, label %15950

15897:                                            ; preds = %15890
  br label %15898

15898:                                            ; preds = %15897
  br label %15899

15899:                                            ; preds = %15898
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #12
  %15900 = call ptr @__errno_location() #13
  %15901 = load i32, ptr %15900, align 4, !tbaa !5
  store i32 %15901, ptr %307, align 4, !tbaa !5
  %15902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15903 = call i32 @s2n_print_stacktrace(ptr noundef %15902)
  %15904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15905 = trunc i8 %15904 to i1
  br i1 %15905, label %15906, label %15928

15906:                                            ; preds = %15899
  %15907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15908 = call i32 @fileno(ptr noundef %15907) #12
  %15909 = call i32 @isatty(i32 noundef %15908) #12
  %15910 = icmp ne i32 %15909, 0
  br i1 %15910, label %15911, label %15928

15911:                                            ; preds = %15906
  %15912 = load i32, ptr %307, align 4, !tbaa !5
  %15913 = call ptr @__errno_location() #13
  store i32 %15912, ptr %15913, align 4, !tbaa !5
  %15914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15915 = load i32, ptr @test_count, align 4, !tbaa !5
  %15916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15917 = load i32, ptr %15916, align 4, !tbaa !5
  %15918 = call ptr @s2n_strerror(i32 noundef %15917, ptr noundef @.str.4)
  %15919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15920 = load i32, ptr %15919, align 4, !tbaa !5
  %15921 = call ptr @s2n_strerror_debug(i32 noundef %15920, ptr noundef @.str.4)
  %15922 = call ptr @__errno_location() #13
  %15923 = load i32, ptr %15922, align 4, !tbaa !5
  %15924 = call ptr @strerror(i32 noundef %15923) #12
  %15925 = call ptr @__errno_location() #13
  %15926 = load i32, ptr %15925, align 4, !tbaa !5
  %15927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15914, ptr noundef @.str.2, i32 noundef %15915, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 797, ptr noundef %15918, ptr noundef %15921, ptr noundef %15924, i32 noundef %15926) #12
  br label %15945

15928:                                            ; preds = %15906, %15899
  %15929 = load i32, ptr %307, align 4, !tbaa !5
  %15930 = call ptr @__errno_location() #13
  store i32 %15929, ptr %15930, align 4, !tbaa !5
  %15931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15932 = load i32, ptr @test_count, align 4, !tbaa !5
  %15933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15934 = load i32, ptr %15933, align 4, !tbaa !5
  %15935 = call ptr @s2n_strerror(i32 noundef %15934, ptr noundef @.str.4)
  %15936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15937 = load i32, ptr %15936, align 4, !tbaa !5
  %15938 = call ptr @s2n_strerror_debug(i32 noundef %15937, ptr noundef @.str.4)
  %15939 = call ptr @__errno_location() #13
  %15940 = load i32, ptr %15939, align 4, !tbaa !5
  %15941 = call ptr @strerror(i32 noundef %15940) #12
  %15942 = call ptr @__errno_location() #13
  %15943 = load i32, ptr %15942, align 4, !tbaa !5
  %15944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15931, ptr noundef @.str.5, i32 noundef %15932, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 797, ptr noundef %15935, ptr noundef %15938, ptr noundef %15941, i32 noundef %15943) #12
  br label %15945

15945:                                            ; preds = %15928, %15911
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #12
  br label %15946

15946:                                            ; preds = %15945
  br label %15947

15947:                                            ; preds = %15946
  call void @exit(i32 noundef 1) #14
  unreachable

15948:                                            ; No predecessors!
  br label %15949

15949:                                            ; preds = %15948
  br label %15950

15950:                                            ; preds = %15949, %15890
  br label %15951

15951:                                            ; preds = %15950
  br label %15952

15952:                                            ; preds = %15951
  call void @llvm.lifetime.start.p0(i64 8, ptr %308) #12
  %15953 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %15953, ptr %308, align 8, !tbaa !9
  br label %15954

15954:                                            ; preds = %15952
  %15955 = load i32, ptr @test_count, align 4, !tbaa !5
  %15956 = add nsw i32 %15955, 1
  store i32 %15956, ptr @test_count, align 4, !tbaa !5
  %15957 = load ptr, ptr %308, align 8, !tbaa !9
  %15958 = icmp eq ptr %15957, null
  br i1 %15958, label %15959, label %16012

15959:                                            ; preds = %15954
  br label %15960

15960:                                            ; preds = %15959
  br label %15961

15961:                                            ; preds = %15960
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #12
  %15962 = call ptr @__errno_location() #13
  %15963 = load i32, ptr %15962, align 4, !tbaa !5
  store i32 %15963, ptr %309, align 4, !tbaa !5
  %15964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15965 = call i32 @s2n_print_stacktrace(ptr noundef %15964)
  %15966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15967 = trunc i8 %15966 to i1
  br i1 %15967, label %15968, label %15990

15968:                                            ; preds = %15961
  %15969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15970 = call i32 @fileno(ptr noundef %15969) #12
  %15971 = call i32 @isatty(i32 noundef %15970) #12
  %15972 = icmp ne i32 %15971, 0
  br i1 %15972, label %15973, label %15990

15973:                                            ; preds = %15968
  %15974 = load i32, ptr %309, align 4, !tbaa !5
  %15975 = call ptr @__errno_location() #13
  store i32 %15974, ptr %15975, align 4, !tbaa !5
  %15976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15977 = load i32, ptr @test_count, align 4, !tbaa !5
  %15978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15979 = load i32, ptr %15978, align 4, !tbaa !5
  %15980 = call ptr @s2n_strerror(i32 noundef %15979, ptr noundef @.str.4)
  %15981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15982 = load i32, ptr %15981, align 4, !tbaa !5
  %15983 = call ptr @s2n_strerror_debug(i32 noundef %15982, ptr noundef @.str.4)
  %15984 = call ptr @__errno_location() #13
  %15985 = load i32, ptr %15984, align 4, !tbaa !5
  %15986 = call ptr @strerror(i32 noundef %15985) #12
  %15987 = call ptr @__errno_location() #13
  %15988 = load i32, ptr %15987, align 4, !tbaa !5
  %15989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15976, ptr noundef @.str.2, i32 noundef %15977, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 801, ptr noundef %15980, ptr noundef %15983, ptr noundef %15986, i32 noundef %15988) #12
  br label %16007

15990:                                            ; preds = %15968, %15961
  %15991 = load i32, ptr %309, align 4, !tbaa !5
  %15992 = call ptr @__errno_location() #13
  store i32 %15991, ptr %15992, align 4, !tbaa !5
  %15993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15994 = load i32, ptr @test_count, align 4, !tbaa !5
  %15995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15996 = load i32, ptr %15995, align 4, !tbaa !5
  %15997 = call ptr @s2n_strerror(i32 noundef %15996, ptr noundef @.str.4)
  %15998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15999 = load i32, ptr %15998, align 4, !tbaa !5
  %16000 = call ptr @s2n_strerror_debug(i32 noundef %15999, ptr noundef @.str.4)
  %16001 = call ptr @__errno_location() #13
  %16002 = load i32, ptr %16001, align 4, !tbaa !5
  %16003 = call ptr @strerror(i32 noundef %16002) #12
  %16004 = call ptr @__errno_location() #13
  %16005 = load i32, ptr %16004, align 4, !tbaa !5
  %16006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15993, ptr noundef @.str.5, i32 noundef %15994, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 801, ptr noundef %15997, ptr noundef %16000, ptr noundef %16003, i32 noundef %16005) #12
  br label %16007

16007:                                            ; preds = %15990, %15973
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #12
  br label %16008

16008:                                            ; preds = %16007
  br label %16009

16009:                                            ; preds = %16008
  call void @exit(i32 noundef 1) #14
  unreachable

16010:                                            ; No predecessors!
  br label %16011

16011:                                            ; preds = %16010
  br label %16012

16012:                                            ; preds = %16011, %15954
  br label %16013

16013:                                            ; preds = %16012
  br label %16014

16014:                                            ; preds = %16013
  br label %16015

16015:                                            ; preds = %16014
  %16016 = load i32, ptr @test_count, align 4, !tbaa !5
  %16017 = add nsw i32 %16016, 1
  store i32 %16017, ptr @test_count, align 4, !tbaa !5
  %16018 = load ptr, ptr %308, align 8, !tbaa !9
  %16019 = load ptr, ptr %305, align 8, !tbaa !9
  %16020 = call i32 @s2n_connection_set_config(ptr noundef %16018, ptr noundef %16019)
  %16021 = icmp eq i32 %16020, -1
  br i1 %16021, label %16022, label %16075

16022:                                            ; preds = %16015
  br label %16023

16023:                                            ; preds = %16022
  br label %16024

16024:                                            ; preds = %16023
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #12
  %16025 = call ptr @__errno_location() #13
  %16026 = load i32, ptr %16025, align 4, !tbaa !5
  store i32 %16026, ptr %310, align 4, !tbaa !5
  %16027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16028 = call i32 @s2n_print_stacktrace(ptr noundef %16027)
  %16029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16030 = trunc i8 %16029 to i1
  br i1 %16030, label %16031, label %16053

16031:                                            ; preds = %16024
  %16032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16033 = call i32 @fileno(ptr noundef %16032) #12
  %16034 = call i32 @isatty(i32 noundef %16033) #12
  %16035 = icmp ne i32 %16034, 0
  br i1 %16035, label %16036, label %16053

16036:                                            ; preds = %16031
  %16037 = load i32, ptr %310, align 4, !tbaa !5
  %16038 = call ptr @__errno_location() #13
  store i32 %16037, ptr %16038, align 4, !tbaa !5
  %16039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16040 = load i32, ptr @test_count, align 4, !tbaa !5
  %16041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16042 = load i32, ptr %16041, align 4, !tbaa !5
  %16043 = call ptr @s2n_strerror(i32 noundef %16042, ptr noundef @.str.4)
  %16044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16045 = load i32, ptr %16044, align 4, !tbaa !5
  %16046 = call ptr @s2n_strerror_debug(i32 noundef %16045, ptr noundef @.str.4)
  %16047 = call ptr @__errno_location() #13
  %16048 = load i32, ptr %16047, align 4, !tbaa !5
  %16049 = call ptr @strerror(i32 noundef %16048) #12
  %16050 = call ptr @__errno_location() #13
  %16051 = load i32, ptr %16050, align 4, !tbaa !5
  %16052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16039, ptr noundef @.str.2, i32 noundef %16040, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 802, ptr noundef %16043, ptr noundef %16046, ptr noundef %16049, i32 noundef %16051) #12
  br label %16070

16053:                                            ; preds = %16031, %16024
  %16054 = load i32, ptr %310, align 4, !tbaa !5
  %16055 = call ptr @__errno_location() #13
  store i32 %16054, ptr %16055, align 4, !tbaa !5
  %16056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16057 = load i32, ptr @test_count, align 4, !tbaa !5
  %16058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16059 = load i32, ptr %16058, align 4, !tbaa !5
  %16060 = call ptr @s2n_strerror(i32 noundef %16059, ptr noundef @.str.4)
  %16061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16062 = load i32, ptr %16061, align 4, !tbaa !5
  %16063 = call ptr @s2n_strerror_debug(i32 noundef %16062, ptr noundef @.str.4)
  %16064 = call ptr @__errno_location() #13
  %16065 = load i32, ptr %16064, align 4, !tbaa !5
  %16066 = call ptr @strerror(i32 noundef %16065) #12
  %16067 = call ptr @__errno_location() #13
  %16068 = load i32, ptr %16067, align 4, !tbaa !5
  %16069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16056, ptr noundef @.str.5, i32 noundef %16057, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 802, ptr noundef %16060, ptr noundef %16063, ptr noundef %16066, i32 noundef %16068) #12
  br label %16070

16070:                                            ; preds = %16053, %16036
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #12
  br label %16071

16071:                                            ; preds = %16070
  br label %16072

16072:                                            ; preds = %16071
  call void @exit(i32 noundef 1) #14
  unreachable

16073:                                            ; No predecessors!
  br label %16074

16074:                                            ; preds = %16073
  br label %16075

16075:                                            ; preds = %16074, %16015
  br label %16076

16076:                                            ; preds = %16075
  br label %16077

16077:                                            ; preds = %16076
  call void @llvm.lifetime.start.p0(i64 2, ptr %311) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %311, ptr align 1 @__const.main.wire, i64 2, i1 false)
  br label %16078

16078:                                            ; preds = %16077
  br label %16079

16079:                                            ; preds = %16078
  br label %16080

16080:                                            ; preds = %16079
  %16081 = load i32, ptr @test_count, align 4, !tbaa !5
  %16082 = add nsw i32 %16081, 1
  store i32 %16082, ptr @test_count, align 4, !tbaa !5
  %16083 = load ptr, ptr %308, align 8, !tbaa !9
  %16084 = getelementptr inbounds [2 x i8], ptr %311, i64 0, i64 0
  %16085 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %16083, ptr noundef %16084, i16 noundef zeroext 1)
  %16086 = icmp eq i32 %16085, -1
  br i1 %16086, label %16140, label %16087

16087:                                            ; preds = %16080
  br label %16088

16088:                                            ; preds = %16087
  br label %16089

16089:                                            ; preds = %16088
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #12
  %16090 = call ptr @__errno_location() #13
  %16091 = load i32, ptr %16090, align 4, !tbaa !5
  store i32 %16091, ptr %312, align 4, !tbaa !5
  %16092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16093 = call i32 @s2n_print_stacktrace(ptr noundef %16092)
  %16094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16095 = trunc i8 %16094 to i1
  br i1 %16095, label %16096, label %16118

16096:                                            ; preds = %16089
  %16097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16098 = call i32 @fileno(ptr noundef %16097) #12
  %16099 = call i32 @isatty(i32 noundef %16098) #12
  %16100 = icmp ne i32 %16099, 0
  br i1 %16100, label %16101, label %16118

16101:                                            ; preds = %16096
  %16102 = load i32, ptr %312, align 4, !tbaa !5
  %16103 = call ptr @__errno_location() #13
  store i32 %16102, ptr %16103, align 4, !tbaa !5
  %16104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16105 = load i32, ptr @test_count, align 4, !tbaa !5
  %16106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16107 = load i32, ptr %16106, align 4, !tbaa !5
  %16108 = call ptr @s2n_strerror(i32 noundef %16107, ptr noundef @.str.4)
  %16109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16110 = load i32, ptr %16109, align 4, !tbaa !5
  %16111 = call ptr @s2n_strerror_debug(i32 noundef %16110, ptr noundef @.str.4)
  %16112 = call ptr @__errno_location() #13
  %16113 = load i32, ptr %16112, align 4, !tbaa !5
  %16114 = call ptr @strerror(i32 noundef %16113) #12
  %16115 = call ptr @__errno_location() #13
  %16116 = load i32, ptr %16115, align 4, !tbaa !5
  %16117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16104, ptr noundef @.str.2, i32 noundef %16105, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 809, ptr noundef %16108, ptr noundef %16111, ptr noundef %16114, i32 noundef %16116) #12
  br label %16135

16118:                                            ; preds = %16096, %16089
  %16119 = load i32, ptr %312, align 4, !tbaa !5
  %16120 = call ptr @__errno_location() #13
  store i32 %16119, ptr %16120, align 4, !tbaa !5
  %16121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16122 = load i32, ptr @test_count, align 4, !tbaa !5
  %16123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16124 = load i32, ptr %16123, align 4, !tbaa !5
  %16125 = call ptr @s2n_strerror(i32 noundef %16124, ptr noundef @.str.4)
  %16126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16127 = load i32, ptr %16126, align 4, !tbaa !5
  %16128 = call ptr @s2n_strerror_debug(i32 noundef %16127, ptr noundef @.str.4)
  %16129 = call ptr @__errno_location() #13
  %16130 = load i32, ptr %16129, align 4, !tbaa !5
  %16131 = call ptr @strerror(i32 noundef %16130) #12
  %16132 = call ptr @__errno_location() #13
  %16133 = load i32, ptr %16132, align 4, !tbaa !5
  %16134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16121, ptr noundef @.str.5, i32 noundef %16122, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 809, ptr noundef %16125, ptr noundef %16128, ptr noundef %16131, i32 noundef %16133) #12
  br label %16135

16135:                                            ; preds = %16118, %16101
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #12
  br label %16136

16136:                                            ; preds = %16135
  br label %16137

16137:                                            ; preds = %16136
  call void @exit(i32 noundef 1) #14
  unreachable

16138:                                            ; No predecessors!
  br label %16139

16139:                                            ; preds = %16138
  br label %16140

16140:                                            ; preds = %16139, %16080
  br label %16141

16141:                                            ; preds = %16140
  br label %16142

16142:                                            ; preds = %16141
  br label %16143

16143:                                            ; preds = %16142
  %16144 = load i32, ptr @test_count, align 4, !tbaa !5
  %16145 = add nsw i32 %16144, 1
  store i32 %16145, ptr @test_count, align 4, !tbaa !5
  %16146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16147 = load i32, ptr %16146, align 4, !tbaa !5
  %16148 = icmp eq i32 %16147, 335544334
  br i1 %16148, label %16202, label %16149

16149:                                            ; preds = %16143
  br label %16150

16150:                                            ; preds = %16149
  br label %16151

16151:                                            ; preds = %16150
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #12
  %16152 = call ptr @__errno_location() #13
  %16153 = load i32, ptr %16152, align 4, !tbaa !5
  store i32 %16153, ptr %313, align 4, !tbaa !5
  %16154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16155 = call i32 @s2n_print_stacktrace(ptr noundef %16154)
  %16156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16157 = trunc i8 %16156 to i1
  br i1 %16157, label %16158, label %16180

16158:                                            ; preds = %16151
  %16159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16160 = call i32 @fileno(ptr noundef %16159) #12
  %16161 = call i32 @isatty(i32 noundef %16160) #12
  %16162 = icmp ne i32 %16161, 0
  br i1 %16162, label %16163, label %16180

16163:                                            ; preds = %16158
  %16164 = load i32, ptr %313, align 4, !tbaa !5
  %16165 = call ptr @__errno_location() #13
  store i32 %16164, ptr %16165, align 4, !tbaa !5
  %16166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16167 = load i32, ptr @test_count, align 4, !tbaa !5
  %16168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16169 = load i32, ptr %16168, align 4, !tbaa !5
  %16170 = call ptr @s2n_strerror(i32 noundef %16169, ptr noundef @.str.4)
  %16171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16172 = load i32, ptr %16171, align 4, !tbaa !5
  %16173 = call ptr @s2n_strerror_debug(i32 noundef %16172, ptr noundef @.str.4)
  %16174 = call ptr @__errno_location() #13
  %16175 = load i32, ptr %16174, align 4, !tbaa !5
  %16176 = call ptr @strerror(i32 noundef %16175) #12
  %16177 = call ptr @__errno_location() #13
  %16178 = load i32, ptr %16177, align 4, !tbaa !5
  %16179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16166, ptr noundef @.str.2, i32 noundef %16167, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 809, ptr noundef %16170, ptr noundef %16173, ptr noundef %16176, i32 noundef %16178) #12
  br label %16197

16180:                                            ; preds = %16158, %16151
  %16181 = load i32, ptr %313, align 4, !tbaa !5
  %16182 = call ptr @__errno_location() #13
  store i32 %16181, ptr %16182, align 4, !tbaa !5
  %16183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16184 = load i32, ptr @test_count, align 4, !tbaa !5
  %16185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16186 = load i32, ptr %16185, align 4, !tbaa !5
  %16187 = call ptr @s2n_strerror(i32 noundef %16186, ptr noundef @.str.4)
  %16188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16189 = load i32, ptr %16188, align 4, !tbaa !5
  %16190 = call ptr @s2n_strerror_debug(i32 noundef %16189, ptr noundef @.str.4)
  %16191 = call ptr @__errno_location() #13
  %16192 = load i32, ptr %16191, align 4, !tbaa !5
  %16193 = call ptr @strerror(i32 noundef %16192) #12
  %16194 = call ptr @__errno_location() #13
  %16195 = load i32, ptr %16194, align 4, !tbaa !5
  %16196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16183, ptr noundef @.str.5, i32 noundef %16184, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 809, ptr noundef %16187, ptr noundef %16190, ptr noundef %16193, i32 noundef %16195) #12
  br label %16197

16197:                                            ; preds = %16180, %16163
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #12
  br label %16198

16198:                                            ; preds = %16197
  br label %16199

16199:                                            ; preds = %16198
  call void @exit(i32 noundef 1) #14
  unreachable

16200:                                            ; No predecessors!
  br label %16201

16201:                                            ; preds = %16200
  br label %16202

16202:                                            ; preds = %16201, %16143
  br label %16203

16203:                                            ; preds = %16202
  br label %16204

16204:                                            ; preds = %16203
  br label %16205

16205:                                            ; preds = %16204
  %16206 = load i32, ptr @test_count, align 4, !tbaa !5
  %16207 = add nsw i32 %16206, 1
  store i32 %16207, ptr @test_count, align 4, !tbaa !5
  %16208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16209 = load i32, ptr %16208, align 4, !tbaa !5
  %16210 = call ptr @s2n_strerror_debug(i32 noundef %16209, ptr noundef @.str.4)
  %16211 = icmp eq ptr %16210, null
  br i1 %16211, label %16212, label %16265

16212:                                            ; preds = %16205
  br label %16213

16213:                                            ; preds = %16212
  br label %16214

16214:                                            ; preds = %16213
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #12
  %16215 = call ptr @__errno_location() #13
  %16216 = load i32, ptr %16215, align 4, !tbaa !5
  store i32 %16216, ptr %314, align 4, !tbaa !5
  %16217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16218 = call i32 @s2n_print_stacktrace(ptr noundef %16217)
  %16219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16220 = trunc i8 %16219 to i1
  br i1 %16220, label %16221, label %16243

16221:                                            ; preds = %16214
  %16222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16223 = call i32 @fileno(ptr noundef %16222) #12
  %16224 = call i32 @isatty(i32 noundef %16223) #12
  %16225 = icmp ne i32 %16224, 0
  br i1 %16225, label %16226, label %16243

16226:                                            ; preds = %16221
  %16227 = load i32, ptr %314, align 4, !tbaa !5
  %16228 = call ptr @__errno_location() #13
  store i32 %16227, ptr %16228, align 4, !tbaa !5
  %16229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16230 = load i32, ptr @test_count, align 4, !tbaa !5
  %16231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16232 = load i32, ptr %16231, align 4, !tbaa !5
  %16233 = call ptr @s2n_strerror(i32 noundef %16232, ptr noundef @.str.4)
  %16234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16235 = load i32, ptr %16234, align 4, !tbaa !5
  %16236 = call ptr @s2n_strerror_debug(i32 noundef %16235, ptr noundef @.str.4)
  %16237 = call ptr @__errno_location() #13
  %16238 = load i32, ptr %16237, align 4, !tbaa !5
  %16239 = call ptr @strerror(i32 noundef %16238) #12
  %16240 = call ptr @__errno_location() #13
  %16241 = load i32, ptr %16240, align 4, !tbaa !5
  %16242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16229, ptr noundef @.str.2, i32 noundef %16230, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 809, ptr noundef %16233, ptr noundef %16236, ptr noundef %16239, i32 noundef %16241) #12
  br label %16260

16243:                                            ; preds = %16221, %16214
  %16244 = load i32, ptr %314, align 4, !tbaa !5
  %16245 = call ptr @__errno_location() #13
  store i32 %16244, ptr %16245, align 4, !tbaa !5
  %16246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16247 = load i32, ptr @test_count, align 4, !tbaa !5
  %16248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16249 = load i32, ptr %16248, align 4, !tbaa !5
  %16250 = call ptr @s2n_strerror(i32 noundef %16249, ptr noundef @.str.4)
  %16251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16252 = load i32, ptr %16251, align 4, !tbaa !5
  %16253 = call ptr @s2n_strerror_debug(i32 noundef %16252, ptr noundef @.str.4)
  %16254 = call ptr @__errno_location() #13
  %16255 = load i32, ptr %16254, align 4, !tbaa !5
  %16256 = call ptr @strerror(i32 noundef %16255) #12
  %16257 = call ptr @__errno_location() #13
  %16258 = load i32, ptr %16257, align 4, !tbaa !5
  %16259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16246, ptr noundef @.str.5, i32 noundef %16247, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 809, ptr noundef %16250, ptr noundef %16253, ptr noundef %16256, i32 noundef %16258) #12
  br label %16260

16260:                                            ; preds = %16243, %16226
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #12
  br label %16261

16261:                                            ; preds = %16260
  br label %16262

16262:                                            ; preds = %16261
  call void @exit(i32 noundef 1) #14
  unreachable

16263:                                            ; No predecessors!
  br label %16264

16264:                                            ; preds = %16263
  br label %16265

16265:                                            ; preds = %16264, %16205
  br label %16266

16266:                                            ; preds = %16265
  br label %16267

16267:                                            ; preds = %16266
  br label %16268

16268:                                            ; preds = %16267
  br label %16269

16269:                                            ; preds = %16268
  br label %16270

16270:                                            ; preds = %16269
  %16271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %16271, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %16272 = call ptr @__errno_location() #13
  store i32 0, ptr %16272, align 4, !tbaa !5
  br label %16273

16273:                                            ; preds = %16270
  br label %16274

16274:                                            ; preds = %16273
  br label %16275

16275:                                            ; preds = %16274
  br label %16276

16276:                                            ; preds = %16275
  br label %16277

16277:                                            ; preds = %16276
  %16278 = load i32, ptr @test_count, align 4, !tbaa !5
  %16279 = add nsw i32 %16278, 1
  store i32 %16279, ptr @test_count, align 4, !tbaa !5
  %16280 = load ptr, ptr %305, align 8, !tbaa !9
  %16281 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %16282 = call i32 @s2n_config_add_dhparams(ptr noundef %16280, ptr noundef %16281)
  %16283 = icmp eq i32 %16282, -1
  br i1 %16283, label %16284, label %16337

16284:                                            ; preds = %16277
  br label %16285

16285:                                            ; preds = %16284
  br label %16286

16286:                                            ; preds = %16285
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #12
  %16287 = call ptr @__errno_location() #13
  %16288 = load i32, ptr %16287, align 4, !tbaa !5
  store i32 %16288, ptr %315, align 4, !tbaa !5
  %16289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16290 = call i32 @s2n_print_stacktrace(ptr noundef %16289)
  %16291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16292 = trunc i8 %16291 to i1
  br i1 %16292, label %16293, label %16315

16293:                                            ; preds = %16286
  %16294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16295 = call i32 @fileno(ptr noundef %16294) #12
  %16296 = call i32 @isatty(i32 noundef %16295) #12
  %16297 = icmp ne i32 %16296, 0
  br i1 %16297, label %16298, label %16315

16298:                                            ; preds = %16293
  %16299 = load i32, ptr %315, align 4, !tbaa !5
  %16300 = call ptr @__errno_location() #13
  store i32 %16299, ptr %16300, align 4, !tbaa !5
  %16301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16302 = load i32, ptr @test_count, align 4, !tbaa !5
  %16303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16304 = load i32, ptr %16303, align 4, !tbaa !5
  %16305 = call ptr @s2n_strerror(i32 noundef %16304, ptr noundef @.str.4)
  %16306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16307 = load i32, ptr %16306, align 4, !tbaa !5
  %16308 = call ptr @s2n_strerror_debug(i32 noundef %16307, ptr noundef @.str.4)
  %16309 = call ptr @__errno_location() #13
  %16310 = load i32, ptr %16309, align 4, !tbaa !5
  %16311 = call ptr @strerror(i32 noundef %16310) #12
  %16312 = call ptr @__errno_location() #13
  %16313 = load i32, ptr %16312, align 4, !tbaa !5
  %16314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16301, ptr noundef @.str.2, i32 noundef %16302, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 812, ptr noundef %16305, ptr noundef %16308, ptr noundef %16311, i32 noundef %16313) #12
  br label %16332

16315:                                            ; preds = %16293, %16286
  %16316 = load i32, ptr %315, align 4, !tbaa !5
  %16317 = call ptr @__errno_location() #13
  store i32 %16316, ptr %16317, align 4, !tbaa !5
  %16318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16319 = load i32, ptr @test_count, align 4, !tbaa !5
  %16320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16321 = load i32, ptr %16320, align 4, !tbaa !5
  %16322 = call ptr @s2n_strerror(i32 noundef %16321, ptr noundef @.str.4)
  %16323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16324 = load i32, ptr %16323, align 4, !tbaa !5
  %16325 = call ptr @s2n_strerror_debug(i32 noundef %16324, ptr noundef @.str.4)
  %16326 = call ptr @__errno_location() #13
  %16327 = load i32, ptr %16326, align 4, !tbaa !5
  %16328 = call ptr @strerror(i32 noundef %16327) #12
  %16329 = call ptr @__errno_location() #13
  %16330 = load i32, ptr %16329, align 4, !tbaa !5
  %16331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16318, ptr noundef @.str.5, i32 noundef %16319, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 812, ptr noundef %16322, ptr noundef %16325, ptr noundef %16328, i32 noundef %16330) #12
  br label %16332

16332:                                            ; preds = %16315, %16298
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #12
  br label %16333

16333:                                            ; preds = %16332
  br label %16334

16334:                                            ; preds = %16333
  call void @exit(i32 noundef 1) #14
  unreachable

16335:                                            ; No predecessors!
  br label %16336

16336:                                            ; preds = %16335
  br label %16337

16337:                                            ; preds = %16336, %16277
  br label %16338

16338:                                            ; preds = %16337
  br label %16339

16339:                                            ; preds = %16338
  br label %16340

16340:                                            ; preds = %16339
  %16341 = load i32, ptr @test_count, align 4, !tbaa !5
  %16342 = add nsw i32 %16341, 1
  store i32 %16342, ptr @test_count, align 4, !tbaa !5
  %16343 = load ptr, ptr %308, align 8, !tbaa !9
  %16344 = getelementptr inbounds [2 x i8], ptr %311, i64 0, i64 0
  %16345 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %16343, ptr noundef %16344, i16 noundef zeroext 1)
  %16346 = icmp eq i32 %16345, -1
  br i1 %16346, label %16347, label %16400

16347:                                            ; preds = %16340
  br label %16348

16348:                                            ; preds = %16347
  br label %16349

16349:                                            ; preds = %16348
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #12
  %16350 = call ptr @__errno_location() #13
  %16351 = load i32, ptr %16350, align 4, !tbaa !5
  store i32 %16351, ptr %316, align 4, !tbaa !5
  %16352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16353 = call i32 @s2n_print_stacktrace(ptr noundef %16352)
  %16354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16355 = trunc i8 %16354 to i1
  br i1 %16355, label %16356, label %16378

16356:                                            ; preds = %16349
  %16357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16358 = call i32 @fileno(ptr noundef %16357) #12
  %16359 = call i32 @isatty(i32 noundef %16358) #12
  %16360 = icmp ne i32 %16359, 0
  br i1 %16360, label %16361, label %16378

16361:                                            ; preds = %16356
  %16362 = load i32, ptr %316, align 4, !tbaa !5
  %16363 = call ptr @__errno_location() #13
  store i32 %16362, ptr %16363, align 4, !tbaa !5
  %16364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16365 = load i32, ptr @test_count, align 4, !tbaa !5
  %16366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16367 = load i32, ptr %16366, align 4, !tbaa !5
  %16368 = call ptr @s2n_strerror(i32 noundef %16367, ptr noundef @.str.4)
  %16369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16370 = load i32, ptr %16369, align 4, !tbaa !5
  %16371 = call ptr @s2n_strerror_debug(i32 noundef %16370, ptr noundef @.str.4)
  %16372 = call ptr @__errno_location() #13
  %16373 = load i32, ptr %16372, align 4, !tbaa !5
  %16374 = call ptr @strerror(i32 noundef %16373) #12
  %16375 = call ptr @__errno_location() #13
  %16376 = load i32, ptr %16375, align 4, !tbaa !5
  %16377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16364, ptr noundef @.str.2, i32 noundef %16365, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 813, ptr noundef %16368, ptr noundef %16371, ptr noundef %16374, i32 noundef %16376) #12
  br label %16395

16378:                                            ; preds = %16356, %16349
  %16379 = load i32, ptr %316, align 4, !tbaa !5
  %16380 = call ptr @__errno_location() #13
  store i32 %16379, ptr %16380, align 4, !tbaa !5
  %16381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16382 = load i32, ptr @test_count, align 4, !tbaa !5
  %16383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16384 = load i32, ptr %16383, align 4, !tbaa !5
  %16385 = call ptr @s2n_strerror(i32 noundef %16384, ptr noundef @.str.4)
  %16386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16387 = load i32, ptr %16386, align 4, !tbaa !5
  %16388 = call ptr @s2n_strerror_debug(i32 noundef %16387, ptr noundef @.str.4)
  %16389 = call ptr @__errno_location() #13
  %16390 = load i32, ptr %16389, align 4, !tbaa !5
  %16391 = call ptr @strerror(i32 noundef %16390) #12
  %16392 = call ptr @__errno_location() #13
  %16393 = load i32, ptr %16392, align 4, !tbaa !5
  %16394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16381, ptr noundef @.str.5, i32 noundef %16382, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 813, ptr noundef %16385, ptr noundef %16388, ptr noundef %16391, i32 noundef %16393) #12
  br label %16395

16395:                                            ; preds = %16378, %16361
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #12
  br label %16396

16396:                                            ; preds = %16395
  br label %16397

16397:                                            ; preds = %16396
  call void @exit(i32 noundef 1) #14
  unreachable

16398:                                            ; No predecessors!
  br label %16399

16399:                                            ; preds = %16398
  br label %16400

16400:                                            ; preds = %16399, %16340
  br label %16401

16401:                                            ; preds = %16400
  br label %16402

16402:                                            ; preds = %16401
  br label %16403

16403:                                            ; preds = %16402
  %16404 = load i32, ptr @test_count, align 4, !tbaa !5
  %16405 = add nsw i32 %16404, 1
  store i32 %16405, ptr @test_count, align 4, !tbaa !5
  %16406 = load ptr, ptr %308, align 8, !tbaa !9
  %16407 = getelementptr inbounds %struct.s2n_connection, ptr %16406, i32 0, i32 27
  %16408 = load ptr, ptr %16407, align 8, !tbaa !48
  %16409 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %16408, i32 0, i32 0
  %16410 = load ptr, ptr %16409, align 8, !tbaa !49
  %16411 = icmp eq ptr %16410, @s2n_dhe_rsa_with_aes_128_gcm_sha256
  br i1 %16411, label %16465, label %16412

16412:                                            ; preds = %16403
  br label %16413

16413:                                            ; preds = %16412
  br label %16414

16414:                                            ; preds = %16413
  call void @llvm.lifetime.start.p0(i64 4, ptr %317) #12
  %16415 = call ptr @__errno_location() #13
  %16416 = load i32, ptr %16415, align 4, !tbaa !5
  store i32 %16416, ptr %317, align 4, !tbaa !5
  %16417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16418 = call i32 @s2n_print_stacktrace(ptr noundef %16417)
  %16419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16420 = trunc i8 %16419 to i1
  br i1 %16420, label %16421, label %16443

16421:                                            ; preds = %16414
  %16422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16423 = call i32 @fileno(ptr noundef %16422) #12
  %16424 = call i32 @isatty(i32 noundef %16423) #12
  %16425 = icmp ne i32 %16424, 0
  br i1 %16425, label %16426, label %16443

16426:                                            ; preds = %16421
  %16427 = load i32, ptr %317, align 4, !tbaa !5
  %16428 = call ptr @__errno_location() #13
  store i32 %16427, ptr %16428, align 4, !tbaa !5
  %16429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16430 = load i32, ptr @test_count, align 4, !tbaa !5
  %16431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16432 = load i32, ptr %16431, align 4, !tbaa !5
  %16433 = call ptr @s2n_strerror(i32 noundef %16432, ptr noundef @.str.4)
  %16434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16435 = load i32, ptr %16434, align 4, !tbaa !5
  %16436 = call ptr @s2n_strerror_debug(i32 noundef %16435, ptr noundef @.str.4)
  %16437 = call ptr @__errno_location() #13
  %16438 = load i32, ptr %16437, align 4, !tbaa !5
  %16439 = call ptr @strerror(i32 noundef %16438) #12
  %16440 = call ptr @__errno_location() #13
  %16441 = load i32, ptr %16440, align 4, !tbaa !5
  %16442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16429, ptr noundef @.str.2, i32 noundef %16430, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 814, ptr noundef %16433, ptr noundef %16436, ptr noundef %16439, i32 noundef %16441) #12
  br label %16460

16443:                                            ; preds = %16421, %16414
  %16444 = load i32, ptr %317, align 4, !tbaa !5
  %16445 = call ptr @__errno_location() #13
  store i32 %16444, ptr %16445, align 4, !tbaa !5
  %16446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16447 = load i32, ptr @test_count, align 4, !tbaa !5
  %16448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16449 = load i32, ptr %16448, align 4, !tbaa !5
  %16450 = call ptr @s2n_strerror(i32 noundef %16449, ptr noundef @.str.4)
  %16451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16452 = load i32, ptr %16451, align 4, !tbaa !5
  %16453 = call ptr @s2n_strerror_debug(i32 noundef %16452, ptr noundef @.str.4)
  %16454 = call ptr @__errno_location() #13
  %16455 = load i32, ptr %16454, align 4, !tbaa !5
  %16456 = call ptr @strerror(i32 noundef %16455) #12
  %16457 = call ptr @__errno_location() #13
  %16458 = load i32, ptr %16457, align 4, !tbaa !5
  %16459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16446, ptr noundef @.str.5, i32 noundef %16447, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 814, ptr noundef %16450, ptr noundef %16453, ptr noundef %16456, i32 noundef %16458) #12
  br label %16460

16460:                                            ; preds = %16443, %16426
  call void @llvm.lifetime.end.p0(i64 4, ptr %317) #12
  br label %16461

16461:                                            ; preds = %16460
  br label %16462

16462:                                            ; preds = %16461
  call void @exit(i32 noundef 1) #14
  unreachable

16463:                                            ; No predecessors!
  br label %16464

16464:                                            ; preds = %16463
  br label %16465

16465:                                            ; preds = %16464, %16403
  br label %16466

16466:                                            ; preds = %16465
  br label %16467

16467:                                            ; preds = %16466
  call void @llvm.lifetime.end.p0(i64 2, ptr %311) #12
  %16468 = call i32 @s2n_connection_ptr_free(ptr noundef %308)
  %16469 = getelementptr inbounds %struct.s2n_result, ptr %318, i32 0, i32 0
  store i32 %16468, ptr %16469, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %308) #12
  %16470 = call i32 @s2n_config_ptr_free(ptr noundef %305)
  %16471 = getelementptr inbounds %struct.s2n_result, ptr %319, i32 0, i32 0
  store i32 %16470, ptr %16471, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %305) #12
  br label %16472

16472:                                            ; preds = %16467
  %16473 = load i32, ptr @test_count, align 4, !tbaa !5
  %16474 = add nsw i32 %16473, 1
  store i32 %16474, ptr @test_count, align 4, !tbaa !5
  %16475 = load ptr, ptr %48, align 8, !tbaa !9
  %16476 = call i32 @s2n_config_free(ptr noundef %16475)
  %16477 = icmp eq i32 %16476, -1
  br i1 %16477, label %16478, label %16531

16478:                                            ; preds = %16472
  br label %16479

16479:                                            ; preds = %16478
  br label %16480

16480:                                            ; preds = %16479
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #12
  %16481 = call ptr @__errno_location() #13
  %16482 = load i32, ptr %16481, align 4, !tbaa !5
  store i32 %16482, ptr %320, align 4, !tbaa !5
  %16483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16484 = call i32 @s2n_print_stacktrace(ptr noundef %16483)
  %16485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16486 = trunc i8 %16485 to i1
  br i1 %16486, label %16487, label %16509

16487:                                            ; preds = %16480
  %16488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16489 = call i32 @fileno(ptr noundef %16488) #12
  %16490 = call i32 @isatty(i32 noundef %16489) #12
  %16491 = icmp ne i32 %16490, 0
  br i1 %16491, label %16492, label %16509

16492:                                            ; preds = %16487
  %16493 = load i32, ptr %320, align 4, !tbaa !5
  %16494 = call ptr @__errno_location() #13
  store i32 %16493, ptr %16494, align 4, !tbaa !5
  %16495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16496 = load i32, ptr @test_count, align 4, !tbaa !5
  %16497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16498 = load i32, ptr %16497, align 4, !tbaa !5
  %16499 = call ptr @s2n_strerror(i32 noundef %16498, ptr noundef @.str.4)
  %16500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16501 = load i32, ptr %16500, align 4, !tbaa !5
  %16502 = call ptr @s2n_strerror_debug(i32 noundef %16501, ptr noundef @.str.4)
  %16503 = call ptr @__errno_location() #13
  %16504 = load i32, ptr %16503, align 4, !tbaa !5
  %16505 = call ptr @strerror(i32 noundef %16504) #12
  %16506 = call ptr @__errno_location() #13
  %16507 = load i32, ptr %16506, align 4, !tbaa !5
  %16508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16495, ptr noundef @.str.2, i32 noundef %16496, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 817, ptr noundef %16499, ptr noundef %16502, ptr noundef %16505, i32 noundef %16507) #12
  br label %16526

16509:                                            ; preds = %16487, %16480
  %16510 = load i32, ptr %320, align 4, !tbaa !5
  %16511 = call ptr @__errno_location() #13
  store i32 %16510, ptr %16511, align 4, !tbaa !5
  %16512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16513 = load i32, ptr @test_count, align 4, !tbaa !5
  %16514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16515 = load i32, ptr %16514, align 4, !tbaa !5
  %16516 = call ptr @s2n_strerror(i32 noundef %16515, ptr noundef @.str.4)
  %16517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16518 = load i32, ptr %16517, align 4, !tbaa !5
  %16519 = call ptr @s2n_strerror_debug(i32 noundef %16518, ptr noundef @.str.4)
  %16520 = call ptr @__errno_location() #13
  %16521 = load i32, ptr %16520, align 4, !tbaa !5
  %16522 = call ptr @strerror(i32 noundef %16521) #12
  %16523 = call ptr @__errno_location() #13
  %16524 = load i32, ptr %16523, align 4, !tbaa !5
  %16525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16512, ptr noundef @.str.5, i32 noundef %16513, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 817, ptr noundef %16516, ptr noundef %16519, ptr noundef %16522, i32 noundef %16524) #12
  br label %16526

16526:                                            ; preds = %16509, %16492
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #12
  br label %16527

16527:                                            ; preds = %16526
  br label %16528

16528:                                            ; preds = %16527
  call void @exit(i32 noundef 1) #14
  unreachable

16529:                                            ; No predecessors!
  br label %16530

16530:                                            ; preds = %16529
  br label %16531

16531:                                            ; preds = %16530, %16472
  br label %16532

16532:                                            ; preds = %16531
  br label %16533

16533:                                            ; preds = %16532
  br label %16534

16534:                                            ; preds = %16533
  %16535 = load i32, ptr @test_count, align 4, !tbaa !5
  %16536 = add nsw i32 %16535, 1
  store i32 %16536, ptr @test_count, align 4, !tbaa !5
  %16537 = load ptr, ptr %53, align 8, !tbaa !9
  %16538 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %16537)
  %16539 = icmp eq i32 %16538, -1
  br i1 %16539, label %16540, label %16593

16540:                                            ; preds = %16534
  br label %16541

16541:                                            ; preds = %16540
  br label %16542

16542:                                            ; preds = %16541
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #12
  %16543 = call ptr @__errno_location() #13
  %16544 = load i32, ptr %16543, align 4, !tbaa !5
  store i32 %16544, ptr %321, align 4, !tbaa !5
  %16545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16546 = call i32 @s2n_print_stacktrace(ptr noundef %16545)
  %16547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16548 = trunc i8 %16547 to i1
  br i1 %16548, label %16549, label %16571

16549:                                            ; preds = %16542
  %16550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16551 = call i32 @fileno(ptr noundef %16550) #12
  %16552 = call i32 @isatty(i32 noundef %16551) #12
  %16553 = icmp ne i32 %16552, 0
  br i1 %16553, label %16554, label %16571

16554:                                            ; preds = %16549
  %16555 = load i32, ptr %321, align 4, !tbaa !5
  %16556 = call ptr @__errno_location() #13
  store i32 %16555, ptr %16556, align 4, !tbaa !5
  %16557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16558 = load i32, ptr @test_count, align 4, !tbaa !5
  %16559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16560 = load i32, ptr %16559, align 4, !tbaa !5
  %16561 = call ptr @s2n_strerror(i32 noundef %16560, ptr noundef @.str.4)
  %16562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16563 = load i32, ptr %16562, align 4, !tbaa !5
  %16564 = call ptr @s2n_strerror_debug(i32 noundef %16563, ptr noundef @.str.4)
  %16565 = call ptr @__errno_location() #13
  %16566 = load i32, ptr %16565, align 4, !tbaa !5
  %16567 = call ptr @strerror(i32 noundef %16566) #12
  %16568 = call ptr @__errno_location() #13
  %16569 = load i32, ptr %16568, align 4, !tbaa !5
  %16570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16557, ptr noundef @.str.2, i32 noundef %16558, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 818, ptr noundef %16561, ptr noundef %16564, ptr noundef %16567, i32 noundef %16569) #12
  br label %16588

16571:                                            ; preds = %16549, %16542
  %16572 = load i32, ptr %321, align 4, !tbaa !5
  %16573 = call ptr @__errno_location() #13
  store i32 %16572, ptr %16573, align 4, !tbaa !5
  %16574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16575 = load i32, ptr @test_count, align 4, !tbaa !5
  %16576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16577 = load i32, ptr %16576, align 4, !tbaa !5
  %16578 = call ptr @s2n_strerror(i32 noundef %16577, ptr noundef @.str.4)
  %16579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16580 = load i32, ptr %16579, align 4, !tbaa !5
  %16581 = call ptr @s2n_strerror_debug(i32 noundef %16580, ptr noundef @.str.4)
  %16582 = call ptr @__errno_location() #13
  %16583 = load i32, ptr %16582, align 4, !tbaa !5
  %16584 = call ptr @strerror(i32 noundef %16583) #12
  %16585 = call ptr @__errno_location() #13
  %16586 = load i32, ptr %16585, align 4, !tbaa !5
  %16587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16574, ptr noundef @.str.5, i32 noundef %16575, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 818, ptr noundef %16578, ptr noundef %16581, ptr noundef %16584, i32 noundef %16586) #12
  br label %16588

16588:                                            ; preds = %16571, %16554
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #12
  br label %16589

16589:                                            ; preds = %16588
  br label %16590

16590:                                            ; preds = %16589
  call void @exit(i32 noundef 1) #14
  unreachable

16591:                                            ; No predecessors!
  br label %16592

16592:                                            ; preds = %16591
  br label %16593

16593:                                            ; preds = %16592, %16534
  br label %16594

16594:                                            ; preds = %16593
  br label %16595

16595:                                            ; preds = %16594
  br label %16596

16596:                                            ; preds = %16595
  %16597 = load i32, ptr @test_count, align 4, !tbaa !5
  %16598 = add nsw i32 %16597, 1
  store i32 %16598, ptr @test_count, align 4, !tbaa !5
  %16599 = load ptr, ptr %54, align 8, !tbaa !9
  %16600 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %16599)
  %16601 = icmp eq i32 %16600, -1
  br i1 %16601, label %16602, label %16655

16602:                                            ; preds = %16596
  br label %16603

16603:                                            ; preds = %16602
  br label %16604

16604:                                            ; preds = %16603
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #12
  %16605 = call ptr @__errno_location() #13
  %16606 = load i32, ptr %16605, align 4, !tbaa !5
  store i32 %16606, ptr %322, align 4, !tbaa !5
  %16607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16608 = call i32 @s2n_print_stacktrace(ptr noundef %16607)
  %16609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16610 = trunc i8 %16609 to i1
  br i1 %16610, label %16611, label %16633

16611:                                            ; preds = %16604
  %16612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16613 = call i32 @fileno(ptr noundef %16612) #12
  %16614 = call i32 @isatty(i32 noundef %16613) #12
  %16615 = icmp ne i32 %16614, 0
  br i1 %16615, label %16616, label %16633

16616:                                            ; preds = %16611
  %16617 = load i32, ptr %322, align 4, !tbaa !5
  %16618 = call ptr @__errno_location() #13
  store i32 %16617, ptr %16618, align 4, !tbaa !5
  %16619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16620 = load i32, ptr @test_count, align 4, !tbaa !5
  %16621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16622 = load i32, ptr %16621, align 4, !tbaa !5
  %16623 = call ptr @s2n_strerror(i32 noundef %16622, ptr noundef @.str.4)
  %16624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16625 = load i32, ptr %16624, align 4, !tbaa !5
  %16626 = call ptr @s2n_strerror_debug(i32 noundef %16625, ptr noundef @.str.4)
  %16627 = call ptr @__errno_location() #13
  %16628 = load i32, ptr %16627, align 4, !tbaa !5
  %16629 = call ptr @strerror(i32 noundef %16628) #12
  %16630 = call ptr @__errno_location() #13
  %16631 = load i32, ptr %16630, align 4, !tbaa !5
  %16632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16619, ptr noundef @.str.2, i32 noundef %16620, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 819, ptr noundef %16623, ptr noundef %16626, ptr noundef %16629, i32 noundef %16631) #12
  br label %16650

16633:                                            ; preds = %16611, %16604
  %16634 = load i32, ptr %322, align 4, !tbaa !5
  %16635 = call ptr @__errno_location() #13
  store i32 %16634, ptr %16635, align 4, !tbaa !5
  %16636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16637 = load i32, ptr @test_count, align 4, !tbaa !5
  %16638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16639 = load i32, ptr %16638, align 4, !tbaa !5
  %16640 = call ptr @s2n_strerror(i32 noundef %16639, ptr noundef @.str.4)
  %16641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16642 = load i32, ptr %16641, align 4, !tbaa !5
  %16643 = call ptr @s2n_strerror_debug(i32 noundef %16642, ptr noundef @.str.4)
  %16644 = call ptr @__errno_location() #13
  %16645 = load i32, ptr %16644, align 4, !tbaa !5
  %16646 = call ptr @strerror(i32 noundef %16645) #12
  %16647 = call ptr @__errno_location() #13
  %16648 = load i32, ptr %16647, align 4, !tbaa !5
  %16649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16636, ptr noundef @.str.5, i32 noundef %16637, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 819, ptr noundef %16640, ptr noundef %16643, ptr noundef %16646, i32 noundef %16648) #12
  br label %16650

16650:                                            ; preds = %16633, %16616
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #12
  br label %16651

16651:                                            ; preds = %16650
  br label %16652

16652:                                            ; preds = %16651
  call void @exit(i32 noundef 1) #14
  unreachable

16653:                                            ; No predecessors!
  br label %16654

16654:                                            ; preds = %16653
  br label %16655

16655:                                            ; preds = %16654, %16596
  br label %16656

16656:                                            ; preds = %16655
  br label %16657

16657:                                            ; preds = %16656
  %16658 = load ptr, ptr %51, align 8, !tbaa !9
  call void @free(ptr noundef %16658) #12
  %16659 = load ptr, ptr %52, align 8, !tbaa !9
  call void @free(ptr noundef %16659) #12
  %16660 = load ptr, ptr %49, align 8, !tbaa !9
  call void @free(ptr noundef %16660) #12
  %16661 = load ptr, ptr %50, align 8, !tbaa !9
  call void @free(ptr noundef %16661) #12
  br label %16662

16662:                                            ; preds = %16657
  %16663 = load i32, ptr @test_count, align 4, !tbaa !5
  %16664 = add nsw i32 %16663, 1
  store i32 %16664, ptr @test_count, align 4, !tbaa !5
  %16665 = load ptr, ptr %47, align 8, !tbaa !9
  %16666 = call i32 @s2n_connection_free(ptr noundef %16665)
  %16667 = icmp eq i32 %16666, -1
  br i1 %16667, label %16668, label %16721

16668:                                            ; preds = %16662
  br label %16669

16669:                                            ; preds = %16668
  br label %16670

16670:                                            ; preds = %16669
  call void @llvm.lifetime.start.p0(i64 4, ptr %323) #12
  %16671 = call ptr @__errno_location() #13
  %16672 = load i32, ptr %16671, align 4, !tbaa !5
  store i32 %16672, ptr %323, align 4, !tbaa !5
  %16673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16674 = call i32 @s2n_print_stacktrace(ptr noundef %16673)
  %16675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16676 = trunc i8 %16675 to i1
  br i1 %16676, label %16677, label %16699

16677:                                            ; preds = %16670
  %16678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16679 = call i32 @fileno(ptr noundef %16678) #12
  %16680 = call i32 @isatty(i32 noundef %16679) #12
  %16681 = icmp ne i32 %16680, 0
  br i1 %16681, label %16682, label %16699

16682:                                            ; preds = %16677
  %16683 = load i32, ptr %323, align 4, !tbaa !5
  %16684 = call ptr @__errno_location() #13
  store i32 %16683, ptr %16684, align 4, !tbaa !5
  %16685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16686 = load i32, ptr @test_count, align 4, !tbaa !5
  %16687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16688 = load i32, ptr %16687, align 4, !tbaa !5
  %16689 = call ptr @s2n_strerror(i32 noundef %16688, ptr noundef @.str.4)
  %16690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16691 = load i32, ptr %16690, align 4, !tbaa !5
  %16692 = call ptr @s2n_strerror_debug(i32 noundef %16691, ptr noundef @.str.4)
  %16693 = call ptr @__errno_location() #13
  %16694 = load i32, ptr %16693, align 4, !tbaa !5
  %16695 = call ptr @strerror(i32 noundef %16694) #12
  %16696 = call ptr @__errno_location() #13
  %16697 = load i32, ptr %16696, align 4, !tbaa !5
  %16698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16685, ptr noundef @.str.2, i32 noundef %16686, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 824, ptr noundef %16689, ptr noundef %16692, ptr noundef %16695, i32 noundef %16697) #12
  br label %16716

16699:                                            ; preds = %16677, %16670
  %16700 = load i32, ptr %323, align 4, !tbaa !5
  %16701 = call ptr @__errno_location() #13
  store i32 %16700, ptr %16701, align 4, !tbaa !5
  %16702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16703 = load i32, ptr @test_count, align 4, !tbaa !5
  %16704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16705 = load i32, ptr %16704, align 4, !tbaa !5
  %16706 = call ptr @s2n_strerror(i32 noundef %16705, ptr noundef @.str.4)
  %16707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16708 = load i32, ptr %16707, align 4, !tbaa !5
  %16709 = call ptr @s2n_strerror_debug(i32 noundef %16708, ptr noundef @.str.4)
  %16710 = call ptr @__errno_location() #13
  %16711 = load i32, ptr %16710, align 4, !tbaa !5
  %16712 = call ptr @strerror(i32 noundef %16711) #12
  %16713 = call ptr @__errno_location() #13
  %16714 = load i32, ptr %16713, align 4, !tbaa !5
  %16715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16702, ptr noundef @.str.5, i32 noundef %16703, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 824, ptr noundef %16706, ptr noundef %16709, ptr noundef %16712, i32 noundef %16714) #12
  br label %16716

16716:                                            ; preds = %16699, %16682
  call void @llvm.lifetime.end.p0(i64 4, ptr %323) #12
  br label %16717

16717:                                            ; preds = %16716
  br label %16718

16718:                                            ; preds = %16717
  call void @exit(i32 noundef 1) #14
  unreachable

16719:                                            ; No predecessors!
  br label %16720

16720:                                            ; preds = %16719
  br label %16721

16721:                                            ; preds = %16720, %16662
  br label %16722

16722:                                            ; preds = %16721
  br label %16723

16723:                                            ; preds = %16722
  call void @llvm.lifetime.end.p0(i64 1, ptr %234) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %220) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %203) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #12
  call void @llvm.lifetime.end.p0(i64 12, ptr %78) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr %72) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr %70) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr %68) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr %324) #12
  call void @llvm.memset.p0.i64(ptr align 8 %324, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %325) #12
  %16724 = getelementptr inbounds %struct.s2n_security_policy, ptr %325, i32 0, i32 0
  store i8 20, ptr %16724, align 8, !tbaa !71
  %16725 = getelementptr inbounds %struct.s2n_security_policy, ptr %325, i32 0, i32 1
  store ptr %324, ptr %16725, align 8, !tbaa !73
  %16726 = getelementptr inbounds %struct.s2n_security_policy, ptr %325, i32 0, i32 2
  store ptr @kem_preferences_null, ptr %16726, align 8, !tbaa !74
  %16727 = getelementptr inbounds %struct.s2n_security_policy, ptr %325, i32 0, i32 3
  store ptr @s2n_signature_preferences_20201021, ptr %16727, align 8, !tbaa !75
  %16728 = getelementptr inbounds %struct.s2n_security_policy, ptr %325, i32 0, i32 4
  store ptr null, ptr %16728, align 8, !tbaa !76
  %16729 = getelementptr inbounds %struct.s2n_security_policy, ptr %325, i32 0, i32 5
  store ptr @s2n_ecc_preferences_test_all, ptr %16729, align 8, !tbaa !77
  %16730 = getelementptr inbounds %struct.s2n_security_policy, ptr %325, i32 0, i32 6
  store ptr null, ptr %16730, align 8, !tbaa !78
  %16731 = getelementptr inbounds %struct.s2n_security_policy, ptr %325, i32 0, i32 7
  store i8 0, ptr %16731, align 8, !tbaa !79
  %16732 = getelementptr inbounds %struct.s2n_security_policy, ptr %325, i32 0, i32 8
  call void @llvm.memset.p0.i64(ptr align 1 %16732, i8 0, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %326) #12
  %16733 = call ptr @s2n_config_new()
  store ptr %16733, ptr %326, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %327) #12
  store ptr null, ptr %327, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %328) #12
  store ptr null, ptr %328, align 8, !tbaa !9
  br label %16734

16734:                                            ; preds = %16723
  %16735 = load i32, ptr @test_count, align 4, !tbaa !5
  %16736 = add nsw i32 %16735, 1
  store i32 %16736, ptr @test_count, align 4, !tbaa !5
  %16737 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %327, ptr noundef @.str.12, ptr noundef @.str.13)
  %16738 = icmp eq i32 %16737, -1
  br i1 %16738, label %16739, label %16792

16739:                                            ; preds = %16734
  br label %16740

16740:                                            ; preds = %16739
  br label %16741

16741:                                            ; preds = %16740
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #12
  %16742 = call ptr @__errno_location() #13
  %16743 = load i32, ptr %16742, align 4, !tbaa !5
  store i32 %16743, ptr %329, align 4, !tbaa !5
  %16744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16745 = call i32 @s2n_print_stacktrace(ptr noundef %16744)
  %16746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16747 = trunc i8 %16746 to i1
  br i1 %16747, label %16748, label %16770

16748:                                            ; preds = %16741
  %16749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16750 = call i32 @fileno(ptr noundef %16749) #12
  %16751 = call i32 @isatty(i32 noundef %16750) #12
  %16752 = icmp ne i32 %16751, 0
  br i1 %16752, label %16753, label %16770

16753:                                            ; preds = %16748
  %16754 = load i32, ptr %329, align 4, !tbaa !5
  %16755 = call ptr @__errno_location() #13
  store i32 %16754, ptr %16755, align 4, !tbaa !5
  %16756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16757 = load i32, ptr @test_count, align 4, !tbaa !5
  %16758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16759 = load i32, ptr %16758, align 4, !tbaa !5
  %16760 = call ptr @s2n_strerror(i32 noundef %16759, ptr noundef @.str.4)
  %16761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16762 = load i32, ptr %16761, align 4, !tbaa !5
  %16763 = call ptr @s2n_strerror_debug(i32 noundef %16762, ptr noundef @.str.4)
  %16764 = call ptr @__errno_location() #13
  %16765 = load i32, ptr %16764, align 4, !tbaa !5
  %16766 = call ptr @strerror(i32 noundef %16765) #12
  %16767 = call ptr @__errno_location() #13
  %16768 = load i32, ptr %16767, align 4, !tbaa !5
  %16769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16756, ptr noundef @.str.2, i32 noundef %16757, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 844, ptr noundef %16760, ptr noundef %16763, ptr noundef %16766, i32 noundef %16768) #12
  br label %16787

16770:                                            ; preds = %16748, %16741
  %16771 = load i32, ptr %329, align 4, !tbaa !5
  %16772 = call ptr @__errno_location() #13
  store i32 %16771, ptr %16772, align 4, !tbaa !5
  %16773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16774 = load i32, ptr @test_count, align 4, !tbaa !5
  %16775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16776 = load i32, ptr %16775, align 4, !tbaa !5
  %16777 = call ptr @s2n_strerror(i32 noundef %16776, ptr noundef @.str.4)
  %16778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16779 = load i32, ptr %16778, align 4, !tbaa !5
  %16780 = call ptr @s2n_strerror_debug(i32 noundef %16779, ptr noundef @.str.4)
  %16781 = call ptr @__errno_location() #13
  %16782 = load i32, ptr %16781, align 4, !tbaa !5
  %16783 = call ptr @strerror(i32 noundef %16782) #12
  %16784 = call ptr @__errno_location() #13
  %16785 = load i32, ptr %16784, align 4, !tbaa !5
  %16786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16773, ptr noundef @.str.5, i32 noundef %16774, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 844, ptr noundef %16777, ptr noundef %16780, ptr noundef %16783, i32 noundef %16785) #12
  br label %16787

16787:                                            ; preds = %16770, %16753
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #12
  br label %16788

16788:                                            ; preds = %16787
  br label %16789

16789:                                            ; preds = %16788
  call void @exit(i32 noundef 1) #14
  unreachable

16790:                                            ; No predecessors!
  br label %16791

16791:                                            ; preds = %16790
  br label %16792

16792:                                            ; preds = %16791, %16734
  br label %16793

16793:                                            ; preds = %16792
  br label %16794

16794:                                            ; preds = %16793
  br label %16795

16795:                                            ; preds = %16794
  %16796 = load i32, ptr @test_count, align 4, !tbaa !5
  %16797 = add nsw i32 %16796, 1
  store i32 %16797, ptr @test_count, align 4, !tbaa !5
  %16798 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %328, ptr noundef @.str.45, ptr noundef @.str.47)
  %16799 = icmp eq i32 %16798, -1
  br i1 %16799, label %16800, label %16853

16800:                                            ; preds = %16795
  br label %16801

16801:                                            ; preds = %16800
  br label %16802

16802:                                            ; preds = %16801
  call void @llvm.lifetime.start.p0(i64 4, ptr %330) #12
  %16803 = call ptr @__errno_location() #13
  %16804 = load i32, ptr %16803, align 4, !tbaa !5
  store i32 %16804, ptr %330, align 4, !tbaa !5
  %16805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16806 = call i32 @s2n_print_stacktrace(ptr noundef %16805)
  %16807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16808 = trunc i8 %16807 to i1
  br i1 %16808, label %16809, label %16831

16809:                                            ; preds = %16802
  %16810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16811 = call i32 @fileno(ptr noundef %16810) #12
  %16812 = call i32 @isatty(i32 noundef %16811) #12
  %16813 = icmp ne i32 %16812, 0
  br i1 %16813, label %16814, label %16831

16814:                                            ; preds = %16809
  %16815 = load i32, ptr %330, align 4, !tbaa !5
  %16816 = call ptr @__errno_location() #13
  store i32 %16815, ptr %16816, align 4, !tbaa !5
  %16817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16818 = load i32, ptr @test_count, align 4, !tbaa !5
  %16819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16820 = load i32, ptr %16819, align 4, !tbaa !5
  %16821 = call ptr @s2n_strerror(i32 noundef %16820, ptr noundef @.str.4)
  %16822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16823 = load i32, ptr %16822, align 4, !tbaa !5
  %16824 = call ptr @s2n_strerror_debug(i32 noundef %16823, ptr noundef @.str.4)
  %16825 = call ptr @__errno_location() #13
  %16826 = load i32, ptr %16825, align 4, !tbaa !5
  %16827 = call ptr @strerror(i32 noundef %16826) #12
  %16828 = call ptr @__errno_location() #13
  %16829 = load i32, ptr %16828, align 4, !tbaa !5
  %16830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16817, ptr noundef @.str.2, i32 noundef %16818, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 846, ptr noundef %16821, ptr noundef %16824, ptr noundef %16827, i32 noundef %16829) #12
  br label %16848

16831:                                            ; preds = %16809, %16802
  %16832 = load i32, ptr %330, align 4, !tbaa !5
  %16833 = call ptr @__errno_location() #13
  store i32 %16832, ptr %16833, align 4, !tbaa !5
  %16834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16835 = load i32, ptr @test_count, align 4, !tbaa !5
  %16836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16837 = load i32, ptr %16836, align 4, !tbaa !5
  %16838 = call ptr @s2n_strerror(i32 noundef %16837, ptr noundef @.str.4)
  %16839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16840 = load i32, ptr %16839, align 4, !tbaa !5
  %16841 = call ptr @s2n_strerror_debug(i32 noundef %16840, ptr noundef @.str.4)
  %16842 = call ptr @__errno_location() #13
  %16843 = load i32, ptr %16842, align 4, !tbaa !5
  %16844 = call ptr @strerror(i32 noundef %16843) #12
  %16845 = call ptr @__errno_location() #13
  %16846 = load i32, ptr %16845, align 4, !tbaa !5
  %16847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16834, ptr noundef @.str.5, i32 noundef %16835, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 846, ptr noundef %16838, ptr noundef %16841, ptr noundef %16844, i32 noundef %16846) #12
  br label %16848

16848:                                            ; preds = %16831, %16814
  call void @llvm.lifetime.end.p0(i64 4, ptr %330) #12
  br label %16849

16849:                                            ; preds = %16848
  br label %16850

16850:                                            ; preds = %16849
  call void @exit(i32 noundef 1) #14
  unreachable

16851:                                            ; No predecessors!
  br label %16852

16852:                                            ; preds = %16851
  br label %16853

16853:                                            ; preds = %16852, %16795
  br label %16854

16854:                                            ; preds = %16853
  br label %16855

16855:                                            ; preds = %16854
  br label %16856

16856:                                            ; preds = %16855
  %16857 = load i32, ptr @test_count, align 4, !tbaa !5
  %16858 = add nsw i32 %16857, 1
  store i32 %16858, ptr @test_count, align 4, !tbaa !5
  %16859 = load ptr, ptr %327, align 8, !tbaa !9
  %16860 = icmp eq ptr %16859, null
  br i1 %16860, label %16861, label %16914

16861:                                            ; preds = %16856
  br label %16862

16862:                                            ; preds = %16861
  br label %16863

16863:                                            ; preds = %16862
  call void @llvm.lifetime.start.p0(i64 4, ptr %331) #12
  %16864 = call ptr @__errno_location() #13
  %16865 = load i32, ptr %16864, align 4, !tbaa !5
  store i32 %16865, ptr %331, align 4, !tbaa !5
  %16866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16867 = call i32 @s2n_print_stacktrace(ptr noundef %16866)
  %16868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16869 = trunc i8 %16868 to i1
  br i1 %16869, label %16870, label %16892

16870:                                            ; preds = %16863
  %16871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16872 = call i32 @fileno(ptr noundef %16871) #12
  %16873 = call i32 @isatty(i32 noundef %16872) #12
  %16874 = icmp ne i32 %16873, 0
  br i1 %16874, label %16875, label %16892

16875:                                            ; preds = %16870
  %16876 = load i32, ptr %331, align 4, !tbaa !5
  %16877 = call ptr @__errno_location() #13
  store i32 %16876, ptr %16877, align 4, !tbaa !5
  %16878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16879 = load i32, ptr @test_count, align 4, !tbaa !5
  %16880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16881 = load i32, ptr %16880, align 4, !tbaa !5
  %16882 = call ptr @s2n_strerror(i32 noundef %16881, ptr noundef @.str.4)
  %16883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16884 = load i32, ptr %16883, align 4, !tbaa !5
  %16885 = call ptr @s2n_strerror_debug(i32 noundef %16884, ptr noundef @.str.4)
  %16886 = call ptr @__errno_location() #13
  %16887 = load i32, ptr %16886, align 4, !tbaa !5
  %16888 = call ptr @strerror(i32 noundef %16887) #12
  %16889 = call ptr @__errno_location() #13
  %16890 = load i32, ptr %16889, align 4, !tbaa !5
  %16891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16878, ptr noundef @.str.2, i32 noundef %16879, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 848, ptr noundef %16882, ptr noundef %16885, ptr noundef %16888, i32 noundef %16890) #12
  br label %16909

16892:                                            ; preds = %16870, %16863
  %16893 = load i32, ptr %331, align 4, !tbaa !5
  %16894 = call ptr @__errno_location() #13
  store i32 %16893, ptr %16894, align 4, !tbaa !5
  %16895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16896 = load i32, ptr @test_count, align 4, !tbaa !5
  %16897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16898 = load i32, ptr %16897, align 4, !tbaa !5
  %16899 = call ptr @s2n_strerror(i32 noundef %16898, ptr noundef @.str.4)
  %16900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16901 = load i32, ptr %16900, align 4, !tbaa !5
  %16902 = call ptr @s2n_strerror_debug(i32 noundef %16901, ptr noundef @.str.4)
  %16903 = call ptr @__errno_location() #13
  %16904 = load i32, ptr %16903, align 4, !tbaa !5
  %16905 = call ptr @strerror(i32 noundef %16904) #12
  %16906 = call ptr @__errno_location() #13
  %16907 = load i32, ptr %16906, align 4, !tbaa !5
  %16908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16895, ptr noundef @.str.5, i32 noundef %16896, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 848, ptr noundef %16899, ptr noundef %16902, ptr noundef %16905, i32 noundef %16907) #12
  br label %16909

16909:                                            ; preds = %16892, %16875
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #12
  br label %16910

16910:                                            ; preds = %16909
  br label %16911

16911:                                            ; preds = %16910
  call void @exit(i32 noundef 1) #14
  unreachable

16912:                                            ; No predecessors!
  br label %16913

16913:                                            ; preds = %16912
  br label %16914

16914:                                            ; preds = %16913, %16856
  br label %16915

16915:                                            ; preds = %16914
  br label %16916

16916:                                            ; preds = %16915
  br label %16917

16917:                                            ; preds = %16916
  %16918 = load i32, ptr @test_count, align 4, !tbaa !5
  %16919 = add nsw i32 %16918, 1
  store i32 %16919, ptr @test_count, align 4, !tbaa !5
  %16920 = load ptr, ptr %328, align 8, !tbaa !9
  %16921 = icmp eq ptr %16920, null
  br i1 %16921, label %16922, label %16975

16922:                                            ; preds = %16917
  br label %16923

16923:                                            ; preds = %16922
  br label %16924

16924:                                            ; preds = %16923
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #12
  %16925 = call ptr @__errno_location() #13
  %16926 = load i32, ptr %16925, align 4, !tbaa !5
  store i32 %16926, ptr %332, align 4, !tbaa !5
  %16927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16928 = call i32 @s2n_print_stacktrace(ptr noundef %16927)
  %16929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16930 = trunc i8 %16929 to i1
  br i1 %16930, label %16931, label %16953

16931:                                            ; preds = %16924
  %16932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16933 = call i32 @fileno(ptr noundef %16932) #12
  %16934 = call i32 @isatty(i32 noundef %16933) #12
  %16935 = icmp ne i32 %16934, 0
  br i1 %16935, label %16936, label %16953

16936:                                            ; preds = %16931
  %16937 = load i32, ptr %332, align 4, !tbaa !5
  %16938 = call ptr @__errno_location() #13
  store i32 %16937, ptr %16938, align 4, !tbaa !5
  %16939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16940 = load i32, ptr @test_count, align 4, !tbaa !5
  %16941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16942 = load i32, ptr %16941, align 4, !tbaa !5
  %16943 = call ptr @s2n_strerror(i32 noundef %16942, ptr noundef @.str.4)
  %16944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16945 = load i32, ptr %16944, align 4, !tbaa !5
  %16946 = call ptr @s2n_strerror_debug(i32 noundef %16945, ptr noundef @.str.4)
  %16947 = call ptr @__errno_location() #13
  %16948 = load i32, ptr %16947, align 4, !tbaa !5
  %16949 = call ptr @strerror(i32 noundef %16948) #12
  %16950 = call ptr @__errno_location() #13
  %16951 = load i32, ptr %16950, align 4, !tbaa !5
  %16952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16939, ptr noundef @.str.2, i32 noundef %16940, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 849, ptr noundef %16943, ptr noundef %16946, ptr noundef %16949, i32 noundef %16951) #12
  br label %16970

16953:                                            ; preds = %16931, %16924
  %16954 = load i32, ptr %332, align 4, !tbaa !5
  %16955 = call ptr @__errno_location() #13
  store i32 %16954, ptr %16955, align 4, !tbaa !5
  %16956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16957 = load i32, ptr @test_count, align 4, !tbaa !5
  %16958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16959 = load i32, ptr %16958, align 4, !tbaa !5
  %16960 = call ptr @s2n_strerror(i32 noundef %16959, ptr noundef @.str.4)
  %16961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16962 = load i32, ptr %16961, align 4, !tbaa !5
  %16963 = call ptr @s2n_strerror_debug(i32 noundef %16962, ptr noundef @.str.4)
  %16964 = call ptr @__errno_location() #13
  %16965 = load i32, ptr %16964, align 4, !tbaa !5
  %16966 = call ptr @strerror(i32 noundef %16965) #12
  %16967 = call ptr @__errno_location() #13
  %16968 = load i32, ptr %16967, align 4, !tbaa !5
  %16969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16956, ptr noundef @.str.5, i32 noundef %16957, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 849, ptr noundef %16960, ptr noundef %16963, ptr noundef %16966, i32 noundef %16968) #12
  br label %16970

16970:                                            ; preds = %16953, %16936
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #12
  br label %16971

16971:                                            ; preds = %16970
  br label %16972

16972:                                            ; preds = %16971
  call void @exit(i32 noundef 1) #14
  unreachable

16973:                                            ; No predecessors!
  br label %16974

16974:                                            ; preds = %16973
  br label %16975

16975:                                            ; preds = %16974, %16917
  br label %16976

16976:                                            ; preds = %16975
  br label %16977

16977:                                            ; preds = %16976
  br label %16978

16978:                                            ; preds = %16977
  %16979 = load i32, ptr @test_count, align 4, !tbaa !5
  %16980 = add nsw i32 %16979, 1
  store i32 %16980, ptr @test_count, align 4, !tbaa !5
  %16981 = load ptr, ptr %326, align 8, !tbaa !9
  %16982 = icmp eq ptr %16981, null
  br i1 %16982, label %16983, label %17036

16983:                                            ; preds = %16978
  br label %16984

16984:                                            ; preds = %16983
  br label %16985

16985:                                            ; preds = %16984
  call void @llvm.lifetime.start.p0(i64 4, ptr %333) #12
  %16986 = call ptr @__errno_location() #13
  %16987 = load i32, ptr %16986, align 4, !tbaa !5
  store i32 %16987, ptr %333, align 4, !tbaa !5
  %16988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16989 = call i32 @s2n_print_stacktrace(ptr noundef %16988)
  %16990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16991 = trunc i8 %16990 to i1
  br i1 %16991, label %16992, label %17014

16992:                                            ; preds = %16985
  %16993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16994 = call i32 @fileno(ptr noundef %16993) #12
  %16995 = call i32 @isatty(i32 noundef %16994) #12
  %16996 = icmp ne i32 %16995, 0
  br i1 %16996, label %16997, label %17014

16997:                                            ; preds = %16992
  %16998 = load i32, ptr %333, align 4, !tbaa !5
  %16999 = call ptr @__errno_location() #13
  store i32 %16998, ptr %16999, align 4, !tbaa !5
  %17000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17001 = load i32, ptr @test_count, align 4, !tbaa !5
  %17002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17003 = load i32, ptr %17002, align 4, !tbaa !5
  %17004 = call ptr @s2n_strerror(i32 noundef %17003, ptr noundef @.str.4)
  %17005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17006 = load i32, ptr %17005, align 4, !tbaa !5
  %17007 = call ptr @s2n_strerror_debug(i32 noundef %17006, ptr noundef @.str.4)
  %17008 = call ptr @__errno_location() #13
  %17009 = load i32, ptr %17008, align 4, !tbaa !5
  %17010 = call ptr @strerror(i32 noundef %17009) #12
  %17011 = call ptr @__errno_location() #13
  %17012 = load i32, ptr %17011, align 4, !tbaa !5
  %17013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17000, ptr noundef @.str.2, i32 noundef %17001, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 850, ptr noundef %17004, ptr noundef %17007, ptr noundef %17010, i32 noundef %17012) #12
  br label %17031

17014:                                            ; preds = %16992, %16985
  %17015 = load i32, ptr %333, align 4, !tbaa !5
  %17016 = call ptr @__errno_location() #13
  store i32 %17015, ptr %17016, align 4, !tbaa !5
  %17017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17018 = load i32, ptr @test_count, align 4, !tbaa !5
  %17019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17020 = load i32, ptr %17019, align 4, !tbaa !5
  %17021 = call ptr @s2n_strerror(i32 noundef %17020, ptr noundef @.str.4)
  %17022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17023 = load i32, ptr %17022, align 4, !tbaa !5
  %17024 = call ptr @s2n_strerror_debug(i32 noundef %17023, ptr noundef @.str.4)
  %17025 = call ptr @__errno_location() #13
  %17026 = load i32, ptr %17025, align 4, !tbaa !5
  %17027 = call ptr @strerror(i32 noundef %17026) #12
  %17028 = call ptr @__errno_location() #13
  %17029 = load i32, ptr %17028, align 4, !tbaa !5
  %17030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17017, ptr noundef @.str.5, i32 noundef %17018, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 850, ptr noundef %17021, ptr noundef %17024, ptr noundef %17027, i32 noundef %17029) #12
  br label %17031

17031:                                            ; preds = %17014, %16997
  call void @llvm.lifetime.end.p0(i64 4, ptr %333) #12
  br label %17032

17032:                                            ; preds = %17031
  br label %17033

17033:                                            ; preds = %17032
  call void @exit(i32 noundef 1) #14
  unreachable

17034:                                            ; No predecessors!
  br label %17035

17035:                                            ; preds = %17034
  br label %17036

17036:                                            ; preds = %17035, %16978
  br label %17037

17037:                                            ; preds = %17036
  br label %17038

17038:                                            ; preds = %17037
  br label %17039

17039:                                            ; preds = %17038
  %17040 = load i32, ptr @test_count, align 4, !tbaa !5
  %17041 = add nsw i32 %17040, 1
  store i32 %17041, ptr @test_count, align 4, !tbaa !5
  %17042 = load ptr, ptr %326, align 8, !tbaa !9
  %17043 = load ptr, ptr %327, align 8, !tbaa !9
  %17044 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %17042, ptr noundef %17043)
  %17045 = icmp eq i32 %17044, -1
  br i1 %17045, label %17046, label %17099

17046:                                            ; preds = %17039
  br label %17047

17047:                                            ; preds = %17046
  br label %17048

17048:                                            ; preds = %17047
  call void @llvm.lifetime.start.p0(i64 4, ptr %334) #12
  %17049 = call ptr @__errno_location() #13
  %17050 = load i32, ptr %17049, align 4, !tbaa !5
  store i32 %17050, ptr %334, align 4, !tbaa !5
  %17051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17052 = call i32 @s2n_print_stacktrace(ptr noundef %17051)
  %17053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17054 = trunc i8 %17053 to i1
  br i1 %17054, label %17055, label %17077

17055:                                            ; preds = %17048
  %17056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17057 = call i32 @fileno(ptr noundef %17056) #12
  %17058 = call i32 @isatty(i32 noundef %17057) #12
  %17059 = icmp ne i32 %17058, 0
  br i1 %17059, label %17060, label %17077

17060:                                            ; preds = %17055
  %17061 = load i32, ptr %334, align 4, !tbaa !5
  %17062 = call ptr @__errno_location() #13
  store i32 %17061, ptr %17062, align 4, !tbaa !5
  %17063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17064 = load i32, ptr @test_count, align 4, !tbaa !5
  %17065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17066 = load i32, ptr %17065, align 4, !tbaa !5
  %17067 = call ptr @s2n_strerror(i32 noundef %17066, ptr noundef @.str.4)
  %17068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17069 = load i32, ptr %17068, align 4, !tbaa !5
  %17070 = call ptr @s2n_strerror_debug(i32 noundef %17069, ptr noundef @.str.4)
  %17071 = call ptr @__errno_location() #13
  %17072 = load i32, ptr %17071, align 4, !tbaa !5
  %17073 = call ptr @strerror(i32 noundef %17072) #12
  %17074 = call ptr @__errno_location() #13
  %17075 = load i32, ptr %17074, align 4, !tbaa !5
  %17076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17063, ptr noundef @.str.2, i32 noundef %17064, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 851, ptr noundef %17067, ptr noundef %17070, ptr noundef %17073, i32 noundef %17075) #12
  br label %17094

17077:                                            ; preds = %17055, %17048
  %17078 = load i32, ptr %334, align 4, !tbaa !5
  %17079 = call ptr @__errno_location() #13
  store i32 %17078, ptr %17079, align 4, !tbaa !5
  %17080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17081 = load i32, ptr @test_count, align 4, !tbaa !5
  %17082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17083 = load i32, ptr %17082, align 4, !tbaa !5
  %17084 = call ptr @s2n_strerror(i32 noundef %17083, ptr noundef @.str.4)
  %17085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17086 = load i32, ptr %17085, align 4, !tbaa !5
  %17087 = call ptr @s2n_strerror_debug(i32 noundef %17086, ptr noundef @.str.4)
  %17088 = call ptr @__errno_location() #13
  %17089 = load i32, ptr %17088, align 4, !tbaa !5
  %17090 = call ptr @strerror(i32 noundef %17089) #12
  %17091 = call ptr @__errno_location() #13
  %17092 = load i32, ptr %17091, align 4, !tbaa !5
  %17093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17080, ptr noundef @.str.5, i32 noundef %17081, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 851, ptr noundef %17084, ptr noundef %17087, ptr noundef %17090, i32 noundef %17092) #12
  br label %17094

17094:                                            ; preds = %17077, %17060
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #12
  br label %17095

17095:                                            ; preds = %17094
  br label %17096

17096:                                            ; preds = %17095
  call void @exit(i32 noundef 1) #14
  unreachable

17097:                                            ; No predecessors!
  br label %17098

17098:                                            ; preds = %17097
  br label %17099

17099:                                            ; preds = %17098, %17039
  br label %17100

17100:                                            ; preds = %17099
  br label %17101

17101:                                            ; preds = %17100
  br label %17102

17102:                                            ; preds = %17101
  %17103 = load i32, ptr @test_count, align 4, !tbaa !5
  %17104 = add nsw i32 %17103, 1
  store i32 %17104, ptr @test_count, align 4, !tbaa !5
  %17105 = load ptr, ptr %326, align 8, !tbaa !9
  %17106 = load ptr, ptr %328, align 8, !tbaa !9
  %17107 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %17105, ptr noundef %17106)
  %17108 = icmp eq i32 %17107, -1
  br i1 %17108, label %17109, label %17162

17109:                                            ; preds = %17102
  br label %17110

17110:                                            ; preds = %17109
  br label %17111

17111:                                            ; preds = %17110
  call void @llvm.lifetime.start.p0(i64 4, ptr %335) #12
  %17112 = call ptr @__errno_location() #13
  %17113 = load i32, ptr %17112, align 4, !tbaa !5
  store i32 %17113, ptr %335, align 4, !tbaa !5
  %17114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17115 = call i32 @s2n_print_stacktrace(ptr noundef %17114)
  %17116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17117 = trunc i8 %17116 to i1
  br i1 %17117, label %17118, label %17140

17118:                                            ; preds = %17111
  %17119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17120 = call i32 @fileno(ptr noundef %17119) #12
  %17121 = call i32 @isatty(i32 noundef %17120) #12
  %17122 = icmp ne i32 %17121, 0
  br i1 %17122, label %17123, label %17140

17123:                                            ; preds = %17118
  %17124 = load i32, ptr %335, align 4, !tbaa !5
  %17125 = call ptr @__errno_location() #13
  store i32 %17124, ptr %17125, align 4, !tbaa !5
  %17126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17127 = load i32, ptr @test_count, align 4, !tbaa !5
  %17128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17129 = load i32, ptr %17128, align 4, !tbaa !5
  %17130 = call ptr @s2n_strerror(i32 noundef %17129, ptr noundef @.str.4)
  %17131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17132 = load i32, ptr %17131, align 4, !tbaa !5
  %17133 = call ptr @s2n_strerror_debug(i32 noundef %17132, ptr noundef @.str.4)
  %17134 = call ptr @__errno_location() #13
  %17135 = load i32, ptr %17134, align 4, !tbaa !5
  %17136 = call ptr @strerror(i32 noundef %17135) #12
  %17137 = call ptr @__errno_location() #13
  %17138 = load i32, ptr %17137, align 4, !tbaa !5
  %17139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17126, ptr noundef @.str.2, i32 noundef %17127, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 852, ptr noundef %17130, ptr noundef %17133, ptr noundef %17136, i32 noundef %17138) #12
  br label %17157

17140:                                            ; preds = %17118, %17111
  %17141 = load i32, ptr %335, align 4, !tbaa !5
  %17142 = call ptr @__errno_location() #13
  store i32 %17141, ptr %17142, align 4, !tbaa !5
  %17143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17144 = load i32, ptr @test_count, align 4, !tbaa !5
  %17145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17146 = load i32, ptr %17145, align 4, !tbaa !5
  %17147 = call ptr @s2n_strerror(i32 noundef %17146, ptr noundef @.str.4)
  %17148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17149 = load i32, ptr %17148, align 4, !tbaa !5
  %17150 = call ptr @s2n_strerror_debug(i32 noundef %17149, ptr noundef @.str.4)
  %17151 = call ptr @__errno_location() #13
  %17152 = load i32, ptr %17151, align 4, !tbaa !5
  %17153 = call ptr @strerror(i32 noundef %17152) #12
  %17154 = call ptr @__errno_location() #13
  %17155 = load i32, ptr %17154, align 4, !tbaa !5
  %17156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17143, ptr noundef @.str.5, i32 noundef %17144, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 852, ptr noundef %17147, ptr noundef %17150, ptr noundef %17153, i32 noundef %17155) #12
  br label %17157

17157:                                            ; preds = %17140, %17123
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #12
  br label %17158

17158:                                            ; preds = %17157
  br label %17159

17159:                                            ; preds = %17158
  call void @exit(i32 noundef 1) #14
  unreachable

17160:                                            ; No predecessors!
  br label %17161

17161:                                            ; preds = %17160
  br label %17162

17162:                                            ; preds = %17161, %17102
  br label %17163

17163:                                            ; preds = %17162
  br label %17164

17164:                                            ; preds = %17163
  br label %17165

17165:                                            ; preds = %17164
  %17166 = load i32, ptr @test_count, align 4, !tbaa !5
  %17167 = add nsw i32 %17166, 1
  store i32 %17167, ptr @test_count, align 4, !tbaa !5
  %17168 = load ptr, ptr %326, align 8, !tbaa !9
  %17169 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %17168, ptr noundef @.str.53)
  %17170 = icmp eq i32 %17169, -1
  br i1 %17170, label %17171, label %17224

17171:                                            ; preds = %17165
  br label %17172

17172:                                            ; preds = %17171
  br label %17173

17173:                                            ; preds = %17172
  call void @llvm.lifetime.start.p0(i64 4, ptr %336) #12
  %17174 = call ptr @__errno_location() #13
  %17175 = load i32, ptr %17174, align 4, !tbaa !5
  store i32 %17175, ptr %336, align 4, !tbaa !5
  %17176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17177 = call i32 @s2n_print_stacktrace(ptr noundef %17176)
  %17178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17179 = trunc i8 %17178 to i1
  br i1 %17179, label %17180, label %17202

17180:                                            ; preds = %17173
  %17181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17182 = call i32 @fileno(ptr noundef %17181) #12
  %17183 = call i32 @isatty(i32 noundef %17182) #12
  %17184 = icmp ne i32 %17183, 0
  br i1 %17184, label %17185, label %17202

17185:                                            ; preds = %17180
  %17186 = load i32, ptr %336, align 4, !tbaa !5
  %17187 = call ptr @__errno_location() #13
  store i32 %17186, ptr %17187, align 4, !tbaa !5
  %17188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17189 = load i32, ptr @test_count, align 4, !tbaa !5
  %17190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17191 = load i32, ptr %17190, align 4, !tbaa !5
  %17192 = call ptr @s2n_strerror(i32 noundef %17191, ptr noundef @.str.4)
  %17193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17194 = load i32, ptr %17193, align 4, !tbaa !5
  %17195 = call ptr @s2n_strerror_debug(i32 noundef %17194, ptr noundef @.str.4)
  %17196 = call ptr @__errno_location() #13
  %17197 = load i32, ptr %17196, align 4, !tbaa !5
  %17198 = call ptr @strerror(i32 noundef %17197) #12
  %17199 = call ptr @__errno_location() #13
  %17200 = load i32, ptr %17199, align 4, !tbaa !5
  %17201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17188, ptr noundef @.str.2, i32 noundef %17189, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 853, ptr noundef %17192, ptr noundef %17195, ptr noundef %17198, i32 noundef %17200) #12
  br label %17219

17202:                                            ; preds = %17180, %17173
  %17203 = load i32, ptr %336, align 4, !tbaa !5
  %17204 = call ptr @__errno_location() #13
  store i32 %17203, ptr %17204, align 4, !tbaa !5
  %17205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17206 = load i32, ptr @test_count, align 4, !tbaa !5
  %17207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17208 = load i32, ptr %17207, align 4, !tbaa !5
  %17209 = call ptr @s2n_strerror(i32 noundef %17208, ptr noundef @.str.4)
  %17210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17211 = load i32, ptr %17210, align 4, !tbaa !5
  %17212 = call ptr @s2n_strerror_debug(i32 noundef %17211, ptr noundef @.str.4)
  %17213 = call ptr @__errno_location() #13
  %17214 = load i32, ptr %17213, align 4, !tbaa !5
  %17215 = call ptr @strerror(i32 noundef %17214) #12
  %17216 = call ptr @__errno_location() #13
  %17217 = load i32, ptr %17216, align 4, !tbaa !5
  %17218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17205, ptr noundef @.str.5, i32 noundef %17206, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 853, ptr noundef %17209, ptr noundef %17212, ptr noundef %17215, i32 noundef %17217) #12
  br label %17219

17219:                                            ; preds = %17202, %17185
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #12
  br label %17220

17220:                                            ; preds = %17219
  br label %17221

17221:                                            ; preds = %17220
  call void @exit(i32 noundef 1) #14
  unreachable

17222:                                            ; No predecessors!
  br label %17223

17223:                                            ; preds = %17222
  br label %17224

17224:                                            ; preds = %17223, %17165
  br label %17225

17225:                                            ; preds = %17224
  br label %17226

17226:                                            ; preds = %17225
  %17227 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_chacha20_poly1305, i32 0, i32 3), align 8, !tbaa !67
  %17228 = call zeroext i1 %17227()
  br i1 %17228, label %17229, label %21505

17229:                                            ; preds = %17226
  call void @llvm.lifetime.start.p0(i64 8, ptr %337) #12
  %17230 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %17230, ptr %337, align 8, !tbaa !9
  br label %17231

17231:                                            ; preds = %17229
  %17232 = load i32, ptr @test_count, align 4, !tbaa !5
  %17233 = add nsw i32 %17232, 1
  store i32 %17233, ptr @test_count, align 4, !tbaa !5
  %17234 = load ptr, ptr %337, align 8, !tbaa !9
  %17235 = icmp eq ptr %17234, null
  br i1 %17235, label %17236, label %17289

17236:                                            ; preds = %17231
  br label %17237

17237:                                            ; preds = %17236
  br label %17238

17238:                                            ; preds = %17237
  call void @llvm.lifetime.start.p0(i64 4, ptr %338) #12
  %17239 = call ptr @__errno_location() #13
  %17240 = load i32, ptr %17239, align 4, !tbaa !5
  store i32 %17240, ptr %338, align 4, !tbaa !5
  %17241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17242 = call i32 @s2n_print_stacktrace(ptr noundef %17241)
  %17243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17244 = trunc i8 %17243 to i1
  br i1 %17244, label %17245, label %17267

17245:                                            ; preds = %17238
  %17246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17247 = call i32 @fileno(ptr noundef %17246) #12
  %17248 = call i32 @isatty(i32 noundef %17247) #12
  %17249 = icmp ne i32 %17248, 0
  br i1 %17249, label %17250, label %17267

17250:                                            ; preds = %17245
  %17251 = load i32, ptr %338, align 4, !tbaa !5
  %17252 = call ptr @__errno_location() #13
  store i32 %17251, ptr %17252, align 4, !tbaa !5
  %17253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17254 = load i32, ptr @test_count, align 4, !tbaa !5
  %17255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17256 = load i32, ptr %17255, align 4, !tbaa !5
  %17257 = call ptr @s2n_strerror(i32 noundef %17256, ptr noundef @.str.4)
  %17258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17259 = load i32, ptr %17258, align 4, !tbaa !5
  %17260 = call ptr @s2n_strerror_debug(i32 noundef %17259, ptr noundef @.str.4)
  %17261 = call ptr @__errno_location() #13
  %17262 = load i32, ptr %17261, align 4, !tbaa !5
  %17263 = call ptr @strerror(i32 noundef %17262) #12
  %17264 = call ptr @__errno_location() #13
  %17265 = load i32, ptr %17264, align 4, !tbaa !5
  %17266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17253, ptr noundef @.str.2, i32 noundef %17254, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 859, ptr noundef %17257, ptr noundef %17260, ptr noundef %17263, i32 noundef %17265) #12
  br label %17284

17267:                                            ; preds = %17245, %17238
  %17268 = load i32, ptr %338, align 4, !tbaa !5
  %17269 = call ptr @__errno_location() #13
  store i32 %17268, ptr %17269, align 4, !tbaa !5
  %17270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17271 = load i32, ptr @test_count, align 4, !tbaa !5
  %17272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17273 = load i32, ptr %17272, align 4, !tbaa !5
  %17274 = call ptr @s2n_strerror(i32 noundef %17273, ptr noundef @.str.4)
  %17275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17276 = load i32, ptr %17275, align 4, !tbaa !5
  %17277 = call ptr @s2n_strerror_debug(i32 noundef %17276, ptr noundef @.str.4)
  %17278 = call ptr @__errno_location() #13
  %17279 = load i32, ptr %17278, align 4, !tbaa !5
  %17280 = call ptr @strerror(i32 noundef %17279) #12
  %17281 = call ptr @__errno_location() #13
  %17282 = load i32, ptr %17281, align 4, !tbaa !5
  %17283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17270, ptr noundef @.str.5, i32 noundef %17271, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 859, ptr noundef %17274, ptr noundef %17277, ptr noundef %17280, i32 noundef %17282) #12
  br label %17284

17284:                                            ; preds = %17267, %17250
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #12
  br label %17285

17285:                                            ; preds = %17284
  br label %17286

17286:                                            ; preds = %17285
  call void @exit(i32 noundef 1) #14
  unreachable

17287:                                            ; No predecessors!
  br label %17288

17288:                                            ; preds = %17287
  br label %17289

17289:                                            ; preds = %17288, %17231
  br label %17290

17290:                                            ; preds = %17289
  br label %17291

17291:                                            ; preds = %17290
  %17292 = load ptr, ptr %337, align 8, !tbaa !9
  %17293 = getelementptr inbounds %struct.s2n_connection, ptr %17292, i32 0, i32 2
  store ptr %325, ptr %17293, align 8, !tbaa !80
  %17294 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %17295 = load ptr, ptr %337, align 8, !tbaa !9
  %17296 = getelementptr inbounds %struct.s2n_connection, ptr %17295, i32 0, i32 31
  %17297 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %17296, i32 0, i32 1
  %17298 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %17297, i32 0, i32 0
  store ptr %17294, ptr %17298, align 8, !tbaa !57
  br label %17299

17299:                                            ; preds = %17291
  %17300 = load i32, ptr @test_count, align 4, !tbaa !5
  %17301 = add nsw i32 %17300, 1
  store i32 %17301, ptr @test_count, align 4, !tbaa !5
  %17302 = load ptr, ptr %337, align 8, !tbaa !9
  %17303 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %17302, i8 noundef zeroext 33)
  %17304 = icmp eq i32 %17303, -1
  br i1 %17304, label %17305, label %17358

17305:                                            ; preds = %17299
  br label %17306

17306:                                            ; preds = %17305
  br label %17307

17307:                                            ; preds = %17306
  call void @llvm.lifetime.start.p0(i64 4, ptr %339) #12
  %17308 = call ptr @__errno_location() #13
  %17309 = load i32, ptr %17308, align 4, !tbaa !5
  store i32 %17309, ptr %339, align 4, !tbaa !5
  %17310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17311 = call i32 @s2n_print_stacktrace(ptr noundef %17310)
  %17312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17313 = trunc i8 %17312 to i1
  br i1 %17313, label %17314, label %17336

17314:                                            ; preds = %17307
  %17315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17316 = call i32 @fileno(ptr noundef %17315) #12
  %17317 = call i32 @isatty(i32 noundef %17316) #12
  %17318 = icmp ne i32 %17317, 0
  br i1 %17318, label %17319, label %17336

17319:                                            ; preds = %17314
  %17320 = load i32, ptr %339, align 4, !tbaa !5
  %17321 = call ptr @__errno_location() #13
  store i32 %17320, ptr %17321, align 4, !tbaa !5
  %17322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17323 = load i32, ptr @test_count, align 4, !tbaa !5
  %17324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17325 = load i32, ptr %17324, align 4, !tbaa !5
  %17326 = call ptr @s2n_strerror(i32 noundef %17325, ptr noundef @.str.4)
  %17327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17328 = load i32, ptr %17327, align 4, !tbaa !5
  %17329 = call ptr @s2n_strerror_debug(i32 noundef %17328, ptr noundef @.str.4)
  %17330 = call ptr @__errno_location() #13
  %17331 = load i32, ptr %17330, align 4, !tbaa !5
  %17332 = call ptr @strerror(i32 noundef %17331) #12
  %17333 = call ptr @__errno_location() #13
  %17334 = load i32, ptr %17333, align 4, !tbaa !5
  %17335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17322, ptr noundef @.str.2, i32 noundef %17323, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 862, ptr noundef %17326, ptr noundef %17329, ptr noundef %17332, i32 noundef %17334) #12
  br label %17353

17336:                                            ; preds = %17314, %17307
  %17337 = load i32, ptr %339, align 4, !tbaa !5
  %17338 = call ptr @__errno_location() #13
  store i32 %17337, ptr %17338, align 4, !tbaa !5
  %17339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17340 = load i32, ptr @test_count, align 4, !tbaa !5
  %17341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17342 = load i32, ptr %17341, align 4, !tbaa !5
  %17343 = call ptr @s2n_strerror(i32 noundef %17342, ptr noundef @.str.4)
  %17344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17345 = load i32, ptr %17344, align 4, !tbaa !5
  %17346 = call ptr @s2n_strerror_debug(i32 noundef %17345, ptr noundef @.str.4)
  %17347 = call ptr @__errno_location() #13
  %17348 = load i32, ptr %17347, align 4, !tbaa !5
  %17349 = call ptr @strerror(i32 noundef %17348) #12
  %17350 = call ptr @__errno_location() #13
  %17351 = load i32, ptr %17350, align 4, !tbaa !5
  %17352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17339, ptr noundef @.str.5, i32 noundef %17340, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 862, ptr noundef %17343, ptr noundef %17346, ptr noundef %17349, i32 noundef %17351) #12
  br label %17353

17353:                                            ; preds = %17336, %17319
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #12
  br label %17354

17354:                                            ; preds = %17353
  br label %17355

17355:                                            ; preds = %17354
  call void @exit(i32 noundef 1) #14
  unreachable

17356:                                            ; No predecessors!
  br label %17357

17357:                                            ; preds = %17356
  br label %17358

17358:                                            ; preds = %17357, %17299
  br label %17359

17359:                                            ; preds = %17358
  br label %17360

17360:                                            ; preds = %17359
  call void @llvm.lifetime.start.p0(i64 8, ptr %340) #12
  %17361 = call ptr @s2n_config_new()
  store ptr %17361, ptr %340, align 8, !tbaa !9
  br label %17362

17362:                                            ; preds = %17360
  %17363 = load i32, ptr @test_count, align 4, !tbaa !5
  %17364 = add nsw i32 %17363, 1
  store i32 %17364, ptr @test_count, align 4, !tbaa !5
  %17365 = load ptr, ptr %340, align 8, !tbaa !9
  %17366 = icmp eq ptr %17365, null
  br i1 %17366, label %17367, label %17420

17367:                                            ; preds = %17362
  br label %17368

17368:                                            ; preds = %17367
  br label %17369

17369:                                            ; preds = %17368
  call void @llvm.lifetime.start.p0(i64 4, ptr %341) #12
  %17370 = call ptr @__errno_location() #13
  %17371 = load i32, ptr %17370, align 4, !tbaa !5
  store i32 %17371, ptr %341, align 4, !tbaa !5
  %17372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17373 = call i32 @s2n_print_stacktrace(ptr noundef %17372)
  %17374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17375 = trunc i8 %17374 to i1
  br i1 %17375, label %17376, label %17398

17376:                                            ; preds = %17369
  %17377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17378 = call i32 @fileno(ptr noundef %17377) #12
  %17379 = call i32 @isatty(i32 noundef %17378) #12
  %17380 = icmp ne i32 %17379, 0
  br i1 %17380, label %17381, label %17398

17381:                                            ; preds = %17376
  %17382 = load i32, ptr %341, align 4, !tbaa !5
  %17383 = call ptr @__errno_location() #13
  store i32 %17382, ptr %17383, align 4, !tbaa !5
  %17384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17385 = load i32, ptr @test_count, align 4, !tbaa !5
  %17386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17387 = load i32, ptr %17386, align 4, !tbaa !5
  %17388 = call ptr @s2n_strerror(i32 noundef %17387, ptr noundef @.str.4)
  %17389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17390 = load i32, ptr %17389, align 4, !tbaa !5
  %17391 = call ptr @s2n_strerror_debug(i32 noundef %17390, ptr noundef @.str.4)
  %17392 = call ptr @__errno_location() #13
  %17393 = load i32, ptr %17392, align 4, !tbaa !5
  %17394 = call ptr @strerror(i32 noundef %17393) #12
  %17395 = call ptr @__errno_location() #13
  %17396 = load i32, ptr %17395, align 4, !tbaa !5
  %17397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17384, ptr noundef @.str.2, i32 noundef %17385, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 864, ptr noundef %17388, ptr noundef %17391, ptr noundef %17394, i32 noundef %17396) #12
  br label %17415

17398:                                            ; preds = %17376, %17369
  %17399 = load i32, ptr %341, align 4, !tbaa !5
  %17400 = call ptr @__errno_location() #13
  store i32 %17399, ptr %17400, align 4, !tbaa !5
  %17401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17402 = load i32, ptr @test_count, align 4, !tbaa !5
  %17403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17404 = load i32, ptr %17403, align 4, !tbaa !5
  %17405 = call ptr @s2n_strerror(i32 noundef %17404, ptr noundef @.str.4)
  %17406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17407 = load i32, ptr %17406, align 4, !tbaa !5
  %17408 = call ptr @s2n_strerror_debug(i32 noundef %17407, ptr noundef @.str.4)
  %17409 = call ptr @__errno_location() #13
  %17410 = load i32, ptr %17409, align 4, !tbaa !5
  %17411 = call ptr @strerror(i32 noundef %17410) #12
  %17412 = call ptr @__errno_location() #13
  %17413 = load i32, ptr %17412, align 4, !tbaa !5
  %17414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17401, ptr noundef @.str.5, i32 noundef %17402, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 864, ptr noundef %17405, ptr noundef %17408, ptr noundef %17411, i32 noundef %17413) #12
  br label %17415

17415:                                            ; preds = %17398, %17381
  call void @llvm.lifetime.end.p0(i64 4, ptr %341) #12
  br label %17416

17416:                                            ; preds = %17415
  br label %17417

17417:                                            ; preds = %17416
  call void @exit(i32 noundef 1) #14
  unreachable

17418:                                            ; No predecessors!
  br label %17419

17419:                                            ; preds = %17418
  br label %17420

17420:                                            ; preds = %17419, %17362
  br label %17421

17421:                                            ; preds = %17420
  br label %17422

17422:                                            ; preds = %17421
  br label %17423

17423:                                            ; preds = %17422
  %17424 = load i32, ptr @test_count, align 4, !tbaa !5
  %17425 = add nsw i32 %17424, 1
  store i32 %17425, ptr @test_count, align 4, !tbaa !5
  %17426 = load ptr, ptr %340, align 8, !tbaa !9
  %17427 = load ptr, ptr %327, align 8, !tbaa !9
  %17428 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %17426, ptr noundef %17427)
  %17429 = icmp eq i32 %17428, -1
  br i1 %17429, label %17430, label %17483

17430:                                            ; preds = %17423
  br label %17431

17431:                                            ; preds = %17430
  br label %17432

17432:                                            ; preds = %17431
  call void @llvm.lifetime.start.p0(i64 4, ptr %342) #12
  %17433 = call ptr @__errno_location() #13
  %17434 = load i32, ptr %17433, align 4, !tbaa !5
  store i32 %17434, ptr %342, align 4, !tbaa !5
  %17435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17436 = call i32 @s2n_print_stacktrace(ptr noundef %17435)
  %17437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17438 = trunc i8 %17437 to i1
  br i1 %17438, label %17439, label %17461

17439:                                            ; preds = %17432
  %17440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17441 = call i32 @fileno(ptr noundef %17440) #12
  %17442 = call i32 @isatty(i32 noundef %17441) #12
  %17443 = icmp ne i32 %17442, 0
  br i1 %17443, label %17444, label %17461

17444:                                            ; preds = %17439
  %17445 = load i32, ptr %342, align 4, !tbaa !5
  %17446 = call ptr @__errno_location() #13
  store i32 %17445, ptr %17446, align 4, !tbaa !5
  %17447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17448 = load i32, ptr @test_count, align 4, !tbaa !5
  %17449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17450 = load i32, ptr %17449, align 4, !tbaa !5
  %17451 = call ptr @s2n_strerror(i32 noundef %17450, ptr noundef @.str.4)
  %17452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17453 = load i32, ptr %17452, align 4, !tbaa !5
  %17454 = call ptr @s2n_strerror_debug(i32 noundef %17453, ptr noundef @.str.4)
  %17455 = call ptr @__errno_location() #13
  %17456 = load i32, ptr %17455, align 4, !tbaa !5
  %17457 = call ptr @strerror(i32 noundef %17456) #12
  %17458 = call ptr @__errno_location() #13
  %17459 = load i32, ptr %17458, align 4, !tbaa !5
  %17460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17447, ptr noundef @.str.2, i32 noundef %17448, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 865, ptr noundef %17451, ptr noundef %17454, ptr noundef %17457, i32 noundef %17459) #12
  br label %17478

17461:                                            ; preds = %17439, %17432
  %17462 = load i32, ptr %342, align 4, !tbaa !5
  %17463 = call ptr @__errno_location() #13
  store i32 %17462, ptr %17463, align 4, !tbaa !5
  %17464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17465 = load i32, ptr @test_count, align 4, !tbaa !5
  %17466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17467 = load i32, ptr %17466, align 4, !tbaa !5
  %17468 = call ptr @s2n_strerror(i32 noundef %17467, ptr noundef @.str.4)
  %17469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17470 = load i32, ptr %17469, align 4, !tbaa !5
  %17471 = call ptr @s2n_strerror_debug(i32 noundef %17470, ptr noundef @.str.4)
  %17472 = call ptr @__errno_location() #13
  %17473 = load i32, ptr %17472, align 4, !tbaa !5
  %17474 = call ptr @strerror(i32 noundef %17473) #12
  %17475 = call ptr @__errno_location() #13
  %17476 = load i32, ptr %17475, align 4, !tbaa !5
  %17477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17464, ptr noundef @.str.5, i32 noundef %17465, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 865, ptr noundef %17468, ptr noundef %17471, ptr noundef %17474, i32 noundef %17476) #12
  br label %17478

17478:                                            ; preds = %17461, %17444
  call void @llvm.lifetime.end.p0(i64 4, ptr %342) #12
  br label %17479

17479:                                            ; preds = %17478
  br label %17480

17480:                                            ; preds = %17479
  call void @exit(i32 noundef 1) #14
  unreachable

17481:                                            ; No predecessors!
  br label %17482

17482:                                            ; preds = %17481
  br label %17483

17483:                                            ; preds = %17482, %17423
  br label %17484

17484:                                            ; preds = %17483
  br label %17485

17485:                                            ; preds = %17484
  br label %17486

17486:                                            ; preds = %17485
  %17487 = load i32, ptr @test_count, align 4, !tbaa !5
  %17488 = add nsw i32 %17487, 1
  store i32 %17488, ptr @test_count, align 4, !tbaa !5
  %17489 = load ptr, ptr %337, align 8, !tbaa !9
  %17490 = load ptr, ptr %340, align 8, !tbaa !9
  %17491 = call i32 @s2n_connection_set_config(ptr noundef %17489, ptr noundef %17490)
  %17492 = icmp eq i32 %17491, -1
  br i1 %17492, label %17493, label %17546

17493:                                            ; preds = %17486
  br label %17494

17494:                                            ; preds = %17493
  br label %17495

17495:                                            ; preds = %17494
  call void @llvm.lifetime.start.p0(i64 4, ptr %343) #12
  %17496 = call ptr @__errno_location() #13
  %17497 = load i32, ptr %17496, align 4, !tbaa !5
  store i32 %17497, ptr %343, align 4, !tbaa !5
  %17498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17499 = call i32 @s2n_print_stacktrace(ptr noundef %17498)
  %17500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17501 = trunc i8 %17500 to i1
  br i1 %17501, label %17502, label %17524

17502:                                            ; preds = %17495
  %17503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17504 = call i32 @fileno(ptr noundef %17503) #12
  %17505 = call i32 @isatty(i32 noundef %17504) #12
  %17506 = icmp ne i32 %17505, 0
  br i1 %17506, label %17507, label %17524

17507:                                            ; preds = %17502
  %17508 = load i32, ptr %343, align 4, !tbaa !5
  %17509 = call ptr @__errno_location() #13
  store i32 %17508, ptr %17509, align 4, !tbaa !5
  %17510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17511 = load i32, ptr @test_count, align 4, !tbaa !5
  %17512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17513 = load i32, ptr %17512, align 4, !tbaa !5
  %17514 = call ptr @s2n_strerror(i32 noundef %17513, ptr noundef @.str.4)
  %17515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17516 = load i32, ptr %17515, align 4, !tbaa !5
  %17517 = call ptr @s2n_strerror_debug(i32 noundef %17516, ptr noundef @.str.4)
  %17518 = call ptr @__errno_location() #13
  %17519 = load i32, ptr %17518, align 4, !tbaa !5
  %17520 = call ptr @strerror(i32 noundef %17519) #12
  %17521 = call ptr @__errno_location() #13
  %17522 = load i32, ptr %17521, align 4, !tbaa !5
  %17523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17510, ptr noundef @.str.2, i32 noundef %17511, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 867, ptr noundef %17514, ptr noundef %17517, ptr noundef %17520, i32 noundef %17522) #12
  br label %17541

17524:                                            ; preds = %17502, %17495
  %17525 = load i32, ptr %343, align 4, !tbaa !5
  %17526 = call ptr @__errno_location() #13
  store i32 %17525, ptr %17526, align 4, !tbaa !5
  %17527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17528 = load i32, ptr @test_count, align 4, !tbaa !5
  %17529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17530 = load i32, ptr %17529, align 4, !tbaa !5
  %17531 = call ptr @s2n_strerror(i32 noundef %17530, ptr noundef @.str.4)
  %17532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17533 = load i32, ptr %17532, align 4, !tbaa !5
  %17534 = call ptr @s2n_strerror_debug(i32 noundef %17533, ptr noundef @.str.4)
  %17535 = call ptr @__errno_location() #13
  %17536 = load i32, ptr %17535, align 4, !tbaa !5
  %17537 = call ptr @strerror(i32 noundef %17536) #12
  %17538 = call ptr @__errno_location() #13
  %17539 = load i32, ptr %17538, align 4, !tbaa !5
  %17540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17527, ptr noundef @.str.5, i32 noundef %17528, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 867, ptr noundef %17531, ptr noundef %17534, ptr noundef %17537, i32 noundef %17539) #12
  br label %17541

17541:                                            ; preds = %17524, %17507
  call void @llvm.lifetime.end.p0(i64 4, ptr %343) #12
  br label %17542

17542:                                            ; preds = %17541
  br label %17543

17543:                                            ; preds = %17542
  call void @exit(i32 noundef 1) #14
  unreachable

17544:                                            ; No predecessors!
  br label %17545

17545:                                            ; preds = %17544
  br label %17546

17546:                                            ; preds = %17545, %17486
  br label %17547

17547:                                            ; preds = %17546
  br label %17548

17548:                                            ; preds = %17547
  %17549 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %344, i32 0, i32 0
  store i16 3, ptr %17549, align 8, !tbaa !60
  %17550 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %344, i32 0, i32 1
  store ptr @main.test_cipher_suite_list, ptr %17550, align 8, !tbaa !58
  %17551 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %344, i32 0, i32 2
  store i8 1, ptr %17551, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %344, i64 24, i1 false), !tbaa.struct !82
  call void @llvm.lifetime.start.p0(i64 6, ptr %345) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %345, ptr align 1 @__const.main.wire.146, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %346) #12
  store i8 3, ptr %346, align 1, !tbaa !54
  %17552 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 1, ptr %17552, align 8, !tbaa !81
  br label %17553

17553:                                            ; preds = %17548
  %17554 = load i32, ptr @test_count, align 4, !tbaa !5
  %17555 = add nsw i32 %17554, 1
  store i32 %17555, ptr @test_count, align 4, !tbaa !5
  %17556 = load ptr, ptr %337, align 8, !tbaa !9
  %17557 = getelementptr inbounds [6 x i8], ptr %345, i64 0, i64 0
  %17558 = load i8, ptr %346, align 1, !tbaa !54
  %17559 = zext i8 %17558 to i16
  %17560 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %17556, ptr noundef %17557, i16 noundef zeroext %17559)
  %17561 = icmp eq i32 %17560, -1
  br i1 %17561, label %17562, label %17615

17562:                                            ; preds = %17553
  br label %17563

17563:                                            ; preds = %17562
  br label %17564

17564:                                            ; preds = %17563
  call void @llvm.lifetime.start.p0(i64 4, ptr %347) #12
  %17565 = call ptr @__errno_location() #13
  %17566 = load i32, ptr %17565, align 4, !tbaa !5
  store i32 %17566, ptr %347, align 4, !tbaa !5
  %17567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17568 = call i32 @s2n_print_stacktrace(ptr noundef %17567)
  %17569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17570 = trunc i8 %17569 to i1
  br i1 %17570, label %17571, label %17593

17571:                                            ; preds = %17564
  %17572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17573 = call i32 @fileno(ptr noundef %17572) #12
  %17574 = call i32 @isatty(i32 noundef %17573) #12
  %17575 = icmp ne i32 %17574, 0
  br i1 %17575, label %17576, label %17593

17576:                                            ; preds = %17571
  %17577 = load i32, ptr %347, align 4, !tbaa !5
  %17578 = call ptr @__errno_location() #13
  store i32 %17577, ptr %17578, align 4, !tbaa !5
  %17579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17580 = load i32, ptr @test_count, align 4, !tbaa !5
  %17581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17582 = load i32, ptr %17581, align 4, !tbaa !5
  %17583 = call ptr @s2n_strerror(i32 noundef %17582, ptr noundef @.str.4)
  %17584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17585 = load i32, ptr %17584, align 4, !tbaa !5
  %17586 = call ptr @s2n_strerror_debug(i32 noundef %17585, ptr noundef @.str.4)
  %17587 = call ptr @__errno_location() #13
  %17588 = load i32, ptr %17587, align 4, !tbaa !5
  %17589 = call ptr @strerror(i32 noundef %17588) #12
  %17590 = call ptr @__errno_location() #13
  %17591 = load i32, ptr %17590, align 4, !tbaa !5
  %17592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17579, ptr noundef @.str.2, i32 noundef %17580, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 896, ptr noundef %17583, ptr noundef %17586, ptr noundef %17589, i32 noundef %17591) #12
  br label %17610

17593:                                            ; preds = %17571, %17564
  %17594 = load i32, ptr %347, align 4, !tbaa !5
  %17595 = call ptr @__errno_location() #13
  store i32 %17594, ptr %17595, align 4, !tbaa !5
  %17596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17597 = load i32, ptr @test_count, align 4, !tbaa !5
  %17598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17599 = load i32, ptr %17598, align 4, !tbaa !5
  %17600 = call ptr @s2n_strerror(i32 noundef %17599, ptr noundef @.str.4)
  %17601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17602 = load i32, ptr %17601, align 4, !tbaa !5
  %17603 = call ptr @s2n_strerror_debug(i32 noundef %17602, ptr noundef @.str.4)
  %17604 = call ptr @__errno_location() #13
  %17605 = load i32, ptr %17604, align 4, !tbaa !5
  %17606 = call ptr @strerror(i32 noundef %17605) #12
  %17607 = call ptr @__errno_location() #13
  %17608 = load i32, ptr %17607, align 4, !tbaa !5
  %17609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17596, ptr noundef @.str.5, i32 noundef %17597, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 896, ptr noundef %17600, ptr noundef %17603, ptr noundef %17606, i32 noundef %17608) #12
  br label %17610

17610:                                            ; preds = %17593, %17576
  call void @llvm.lifetime.end.p0(i64 4, ptr %347) #12
  br label %17611

17611:                                            ; preds = %17610
  br label %17612

17612:                                            ; preds = %17611
  call void @exit(i32 noundef 1) #14
  unreachable

17613:                                            ; No predecessors!
  br label %17614

17614:                                            ; preds = %17613
  br label %17615

17615:                                            ; preds = %17614, %17553
  br label %17616

17616:                                            ; preds = %17615
  br label %17617

17617:                                            ; preds = %17616
  br label %17618

17618:                                            ; preds = %17617
  %17619 = load i32, ptr @test_count, align 4, !tbaa !5
  %17620 = add nsw i32 %17619, 1
  store i32 %17620, ptr @test_count, align 4, !tbaa !5
  %17621 = load ptr, ptr %337, align 8, !tbaa !9
  %17622 = getelementptr inbounds %struct.s2n_connection, ptr %17621, i32 0, i32 27
  %17623 = load ptr, ptr %17622, align 8, !tbaa !48
  %17624 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %17623, i32 0, i32 0
  %17625 = load ptr, ptr %17624, align 8, !tbaa !49
  %17626 = icmp eq ptr %17625, @s2n_ecdhe_rsa_with_chacha20_poly1305_sha256
  br i1 %17626, label %17680, label %17627

17627:                                            ; preds = %17618
  br label %17628

17628:                                            ; preds = %17627
  br label %17629

17629:                                            ; preds = %17628
  call void @llvm.lifetime.start.p0(i64 4, ptr %348) #12
  %17630 = call ptr @__errno_location() #13
  %17631 = load i32, ptr %17630, align 4, !tbaa !5
  store i32 %17631, ptr %348, align 4, !tbaa !5
  %17632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17633 = call i32 @s2n_print_stacktrace(ptr noundef %17632)
  %17634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17635 = trunc i8 %17634 to i1
  br i1 %17635, label %17636, label %17658

17636:                                            ; preds = %17629
  %17637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17638 = call i32 @fileno(ptr noundef %17637) #12
  %17639 = call i32 @isatty(i32 noundef %17638) #12
  %17640 = icmp ne i32 %17639, 0
  br i1 %17640, label %17641, label %17658

17641:                                            ; preds = %17636
  %17642 = load i32, ptr %348, align 4, !tbaa !5
  %17643 = call ptr @__errno_location() #13
  store i32 %17642, ptr %17643, align 4, !tbaa !5
  %17644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17645 = load i32, ptr @test_count, align 4, !tbaa !5
  %17646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17647 = load i32, ptr %17646, align 4, !tbaa !5
  %17648 = call ptr @s2n_strerror(i32 noundef %17647, ptr noundef @.str.4)
  %17649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17650 = load i32, ptr %17649, align 4, !tbaa !5
  %17651 = call ptr @s2n_strerror_debug(i32 noundef %17650, ptr noundef @.str.4)
  %17652 = call ptr @__errno_location() #13
  %17653 = load i32, ptr %17652, align 4, !tbaa !5
  %17654 = call ptr @strerror(i32 noundef %17653) #12
  %17655 = call ptr @__errno_location() #13
  %17656 = load i32, ptr %17655, align 4, !tbaa !5
  %17657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17644, ptr noundef @.str.2, i32 noundef %17645, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 897, ptr noundef %17648, ptr noundef %17651, ptr noundef %17654, i32 noundef %17656) #12
  br label %17675

17658:                                            ; preds = %17636, %17629
  %17659 = load i32, ptr %348, align 4, !tbaa !5
  %17660 = call ptr @__errno_location() #13
  store i32 %17659, ptr %17660, align 4, !tbaa !5
  %17661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17662 = load i32, ptr @test_count, align 4, !tbaa !5
  %17663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17664 = load i32, ptr %17663, align 4, !tbaa !5
  %17665 = call ptr @s2n_strerror(i32 noundef %17664, ptr noundef @.str.4)
  %17666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17667 = load i32, ptr %17666, align 4, !tbaa !5
  %17668 = call ptr @s2n_strerror_debug(i32 noundef %17667, ptr noundef @.str.4)
  %17669 = call ptr @__errno_location() #13
  %17670 = load i32, ptr %17669, align 4, !tbaa !5
  %17671 = call ptr @strerror(i32 noundef %17670) #12
  %17672 = call ptr @__errno_location() #13
  %17673 = load i32, ptr %17672, align 4, !tbaa !5
  %17674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17661, ptr noundef @.str.5, i32 noundef %17662, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 897, ptr noundef %17665, ptr noundef %17668, ptr noundef %17671, i32 noundef %17673) #12
  br label %17675

17675:                                            ; preds = %17658, %17641
  call void @llvm.lifetime.end.p0(i64 4, ptr %348) #12
  br label %17676

17676:                                            ; preds = %17675
  br label %17677

17677:                                            ; preds = %17676
  call void @exit(i32 noundef 1) #14
  unreachable

17678:                                            ; No predecessors!
  br label %17679

17679:                                            ; preds = %17678
  br label %17680

17680:                                            ; preds = %17679, %17618
  br label %17681

17681:                                            ; preds = %17680
  br label %17682

17682:                                            ; preds = %17681
  %17683 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 0, ptr %17683, align 8, !tbaa !81
  br label %17684

17684:                                            ; preds = %17682
  %17685 = load i32, ptr @test_count, align 4, !tbaa !5
  %17686 = add nsw i32 %17685, 1
  store i32 %17686, ptr @test_count, align 4, !tbaa !5
  %17687 = load ptr, ptr %337, align 8, !tbaa !9
  %17688 = getelementptr inbounds [6 x i8], ptr %345, i64 0, i64 0
  %17689 = load i8, ptr %346, align 1, !tbaa !54
  %17690 = zext i8 %17689 to i16
  %17691 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %17687, ptr noundef %17688, i16 noundef zeroext %17690)
  %17692 = icmp eq i32 %17691, -1
  br i1 %17692, label %17693, label %17746

17693:                                            ; preds = %17684
  br label %17694

17694:                                            ; preds = %17693
  br label %17695

17695:                                            ; preds = %17694
  call void @llvm.lifetime.start.p0(i64 4, ptr %349) #12
  %17696 = call ptr @__errno_location() #13
  %17697 = load i32, ptr %17696, align 4, !tbaa !5
  store i32 %17697, ptr %349, align 4, !tbaa !5
  %17698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17699 = call i32 @s2n_print_stacktrace(ptr noundef %17698)
  %17700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17701 = trunc i8 %17700 to i1
  br i1 %17701, label %17702, label %17724

17702:                                            ; preds = %17695
  %17703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17704 = call i32 @fileno(ptr noundef %17703) #12
  %17705 = call i32 @isatty(i32 noundef %17704) #12
  %17706 = icmp ne i32 %17705, 0
  br i1 %17706, label %17707, label %17724

17707:                                            ; preds = %17702
  %17708 = load i32, ptr %349, align 4, !tbaa !5
  %17709 = call ptr @__errno_location() #13
  store i32 %17708, ptr %17709, align 4, !tbaa !5
  %17710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17711 = load i32, ptr @test_count, align 4, !tbaa !5
  %17712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17713 = load i32, ptr %17712, align 4, !tbaa !5
  %17714 = call ptr @s2n_strerror(i32 noundef %17713, ptr noundef @.str.4)
  %17715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17716 = load i32, ptr %17715, align 4, !tbaa !5
  %17717 = call ptr @s2n_strerror_debug(i32 noundef %17716, ptr noundef @.str.4)
  %17718 = call ptr @__errno_location() #13
  %17719 = load i32, ptr %17718, align 4, !tbaa !5
  %17720 = call ptr @strerror(i32 noundef %17719) #12
  %17721 = call ptr @__errno_location() #13
  %17722 = load i32, ptr %17721, align 4, !tbaa !5
  %17723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17710, ptr noundef @.str.2, i32 noundef %17711, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 902, ptr noundef %17714, ptr noundef %17717, ptr noundef %17720, i32 noundef %17722) #12
  br label %17741

17724:                                            ; preds = %17702, %17695
  %17725 = load i32, ptr %349, align 4, !tbaa !5
  %17726 = call ptr @__errno_location() #13
  store i32 %17725, ptr %17726, align 4, !tbaa !5
  %17727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17728 = load i32, ptr @test_count, align 4, !tbaa !5
  %17729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17730 = load i32, ptr %17729, align 4, !tbaa !5
  %17731 = call ptr @s2n_strerror(i32 noundef %17730, ptr noundef @.str.4)
  %17732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17733 = load i32, ptr %17732, align 4, !tbaa !5
  %17734 = call ptr @s2n_strerror_debug(i32 noundef %17733, ptr noundef @.str.4)
  %17735 = call ptr @__errno_location() #13
  %17736 = load i32, ptr %17735, align 4, !tbaa !5
  %17737 = call ptr @strerror(i32 noundef %17736) #12
  %17738 = call ptr @__errno_location() #13
  %17739 = load i32, ptr %17738, align 4, !tbaa !5
  %17740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17727, ptr noundef @.str.5, i32 noundef %17728, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 902, ptr noundef %17731, ptr noundef %17734, ptr noundef %17737, i32 noundef %17739) #12
  br label %17741

17741:                                            ; preds = %17724, %17707
  call void @llvm.lifetime.end.p0(i64 4, ptr %349) #12
  br label %17742

17742:                                            ; preds = %17741
  br label %17743

17743:                                            ; preds = %17742
  call void @exit(i32 noundef 1) #14
  unreachable

17744:                                            ; No predecessors!
  br label %17745

17745:                                            ; preds = %17744
  br label %17746

17746:                                            ; preds = %17745, %17684
  br label %17747

17747:                                            ; preds = %17746
  br label %17748

17748:                                            ; preds = %17747
  br label %17749

17749:                                            ; preds = %17748
  %17750 = load i32, ptr @test_count, align 4, !tbaa !5
  %17751 = add nsw i32 %17750, 1
  store i32 %17751, ptr @test_count, align 4, !tbaa !5
  %17752 = load ptr, ptr %337, align 8, !tbaa !9
  %17753 = getelementptr inbounds %struct.s2n_connection, ptr %17752, i32 0, i32 27
  %17754 = load ptr, ptr %17753, align 8, !tbaa !48
  %17755 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %17754, i32 0, i32 0
  %17756 = load ptr, ptr %17755, align 8, !tbaa !49
  %17757 = icmp eq ptr %17756, @s2n_ecdhe_rsa_with_aes_256_gcm_sha384
  br i1 %17757, label %17811, label %17758

17758:                                            ; preds = %17749
  br label %17759

17759:                                            ; preds = %17758
  br label %17760

17760:                                            ; preds = %17759
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #12
  %17761 = call ptr @__errno_location() #13
  %17762 = load i32, ptr %17761, align 4, !tbaa !5
  store i32 %17762, ptr %350, align 4, !tbaa !5
  %17763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17764 = call i32 @s2n_print_stacktrace(ptr noundef %17763)
  %17765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17766 = trunc i8 %17765 to i1
  br i1 %17766, label %17767, label %17789

17767:                                            ; preds = %17760
  %17768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17769 = call i32 @fileno(ptr noundef %17768) #12
  %17770 = call i32 @isatty(i32 noundef %17769) #12
  %17771 = icmp ne i32 %17770, 0
  br i1 %17771, label %17772, label %17789

17772:                                            ; preds = %17767
  %17773 = load i32, ptr %350, align 4, !tbaa !5
  %17774 = call ptr @__errno_location() #13
  store i32 %17773, ptr %17774, align 4, !tbaa !5
  %17775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17776 = load i32, ptr @test_count, align 4, !tbaa !5
  %17777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17778 = load i32, ptr %17777, align 4, !tbaa !5
  %17779 = call ptr @s2n_strerror(i32 noundef %17778, ptr noundef @.str.4)
  %17780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17781 = load i32, ptr %17780, align 4, !tbaa !5
  %17782 = call ptr @s2n_strerror_debug(i32 noundef %17781, ptr noundef @.str.4)
  %17783 = call ptr @__errno_location() #13
  %17784 = load i32, ptr %17783, align 4, !tbaa !5
  %17785 = call ptr @strerror(i32 noundef %17784) #12
  %17786 = call ptr @__errno_location() #13
  %17787 = load i32, ptr %17786, align 4, !tbaa !5
  %17788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17775, ptr noundef @.str.2, i32 noundef %17776, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 903, ptr noundef %17779, ptr noundef %17782, ptr noundef %17785, i32 noundef %17787) #12
  br label %17806

17789:                                            ; preds = %17767, %17760
  %17790 = load i32, ptr %350, align 4, !tbaa !5
  %17791 = call ptr @__errno_location() #13
  store i32 %17790, ptr %17791, align 4, !tbaa !5
  %17792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17793 = load i32, ptr @test_count, align 4, !tbaa !5
  %17794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17795 = load i32, ptr %17794, align 4, !tbaa !5
  %17796 = call ptr @s2n_strerror(i32 noundef %17795, ptr noundef @.str.4)
  %17797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17798 = load i32, ptr %17797, align 4, !tbaa !5
  %17799 = call ptr @s2n_strerror_debug(i32 noundef %17798, ptr noundef @.str.4)
  %17800 = call ptr @__errno_location() #13
  %17801 = load i32, ptr %17800, align 4, !tbaa !5
  %17802 = call ptr @strerror(i32 noundef %17801) #12
  %17803 = call ptr @__errno_location() #13
  %17804 = load i32, ptr %17803, align 4, !tbaa !5
  %17805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17792, ptr noundef @.str.5, i32 noundef %17793, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 903, ptr noundef %17796, ptr noundef %17799, ptr noundef %17802, i32 noundef %17804) #12
  br label %17806

17806:                                            ; preds = %17789, %17772
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #12
  br label %17807

17807:                                            ; preds = %17806
  br label %17808

17808:                                            ; preds = %17807
  call void @exit(i32 noundef 1) #14
  unreachable

17809:                                            ; No predecessors!
  br label %17810

17810:                                            ; preds = %17809
  br label %17811

17811:                                            ; preds = %17810, %17749
  br label %17812

17812:                                            ; preds = %17811
  br label %17813

17813:                                            ; preds = %17812
  call void @llvm.lifetime.end.p0(i64 1, ptr %346) #12
  call void @llvm.lifetime.end.p0(i64 6, ptr %345) #12
  %17814 = call i32 @s2n_config_ptr_free(ptr noundef %340)
  %17815 = getelementptr inbounds %struct.s2n_result, ptr %351, i32 0, i32 0
  store i32 %17814, ptr %17815, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %340) #12
  %17816 = call i32 @s2n_connection_ptr_free(ptr noundef %337)
  %17817 = getelementptr inbounds %struct.s2n_result, ptr %352, i32 0, i32 0
  store i32 %17816, ptr %17817, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %337) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %353) #12
  %17818 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %17818, ptr %353, align 8, !tbaa !9
  br label %17819

17819:                                            ; preds = %17813
  %17820 = load i32, ptr @test_count, align 4, !tbaa !5
  %17821 = add nsw i32 %17820, 1
  store i32 %17821, ptr @test_count, align 4, !tbaa !5
  %17822 = load ptr, ptr %353, align 8, !tbaa !9
  %17823 = icmp eq ptr %17822, null
  br i1 %17823, label %17824, label %17877

17824:                                            ; preds = %17819
  br label %17825

17825:                                            ; preds = %17824
  br label %17826

17826:                                            ; preds = %17825
  call void @llvm.lifetime.start.p0(i64 4, ptr %354) #12
  %17827 = call ptr @__errno_location() #13
  %17828 = load i32, ptr %17827, align 4, !tbaa !5
  store i32 %17828, ptr %354, align 4, !tbaa !5
  %17829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17830 = call i32 @s2n_print_stacktrace(ptr noundef %17829)
  %17831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17832 = trunc i8 %17831 to i1
  br i1 %17832, label %17833, label %17855

17833:                                            ; preds = %17826
  %17834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17835 = call i32 @fileno(ptr noundef %17834) #12
  %17836 = call i32 @isatty(i32 noundef %17835) #12
  %17837 = icmp ne i32 %17836, 0
  br i1 %17837, label %17838, label %17855

17838:                                            ; preds = %17833
  %17839 = load i32, ptr %354, align 4, !tbaa !5
  %17840 = call ptr @__errno_location() #13
  store i32 %17839, ptr %17840, align 4, !tbaa !5
  %17841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17842 = load i32, ptr @test_count, align 4, !tbaa !5
  %17843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17844 = load i32, ptr %17843, align 4, !tbaa !5
  %17845 = call ptr @s2n_strerror(i32 noundef %17844, ptr noundef @.str.4)
  %17846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17847 = load i32, ptr %17846, align 4, !tbaa !5
  %17848 = call ptr @s2n_strerror_debug(i32 noundef %17847, ptr noundef @.str.4)
  %17849 = call ptr @__errno_location() #13
  %17850 = load i32, ptr %17849, align 4, !tbaa !5
  %17851 = call ptr @strerror(i32 noundef %17850) #12
  %17852 = call ptr @__errno_location() #13
  %17853 = load i32, ptr %17852, align 4, !tbaa !5
  %17854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17841, ptr noundef @.str.2, i32 noundef %17842, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 909, ptr noundef %17845, ptr noundef %17848, ptr noundef %17851, i32 noundef %17853) #12
  br label %17872

17855:                                            ; preds = %17833, %17826
  %17856 = load i32, ptr %354, align 4, !tbaa !5
  %17857 = call ptr @__errno_location() #13
  store i32 %17856, ptr %17857, align 4, !tbaa !5
  %17858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17859 = load i32, ptr @test_count, align 4, !tbaa !5
  %17860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17861 = load i32, ptr %17860, align 4, !tbaa !5
  %17862 = call ptr @s2n_strerror(i32 noundef %17861, ptr noundef @.str.4)
  %17863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17864 = load i32, ptr %17863, align 4, !tbaa !5
  %17865 = call ptr @s2n_strerror_debug(i32 noundef %17864, ptr noundef @.str.4)
  %17866 = call ptr @__errno_location() #13
  %17867 = load i32, ptr %17866, align 4, !tbaa !5
  %17868 = call ptr @strerror(i32 noundef %17867) #12
  %17869 = call ptr @__errno_location() #13
  %17870 = load i32, ptr %17869, align 4, !tbaa !5
  %17871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17858, ptr noundef @.str.5, i32 noundef %17859, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 909, ptr noundef %17862, ptr noundef %17865, ptr noundef %17868, i32 noundef %17870) #12
  br label %17872

17872:                                            ; preds = %17855, %17838
  call void @llvm.lifetime.end.p0(i64 4, ptr %354) #12
  br label %17873

17873:                                            ; preds = %17872
  br label %17874

17874:                                            ; preds = %17873
  call void @exit(i32 noundef 1) #14
  unreachable

17875:                                            ; No predecessors!
  br label %17876

17876:                                            ; preds = %17875
  br label %17877

17877:                                            ; preds = %17876, %17819
  br label %17878

17878:                                            ; preds = %17877
  br label %17879

17879:                                            ; preds = %17878
  %17880 = load ptr, ptr %353, align 8, !tbaa !9
  %17881 = getelementptr inbounds %struct.s2n_connection, ptr %17880, i32 0, i32 2
  store ptr %325, ptr %17881, align 8, !tbaa !80
  %17882 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %17883 = load ptr, ptr %353, align 8, !tbaa !9
  %17884 = getelementptr inbounds %struct.s2n_connection, ptr %17883, i32 0, i32 31
  %17885 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %17884, i32 0, i32 1
  %17886 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %17885, i32 0, i32 0
  store ptr %17882, ptr %17886, align 8, !tbaa !57
  br label %17887

17887:                                            ; preds = %17879
  %17888 = load i32, ptr @test_count, align 4, !tbaa !5
  %17889 = add nsw i32 %17888, 1
  store i32 %17889, ptr @test_count, align 4, !tbaa !5
  %17890 = load ptr, ptr %353, align 8, !tbaa !9
  %17891 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %17890, i8 noundef zeroext 33)
  %17892 = icmp eq i32 %17891, -1
  br i1 %17892, label %17893, label %17946

17893:                                            ; preds = %17887
  br label %17894

17894:                                            ; preds = %17893
  br label %17895

17895:                                            ; preds = %17894
  call void @llvm.lifetime.start.p0(i64 4, ptr %355) #12
  %17896 = call ptr @__errno_location() #13
  %17897 = load i32, ptr %17896, align 4, !tbaa !5
  store i32 %17897, ptr %355, align 4, !tbaa !5
  %17898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17899 = call i32 @s2n_print_stacktrace(ptr noundef %17898)
  %17900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17901 = trunc i8 %17900 to i1
  br i1 %17901, label %17902, label %17924

17902:                                            ; preds = %17895
  %17903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17904 = call i32 @fileno(ptr noundef %17903) #12
  %17905 = call i32 @isatty(i32 noundef %17904) #12
  %17906 = icmp ne i32 %17905, 0
  br i1 %17906, label %17907, label %17924

17907:                                            ; preds = %17902
  %17908 = load i32, ptr %355, align 4, !tbaa !5
  %17909 = call ptr @__errno_location() #13
  store i32 %17908, ptr %17909, align 4, !tbaa !5
  %17910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17911 = load i32, ptr @test_count, align 4, !tbaa !5
  %17912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17913 = load i32, ptr %17912, align 4, !tbaa !5
  %17914 = call ptr @s2n_strerror(i32 noundef %17913, ptr noundef @.str.4)
  %17915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17916 = load i32, ptr %17915, align 4, !tbaa !5
  %17917 = call ptr @s2n_strerror_debug(i32 noundef %17916, ptr noundef @.str.4)
  %17918 = call ptr @__errno_location() #13
  %17919 = load i32, ptr %17918, align 4, !tbaa !5
  %17920 = call ptr @strerror(i32 noundef %17919) #12
  %17921 = call ptr @__errno_location() #13
  %17922 = load i32, ptr %17921, align 4, !tbaa !5
  %17923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17910, ptr noundef @.str.2, i32 noundef %17911, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 912, ptr noundef %17914, ptr noundef %17917, ptr noundef %17920, i32 noundef %17922) #12
  br label %17941

17924:                                            ; preds = %17902, %17895
  %17925 = load i32, ptr %355, align 4, !tbaa !5
  %17926 = call ptr @__errno_location() #13
  store i32 %17925, ptr %17926, align 4, !tbaa !5
  %17927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17928 = load i32, ptr @test_count, align 4, !tbaa !5
  %17929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17930 = load i32, ptr %17929, align 4, !tbaa !5
  %17931 = call ptr @s2n_strerror(i32 noundef %17930, ptr noundef @.str.4)
  %17932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17933 = load i32, ptr %17932, align 4, !tbaa !5
  %17934 = call ptr @s2n_strerror_debug(i32 noundef %17933, ptr noundef @.str.4)
  %17935 = call ptr @__errno_location() #13
  %17936 = load i32, ptr %17935, align 4, !tbaa !5
  %17937 = call ptr @strerror(i32 noundef %17936) #12
  %17938 = call ptr @__errno_location() #13
  %17939 = load i32, ptr %17938, align 4, !tbaa !5
  %17940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17927, ptr noundef @.str.5, i32 noundef %17928, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 912, ptr noundef %17931, ptr noundef %17934, ptr noundef %17937, i32 noundef %17939) #12
  br label %17941

17941:                                            ; preds = %17924, %17907
  call void @llvm.lifetime.end.p0(i64 4, ptr %355) #12
  br label %17942

17942:                                            ; preds = %17941
  br label %17943

17943:                                            ; preds = %17942
  call void @exit(i32 noundef 1) #14
  unreachable

17944:                                            ; No predecessors!
  br label %17945

17945:                                            ; preds = %17944
  br label %17946

17946:                                            ; preds = %17945, %17887
  br label %17947

17947:                                            ; preds = %17946
  br label %17948

17948:                                            ; preds = %17947
  br label %17949

17949:                                            ; preds = %17948
  %17950 = load i32, ptr @test_count, align 4, !tbaa !5
  %17951 = add nsw i32 %17950, 1
  store i32 %17951, ptr @test_count, align 4, !tbaa !5
  %17952 = load ptr, ptr %353, align 8, !tbaa !9
  %17953 = load ptr, ptr %326, align 8, !tbaa !9
  %17954 = call i32 @s2n_connection_set_config(ptr noundef %17952, ptr noundef %17953)
  %17955 = icmp eq i32 %17954, -1
  br i1 %17955, label %17956, label %18009

17956:                                            ; preds = %17949
  br label %17957

17957:                                            ; preds = %17956
  br label %17958

17958:                                            ; preds = %17957
  call void @llvm.lifetime.start.p0(i64 4, ptr %356) #12
  %17959 = call ptr @__errno_location() #13
  %17960 = load i32, ptr %17959, align 4, !tbaa !5
  store i32 %17960, ptr %356, align 4, !tbaa !5
  %17961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17962 = call i32 @s2n_print_stacktrace(ptr noundef %17961)
  %17963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17964 = trunc i8 %17963 to i1
  br i1 %17964, label %17965, label %17987

17965:                                            ; preds = %17958
  %17966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17967 = call i32 @fileno(ptr noundef %17966) #12
  %17968 = call i32 @isatty(i32 noundef %17967) #12
  %17969 = icmp ne i32 %17968, 0
  br i1 %17969, label %17970, label %17987

17970:                                            ; preds = %17965
  %17971 = load i32, ptr %356, align 4, !tbaa !5
  %17972 = call ptr @__errno_location() #13
  store i32 %17971, ptr %17972, align 4, !tbaa !5
  %17973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17974 = load i32, ptr @test_count, align 4, !tbaa !5
  %17975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17976 = load i32, ptr %17975, align 4, !tbaa !5
  %17977 = call ptr @s2n_strerror(i32 noundef %17976, ptr noundef @.str.4)
  %17978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17979 = load i32, ptr %17978, align 4, !tbaa !5
  %17980 = call ptr @s2n_strerror_debug(i32 noundef %17979, ptr noundef @.str.4)
  %17981 = call ptr @__errno_location() #13
  %17982 = load i32, ptr %17981, align 4, !tbaa !5
  %17983 = call ptr @strerror(i32 noundef %17982) #12
  %17984 = call ptr @__errno_location() #13
  %17985 = load i32, ptr %17984, align 4, !tbaa !5
  %17986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17973, ptr noundef @.str.2, i32 noundef %17974, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 913, ptr noundef %17977, ptr noundef %17980, ptr noundef %17983, i32 noundef %17985) #12
  br label %18004

17987:                                            ; preds = %17965, %17958
  %17988 = load i32, ptr %356, align 4, !tbaa !5
  %17989 = call ptr @__errno_location() #13
  store i32 %17988, ptr %17989, align 4, !tbaa !5
  %17990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17991 = load i32, ptr @test_count, align 4, !tbaa !5
  %17992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17993 = load i32, ptr %17992, align 4, !tbaa !5
  %17994 = call ptr @s2n_strerror(i32 noundef %17993, ptr noundef @.str.4)
  %17995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17996 = load i32, ptr %17995, align 4, !tbaa !5
  %17997 = call ptr @s2n_strerror_debug(i32 noundef %17996, ptr noundef @.str.4)
  %17998 = call ptr @__errno_location() #13
  %17999 = load i32, ptr %17998, align 4, !tbaa !5
  %18000 = call ptr @strerror(i32 noundef %17999) #12
  %18001 = call ptr @__errno_location() #13
  %18002 = load i32, ptr %18001, align 4, !tbaa !5
  %18003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17990, ptr noundef @.str.5, i32 noundef %17991, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 913, ptr noundef %17994, ptr noundef %17997, ptr noundef %18000, i32 noundef %18002) #12
  br label %18004

18004:                                            ; preds = %17987, %17970
  call void @llvm.lifetime.end.p0(i64 4, ptr %356) #12
  br label %18005

18005:                                            ; preds = %18004
  br label %18006

18006:                                            ; preds = %18005
  call void @exit(i32 noundef 1) #14
  unreachable

18007:                                            ; No predecessors!
  br label %18008

18008:                                            ; preds = %18007
  br label %18009

18009:                                            ; preds = %18008, %17949
  br label %18010

18010:                                            ; preds = %18009
  br label %18011

18011:                                            ; preds = %18010
  %18012 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %357, i32 0, i32 0
  store i16 3, ptr %18012, align 8, !tbaa !60
  %18013 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %357, i32 0, i32 1
  store ptr @main.test_cipher_suite_list.151, ptr %18013, align 8, !tbaa !58
  %18014 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %357, i32 0, i32 2
  store i8 1, ptr %18014, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %357, i64 24, i1 false), !tbaa.struct !82
  call void @llvm.lifetime.start.p0(i64 6, ptr %358) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %358, ptr align 1 @__const.main.wire.152, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %359) #12
  store i8 3, ptr %359, align 1, !tbaa !54
  br label %18015

18015:                                            ; preds = %18011
  %18016 = load i32, ptr @test_count, align 4, !tbaa !5
  %18017 = add nsw i32 %18016, 1
  store i32 %18017, ptr @test_count, align 4, !tbaa !5
  %18018 = load ptr, ptr %353, align 8, !tbaa !9
  %18019 = getelementptr inbounds [6 x i8], ptr %358, i64 0, i64 0
  %18020 = load i8, ptr %359, align 1, !tbaa !54
  %18021 = zext i8 %18020 to i16
  %18022 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %18018, ptr noundef %18019, i16 noundef zeroext %18021)
  %18023 = icmp eq i32 %18022, -1
  br i1 %18023, label %18024, label %18077

18024:                                            ; preds = %18015
  br label %18025

18025:                                            ; preds = %18024
  br label %18026

18026:                                            ; preds = %18025
  call void @llvm.lifetime.start.p0(i64 4, ptr %360) #12
  %18027 = call ptr @__errno_location() #13
  %18028 = load i32, ptr %18027, align 4, !tbaa !5
  store i32 %18028, ptr %360, align 4, !tbaa !5
  %18029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18030 = call i32 @s2n_print_stacktrace(ptr noundef %18029)
  %18031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18032 = trunc i8 %18031 to i1
  br i1 %18032, label %18033, label %18055

18033:                                            ; preds = %18026
  %18034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18035 = call i32 @fileno(ptr noundef %18034) #12
  %18036 = call i32 @isatty(i32 noundef %18035) #12
  %18037 = icmp ne i32 %18036, 0
  br i1 %18037, label %18038, label %18055

18038:                                            ; preds = %18033
  %18039 = load i32, ptr %360, align 4, !tbaa !5
  %18040 = call ptr @__errno_location() #13
  store i32 %18039, ptr %18040, align 4, !tbaa !5
  %18041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18042 = load i32, ptr @test_count, align 4, !tbaa !5
  %18043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18044 = load i32, ptr %18043, align 4, !tbaa !5
  %18045 = call ptr @s2n_strerror(i32 noundef %18044, ptr noundef @.str.4)
  %18046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18047 = load i32, ptr %18046, align 4, !tbaa !5
  %18048 = call ptr @s2n_strerror_debug(i32 noundef %18047, ptr noundef @.str.4)
  %18049 = call ptr @__errno_location() #13
  %18050 = load i32, ptr %18049, align 4, !tbaa !5
  %18051 = call ptr @strerror(i32 noundef %18050) #12
  %18052 = call ptr @__errno_location() #13
  %18053 = load i32, ptr %18052, align 4, !tbaa !5
  %18054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18041, ptr noundef @.str.2, i32 noundef %18042, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 941, ptr noundef %18045, ptr noundef %18048, ptr noundef %18051, i32 noundef %18053) #12
  br label %18072

18055:                                            ; preds = %18033, %18026
  %18056 = load i32, ptr %360, align 4, !tbaa !5
  %18057 = call ptr @__errno_location() #13
  store i32 %18056, ptr %18057, align 4, !tbaa !5
  %18058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18059 = load i32, ptr @test_count, align 4, !tbaa !5
  %18060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18061 = load i32, ptr %18060, align 4, !tbaa !5
  %18062 = call ptr @s2n_strerror(i32 noundef %18061, ptr noundef @.str.4)
  %18063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18064 = load i32, ptr %18063, align 4, !tbaa !5
  %18065 = call ptr @s2n_strerror_debug(i32 noundef %18064, ptr noundef @.str.4)
  %18066 = call ptr @__errno_location() #13
  %18067 = load i32, ptr %18066, align 4, !tbaa !5
  %18068 = call ptr @strerror(i32 noundef %18067) #12
  %18069 = call ptr @__errno_location() #13
  %18070 = load i32, ptr %18069, align 4, !tbaa !5
  %18071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18058, ptr noundef @.str.5, i32 noundef %18059, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 941, ptr noundef %18062, ptr noundef %18065, ptr noundef %18068, i32 noundef %18070) #12
  br label %18072

18072:                                            ; preds = %18055, %18038
  call void @llvm.lifetime.end.p0(i64 4, ptr %360) #12
  br label %18073

18073:                                            ; preds = %18072
  br label %18074

18074:                                            ; preds = %18073
  call void @exit(i32 noundef 1) #14
  unreachable

18075:                                            ; No predecessors!
  br label %18076

18076:                                            ; preds = %18075
  br label %18077

18077:                                            ; preds = %18076, %18015
  br label %18078

18078:                                            ; preds = %18077
  br label %18079

18079:                                            ; preds = %18078
  br label %18080

18080:                                            ; preds = %18079
  %18081 = load i32, ptr @test_count, align 4, !tbaa !5
  %18082 = add nsw i32 %18081, 1
  store i32 %18082, ptr @test_count, align 4, !tbaa !5
  %18083 = load ptr, ptr %353, align 8, !tbaa !9
  %18084 = getelementptr inbounds %struct.s2n_connection, ptr %18083, i32 0, i32 27
  %18085 = load ptr, ptr %18084, align 8, !tbaa !48
  %18086 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %18085, i32 0, i32 0
  %18087 = load ptr, ptr %18086, align 8, !tbaa !49
  %18088 = icmp eq ptr %18087, @s2n_ecdhe_ecdsa_with_chacha20_poly1305_sha256
  br i1 %18088, label %18142, label %18089

18089:                                            ; preds = %18080
  br label %18090

18090:                                            ; preds = %18089
  br label %18091

18091:                                            ; preds = %18090
  call void @llvm.lifetime.start.p0(i64 4, ptr %361) #12
  %18092 = call ptr @__errno_location() #13
  %18093 = load i32, ptr %18092, align 4, !tbaa !5
  store i32 %18093, ptr %361, align 4, !tbaa !5
  %18094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18095 = call i32 @s2n_print_stacktrace(ptr noundef %18094)
  %18096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18097 = trunc i8 %18096 to i1
  br i1 %18097, label %18098, label %18120

18098:                                            ; preds = %18091
  %18099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18100 = call i32 @fileno(ptr noundef %18099) #12
  %18101 = call i32 @isatty(i32 noundef %18100) #12
  %18102 = icmp ne i32 %18101, 0
  br i1 %18102, label %18103, label %18120

18103:                                            ; preds = %18098
  %18104 = load i32, ptr %361, align 4, !tbaa !5
  %18105 = call ptr @__errno_location() #13
  store i32 %18104, ptr %18105, align 4, !tbaa !5
  %18106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18107 = load i32, ptr @test_count, align 4, !tbaa !5
  %18108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18109 = load i32, ptr %18108, align 4, !tbaa !5
  %18110 = call ptr @s2n_strerror(i32 noundef %18109, ptr noundef @.str.4)
  %18111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18112 = load i32, ptr %18111, align 4, !tbaa !5
  %18113 = call ptr @s2n_strerror_debug(i32 noundef %18112, ptr noundef @.str.4)
  %18114 = call ptr @__errno_location() #13
  %18115 = load i32, ptr %18114, align 4, !tbaa !5
  %18116 = call ptr @strerror(i32 noundef %18115) #12
  %18117 = call ptr @__errno_location() #13
  %18118 = load i32, ptr %18117, align 4, !tbaa !5
  %18119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18106, ptr noundef @.str.2, i32 noundef %18107, ptr noundef @.str.153, ptr noundef @.str.1, i32 noundef 942, ptr noundef %18110, ptr noundef %18113, ptr noundef %18116, i32 noundef %18118) #12
  br label %18137

18120:                                            ; preds = %18098, %18091
  %18121 = load i32, ptr %361, align 4, !tbaa !5
  %18122 = call ptr @__errno_location() #13
  store i32 %18121, ptr %18122, align 4, !tbaa !5
  %18123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18124 = load i32, ptr @test_count, align 4, !tbaa !5
  %18125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18126 = load i32, ptr %18125, align 4, !tbaa !5
  %18127 = call ptr @s2n_strerror(i32 noundef %18126, ptr noundef @.str.4)
  %18128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18129 = load i32, ptr %18128, align 4, !tbaa !5
  %18130 = call ptr @s2n_strerror_debug(i32 noundef %18129, ptr noundef @.str.4)
  %18131 = call ptr @__errno_location() #13
  %18132 = load i32, ptr %18131, align 4, !tbaa !5
  %18133 = call ptr @strerror(i32 noundef %18132) #12
  %18134 = call ptr @__errno_location() #13
  %18135 = load i32, ptr %18134, align 4, !tbaa !5
  %18136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18123, ptr noundef @.str.5, i32 noundef %18124, ptr noundef @.str.153, ptr noundef @.str.1, i32 noundef 942, ptr noundef %18127, ptr noundef %18130, ptr noundef %18133, i32 noundef %18135) #12
  br label %18137

18137:                                            ; preds = %18120, %18103
  call void @llvm.lifetime.end.p0(i64 4, ptr %361) #12
  br label %18138

18138:                                            ; preds = %18137
  br label %18139

18139:                                            ; preds = %18138
  call void @exit(i32 noundef 1) #14
  unreachable

18140:                                            ; No predecessors!
  br label %18141

18141:                                            ; preds = %18140
  br label %18142

18142:                                            ; preds = %18141, %18080
  br label %18143

18143:                                            ; preds = %18142
  br label %18144

18144:                                            ; preds = %18143
  %18145 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 0, ptr %18145, align 8, !tbaa !81
  br label %18146

18146:                                            ; preds = %18144
  %18147 = load i32, ptr @test_count, align 4, !tbaa !5
  %18148 = add nsw i32 %18147, 1
  store i32 %18148, ptr @test_count, align 4, !tbaa !5
  %18149 = load ptr, ptr %353, align 8, !tbaa !9
  %18150 = getelementptr inbounds [6 x i8], ptr %358, i64 0, i64 0
  %18151 = load i8, ptr %359, align 1, !tbaa !54
  %18152 = zext i8 %18151 to i16
  %18153 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %18149, ptr noundef %18150, i16 noundef zeroext %18152)
  %18154 = icmp eq i32 %18153, -1
  br i1 %18154, label %18155, label %18208

18155:                                            ; preds = %18146
  br label %18156

18156:                                            ; preds = %18155
  br label %18157

18157:                                            ; preds = %18156
  call void @llvm.lifetime.start.p0(i64 4, ptr %362) #12
  %18158 = call ptr @__errno_location() #13
  %18159 = load i32, ptr %18158, align 4, !tbaa !5
  store i32 %18159, ptr %362, align 4, !tbaa !5
  %18160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18161 = call i32 @s2n_print_stacktrace(ptr noundef %18160)
  %18162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18163 = trunc i8 %18162 to i1
  br i1 %18163, label %18164, label %18186

18164:                                            ; preds = %18157
  %18165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18166 = call i32 @fileno(ptr noundef %18165) #12
  %18167 = call i32 @isatty(i32 noundef %18166) #12
  %18168 = icmp ne i32 %18167, 0
  br i1 %18168, label %18169, label %18186

18169:                                            ; preds = %18164
  %18170 = load i32, ptr %362, align 4, !tbaa !5
  %18171 = call ptr @__errno_location() #13
  store i32 %18170, ptr %18171, align 4, !tbaa !5
  %18172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18173 = load i32, ptr @test_count, align 4, !tbaa !5
  %18174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18175 = load i32, ptr %18174, align 4, !tbaa !5
  %18176 = call ptr @s2n_strerror(i32 noundef %18175, ptr noundef @.str.4)
  %18177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18178 = load i32, ptr %18177, align 4, !tbaa !5
  %18179 = call ptr @s2n_strerror_debug(i32 noundef %18178, ptr noundef @.str.4)
  %18180 = call ptr @__errno_location() #13
  %18181 = load i32, ptr %18180, align 4, !tbaa !5
  %18182 = call ptr @strerror(i32 noundef %18181) #12
  %18183 = call ptr @__errno_location() #13
  %18184 = load i32, ptr %18183, align 4, !tbaa !5
  %18185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18172, ptr noundef @.str.2, i32 noundef %18173, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 946, ptr noundef %18176, ptr noundef %18179, ptr noundef %18182, i32 noundef %18184) #12
  br label %18203

18186:                                            ; preds = %18164, %18157
  %18187 = load i32, ptr %362, align 4, !tbaa !5
  %18188 = call ptr @__errno_location() #13
  store i32 %18187, ptr %18188, align 4, !tbaa !5
  %18189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18190 = load i32, ptr @test_count, align 4, !tbaa !5
  %18191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18192 = load i32, ptr %18191, align 4, !tbaa !5
  %18193 = call ptr @s2n_strerror(i32 noundef %18192, ptr noundef @.str.4)
  %18194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18195 = load i32, ptr %18194, align 4, !tbaa !5
  %18196 = call ptr @s2n_strerror_debug(i32 noundef %18195, ptr noundef @.str.4)
  %18197 = call ptr @__errno_location() #13
  %18198 = load i32, ptr %18197, align 4, !tbaa !5
  %18199 = call ptr @strerror(i32 noundef %18198) #12
  %18200 = call ptr @__errno_location() #13
  %18201 = load i32, ptr %18200, align 4, !tbaa !5
  %18202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18189, ptr noundef @.str.5, i32 noundef %18190, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 946, ptr noundef %18193, ptr noundef %18196, ptr noundef %18199, i32 noundef %18201) #12
  br label %18203

18203:                                            ; preds = %18186, %18169
  call void @llvm.lifetime.end.p0(i64 4, ptr %362) #12
  br label %18204

18204:                                            ; preds = %18203
  br label %18205

18205:                                            ; preds = %18204
  call void @exit(i32 noundef 1) #14
  unreachable

18206:                                            ; No predecessors!
  br label %18207

18207:                                            ; preds = %18206
  br label %18208

18208:                                            ; preds = %18207, %18146
  br label %18209

18209:                                            ; preds = %18208
  br label %18210

18210:                                            ; preds = %18209
  br label %18211

18211:                                            ; preds = %18210
  %18212 = load i32, ptr @test_count, align 4, !tbaa !5
  %18213 = add nsw i32 %18212, 1
  store i32 %18213, ptr @test_count, align 4, !tbaa !5
  %18214 = load ptr, ptr %353, align 8, !tbaa !9
  %18215 = getelementptr inbounds %struct.s2n_connection, ptr %18214, i32 0, i32 27
  %18216 = load ptr, ptr %18215, align 8, !tbaa !48
  %18217 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %18216, i32 0, i32 0
  %18218 = load ptr, ptr %18217, align 8, !tbaa !49
  %18219 = icmp eq ptr %18218, @s2n_ecdhe_rsa_with_aes_256_cbc_sha384
  br i1 %18219, label %18273, label %18220

18220:                                            ; preds = %18211
  br label %18221

18221:                                            ; preds = %18220
  br label %18222

18222:                                            ; preds = %18221
  call void @llvm.lifetime.start.p0(i64 4, ptr %363) #12
  %18223 = call ptr @__errno_location() #13
  %18224 = load i32, ptr %18223, align 4, !tbaa !5
  store i32 %18224, ptr %363, align 4, !tbaa !5
  %18225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18226 = call i32 @s2n_print_stacktrace(ptr noundef %18225)
  %18227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18228 = trunc i8 %18227 to i1
  br i1 %18228, label %18229, label %18251

18229:                                            ; preds = %18222
  %18230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18231 = call i32 @fileno(ptr noundef %18230) #12
  %18232 = call i32 @isatty(i32 noundef %18231) #12
  %18233 = icmp ne i32 %18232, 0
  br i1 %18233, label %18234, label %18251

18234:                                            ; preds = %18229
  %18235 = load i32, ptr %363, align 4, !tbaa !5
  %18236 = call ptr @__errno_location() #13
  store i32 %18235, ptr %18236, align 4, !tbaa !5
  %18237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18238 = load i32, ptr @test_count, align 4, !tbaa !5
  %18239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18240 = load i32, ptr %18239, align 4, !tbaa !5
  %18241 = call ptr @s2n_strerror(i32 noundef %18240, ptr noundef @.str.4)
  %18242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18243 = load i32, ptr %18242, align 4, !tbaa !5
  %18244 = call ptr @s2n_strerror_debug(i32 noundef %18243, ptr noundef @.str.4)
  %18245 = call ptr @__errno_location() #13
  %18246 = load i32, ptr %18245, align 4, !tbaa !5
  %18247 = call ptr @strerror(i32 noundef %18246) #12
  %18248 = call ptr @__errno_location() #13
  %18249 = load i32, ptr %18248, align 4, !tbaa !5
  %18250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18237, ptr noundef @.str.2, i32 noundef %18238, ptr noundef @.str.154, ptr noundef @.str.1, i32 noundef 947, ptr noundef %18241, ptr noundef %18244, ptr noundef %18247, i32 noundef %18249) #12
  br label %18268

18251:                                            ; preds = %18229, %18222
  %18252 = load i32, ptr %363, align 4, !tbaa !5
  %18253 = call ptr @__errno_location() #13
  store i32 %18252, ptr %18253, align 4, !tbaa !5
  %18254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18255 = load i32, ptr @test_count, align 4, !tbaa !5
  %18256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18257 = load i32, ptr %18256, align 4, !tbaa !5
  %18258 = call ptr @s2n_strerror(i32 noundef %18257, ptr noundef @.str.4)
  %18259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18260 = load i32, ptr %18259, align 4, !tbaa !5
  %18261 = call ptr @s2n_strerror_debug(i32 noundef %18260, ptr noundef @.str.4)
  %18262 = call ptr @__errno_location() #13
  %18263 = load i32, ptr %18262, align 4, !tbaa !5
  %18264 = call ptr @strerror(i32 noundef %18263) #12
  %18265 = call ptr @__errno_location() #13
  %18266 = load i32, ptr %18265, align 4, !tbaa !5
  %18267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18254, ptr noundef @.str.5, i32 noundef %18255, ptr noundef @.str.154, ptr noundef @.str.1, i32 noundef 947, ptr noundef %18258, ptr noundef %18261, ptr noundef %18264, i32 noundef %18266) #12
  br label %18268

18268:                                            ; preds = %18251, %18234
  call void @llvm.lifetime.end.p0(i64 4, ptr %363) #12
  br label %18269

18269:                                            ; preds = %18268
  br label %18270

18270:                                            ; preds = %18269
  call void @exit(i32 noundef 1) #14
  unreachable

18271:                                            ; No predecessors!
  br label %18272

18272:                                            ; preds = %18271
  br label %18273

18273:                                            ; preds = %18272, %18211
  br label %18274

18274:                                            ; preds = %18273
  br label %18275

18275:                                            ; preds = %18274
  call void @llvm.lifetime.end.p0(i64 1, ptr %359) #12
  call void @llvm.lifetime.end.p0(i64 6, ptr %358) #12
  %18276 = call i32 @s2n_connection_ptr_free(ptr noundef %353)
  %18277 = getelementptr inbounds %struct.s2n_result, ptr %364, i32 0, i32 0
  store i32 %18276, ptr %18277, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %353) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %365) #12
  %18278 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %18278, ptr %365, align 8, !tbaa !9
  br label %18279

18279:                                            ; preds = %18275
  %18280 = load i32, ptr @test_count, align 4, !tbaa !5
  %18281 = add nsw i32 %18280, 1
  store i32 %18281, ptr @test_count, align 4, !tbaa !5
  %18282 = load ptr, ptr %365, align 8, !tbaa !9
  %18283 = icmp eq ptr %18282, null
  br i1 %18283, label %18284, label %18337

18284:                                            ; preds = %18279
  br label %18285

18285:                                            ; preds = %18284
  br label %18286

18286:                                            ; preds = %18285
  call void @llvm.lifetime.start.p0(i64 4, ptr %366) #12
  %18287 = call ptr @__errno_location() #13
  %18288 = load i32, ptr %18287, align 4, !tbaa !5
  store i32 %18288, ptr %366, align 4, !tbaa !5
  %18289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18290 = call i32 @s2n_print_stacktrace(ptr noundef %18289)
  %18291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18292 = trunc i8 %18291 to i1
  br i1 %18292, label %18293, label %18315

18293:                                            ; preds = %18286
  %18294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18295 = call i32 @fileno(ptr noundef %18294) #12
  %18296 = call i32 @isatty(i32 noundef %18295) #12
  %18297 = icmp ne i32 %18296, 0
  br i1 %18297, label %18298, label %18315

18298:                                            ; preds = %18293
  %18299 = load i32, ptr %366, align 4, !tbaa !5
  %18300 = call ptr @__errno_location() #13
  store i32 %18299, ptr %18300, align 4, !tbaa !5
  %18301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18302 = load i32, ptr @test_count, align 4, !tbaa !5
  %18303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18304 = load i32, ptr %18303, align 4, !tbaa !5
  %18305 = call ptr @s2n_strerror(i32 noundef %18304, ptr noundef @.str.4)
  %18306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18307 = load i32, ptr %18306, align 4, !tbaa !5
  %18308 = call ptr @s2n_strerror_debug(i32 noundef %18307, ptr noundef @.str.4)
  %18309 = call ptr @__errno_location() #13
  %18310 = load i32, ptr %18309, align 4, !tbaa !5
  %18311 = call ptr @strerror(i32 noundef %18310) #12
  %18312 = call ptr @__errno_location() #13
  %18313 = load i32, ptr %18312, align 4, !tbaa !5
  %18314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18301, ptr noundef @.str.2, i32 noundef %18302, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 953, ptr noundef %18305, ptr noundef %18308, ptr noundef %18311, i32 noundef %18313) #12
  br label %18332

18315:                                            ; preds = %18293, %18286
  %18316 = load i32, ptr %366, align 4, !tbaa !5
  %18317 = call ptr @__errno_location() #13
  store i32 %18316, ptr %18317, align 4, !tbaa !5
  %18318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18319 = load i32, ptr @test_count, align 4, !tbaa !5
  %18320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18321 = load i32, ptr %18320, align 4, !tbaa !5
  %18322 = call ptr @s2n_strerror(i32 noundef %18321, ptr noundef @.str.4)
  %18323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18324 = load i32, ptr %18323, align 4, !tbaa !5
  %18325 = call ptr @s2n_strerror_debug(i32 noundef %18324, ptr noundef @.str.4)
  %18326 = call ptr @__errno_location() #13
  %18327 = load i32, ptr %18326, align 4, !tbaa !5
  %18328 = call ptr @strerror(i32 noundef %18327) #12
  %18329 = call ptr @__errno_location() #13
  %18330 = load i32, ptr %18329, align 4, !tbaa !5
  %18331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18318, ptr noundef @.str.5, i32 noundef %18319, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 953, ptr noundef %18322, ptr noundef %18325, ptr noundef %18328, i32 noundef %18330) #12
  br label %18332

18332:                                            ; preds = %18315, %18298
  call void @llvm.lifetime.end.p0(i64 4, ptr %366) #12
  br label %18333

18333:                                            ; preds = %18332
  br label %18334

18334:                                            ; preds = %18333
  call void @exit(i32 noundef 1) #14
  unreachable

18335:                                            ; No predecessors!
  br label %18336

18336:                                            ; preds = %18335
  br label %18337

18337:                                            ; preds = %18336, %18279
  br label %18338

18338:                                            ; preds = %18337
  br label %18339

18339:                                            ; preds = %18338
  %18340 = load ptr, ptr %365, align 8, !tbaa !9
  %18341 = getelementptr inbounds %struct.s2n_connection, ptr %18340, i32 0, i32 2
  store ptr %325, ptr %18341, align 8, !tbaa !80
  %18342 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %18343 = load ptr, ptr %365, align 8, !tbaa !9
  %18344 = getelementptr inbounds %struct.s2n_connection, ptr %18343, i32 0, i32 31
  %18345 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %18344, i32 0, i32 1
  %18346 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %18345, i32 0, i32 0
  store ptr %18342, ptr %18346, align 8, !tbaa !57
  br label %18347

18347:                                            ; preds = %18339
  %18348 = load i32, ptr @test_count, align 4, !tbaa !5
  %18349 = add nsw i32 %18348, 1
  store i32 %18349, ptr @test_count, align 4, !tbaa !5
  %18350 = load ptr, ptr %365, align 8, !tbaa !9
  %18351 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %18350, i8 noundef zeroext 33)
  %18352 = icmp eq i32 %18351, -1
  br i1 %18352, label %18353, label %18406

18353:                                            ; preds = %18347
  br label %18354

18354:                                            ; preds = %18353
  br label %18355

18355:                                            ; preds = %18354
  call void @llvm.lifetime.start.p0(i64 4, ptr %367) #12
  %18356 = call ptr @__errno_location() #13
  %18357 = load i32, ptr %18356, align 4, !tbaa !5
  store i32 %18357, ptr %367, align 4, !tbaa !5
  %18358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18359 = call i32 @s2n_print_stacktrace(ptr noundef %18358)
  %18360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18361 = trunc i8 %18360 to i1
  br i1 %18361, label %18362, label %18384

18362:                                            ; preds = %18355
  %18363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18364 = call i32 @fileno(ptr noundef %18363) #12
  %18365 = call i32 @isatty(i32 noundef %18364) #12
  %18366 = icmp ne i32 %18365, 0
  br i1 %18366, label %18367, label %18384

18367:                                            ; preds = %18362
  %18368 = load i32, ptr %367, align 4, !tbaa !5
  %18369 = call ptr @__errno_location() #13
  store i32 %18368, ptr %18369, align 4, !tbaa !5
  %18370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18371 = load i32, ptr @test_count, align 4, !tbaa !5
  %18372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18373 = load i32, ptr %18372, align 4, !tbaa !5
  %18374 = call ptr @s2n_strerror(i32 noundef %18373, ptr noundef @.str.4)
  %18375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18376 = load i32, ptr %18375, align 4, !tbaa !5
  %18377 = call ptr @s2n_strerror_debug(i32 noundef %18376, ptr noundef @.str.4)
  %18378 = call ptr @__errno_location() #13
  %18379 = load i32, ptr %18378, align 4, !tbaa !5
  %18380 = call ptr @strerror(i32 noundef %18379) #12
  %18381 = call ptr @__errno_location() #13
  %18382 = load i32, ptr %18381, align 4, !tbaa !5
  %18383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18370, ptr noundef @.str.2, i32 noundef %18371, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 956, ptr noundef %18374, ptr noundef %18377, ptr noundef %18380, i32 noundef %18382) #12
  br label %18401

18384:                                            ; preds = %18362, %18355
  %18385 = load i32, ptr %367, align 4, !tbaa !5
  %18386 = call ptr @__errno_location() #13
  store i32 %18385, ptr %18386, align 4, !tbaa !5
  %18387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18388 = load i32, ptr @test_count, align 4, !tbaa !5
  %18389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18390 = load i32, ptr %18389, align 4, !tbaa !5
  %18391 = call ptr @s2n_strerror(i32 noundef %18390, ptr noundef @.str.4)
  %18392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18393 = load i32, ptr %18392, align 4, !tbaa !5
  %18394 = call ptr @s2n_strerror_debug(i32 noundef %18393, ptr noundef @.str.4)
  %18395 = call ptr @__errno_location() #13
  %18396 = load i32, ptr %18395, align 4, !tbaa !5
  %18397 = call ptr @strerror(i32 noundef %18396) #12
  %18398 = call ptr @__errno_location() #13
  %18399 = load i32, ptr %18398, align 4, !tbaa !5
  %18400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18387, ptr noundef @.str.5, i32 noundef %18388, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 956, ptr noundef %18391, ptr noundef %18394, ptr noundef %18397, i32 noundef %18399) #12
  br label %18401

18401:                                            ; preds = %18384, %18367
  call void @llvm.lifetime.end.p0(i64 4, ptr %367) #12
  br label %18402

18402:                                            ; preds = %18401
  br label %18403

18403:                                            ; preds = %18402
  call void @exit(i32 noundef 1) #14
  unreachable

18404:                                            ; No predecessors!
  br label %18405

18405:                                            ; preds = %18404
  br label %18406

18406:                                            ; preds = %18405, %18347
  br label %18407

18407:                                            ; preds = %18406
  br label %18408

18408:                                            ; preds = %18407
  br label %18409

18409:                                            ; preds = %18408
  %18410 = load i32, ptr @test_count, align 4, !tbaa !5
  %18411 = add nsw i32 %18410, 1
  store i32 %18411, ptr @test_count, align 4, !tbaa !5
  %18412 = load ptr, ptr %365, align 8, !tbaa !9
  %18413 = load ptr, ptr %326, align 8, !tbaa !9
  %18414 = call i32 @s2n_connection_set_config(ptr noundef %18412, ptr noundef %18413)
  %18415 = icmp eq i32 %18414, -1
  br i1 %18415, label %18416, label %18469

18416:                                            ; preds = %18409
  br label %18417

18417:                                            ; preds = %18416
  br label %18418

18418:                                            ; preds = %18417
  call void @llvm.lifetime.start.p0(i64 4, ptr %368) #12
  %18419 = call ptr @__errno_location() #13
  %18420 = load i32, ptr %18419, align 4, !tbaa !5
  store i32 %18420, ptr %368, align 4, !tbaa !5
  %18421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18422 = call i32 @s2n_print_stacktrace(ptr noundef %18421)
  %18423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18424 = trunc i8 %18423 to i1
  br i1 %18424, label %18425, label %18447

18425:                                            ; preds = %18418
  %18426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18427 = call i32 @fileno(ptr noundef %18426) #12
  %18428 = call i32 @isatty(i32 noundef %18427) #12
  %18429 = icmp ne i32 %18428, 0
  br i1 %18429, label %18430, label %18447

18430:                                            ; preds = %18425
  %18431 = load i32, ptr %368, align 4, !tbaa !5
  %18432 = call ptr @__errno_location() #13
  store i32 %18431, ptr %18432, align 4, !tbaa !5
  %18433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18434 = load i32, ptr @test_count, align 4, !tbaa !5
  %18435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18436 = load i32, ptr %18435, align 4, !tbaa !5
  %18437 = call ptr @s2n_strerror(i32 noundef %18436, ptr noundef @.str.4)
  %18438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18439 = load i32, ptr %18438, align 4, !tbaa !5
  %18440 = call ptr @s2n_strerror_debug(i32 noundef %18439, ptr noundef @.str.4)
  %18441 = call ptr @__errno_location() #13
  %18442 = load i32, ptr %18441, align 4, !tbaa !5
  %18443 = call ptr @strerror(i32 noundef %18442) #12
  %18444 = call ptr @__errno_location() #13
  %18445 = load i32, ptr %18444, align 4, !tbaa !5
  %18446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18433, ptr noundef @.str.2, i32 noundef %18434, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 957, ptr noundef %18437, ptr noundef %18440, ptr noundef %18443, i32 noundef %18445) #12
  br label %18464

18447:                                            ; preds = %18425, %18418
  %18448 = load i32, ptr %368, align 4, !tbaa !5
  %18449 = call ptr @__errno_location() #13
  store i32 %18448, ptr %18449, align 4, !tbaa !5
  %18450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18451 = load i32, ptr @test_count, align 4, !tbaa !5
  %18452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18453 = load i32, ptr %18452, align 4, !tbaa !5
  %18454 = call ptr @s2n_strerror(i32 noundef %18453, ptr noundef @.str.4)
  %18455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18456 = load i32, ptr %18455, align 4, !tbaa !5
  %18457 = call ptr @s2n_strerror_debug(i32 noundef %18456, ptr noundef @.str.4)
  %18458 = call ptr @__errno_location() #13
  %18459 = load i32, ptr %18458, align 4, !tbaa !5
  %18460 = call ptr @strerror(i32 noundef %18459) #12
  %18461 = call ptr @__errno_location() #13
  %18462 = load i32, ptr %18461, align 4, !tbaa !5
  %18463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18450, ptr noundef @.str.5, i32 noundef %18451, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 957, ptr noundef %18454, ptr noundef %18457, ptr noundef %18460, i32 noundef %18462) #12
  br label %18464

18464:                                            ; preds = %18447, %18430
  call void @llvm.lifetime.end.p0(i64 4, ptr %368) #12
  br label %18465

18465:                                            ; preds = %18464
  br label %18466

18466:                                            ; preds = %18465
  call void @exit(i32 noundef 1) #14
  unreachable

18467:                                            ; No predecessors!
  br label %18468

18468:                                            ; preds = %18467
  br label %18469

18469:                                            ; preds = %18468, %18409
  br label %18470

18470:                                            ; preds = %18469
  br label %18471

18471:                                            ; preds = %18470
  call void @llvm.lifetime.start.p0(i64 4, ptr %369) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %369, ptr align 1 @__const.main.wire.156, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %370) #12
  store i8 2, ptr %370, align 1, !tbaa !54
  %18472 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %371, i32 0, i32 0
  store i16 3, ptr %18472, align 8, !tbaa !60
  %18473 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %371, i32 0, i32 1
  store ptr @main.test_cipher_suite_list.155, ptr %18473, align 8, !tbaa !58
  %18474 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %371, i32 0, i32 2
  store i8 1, ptr %18474, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %371, i64 24, i1 false), !tbaa.struct !82
  %18475 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 1, ptr %18475, align 8, !tbaa !81
  br label %18476

18476:                                            ; preds = %18471
  %18477 = load i32, ptr @test_count, align 4, !tbaa !5
  %18478 = add nsw i32 %18477, 1
  store i32 %18478, ptr @test_count, align 4, !tbaa !5
  %18479 = load ptr, ptr %365, align 8, !tbaa !9
  %18480 = getelementptr inbounds [4 x i8], ptr %369, i64 0, i64 0
  %18481 = load i8, ptr %370, align 1, !tbaa !54
  %18482 = zext i8 %18481 to i16
  %18483 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %18479, ptr noundef %18480, i16 noundef zeroext %18482)
  %18484 = icmp eq i32 %18483, -1
  br i1 %18484, label %18485, label %18538

18485:                                            ; preds = %18476
  br label %18486

18486:                                            ; preds = %18485
  br label %18487

18487:                                            ; preds = %18486
  call void @llvm.lifetime.start.p0(i64 4, ptr %372) #12
  %18488 = call ptr @__errno_location() #13
  %18489 = load i32, ptr %18488, align 4, !tbaa !5
  store i32 %18489, ptr %372, align 4, !tbaa !5
  %18490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18491 = call i32 @s2n_print_stacktrace(ptr noundef %18490)
  %18492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18493 = trunc i8 %18492 to i1
  br i1 %18493, label %18494, label %18516

18494:                                            ; preds = %18487
  %18495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18496 = call i32 @fileno(ptr noundef %18495) #12
  %18497 = call i32 @isatty(i32 noundef %18496) #12
  %18498 = icmp ne i32 %18497, 0
  br i1 %18498, label %18499, label %18516

18499:                                            ; preds = %18494
  %18500 = load i32, ptr %372, align 4, !tbaa !5
  %18501 = call ptr @__errno_location() #13
  store i32 %18500, ptr %18501, align 4, !tbaa !5
  %18502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18503 = load i32, ptr @test_count, align 4, !tbaa !5
  %18504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18505 = load i32, ptr %18504, align 4, !tbaa !5
  %18506 = call ptr @s2n_strerror(i32 noundef %18505, ptr noundef @.str.4)
  %18507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18508 = load i32, ptr %18507, align 4, !tbaa !5
  %18509 = call ptr @s2n_strerror_debug(i32 noundef %18508, ptr noundef @.str.4)
  %18510 = call ptr @__errno_location() #13
  %18511 = load i32, ptr %18510, align 4, !tbaa !5
  %18512 = call ptr @strerror(i32 noundef %18511) #12
  %18513 = call ptr @__errno_location() #13
  %18514 = load i32, ptr %18513, align 4, !tbaa !5
  %18515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18502, ptr noundef @.str.2, i32 noundef %18503, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 984, ptr noundef %18506, ptr noundef %18509, ptr noundef %18512, i32 noundef %18514) #12
  br label %18533

18516:                                            ; preds = %18494, %18487
  %18517 = load i32, ptr %372, align 4, !tbaa !5
  %18518 = call ptr @__errno_location() #13
  store i32 %18517, ptr %18518, align 4, !tbaa !5
  %18519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18520 = load i32, ptr @test_count, align 4, !tbaa !5
  %18521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18522 = load i32, ptr %18521, align 4, !tbaa !5
  %18523 = call ptr @s2n_strerror(i32 noundef %18522, ptr noundef @.str.4)
  %18524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18525 = load i32, ptr %18524, align 4, !tbaa !5
  %18526 = call ptr @s2n_strerror_debug(i32 noundef %18525, ptr noundef @.str.4)
  %18527 = call ptr @__errno_location() #13
  %18528 = load i32, ptr %18527, align 4, !tbaa !5
  %18529 = call ptr @strerror(i32 noundef %18528) #12
  %18530 = call ptr @__errno_location() #13
  %18531 = load i32, ptr %18530, align 4, !tbaa !5
  %18532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18519, ptr noundef @.str.5, i32 noundef %18520, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 984, ptr noundef %18523, ptr noundef %18526, ptr noundef %18529, i32 noundef %18531) #12
  br label %18533

18533:                                            ; preds = %18516, %18499
  call void @llvm.lifetime.end.p0(i64 4, ptr %372) #12
  br label %18534

18534:                                            ; preds = %18533
  br label %18535

18535:                                            ; preds = %18534
  call void @exit(i32 noundef 1) #14
  unreachable

18536:                                            ; No predecessors!
  br label %18537

18537:                                            ; preds = %18536
  br label %18538

18538:                                            ; preds = %18537, %18476
  br label %18539

18539:                                            ; preds = %18538
  br label %18540

18540:                                            ; preds = %18539
  br label %18541

18541:                                            ; preds = %18540
  %18542 = load i32, ptr @test_count, align 4, !tbaa !5
  %18543 = add nsw i32 %18542, 1
  store i32 %18543, ptr @test_count, align 4, !tbaa !5
  %18544 = load ptr, ptr %365, align 8, !tbaa !9
  %18545 = getelementptr inbounds %struct.s2n_connection, ptr %18544, i32 0, i32 27
  %18546 = load ptr, ptr %18545, align 8, !tbaa !48
  %18547 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %18546, i32 0, i32 0
  %18548 = load ptr, ptr %18547, align 8, !tbaa !49
  %18549 = icmp eq ptr %18548, @s2n_ecdhe_rsa_with_chacha20_poly1305_sha256
  br i1 %18549, label %18603, label %18550

18550:                                            ; preds = %18541
  br label %18551

18551:                                            ; preds = %18550
  br label %18552

18552:                                            ; preds = %18551
  call void @llvm.lifetime.start.p0(i64 4, ptr %373) #12
  %18553 = call ptr @__errno_location() #13
  %18554 = load i32, ptr %18553, align 4, !tbaa !5
  store i32 %18554, ptr %373, align 4, !tbaa !5
  %18555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18556 = call i32 @s2n_print_stacktrace(ptr noundef %18555)
  %18557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18558 = trunc i8 %18557 to i1
  br i1 %18558, label %18559, label %18581

18559:                                            ; preds = %18552
  %18560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18561 = call i32 @fileno(ptr noundef %18560) #12
  %18562 = call i32 @isatty(i32 noundef %18561) #12
  %18563 = icmp ne i32 %18562, 0
  br i1 %18563, label %18564, label %18581

18564:                                            ; preds = %18559
  %18565 = load i32, ptr %373, align 4, !tbaa !5
  %18566 = call ptr @__errno_location() #13
  store i32 %18565, ptr %18566, align 4, !tbaa !5
  %18567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18568 = load i32, ptr @test_count, align 4, !tbaa !5
  %18569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18570 = load i32, ptr %18569, align 4, !tbaa !5
  %18571 = call ptr @s2n_strerror(i32 noundef %18570, ptr noundef @.str.4)
  %18572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18573 = load i32, ptr %18572, align 4, !tbaa !5
  %18574 = call ptr @s2n_strerror_debug(i32 noundef %18573, ptr noundef @.str.4)
  %18575 = call ptr @__errno_location() #13
  %18576 = load i32, ptr %18575, align 4, !tbaa !5
  %18577 = call ptr @strerror(i32 noundef %18576) #12
  %18578 = call ptr @__errno_location() #13
  %18579 = load i32, ptr %18578, align 4, !tbaa !5
  %18580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18567, ptr noundef @.str.2, i32 noundef %18568, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 985, ptr noundef %18571, ptr noundef %18574, ptr noundef %18577, i32 noundef %18579) #12
  br label %18598

18581:                                            ; preds = %18559, %18552
  %18582 = load i32, ptr %373, align 4, !tbaa !5
  %18583 = call ptr @__errno_location() #13
  store i32 %18582, ptr %18583, align 4, !tbaa !5
  %18584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18585 = load i32, ptr @test_count, align 4, !tbaa !5
  %18586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18587 = load i32, ptr %18586, align 4, !tbaa !5
  %18588 = call ptr @s2n_strerror(i32 noundef %18587, ptr noundef @.str.4)
  %18589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18590 = load i32, ptr %18589, align 4, !tbaa !5
  %18591 = call ptr @s2n_strerror_debug(i32 noundef %18590, ptr noundef @.str.4)
  %18592 = call ptr @__errno_location() #13
  %18593 = load i32, ptr %18592, align 4, !tbaa !5
  %18594 = call ptr @strerror(i32 noundef %18593) #12
  %18595 = call ptr @__errno_location() #13
  %18596 = load i32, ptr %18595, align 4, !tbaa !5
  %18597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18584, ptr noundef @.str.5, i32 noundef %18585, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 985, ptr noundef %18588, ptr noundef %18591, ptr noundef %18594, i32 noundef %18596) #12
  br label %18598

18598:                                            ; preds = %18581, %18564
  call void @llvm.lifetime.end.p0(i64 4, ptr %373) #12
  br label %18599

18599:                                            ; preds = %18598
  br label %18600

18600:                                            ; preds = %18599
  call void @exit(i32 noundef 1) #14
  unreachable

18601:                                            ; No predecessors!
  br label %18602

18602:                                            ; preds = %18601
  br label %18603

18603:                                            ; preds = %18602, %18541
  br label %18604

18604:                                            ; preds = %18603
  br label %18605

18605:                                            ; preds = %18604
  %18606 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 0, ptr %18606, align 8, !tbaa !81
  br label %18607

18607:                                            ; preds = %18605
  %18608 = load i32, ptr @test_count, align 4, !tbaa !5
  %18609 = add nsw i32 %18608, 1
  store i32 %18609, ptr @test_count, align 4, !tbaa !5
  %18610 = load ptr, ptr %365, align 8, !tbaa !9
  %18611 = getelementptr inbounds [4 x i8], ptr %369, i64 0, i64 0
  %18612 = load i8, ptr %370, align 1, !tbaa !54
  %18613 = zext i8 %18612 to i16
  %18614 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %18610, ptr noundef %18611, i16 noundef zeroext %18613)
  %18615 = icmp eq i32 %18614, -1
  br i1 %18615, label %18616, label %18669

18616:                                            ; preds = %18607
  br label %18617

18617:                                            ; preds = %18616
  br label %18618

18618:                                            ; preds = %18617
  call void @llvm.lifetime.start.p0(i64 4, ptr %374) #12
  %18619 = call ptr @__errno_location() #13
  %18620 = load i32, ptr %18619, align 4, !tbaa !5
  store i32 %18620, ptr %374, align 4, !tbaa !5
  %18621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18622 = call i32 @s2n_print_stacktrace(ptr noundef %18621)
  %18623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18624 = trunc i8 %18623 to i1
  br i1 %18624, label %18625, label %18647

18625:                                            ; preds = %18618
  %18626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18627 = call i32 @fileno(ptr noundef %18626) #12
  %18628 = call i32 @isatty(i32 noundef %18627) #12
  %18629 = icmp ne i32 %18628, 0
  br i1 %18629, label %18630, label %18647

18630:                                            ; preds = %18625
  %18631 = load i32, ptr %374, align 4, !tbaa !5
  %18632 = call ptr @__errno_location() #13
  store i32 %18631, ptr %18632, align 4, !tbaa !5
  %18633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18634 = load i32, ptr @test_count, align 4, !tbaa !5
  %18635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18636 = load i32, ptr %18635, align 4, !tbaa !5
  %18637 = call ptr @s2n_strerror(i32 noundef %18636, ptr noundef @.str.4)
  %18638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18639 = load i32, ptr %18638, align 4, !tbaa !5
  %18640 = call ptr @s2n_strerror_debug(i32 noundef %18639, ptr noundef @.str.4)
  %18641 = call ptr @__errno_location() #13
  %18642 = load i32, ptr %18641, align 4, !tbaa !5
  %18643 = call ptr @strerror(i32 noundef %18642) #12
  %18644 = call ptr @__errno_location() #13
  %18645 = load i32, ptr %18644, align 4, !tbaa !5
  %18646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18633, ptr noundef @.str.2, i32 noundef %18634, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 990, ptr noundef %18637, ptr noundef %18640, ptr noundef %18643, i32 noundef %18645) #12
  br label %18664

18647:                                            ; preds = %18625, %18618
  %18648 = load i32, ptr %374, align 4, !tbaa !5
  %18649 = call ptr @__errno_location() #13
  store i32 %18648, ptr %18649, align 4, !tbaa !5
  %18650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18651 = load i32, ptr @test_count, align 4, !tbaa !5
  %18652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18653 = load i32, ptr %18652, align 4, !tbaa !5
  %18654 = call ptr @s2n_strerror(i32 noundef %18653, ptr noundef @.str.4)
  %18655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18656 = load i32, ptr %18655, align 4, !tbaa !5
  %18657 = call ptr @s2n_strerror_debug(i32 noundef %18656, ptr noundef @.str.4)
  %18658 = call ptr @__errno_location() #13
  %18659 = load i32, ptr %18658, align 4, !tbaa !5
  %18660 = call ptr @strerror(i32 noundef %18659) #12
  %18661 = call ptr @__errno_location() #13
  %18662 = load i32, ptr %18661, align 4, !tbaa !5
  %18663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18650, ptr noundef @.str.5, i32 noundef %18651, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 990, ptr noundef %18654, ptr noundef %18657, ptr noundef %18660, i32 noundef %18662) #12
  br label %18664

18664:                                            ; preds = %18647, %18630
  call void @llvm.lifetime.end.p0(i64 4, ptr %374) #12
  br label %18665

18665:                                            ; preds = %18664
  br label %18666

18666:                                            ; preds = %18665
  call void @exit(i32 noundef 1) #14
  unreachable

18667:                                            ; No predecessors!
  br label %18668

18668:                                            ; preds = %18667
  br label %18669

18669:                                            ; preds = %18668, %18607
  br label %18670

18670:                                            ; preds = %18669
  br label %18671

18671:                                            ; preds = %18670
  br label %18672

18672:                                            ; preds = %18671
  %18673 = load i32, ptr @test_count, align 4, !tbaa !5
  %18674 = add nsw i32 %18673, 1
  store i32 %18674, ptr @test_count, align 4, !tbaa !5
  %18675 = load ptr, ptr %365, align 8, !tbaa !9
  %18676 = getelementptr inbounds %struct.s2n_connection, ptr %18675, i32 0, i32 27
  %18677 = load ptr, ptr %18676, align 8, !tbaa !48
  %18678 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %18677, i32 0, i32 0
  %18679 = load ptr, ptr %18678, align 8, !tbaa !49
  %18680 = icmp eq ptr %18679, @s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256
  br i1 %18680, label %18734, label %18681

18681:                                            ; preds = %18672
  br label %18682

18682:                                            ; preds = %18681
  br label %18683

18683:                                            ; preds = %18682
  call void @llvm.lifetime.start.p0(i64 4, ptr %375) #12
  %18684 = call ptr @__errno_location() #13
  %18685 = load i32, ptr %18684, align 4, !tbaa !5
  store i32 %18685, ptr %375, align 4, !tbaa !5
  %18686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18687 = call i32 @s2n_print_stacktrace(ptr noundef %18686)
  %18688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18689 = trunc i8 %18688 to i1
  br i1 %18689, label %18690, label %18712

18690:                                            ; preds = %18683
  %18691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18692 = call i32 @fileno(ptr noundef %18691) #12
  %18693 = call i32 @isatty(i32 noundef %18692) #12
  %18694 = icmp ne i32 %18693, 0
  br i1 %18694, label %18695, label %18712

18695:                                            ; preds = %18690
  %18696 = load i32, ptr %375, align 4, !tbaa !5
  %18697 = call ptr @__errno_location() #13
  store i32 %18696, ptr %18697, align 4, !tbaa !5
  %18698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18699 = load i32, ptr @test_count, align 4, !tbaa !5
  %18700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18701 = load i32, ptr %18700, align 4, !tbaa !5
  %18702 = call ptr @s2n_strerror(i32 noundef %18701, ptr noundef @.str.4)
  %18703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18704 = load i32, ptr %18703, align 4, !tbaa !5
  %18705 = call ptr @s2n_strerror_debug(i32 noundef %18704, ptr noundef @.str.4)
  %18706 = call ptr @__errno_location() #13
  %18707 = load i32, ptr %18706, align 4, !tbaa !5
  %18708 = call ptr @strerror(i32 noundef %18707) #12
  %18709 = call ptr @__errno_location() #13
  %18710 = load i32, ptr %18709, align 4, !tbaa !5
  %18711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18698, ptr noundef @.str.2, i32 noundef %18699, ptr noundef @.str.157, ptr noundef @.str.1, i32 noundef 991, ptr noundef %18702, ptr noundef %18705, ptr noundef %18708, i32 noundef %18710) #12
  br label %18729

18712:                                            ; preds = %18690, %18683
  %18713 = load i32, ptr %375, align 4, !tbaa !5
  %18714 = call ptr @__errno_location() #13
  store i32 %18713, ptr %18714, align 4, !tbaa !5
  %18715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18716 = load i32, ptr @test_count, align 4, !tbaa !5
  %18717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18718 = load i32, ptr %18717, align 4, !tbaa !5
  %18719 = call ptr @s2n_strerror(i32 noundef %18718, ptr noundef @.str.4)
  %18720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18721 = load i32, ptr %18720, align 4, !tbaa !5
  %18722 = call ptr @s2n_strerror_debug(i32 noundef %18721, ptr noundef @.str.4)
  %18723 = call ptr @__errno_location() #13
  %18724 = load i32, ptr %18723, align 4, !tbaa !5
  %18725 = call ptr @strerror(i32 noundef %18724) #12
  %18726 = call ptr @__errno_location() #13
  %18727 = load i32, ptr %18726, align 4, !tbaa !5
  %18728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18715, ptr noundef @.str.5, i32 noundef %18716, ptr noundef @.str.157, ptr noundef @.str.1, i32 noundef 991, ptr noundef %18719, ptr noundef %18722, ptr noundef %18725, i32 noundef %18727) #12
  br label %18729

18729:                                            ; preds = %18712, %18695
  call void @llvm.lifetime.end.p0(i64 4, ptr %375) #12
  br label %18730

18730:                                            ; preds = %18729
  br label %18731

18731:                                            ; preds = %18730
  call void @exit(i32 noundef 1) #14
  unreachable

18732:                                            ; No predecessors!
  br label %18733

18733:                                            ; preds = %18732
  br label %18734

18734:                                            ; preds = %18733, %18672
  br label %18735

18735:                                            ; preds = %18734
  br label %18736

18736:                                            ; preds = %18735
  call void @llvm.lifetime.end.p0(i64 1, ptr %370) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %369) #12
  %18737 = call i32 @s2n_connection_ptr_free(ptr noundef %365)
  %18738 = getelementptr inbounds %struct.s2n_result, ptr %376, i32 0, i32 0
  store i32 %18737, ptr %18738, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %365) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %377) #12
  %18739 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %18739, ptr %377, align 8, !tbaa !9
  br label %18740

18740:                                            ; preds = %18736
  %18741 = load i32, ptr @test_count, align 4, !tbaa !5
  %18742 = add nsw i32 %18741, 1
  store i32 %18742, ptr @test_count, align 4, !tbaa !5
  %18743 = load ptr, ptr %377, align 8, !tbaa !9
  %18744 = icmp eq ptr %18743, null
  br i1 %18744, label %18745, label %18798

18745:                                            ; preds = %18740
  br label %18746

18746:                                            ; preds = %18745
  br label %18747

18747:                                            ; preds = %18746
  call void @llvm.lifetime.start.p0(i64 4, ptr %378) #12
  %18748 = call ptr @__errno_location() #13
  %18749 = load i32, ptr %18748, align 4, !tbaa !5
  store i32 %18749, ptr %378, align 4, !tbaa !5
  %18750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18751 = call i32 @s2n_print_stacktrace(ptr noundef %18750)
  %18752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18753 = trunc i8 %18752 to i1
  br i1 %18753, label %18754, label %18776

18754:                                            ; preds = %18747
  %18755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18756 = call i32 @fileno(ptr noundef %18755) #12
  %18757 = call i32 @isatty(i32 noundef %18756) #12
  %18758 = icmp ne i32 %18757, 0
  br i1 %18758, label %18759, label %18776

18759:                                            ; preds = %18754
  %18760 = load i32, ptr %378, align 4, !tbaa !5
  %18761 = call ptr @__errno_location() #13
  store i32 %18760, ptr %18761, align 4, !tbaa !5
  %18762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18763 = load i32, ptr @test_count, align 4, !tbaa !5
  %18764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18765 = load i32, ptr %18764, align 4, !tbaa !5
  %18766 = call ptr @s2n_strerror(i32 noundef %18765, ptr noundef @.str.4)
  %18767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18768 = load i32, ptr %18767, align 4, !tbaa !5
  %18769 = call ptr @s2n_strerror_debug(i32 noundef %18768, ptr noundef @.str.4)
  %18770 = call ptr @__errno_location() #13
  %18771 = load i32, ptr %18770, align 4, !tbaa !5
  %18772 = call ptr @strerror(i32 noundef %18771) #12
  %18773 = call ptr @__errno_location() #13
  %18774 = load i32, ptr %18773, align 4, !tbaa !5
  %18775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18762, ptr noundef @.str.2, i32 noundef %18763, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 997, ptr noundef %18766, ptr noundef %18769, ptr noundef %18772, i32 noundef %18774) #12
  br label %18793

18776:                                            ; preds = %18754, %18747
  %18777 = load i32, ptr %378, align 4, !tbaa !5
  %18778 = call ptr @__errno_location() #13
  store i32 %18777, ptr %18778, align 4, !tbaa !5
  %18779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18780 = load i32, ptr @test_count, align 4, !tbaa !5
  %18781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18782 = load i32, ptr %18781, align 4, !tbaa !5
  %18783 = call ptr @s2n_strerror(i32 noundef %18782, ptr noundef @.str.4)
  %18784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18785 = load i32, ptr %18784, align 4, !tbaa !5
  %18786 = call ptr @s2n_strerror_debug(i32 noundef %18785, ptr noundef @.str.4)
  %18787 = call ptr @__errno_location() #13
  %18788 = load i32, ptr %18787, align 4, !tbaa !5
  %18789 = call ptr @strerror(i32 noundef %18788) #12
  %18790 = call ptr @__errno_location() #13
  %18791 = load i32, ptr %18790, align 4, !tbaa !5
  %18792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18779, ptr noundef @.str.5, i32 noundef %18780, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 997, ptr noundef %18783, ptr noundef %18786, ptr noundef %18789, i32 noundef %18791) #12
  br label %18793

18793:                                            ; preds = %18776, %18759
  call void @llvm.lifetime.end.p0(i64 4, ptr %378) #12
  br label %18794

18794:                                            ; preds = %18793
  br label %18795

18795:                                            ; preds = %18794
  call void @exit(i32 noundef 1) #14
  unreachable

18796:                                            ; No predecessors!
  br label %18797

18797:                                            ; preds = %18796
  br label %18798

18798:                                            ; preds = %18797, %18740
  br label %18799

18799:                                            ; preds = %18798
  br label %18800

18800:                                            ; preds = %18799
  %18801 = load ptr, ptr %377, align 8, !tbaa !9
  %18802 = getelementptr inbounds %struct.s2n_connection, ptr %18801, i32 0, i32 2
  store ptr %325, ptr %18802, align 8, !tbaa !80
  %18803 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %18804 = load ptr, ptr %377, align 8, !tbaa !9
  %18805 = getelementptr inbounds %struct.s2n_connection, ptr %18804, i32 0, i32 31
  %18806 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %18805, i32 0, i32 1
  %18807 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %18806, i32 0, i32 0
  store ptr %18803, ptr %18807, align 8, !tbaa !57
  br label %18808

18808:                                            ; preds = %18800
  %18809 = load i32, ptr @test_count, align 4, !tbaa !5
  %18810 = add nsw i32 %18809, 1
  store i32 %18810, ptr @test_count, align 4, !tbaa !5
  %18811 = load ptr, ptr %377, align 8, !tbaa !9
  %18812 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %18811, i8 noundef zeroext 33)
  %18813 = icmp eq i32 %18812, -1
  br i1 %18813, label %18814, label %18867

18814:                                            ; preds = %18808
  br label %18815

18815:                                            ; preds = %18814
  br label %18816

18816:                                            ; preds = %18815
  call void @llvm.lifetime.start.p0(i64 4, ptr %379) #12
  %18817 = call ptr @__errno_location() #13
  %18818 = load i32, ptr %18817, align 4, !tbaa !5
  store i32 %18818, ptr %379, align 4, !tbaa !5
  %18819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18820 = call i32 @s2n_print_stacktrace(ptr noundef %18819)
  %18821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18822 = trunc i8 %18821 to i1
  br i1 %18822, label %18823, label %18845

18823:                                            ; preds = %18816
  %18824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18825 = call i32 @fileno(ptr noundef %18824) #12
  %18826 = call i32 @isatty(i32 noundef %18825) #12
  %18827 = icmp ne i32 %18826, 0
  br i1 %18827, label %18828, label %18845

18828:                                            ; preds = %18823
  %18829 = load i32, ptr %379, align 4, !tbaa !5
  %18830 = call ptr @__errno_location() #13
  store i32 %18829, ptr %18830, align 4, !tbaa !5
  %18831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18832 = load i32, ptr @test_count, align 4, !tbaa !5
  %18833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18834 = load i32, ptr %18833, align 4, !tbaa !5
  %18835 = call ptr @s2n_strerror(i32 noundef %18834, ptr noundef @.str.4)
  %18836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18837 = load i32, ptr %18836, align 4, !tbaa !5
  %18838 = call ptr @s2n_strerror_debug(i32 noundef %18837, ptr noundef @.str.4)
  %18839 = call ptr @__errno_location() #13
  %18840 = load i32, ptr %18839, align 4, !tbaa !5
  %18841 = call ptr @strerror(i32 noundef %18840) #12
  %18842 = call ptr @__errno_location() #13
  %18843 = load i32, ptr %18842, align 4, !tbaa !5
  %18844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18831, ptr noundef @.str.2, i32 noundef %18832, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1000, ptr noundef %18835, ptr noundef %18838, ptr noundef %18841, i32 noundef %18843) #12
  br label %18862

18845:                                            ; preds = %18823, %18816
  %18846 = load i32, ptr %379, align 4, !tbaa !5
  %18847 = call ptr @__errno_location() #13
  store i32 %18846, ptr %18847, align 4, !tbaa !5
  %18848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18849 = load i32, ptr @test_count, align 4, !tbaa !5
  %18850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18851 = load i32, ptr %18850, align 4, !tbaa !5
  %18852 = call ptr @s2n_strerror(i32 noundef %18851, ptr noundef @.str.4)
  %18853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18854 = load i32, ptr %18853, align 4, !tbaa !5
  %18855 = call ptr @s2n_strerror_debug(i32 noundef %18854, ptr noundef @.str.4)
  %18856 = call ptr @__errno_location() #13
  %18857 = load i32, ptr %18856, align 4, !tbaa !5
  %18858 = call ptr @strerror(i32 noundef %18857) #12
  %18859 = call ptr @__errno_location() #13
  %18860 = load i32, ptr %18859, align 4, !tbaa !5
  %18861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18848, ptr noundef @.str.5, i32 noundef %18849, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1000, ptr noundef %18852, ptr noundef %18855, ptr noundef %18858, i32 noundef %18860) #12
  br label %18862

18862:                                            ; preds = %18845, %18828
  call void @llvm.lifetime.end.p0(i64 4, ptr %379) #12
  br label %18863

18863:                                            ; preds = %18862
  br label %18864

18864:                                            ; preds = %18863
  call void @exit(i32 noundef 1) #14
  unreachable

18865:                                            ; No predecessors!
  br label %18866

18866:                                            ; preds = %18865
  br label %18867

18867:                                            ; preds = %18866, %18808
  br label %18868

18868:                                            ; preds = %18867
  br label %18869

18869:                                            ; preds = %18868
  br label %18870

18870:                                            ; preds = %18869
  %18871 = load i32, ptr @test_count, align 4, !tbaa !5
  %18872 = add nsw i32 %18871, 1
  store i32 %18872, ptr @test_count, align 4, !tbaa !5
  %18873 = load ptr, ptr %377, align 8, !tbaa !9
  %18874 = load ptr, ptr %326, align 8, !tbaa !9
  %18875 = call i32 @s2n_connection_set_config(ptr noundef %18873, ptr noundef %18874)
  %18876 = icmp eq i32 %18875, -1
  br i1 %18876, label %18877, label %18930

18877:                                            ; preds = %18870
  br label %18878

18878:                                            ; preds = %18877
  br label %18879

18879:                                            ; preds = %18878
  call void @llvm.lifetime.start.p0(i64 4, ptr %380) #12
  %18880 = call ptr @__errno_location() #13
  %18881 = load i32, ptr %18880, align 4, !tbaa !5
  store i32 %18881, ptr %380, align 4, !tbaa !5
  %18882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18883 = call i32 @s2n_print_stacktrace(ptr noundef %18882)
  %18884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18885 = trunc i8 %18884 to i1
  br i1 %18885, label %18886, label %18908

18886:                                            ; preds = %18879
  %18887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18888 = call i32 @fileno(ptr noundef %18887) #12
  %18889 = call i32 @isatty(i32 noundef %18888) #12
  %18890 = icmp ne i32 %18889, 0
  br i1 %18890, label %18891, label %18908

18891:                                            ; preds = %18886
  %18892 = load i32, ptr %380, align 4, !tbaa !5
  %18893 = call ptr @__errno_location() #13
  store i32 %18892, ptr %18893, align 4, !tbaa !5
  %18894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18895 = load i32, ptr @test_count, align 4, !tbaa !5
  %18896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18897 = load i32, ptr %18896, align 4, !tbaa !5
  %18898 = call ptr @s2n_strerror(i32 noundef %18897, ptr noundef @.str.4)
  %18899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18900 = load i32, ptr %18899, align 4, !tbaa !5
  %18901 = call ptr @s2n_strerror_debug(i32 noundef %18900, ptr noundef @.str.4)
  %18902 = call ptr @__errno_location() #13
  %18903 = load i32, ptr %18902, align 4, !tbaa !5
  %18904 = call ptr @strerror(i32 noundef %18903) #12
  %18905 = call ptr @__errno_location() #13
  %18906 = load i32, ptr %18905, align 4, !tbaa !5
  %18907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18894, ptr noundef @.str.2, i32 noundef %18895, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 1001, ptr noundef %18898, ptr noundef %18901, ptr noundef %18904, i32 noundef %18906) #12
  br label %18925

18908:                                            ; preds = %18886, %18879
  %18909 = load i32, ptr %380, align 4, !tbaa !5
  %18910 = call ptr @__errno_location() #13
  store i32 %18909, ptr %18910, align 4, !tbaa !5
  %18911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18912 = load i32, ptr @test_count, align 4, !tbaa !5
  %18913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18914 = load i32, ptr %18913, align 4, !tbaa !5
  %18915 = call ptr @s2n_strerror(i32 noundef %18914, ptr noundef @.str.4)
  %18916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18917 = load i32, ptr %18916, align 4, !tbaa !5
  %18918 = call ptr @s2n_strerror_debug(i32 noundef %18917, ptr noundef @.str.4)
  %18919 = call ptr @__errno_location() #13
  %18920 = load i32, ptr %18919, align 4, !tbaa !5
  %18921 = call ptr @strerror(i32 noundef %18920) #12
  %18922 = call ptr @__errno_location() #13
  %18923 = load i32, ptr %18922, align 4, !tbaa !5
  %18924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18911, ptr noundef @.str.5, i32 noundef %18912, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 1001, ptr noundef %18915, ptr noundef %18918, ptr noundef %18921, i32 noundef %18923) #12
  br label %18925

18925:                                            ; preds = %18908, %18891
  call void @llvm.lifetime.end.p0(i64 4, ptr %380) #12
  br label %18926

18926:                                            ; preds = %18925
  br label %18927

18927:                                            ; preds = %18926
  call void @exit(i32 noundef 1) #14
  unreachable

18928:                                            ; No predecessors!
  br label %18929

18929:                                            ; preds = %18928
  br label %18930

18930:                                            ; preds = %18929, %18870
  br label %18931

18931:                                            ; preds = %18930
  br label %18932

18932:                                            ; preds = %18931
  %18933 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %381, i32 0, i32 0
  store i16 3, ptr %18933, align 8, !tbaa !60
  %18934 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %381, i32 0, i32 1
  store ptr @main.test_cipher_suite_list.158, ptr %18934, align 8, !tbaa !58
  %18935 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %381, i32 0, i32 2
  store i8 1, ptr %18935, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %381, i64 24, i1 false), !tbaa.struct !82
  call void @llvm.lifetime.start.p0(i64 6, ptr %382) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %382, ptr align 1 @__const.main.wire.159, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %383) #12
  store i8 3, ptr %383, align 1, !tbaa !54
  %18936 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 1, ptr %18936, align 8, !tbaa !81
  br label %18937

18937:                                            ; preds = %18932
  %18938 = load i32, ptr @test_count, align 4, !tbaa !5
  %18939 = add nsw i32 %18938, 1
  store i32 %18939, ptr @test_count, align 4, !tbaa !5
  %18940 = load ptr, ptr %377, align 8, !tbaa !9
  %18941 = getelementptr inbounds [6 x i8], ptr %382, i64 0, i64 0
  %18942 = load i8, ptr %383, align 1, !tbaa !54
  %18943 = zext i8 %18942 to i16
  %18944 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %18940, ptr noundef %18941, i16 noundef zeroext %18943)
  %18945 = icmp eq i32 %18944, -1
  br i1 %18945, label %18946, label %18999

18946:                                            ; preds = %18937
  br label %18947

18947:                                            ; preds = %18946
  br label %18948

18948:                                            ; preds = %18947
  call void @llvm.lifetime.start.p0(i64 4, ptr %384) #12
  %18949 = call ptr @__errno_location() #13
  %18950 = load i32, ptr %18949, align 4, !tbaa !5
  store i32 %18950, ptr %384, align 4, !tbaa !5
  %18951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18952 = call i32 @s2n_print_stacktrace(ptr noundef %18951)
  %18953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18954 = trunc i8 %18953 to i1
  br i1 %18954, label %18955, label %18977

18955:                                            ; preds = %18948
  %18956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18957 = call i32 @fileno(ptr noundef %18956) #12
  %18958 = call i32 @isatty(i32 noundef %18957) #12
  %18959 = icmp ne i32 %18958, 0
  br i1 %18959, label %18960, label %18977

18960:                                            ; preds = %18955
  %18961 = load i32, ptr %384, align 4, !tbaa !5
  %18962 = call ptr @__errno_location() #13
  store i32 %18961, ptr %18962, align 4, !tbaa !5
  %18963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18964 = load i32, ptr @test_count, align 4, !tbaa !5
  %18965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18966 = load i32, ptr %18965, align 4, !tbaa !5
  %18967 = call ptr @s2n_strerror(i32 noundef %18966, ptr noundef @.str.4)
  %18968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18969 = load i32, ptr %18968, align 4, !tbaa !5
  %18970 = call ptr @s2n_strerror_debug(i32 noundef %18969, ptr noundef @.str.4)
  %18971 = call ptr @__errno_location() #13
  %18972 = load i32, ptr %18971, align 4, !tbaa !5
  %18973 = call ptr @strerror(i32 noundef %18972) #12
  %18974 = call ptr @__errno_location() #13
  %18975 = load i32, ptr %18974, align 4, !tbaa !5
  %18976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18963, ptr noundef @.str.2, i32 noundef %18964, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1030, ptr noundef %18967, ptr noundef %18970, ptr noundef %18973, i32 noundef %18975) #12
  br label %18994

18977:                                            ; preds = %18955, %18948
  %18978 = load i32, ptr %384, align 4, !tbaa !5
  %18979 = call ptr @__errno_location() #13
  store i32 %18978, ptr %18979, align 4, !tbaa !5
  %18980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18981 = load i32, ptr @test_count, align 4, !tbaa !5
  %18982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18983 = load i32, ptr %18982, align 4, !tbaa !5
  %18984 = call ptr @s2n_strerror(i32 noundef %18983, ptr noundef @.str.4)
  %18985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18986 = load i32, ptr %18985, align 4, !tbaa !5
  %18987 = call ptr @s2n_strerror_debug(i32 noundef %18986, ptr noundef @.str.4)
  %18988 = call ptr @__errno_location() #13
  %18989 = load i32, ptr %18988, align 4, !tbaa !5
  %18990 = call ptr @strerror(i32 noundef %18989) #12
  %18991 = call ptr @__errno_location() #13
  %18992 = load i32, ptr %18991, align 4, !tbaa !5
  %18993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18980, ptr noundef @.str.5, i32 noundef %18981, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1030, ptr noundef %18984, ptr noundef %18987, ptr noundef %18990, i32 noundef %18992) #12
  br label %18994

18994:                                            ; preds = %18977, %18960
  call void @llvm.lifetime.end.p0(i64 4, ptr %384) #12
  br label %18995

18995:                                            ; preds = %18994
  br label %18996

18996:                                            ; preds = %18995
  call void @exit(i32 noundef 1) #14
  unreachable

18997:                                            ; No predecessors!
  br label %18998

18998:                                            ; preds = %18997
  br label %18999

18999:                                            ; preds = %18998, %18937
  br label %19000

19000:                                            ; preds = %18999
  br label %19001

19001:                                            ; preds = %19000
  br label %19002

19002:                                            ; preds = %19001
  %19003 = load i32, ptr @test_count, align 4, !tbaa !5
  %19004 = add nsw i32 %19003, 1
  store i32 %19004, ptr @test_count, align 4, !tbaa !5
  %19005 = load ptr, ptr %377, align 8, !tbaa !9
  %19006 = getelementptr inbounds %struct.s2n_connection, ptr %19005, i32 0, i32 27
  %19007 = load ptr, ptr %19006, align 8, !tbaa !48
  %19008 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %19007, i32 0, i32 0
  %19009 = load ptr, ptr %19008, align 8, !tbaa !49
  %19010 = icmp eq ptr %19009, @s2n_ecdhe_rsa_with_chacha20_poly1305_sha256
  br i1 %19010, label %19064, label %19011

19011:                                            ; preds = %19002
  br label %19012

19012:                                            ; preds = %19011
  br label %19013

19013:                                            ; preds = %19012
  call void @llvm.lifetime.start.p0(i64 4, ptr %385) #12
  %19014 = call ptr @__errno_location() #13
  %19015 = load i32, ptr %19014, align 4, !tbaa !5
  store i32 %19015, ptr %385, align 4, !tbaa !5
  %19016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19017 = call i32 @s2n_print_stacktrace(ptr noundef %19016)
  %19018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19019 = trunc i8 %19018 to i1
  br i1 %19019, label %19020, label %19042

19020:                                            ; preds = %19013
  %19021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19022 = call i32 @fileno(ptr noundef %19021) #12
  %19023 = call i32 @isatty(i32 noundef %19022) #12
  %19024 = icmp ne i32 %19023, 0
  br i1 %19024, label %19025, label %19042

19025:                                            ; preds = %19020
  %19026 = load i32, ptr %385, align 4, !tbaa !5
  %19027 = call ptr @__errno_location() #13
  store i32 %19026, ptr %19027, align 4, !tbaa !5
  %19028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19029 = load i32, ptr @test_count, align 4, !tbaa !5
  %19030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19031 = load i32, ptr %19030, align 4, !tbaa !5
  %19032 = call ptr @s2n_strerror(i32 noundef %19031, ptr noundef @.str.4)
  %19033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19034 = load i32, ptr %19033, align 4, !tbaa !5
  %19035 = call ptr @s2n_strerror_debug(i32 noundef %19034, ptr noundef @.str.4)
  %19036 = call ptr @__errno_location() #13
  %19037 = load i32, ptr %19036, align 4, !tbaa !5
  %19038 = call ptr @strerror(i32 noundef %19037) #12
  %19039 = call ptr @__errno_location() #13
  %19040 = load i32, ptr %19039, align 4, !tbaa !5
  %19041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19028, ptr noundef @.str.2, i32 noundef %19029, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 1031, ptr noundef %19032, ptr noundef %19035, ptr noundef %19038, i32 noundef %19040) #12
  br label %19059

19042:                                            ; preds = %19020, %19013
  %19043 = load i32, ptr %385, align 4, !tbaa !5
  %19044 = call ptr @__errno_location() #13
  store i32 %19043, ptr %19044, align 4, !tbaa !5
  %19045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19046 = load i32, ptr @test_count, align 4, !tbaa !5
  %19047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19048 = load i32, ptr %19047, align 4, !tbaa !5
  %19049 = call ptr @s2n_strerror(i32 noundef %19048, ptr noundef @.str.4)
  %19050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19051 = load i32, ptr %19050, align 4, !tbaa !5
  %19052 = call ptr @s2n_strerror_debug(i32 noundef %19051, ptr noundef @.str.4)
  %19053 = call ptr @__errno_location() #13
  %19054 = load i32, ptr %19053, align 4, !tbaa !5
  %19055 = call ptr @strerror(i32 noundef %19054) #12
  %19056 = call ptr @__errno_location() #13
  %19057 = load i32, ptr %19056, align 4, !tbaa !5
  %19058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19045, ptr noundef @.str.5, i32 noundef %19046, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 1031, ptr noundef %19049, ptr noundef %19052, ptr noundef %19055, i32 noundef %19057) #12
  br label %19059

19059:                                            ; preds = %19042, %19025
  call void @llvm.lifetime.end.p0(i64 4, ptr %385) #12
  br label %19060

19060:                                            ; preds = %19059
  br label %19061

19061:                                            ; preds = %19060
  call void @exit(i32 noundef 1) #14
  unreachable

19062:                                            ; No predecessors!
  br label %19063

19063:                                            ; preds = %19062
  br label %19064

19064:                                            ; preds = %19063, %19002
  br label %19065

19065:                                            ; preds = %19064
  br label %19066

19066:                                            ; preds = %19065
  %19067 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 0, ptr %19067, align 8, !tbaa !81
  br label %19068

19068:                                            ; preds = %19066
  %19069 = load i32, ptr @test_count, align 4, !tbaa !5
  %19070 = add nsw i32 %19069, 1
  store i32 %19070, ptr @test_count, align 4, !tbaa !5
  %19071 = load ptr, ptr %377, align 8, !tbaa !9
  %19072 = getelementptr inbounds [6 x i8], ptr %382, i64 0, i64 0
  %19073 = load i8, ptr %383, align 1, !tbaa !54
  %19074 = zext i8 %19073 to i16
  %19075 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %19071, ptr noundef %19072, i16 noundef zeroext %19074)
  %19076 = icmp eq i32 %19075, -1
  br i1 %19076, label %19077, label %19130

19077:                                            ; preds = %19068
  br label %19078

19078:                                            ; preds = %19077
  br label %19079

19079:                                            ; preds = %19078
  call void @llvm.lifetime.start.p0(i64 4, ptr %386) #12
  %19080 = call ptr @__errno_location() #13
  %19081 = load i32, ptr %19080, align 4, !tbaa !5
  store i32 %19081, ptr %386, align 4, !tbaa !5
  %19082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19083 = call i32 @s2n_print_stacktrace(ptr noundef %19082)
  %19084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19085 = trunc i8 %19084 to i1
  br i1 %19085, label %19086, label %19108

19086:                                            ; preds = %19079
  %19087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19088 = call i32 @fileno(ptr noundef %19087) #12
  %19089 = call i32 @isatty(i32 noundef %19088) #12
  %19090 = icmp ne i32 %19089, 0
  br i1 %19090, label %19091, label %19108

19091:                                            ; preds = %19086
  %19092 = load i32, ptr %386, align 4, !tbaa !5
  %19093 = call ptr @__errno_location() #13
  store i32 %19092, ptr %19093, align 4, !tbaa !5
  %19094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19095 = load i32, ptr @test_count, align 4, !tbaa !5
  %19096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19097 = load i32, ptr %19096, align 4, !tbaa !5
  %19098 = call ptr @s2n_strerror(i32 noundef %19097, ptr noundef @.str.4)
  %19099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19100 = load i32, ptr %19099, align 4, !tbaa !5
  %19101 = call ptr @s2n_strerror_debug(i32 noundef %19100, ptr noundef @.str.4)
  %19102 = call ptr @__errno_location() #13
  %19103 = load i32, ptr %19102, align 4, !tbaa !5
  %19104 = call ptr @strerror(i32 noundef %19103) #12
  %19105 = call ptr @__errno_location() #13
  %19106 = load i32, ptr %19105, align 4, !tbaa !5
  %19107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19094, ptr noundef @.str.2, i32 noundef %19095, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1036, ptr noundef %19098, ptr noundef %19101, ptr noundef %19104, i32 noundef %19106) #12
  br label %19125

19108:                                            ; preds = %19086, %19079
  %19109 = load i32, ptr %386, align 4, !tbaa !5
  %19110 = call ptr @__errno_location() #13
  store i32 %19109, ptr %19110, align 4, !tbaa !5
  %19111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19112 = load i32, ptr @test_count, align 4, !tbaa !5
  %19113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19114 = load i32, ptr %19113, align 4, !tbaa !5
  %19115 = call ptr @s2n_strerror(i32 noundef %19114, ptr noundef @.str.4)
  %19116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19117 = load i32, ptr %19116, align 4, !tbaa !5
  %19118 = call ptr @s2n_strerror_debug(i32 noundef %19117, ptr noundef @.str.4)
  %19119 = call ptr @__errno_location() #13
  %19120 = load i32, ptr %19119, align 4, !tbaa !5
  %19121 = call ptr @strerror(i32 noundef %19120) #12
  %19122 = call ptr @__errno_location() #13
  %19123 = load i32, ptr %19122, align 4, !tbaa !5
  %19124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19111, ptr noundef @.str.5, i32 noundef %19112, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1036, ptr noundef %19115, ptr noundef %19118, ptr noundef %19121, i32 noundef %19123) #12
  br label %19125

19125:                                            ; preds = %19108, %19091
  call void @llvm.lifetime.end.p0(i64 4, ptr %386) #12
  br label %19126

19126:                                            ; preds = %19125
  br label %19127

19127:                                            ; preds = %19126
  call void @exit(i32 noundef 1) #14
  unreachable

19128:                                            ; No predecessors!
  br label %19129

19129:                                            ; preds = %19128
  br label %19130

19130:                                            ; preds = %19129, %19068
  br label %19131

19131:                                            ; preds = %19130
  br label %19132

19132:                                            ; preds = %19131
  br label %19133

19133:                                            ; preds = %19132
  %19134 = load i32, ptr @test_count, align 4, !tbaa !5
  %19135 = add nsw i32 %19134, 1
  store i32 %19135, ptr @test_count, align 4, !tbaa !5
  %19136 = load ptr, ptr %377, align 8, !tbaa !9
  %19137 = getelementptr inbounds %struct.s2n_connection, ptr %19136, i32 0, i32 27
  %19138 = load ptr, ptr %19137, align 8, !tbaa !48
  %19139 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %19138, i32 0, i32 0
  %19140 = load ptr, ptr %19139, align 8, !tbaa !49
  %19141 = icmp eq ptr %19140, @s2n_ecdhe_rsa_with_aes_256_cbc_sha384
  br i1 %19141, label %19195, label %19142

19142:                                            ; preds = %19133
  br label %19143

19143:                                            ; preds = %19142
  br label %19144

19144:                                            ; preds = %19143
  call void @llvm.lifetime.start.p0(i64 4, ptr %387) #12
  %19145 = call ptr @__errno_location() #13
  %19146 = load i32, ptr %19145, align 4, !tbaa !5
  store i32 %19146, ptr %387, align 4, !tbaa !5
  %19147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19148 = call i32 @s2n_print_stacktrace(ptr noundef %19147)
  %19149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19150 = trunc i8 %19149 to i1
  br i1 %19150, label %19151, label %19173

19151:                                            ; preds = %19144
  %19152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19153 = call i32 @fileno(ptr noundef %19152) #12
  %19154 = call i32 @isatty(i32 noundef %19153) #12
  %19155 = icmp ne i32 %19154, 0
  br i1 %19155, label %19156, label %19173

19156:                                            ; preds = %19151
  %19157 = load i32, ptr %387, align 4, !tbaa !5
  %19158 = call ptr @__errno_location() #13
  store i32 %19157, ptr %19158, align 4, !tbaa !5
  %19159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19160 = load i32, ptr @test_count, align 4, !tbaa !5
  %19161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19162 = load i32, ptr %19161, align 4, !tbaa !5
  %19163 = call ptr @s2n_strerror(i32 noundef %19162, ptr noundef @.str.4)
  %19164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19165 = load i32, ptr %19164, align 4, !tbaa !5
  %19166 = call ptr @s2n_strerror_debug(i32 noundef %19165, ptr noundef @.str.4)
  %19167 = call ptr @__errno_location() #13
  %19168 = load i32, ptr %19167, align 4, !tbaa !5
  %19169 = call ptr @strerror(i32 noundef %19168) #12
  %19170 = call ptr @__errno_location() #13
  %19171 = load i32, ptr %19170, align 4, !tbaa !5
  %19172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19159, ptr noundef @.str.2, i32 noundef %19160, ptr noundef @.str.154, ptr noundef @.str.1, i32 noundef 1037, ptr noundef %19163, ptr noundef %19166, ptr noundef %19169, i32 noundef %19171) #12
  br label %19190

19173:                                            ; preds = %19151, %19144
  %19174 = load i32, ptr %387, align 4, !tbaa !5
  %19175 = call ptr @__errno_location() #13
  store i32 %19174, ptr %19175, align 4, !tbaa !5
  %19176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19177 = load i32, ptr @test_count, align 4, !tbaa !5
  %19178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19179 = load i32, ptr %19178, align 4, !tbaa !5
  %19180 = call ptr @s2n_strerror(i32 noundef %19179, ptr noundef @.str.4)
  %19181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19182 = load i32, ptr %19181, align 4, !tbaa !5
  %19183 = call ptr @s2n_strerror_debug(i32 noundef %19182, ptr noundef @.str.4)
  %19184 = call ptr @__errno_location() #13
  %19185 = load i32, ptr %19184, align 4, !tbaa !5
  %19186 = call ptr @strerror(i32 noundef %19185) #12
  %19187 = call ptr @__errno_location() #13
  %19188 = load i32, ptr %19187, align 4, !tbaa !5
  %19189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19176, ptr noundef @.str.5, i32 noundef %19177, ptr noundef @.str.154, ptr noundef @.str.1, i32 noundef 1037, ptr noundef %19180, ptr noundef %19183, ptr noundef %19186, i32 noundef %19188) #12
  br label %19190

19190:                                            ; preds = %19173, %19156
  call void @llvm.lifetime.end.p0(i64 4, ptr %387) #12
  br label %19191

19191:                                            ; preds = %19190
  br label %19192

19192:                                            ; preds = %19191
  call void @exit(i32 noundef 1) #14
  unreachable

19193:                                            ; No predecessors!
  br label %19194

19194:                                            ; preds = %19193
  br label %19195

19195:                                            ; preds = %19194, %19133
  br label %19196

19196:                                            ; preds = %19195
  br label %19197

19197:                                            ; preds = %19196
  call void @llvm.lifetime.end.p0(i64 1, ptr %383) #12
  call void @llvm.lifetime.end.p0(i64 6, ptr %382) #12
  %19198 = call i32 @s2n_connection_ptr_free(ptr noundef %377)
  %19199 = getelementptr inbounds %struct.s2n_result, ptr %388, i32 0, i32 0
  store i32 %19198, ptr %19199, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %377) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %389) #12
  %19200 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %19200, ptr %389, align 8, !tbaa !9
  br label %19201

19201:                                            ; preds = %19197
  %19202 = load i32, ptr @test_count, align 4, !tbaa !5
  %19203 = add nsw i32 %19202, 1
  store i32 %19203, ptr @test_count, align 4, !tbaa !5
  %19204 = load ptr, ptr %389, align 8, !tbaa !9
  %19205 = icmp eq ptr %19204, null
  br i1 %19205, label %19206, label %19259

19206:                                            ; preds = %19201
  br label %19207

19207:                                            ; preds = %19206
  br label %19208

19208:                                            ; preds = %19207
  call void @llvm.lifetime.start.p0(i64 4, ptr %390) #12
  %19209 = call ptr @__errno_location() #13
  %19210 = load i32, ptr %19209, align 4, !tbaa !5
  store i32 %19210, ptr %390, align 4, !tbaa !5
  %19211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19212 = call i32 @s2n_print_stacktrace(ptr noundef %19211)
  %19213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19214 = trunc i8 %19213 to i1
  br i1 %19214, label %19215, label %19237

19215:                                            ; preds = %19208
  %19216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19217 = call i32 @fileno(ptr noundef %19216) #12
  %19218 = call i32 @isatty(i32 noundef %19217) #12
  %19219 = icmp ne i32 %19218, 0
  br i1 %19219, label %19220, label %19237

19220:                                            ; preds = %19215
  %19221 = load i32, ptr %390, align 4, !tbaa !5
  %19222 = call ptr @__errno_location() #13
  store i32 %19221, ptr %19222, align 4, !tbaa !5
  %19223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19224 = load i32, ptr @test_count, align 4, !tbaa !5
  %19225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19226 = load i32, ptr %19225, align 4, !tbaa !5
  %19227 = call ptr @s2n_strerror(i32 noundef %19226, ptr noundef @.str.4)
  %19228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19229 = load i32, ptr %19228, align 4, !tbaa !5
  %19230 = call ptr @s2n_strerror_debug(i32 noundef %19229, ptr noundef @.str.4)
  %19231 = call ptr @__errno_location() #13
  %19232 = load i32, ptr %19231, align 4, !tbaa !5
  %19233 = call ptr @strerror(i32 noundef %19232) #12
  %19234 = call ptr @__errno_location() #13
  %19235 = load i32, ptr %19234, align 4, !tbaa !5
  %19236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19223, ptr noundef @.str.2, i32 noundef %19224, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1043, ptr noundef %19227, ptr noundef %19230, ptr noundef %19233, i32 noundef %19235) #12
  br label %19254

19237:                                            ; preds = %19215, %19208
  %19238 = load i32, ptr %390, align 4, !tbaa !5
  %19239 = call ptr @__errno_location() #13
  store i32 %19238, ptr %19239, align 4, !tbaa !5
  %19240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19241 = load i32, ptr @test_count, align 4, !tbaa !5
  %19242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19243 = load i32, ptr %19242, align 4, !tbaa !5
  %19244 = call ptr @s2n_strerror(i32 noundef %19243, ptr noundef @.str.4)
  %19245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19246 = load i32, ptr %19245, align 4, !tbaa !5
  %19247 = call ptr @s2n_strerror_debug(i32 noundef %19246, ptr noundef @.str.4)
  %19248 = call ptr @__errno_location() #13
  %19249 = load i32, ptr %19248, align 4, !tbaa !5
  %19250 = call ptr @strerror(i32 noundef %19249) #12
  %19251 = call ptr @__errno_location() #13
  %19252 = load i32, ptr %19251, align 4, !tbaa !5
  %19253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19240, ptr noundef @.str.5, i32 noundef %19241, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1043, ptr noundef %19244, ptr noundef %19247, ptr noundef %19250, i32 noundef %19252) #12
  br label %19254

19254:                                            ; preds = %19237, %19220
  call void @llvm.lifetime.end.p0(i64 4, ptr %390) #12
  br label %19255

19255:                                            ; preds = %19254
  br label %19256

19256:                                            ; preds = %19255
  call void @exit(i32 noundef 1) #14
  unreachable

19257:                                            ; No predecessors!
  br label %19258

19258:                                            ; preds = %19257
  br label %19259

19259:                                            ; preds = %19258, %19201
  br label %19260

19260:                                            ; preds = %19259
  br label %19261

19261:                                            ; preds = %19260
  %19262 = load ptr, ptr %389, align 8, !tbaa !9
  %19263 = getelementptr inbounds %struct.s2n_connection, ptr %19262, i32 0, i32 2
  store ptr %325, ptr %19263, align 8, !tbaa !80
  %19264 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %19265 = load ptr, ptr %389, align 8, !tbaa !9
  %19266 = getelementptr inbounds %struct.s2n_connection, ptr %19265, i32 0, i32 31
  %19267 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %19266, i32 0, i32 1
  %19268 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %19267, i32 0, i32 0
  store ptr %19264, ptr %19268, align 8, !tbaa !57
  br label %19269

19269:                                            ; preds = %19261
  %19270 = load i32, ptr @test_count, align 4, !tbaa !5
  %19271 = add nsw i32 %19270, 1
  store i32 %19271, ptr @test_count, align 4, !tbaa !5
  %19272 = load ptr, ptr %389, align 8, !tbaa !9
  %19273 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %19272, i8 noundef zeroext 33)
  %19274 = icmp eq i32 %19273, -1
  br i1 %19274, label %19275, label %19328

19275:                                            ; preds = %19269
  br label %19276

19276:                                            ; preds = %19275
  br label %19277

19277:                                            ; preds = %19276
  call void @llvm.lifetime.start.p0(i64 4, ptr %391) #12
  %19278 = call ptr @__errno_location() #13
  %19279 = load i32, ptr %19278, align 4, !tbaa !5
  store i32 %19279, ptr %391, align 4, !tbaa !5
  %19280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19281 = call i32 @s2n_print_stacktrace(ptr noundef %19280)
  %19282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19283 = trunc i8 %19282 to i1
  br i1 %19283, label %19284, label %19306

19284:                                            ; preds = %19277
  %19285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19286 = call i32 @fileno(ptr noundef %19285) #12
  %19287 = call i32 @isatty(i32 noundef %19286) #12
  %19288 = icmp ne i32 %19287, 0
  br i1 %19288, label %19289, label %19306

19289:                                            ; preds = %19284
  %19290 = load i32, ptr %391, align 4, !tbaa !5
  %19291 = call ptr @__errno_location() #13
  store i32 %19290, ptr %19291, align 4, !tbaa !5
  %19292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19293 = load i32, ptr @test_count, align 4, !tbaa !5
  %19294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19295 = load i32, ptr %19294, align 4, !tbaa !5
  %19296 = call ptr @s2n_strerror(i32 noundef %19295, ptr noundef @.str.4)
  %19297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19298 = load i32, ptr %19297, align 4, !tbaa !5
  %19299 = call ptr @s2n_strerror_debug(i32 noundef %19298, ptr noundef @.str.4)
  %19300 = call ptr @__errno_location() #13
  %19301 = load i32, ptr %19300, align 4, !tbaa !5
  %19302 = call ptr @strerror(i32 noundef %19301) #12
  %19303 = call ptr @__errno_location() #13
  %19304 = load i32, ptr %19303, align 4, !tbaa !5
  %19305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19292, ptr noundef @.str.2, i32 noundef %19293, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1047, ptr noundef %19296, ptr noundef %19299, ptr noundef %19302, i32 noundef %19304) #12
  br label %19323

19306:                                            ; preds = %19284, %19277
  %19307 = load i32, ptr %391, align 4, !tbaa !5
  %19308 = call ptr @__errno_location() #13
  store i32 %19307, ptr %19308, align 4, !tbaa !5
  %19309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19310 = load i32, ptr @test_count, align 4, !tbaa !5
  %19311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19312 = load i32, ptr %19311, align 4, !tbaa !5
  %19313 = call ptr @s2n_strerror(i32 noundef %19312, ptr noundef @.str.4)
  %19314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19315 = load i32, ptr %19314, align 4, !tbaa !5
  %19316 = call ptr @s2n_strerror_debug(i32 noundef %19315, ptr noundef @.str.4)
  %19317 = call ptr @__errno_location() #13
  %19318 = load i32, ptr %19317, align 4, !tbaa !5
  %19319 = call ptr @strerror(i32 noundef %19318) #12
  %19320 = call ptr @__errno_location() #13
  %19321 = load i32, ptr %19320, align 4, !tbaa !5
  %19322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19309, ptr noundef @.str.5, i32 noundef %19310, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1047, ptr noundef %19313, ptr noundef %19316, ptr noundef %19319, i32 noundef %19321) #12
  br label %19323

19323:                                            ; preds = %19306, %19289
  call void @llvm.lifetime.end.p0(i64 4, ptr %391) #12
  br label %19324

19324:                                            ; preds = %19323
  br label %19325

19325:                                            ; preds = %19324
  call void @exit(i32 noundef 1) #14
  unreachable

19326:                                            ; No predecessors!
  br label %19327

19327:                                            ; preds = %19326
  br label %19328

19328:                                            ; preds = %19327, %19269
  br label %19329

19329:                                            ; preds = %19328
  br label %19330

19330:                                            ; preds = %19329
  br label %19331

19331:                                            ; preds = %19330
  %19332 = load i32, ptr @test_count, align 4, !tbaa !5
  %19333 = add nsw i32 %19332, 1
  store i32 %19333, ptr @test_count, align 4, !tbaa !5
  %19334 = load ptr, ptr %389, align 8, !tbaa !9
  %19335 = load ptr, ptr %326, align 8, !tbaa !9
  %19336 = call i32 @s2n_connection_set_config(ptr noundef %19334, ptr noundef %19335)
  %19337 = icmp eq i32 %19336, -1
  br i1 %19337, label %19338, label %19391

19338:                                            ; preds = %19331
  br label %19339

19339:                                            ; preds = %19338
  br label %19340

19340:                                            ; preds = %19339
  call void @llvm.lifetime.start.p0(i64 4, ptr %392) #12
  %19341 = call ptr @__errno_location() #13
  %19342 = load i32, ptr %19341, align 4, !tbaa !5
  store i32 %19342, ptr %392, align 4, !tbaa !5
  %19343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19344 = call i32 @s2n_print_stacktrace(ptr noundef %19343)
  %19345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19346 = trunc i8 %19345 to i1
  br i1 %19346, label %19347, label %19369

19347:                                            ; preds = %19340
  %19348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19349 = call i32 @fileno(ptr noundef %19348) #12
  %19350 = call i32 @isatty(i32 noundef %19349) #12
  %19351 = icmp ne i32 %19350, 0
  br i1 %19351, label %19352, label %19369

19352:                                            ; preds = %19347
  %19353 = load i32, ptr %392, align 4, !tbaa !5
  %19354 = call ptr @__errno_location() #13
  store i32 %19353, ptr %19354, align 4, !tbaa !5
  %19355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19356 = load i32, ptr @test_count, align 4, !tbaa !5
  %19357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19358 = load i32, ptr %19357, align 4, !tbaa !5
  %19359 = call ptr @s2n_strerror(i32 noundef %19358, ptr noundef @.str.4)
  %19360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19361 = load i32, ptr %19360, align 4, !tbaa !5
  %19362 = call ptr @s2n_strerror_debug(i32 noundef %19361, ptr noundef @.str.4)
  %19363 = call ptr @__errno_location() #13
  %19364 = load i32, ptr %19363, align 4, !tbaa !5
  %19365 = call ptr @strerror(i32 noundef %19364) #12
  %19366 = call ptr @__errno_location() #13
  %19367 = load i32, ptr %19366, align 4, !tbaa !5
  %19368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19355, ptr noundef @.str.2, i32 noundef %19356, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 1049, ptr noundef %19359, ptr noundef %19362, ptr noundef %19365, i32 noundef %19367) #12
  br label %19386

19369:                                            ; preds = %19347, %19340
  %19370 = load i32, ptr %392, align 4, !tbaa !5
  %19371 = call ptr @__errno_location() #13
  store i32 %19370, ptr %19371, align 4, !tbaa !5
  %19372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19373 = load i32, ptr @test_count, align 4, !tbaa !5
  %19374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19375 = load i32, ptr %19374, align 4, !tbaa !5
  %19376 = call ptr @s2n_strerror(i32 noundef %19375, ptr noundef @.str.4)
  %19377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19378 = load i32, ptr %19377, align 4, !tbaa !5
  %19379 = call ptr @s2n_strerror_debug(i32 noundef %19378, ptr noundef @.str.4)
  %19380 = call ptr @__errno_location() #13
  %19381 = load i32, ptr %19380, align 4, !tbaa !5
  %19382 = call ptr @strerror(i32 noundef %19381) #12
  %19383 = call ptr @__errno_location() #13
  %19384 = load i32, ptr %19383, align 4, !tbaa !5
  %19385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19372, ptr noundef @.str.5, i32 noundef %19373, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 1049, ptr noundef %19376, ptr noundef %19379, ptr noundef %19382, i32 noundef %19384) #12
  br label %19386

19386:                                            ; preds = %19369, %19352
  call void @llvm.lifetime.end.p0(i64 4, ptr %392) #12
  br label %19387

19387:                                            ; preds = %19386
  br label %19388

19388:                                            ; preds = %19387
  call void @exit(i32 noundef 1) #14
  unreachable

19389:                                            ; No predecessors!
  br label %19390

19390:                                            ; preds = %19389
  br label %19391

19391:                                            ; preds = %19390, %19331
  br label %19392

19392:                                            ; preds = %19391
  br label %19393

19393:                                            ; preds = %19392
  %19394 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %393, i32 0, i32 0
  store i16 2, ptr %19394, align 8, !tbaa !60
  %19395 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %393, i32 0, i32 1
  store ptr @main.test_cipher_suite_list.160, ptr %19395, align 8, !tbaa !58
  %19396 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %393, i32 0, i32 2
  store i8 1, ptr %19396, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %393, i64 24, i1 false), !tbaa.struct !82
  call void @llvm.lifetime.start.p0(i64 4, ptr %394) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %394, ptr align 1 @__const.main.wire.161, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %395) #12
  store i8 2, ptr %395, align 1, !tbaa !54
  %19397 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 1, ptr %19397, align 8, !tbaa !81
  br label %19398

19398:                                            ; preds = %19393
  %19399 = load i32, ptr @test_count, align 4, !tbaa !5
  %19400 = add nsw i32 %19399, 1
  store i32 %19400, ptr @test_count, align 4, !tbaa !5
  %19401 = load ptr, ptr %389, align 8, !tbaa !9
  %19402 = getelementptr inbounds [4 x i8], ptr %394, i64 0, i64 0
  %19403 = load i8, ptr %395, align 1, !tbaa !54
  %19404 = zext i8 %19403 to i16
  %19405 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %19401, ptr noundef %19402, i16 noundef zeroext %19404)
  %19406 = icmp eq i32 %19405, -1
  br i1 %19406, label %19407, label %19460

19407:                                            ; preds = %19398
  br label %19408

19408:                                            ; preds = %19407
  br label %19409

19409:                                            ; preds = %19408
  call void @llvm.lifetime.start.p0(i64 4, ptr %396) #12
  %19410 = call ptr @__errno_location() #13
  %19411 = load i32, ptr %19410, align 4, !tbaa !5
  store i32 %19411, ptr %396, align 4, !tbaa !5
  %19412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19413 = call i32 @s2n_print_stacktrace(ptr noundef %19412)
  %19414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19415 = trunc i8 %19414 to i1
  br i1 %19415, label %19416, label %19438

19416:                                            ; preds = %19409
  %19417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19418 = call i32 @fileno(ptr noundef %19417) #12
  %19419 = call i32 @isatty(i32 noundef %19418) #12
  %19420 = icmp ne i32 %19419, 0
  br i1 %19420, label %19421, label %19438

19421:                                            ; preds = %19416
  %19422 = load i32, ptr %396, align 4, !tbaa !5
  %19423 = call ptr @__errno_location() #13
  store i32 %19422, ptr %19423, align 4, !tbaa !5
  %19424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19425 = load i32, ptr @test_count, align 4, !tbaa !5
  %19426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19427 = load i32, ptr %19426, align 4, !tbaa !5
  %19428 = call ptr @s2n_strerror(i32 noundef %19427, ptr noundef @.str.4)
  %19429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19430 = load i32, ptr %19429, align 4, !tbaa !5
  %19431 = call ptr @s2n_strerror_debug(i32 noundef %19430, ptr noundef @.str.4)
  %19432 = call ptr @__errno_location() #13
  %19433 = load i32, ptr %19432, align 4, !tbaa !5
  %19434 = call ptr @strerror(i32 noundef %19433) #12
  %19435 = call ptr @__errno_location() #13
  %19436 = load i32, ptr %19435, align 4, !tbaa !5
  %19437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19424, ptr noundef @.str.2, i32 noundef %19425, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1074, ptr noundef %19428, ptr noundef %19431, ptr noundef %19434, i32 noundef %19436) #12
  br label %19455

19438:                                            ; preds = %19416, %19409
  %19439 = load i32, ptr %396, align 4, !tbaa !5
  %19440 = call ptr @__errno_location() #13
  store i32 %19439, ptr %19440, align 4, !tbaa !5
  %19441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19442 = load i32, ptr @test_count, align 4, !tbaa !5
  %19443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19444 = load i32, ptr %19443, align 4, !tbaa !5
  %19445 = call ptr @s2n_strerror(i32 noundef %19444, ptr noundef @.str.4)
  %19446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19447 = load i32, ptr %19446, align 4, !tbaa !5
  %19448 = call ptr @s2n_strerror_debug(i32 noundef %19447, ptr noundef @.str.4)
  %19449 = call ptr @__errno_location() #13
  %19450 = load i32, ptr %19449, align 4, !tbaa !5
  %19451 = call ptr @strerror(i32 noundef %19450) #12
  %19452 = call ptr @__errno_location() #13
  %19453 = load i32, ptr %19452, align 4, !tbaa !5
  %19454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19441, ptr noundef @.str.5, i32 noundef %19442, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1074, ptr noundef %19445, ptr noundef %19448, ptr noundef %19451, i32 noundef %19453) #12
  br label %19455

19455:                                            ; preds = %19438, %19421
  call void @llvm.lifetime.end.p0(i64 4, ptr %396) #12
  br label %19456

19456:                                            ; preds = %19455
  br label %19457

19457:                                            ; preds = %19456
  call void @exit(i32 noundef 1) #14
  unreachable

19458:                                            ; No predecessors!
  br label %19459

19459:                                            ; preds = %19458
  br label %19460

19460:                                            ; preds = %19459, %19398
  br label %19461

19461:                                            ; preds = %19460
  br label %19462

19462:                                            ; preds = %19461
  br label %19463

19463:                                            ; preds = %19462
  %19464 = load i32, ptr @test_count, align 4, !tbaa !5
  %19465 = add nsw i32 %19464, 1
  store i32 %19465, ptr @test_count, align 4, !tbaa !5
  %19466 = load ptr, ptr %389, align 8, !tbaa !9
  %19467 = getelementptr inbounds %struct.s2n_connection, ptr %19466, i32 0, i32 27
  %19468 = load ptr, ptr %19467, align 8, !tbaa !48
  %19469 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %19468, i32 0, i32 0
  %19470 = load ptr, ptr %19469, align 8, !tbaa !49
  %19471 = icmp eq ptr %19470, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %19471, label %19525, label %19472

19472:                                            ; preds = %19463
  br label %19473

19473:                                            ; preds = %19472
  br label %19474

19474:                                            ; preds = %19473
  call void @llvm.lifetime.start.p0(i64 4, ptr %397) #12
  %19475 = call ptr @__errno_location() #13
  %19476 = load i32, ptr %19475, align 4, !tbaa !5
  store i32 %19476, ptr %397, align 4, !tbaa !5
  %19477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19478 = call i32 @s2n_print_stacktrace(ptr noundef %19477)
  %19479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19480 = trunc i8 %19479 to i1
  br i1 %19480, label %19481, label %19503

19481:                                            ; preds = %19474
  %19482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19483 = call i32 @fileno(ptr noundef %19482) #12
  %19484 = call i32 @isatty(i32 noundef %19483) #12
  %19485 = icmp ne i32 %19484, 0
  br i1 %19485, label %19486, label %19503

19486:                                            ; preds = %19481
  %19487 = load i32, ptr %397, align 4, !tbaa !5
  %19488 = call ptr @__errno_location() #13
  store i32 %19487, ptr %19488, align 4, !tbaa !5
  %19489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19490 = load i32, ptr @test_count, align 4, !tbaa !5
  %19491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19492 = load i32, ptr %19491, align 4, !tbaa !5
  %19493 = call ptr @s2n_strerror(i32 noundef %19492, ptr noundef @.str.4)
  %19494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19495 = load i32, ptr %19494, align 4, !tbaa !5
  %19496 = call ptr @s2n_strerror_debug(i32 noundef %19495, ptr noundef @.str.4)
  %19497 = call ptr @__errno_location() #13
  %19498 = load i32, ptr %19497, align 4, !tbaa !5
  %19499 = call ptr @strerror(i32 noundef %19498) #12
  %19500 = call ptr @__errno_location() #13
  %19501 = load i32, ptr %19500, align 4, !tbaa !5
  %19502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19489, ptr noundef @.str.2, i32 noundef %19490, ptr noundef @.str.162, ptr noundef @.str.1, i32 noundef 1075, ptr noundef %19493, ptr noundef %19496, ptr noundef %19499, i32 noundef %19501) #12
  br label %19520

19503:                                            ; preds = %19481, %19474
  %19504 = load i32, ptr %397, align 4, !tbaa !5
  %19505 = call ptr @__errno_location() #13
  store i32 %19504, ptr %19505, align 4, !tbaa !5
  %19506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19507 = load i32, ptr @test_count, align 4, !tbaa !5
  %19508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19509 = load i32, ptr %19508, align 4, !tbaa !5
  %19510 = call ptr @s2n_strerror(i32 noundef %19509, ptr noundef @.str.4)
  %19511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19512 = load i32, ptr %19511, align 4, !tbaa !5
  %19513 = call ptr @s2n_strerror_debug(i32 noundef %19512, ptr noundef @.str.4)
  %19514 = call ptr @__errno_location() #13
  %19515 = load i32, ptr %19514, align 4, !tbaa !5
  %19516 = call ptr @strerror(i32 noundef %19515) #12
  %19517 = call ptr @__errno_location() #13
  %19518 = load i32, ptr %19517, align 4, !tbaa !5
  %19519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19506, ptr noundef @.str.5, i32 noundef %19507, ptr noundef @.str.162, ptr noundef @.str.1, i32 noundef 1075, ptr noundef %19510, ptr noundef %19513, ptr noundef %19516, i32 noundef %19518) #12
  br label %19520

19520:                                            ; preds = %19503, %19486
  call void @llvm.lifetime.end.p0(i64 4, ptr %397) #12
  br label %19521

19521:                                            ; preds = %19520
  br label %19522

19522:                                            ; preds = %19521
  call void @exit(i32 noundef 1) #14
  unreachable

19523:                                            ; No predecessors!
  br label %19524

19524:                                            ; preds = %19523
  br label %19525

19525:                                            ; preds = %19524, %19463
  br label %19526

19526:                                            ; preds = %19525
  br label %19527

19527:                                            ; preds = %19526
  call void @llvm.lifetime.end.p0(i64 1, ptr %395) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %394) #12
  %19528 = call i32 @s2n_connection_ptr_free(ptr noundef %389)
  %19529 = getelementptr inbounds %struct.s2n_result, ptr %398, i32 0, i32 0
  store i32 %19528, ptr %19529, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %389) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %399) #12
  %19530 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %19530, ptr %399, align 8, !tbaa !9
  br label %19531

19531:                                            ; preds = %19527
  %19532 = load i32, ptr @test_count, align 4, !tbaa !5
  %19533 = add nsw i32 %19532, 1
  store i32 %19533, ptr @test_count, align 4, !tbaa !5
  %19534 = load ptr, ptr %399, align 8, !tbaa !9
  %19535 = icmp eq ptr %19534, null
  br i1 %19535, label %19536, label %19589

19536:                                            ; preds = %19531
  br label %19537

19537:                                            ; preds = %19536
  br label %19538

19538:                                            ; preds = %19537
  call void @llvm.lifetime.start.p0(i64 4, ptr %400) #12
  %19539 = call ptr @__errno_location() #13
  %19540 = load i32, ptr %19539, align 4, !tbaa !5
  store i32 %19540, ptr %400, align 4, !tbaa !5
  %19541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19542 = call i32 @s2n_print_stacktrace(ptr noundef %19541)
  %19543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19544 = trunc i8 %19543 to i1
  br i1 %19544, label %19545, label %19567

19545:                                            ; preds = %19538
  %19546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19547 = call i32 @fileno(ptr noundef %19546) #12
  %19548 = call i32 @isatty(i32 noundef %19547) #12
  %19549 = icmp ne i32 %19548, 0
  br i1 %19549, label %19550, label %19567

19550:                                            ; preds = %19545
  %19551 = load i32, ptr %400, align 4, !tbaa !5
  %19552 = call ptr @__errno_location() #13
  store i32 %19551, ptr %19552, align 4, !tbaa !5
  %19553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19554 = load i32, ptr @test_count, align 4, !tbaa !5
  %19555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19556 = load i32, ptr %19555, align 4, !tbaa !5
  %19557 = call ptr @s2n_strerror(i32 noundef %19556, ptr noundef @.str.4)
  %19558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19559 = load i32, ptr %19558, align 4, !tbaa !5
  %19560 = call ptr @s2n_strerror_debug(i32 noundef %19559, ptr noundef @.str.4)
  %19561 = call ptr @__errno_location() #13
  %19562 = load i32, ptr %19561, align 4, !tbaa !5
  %19563 = call ptr @strerror(i32 noundef %19562) #12
  %19564 = call ptr @__errno_location() #13
  %19565 = load i32, ptr %19564, align 4, !tbaa !5
  %19566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19553, ptr noundef @.str.2, i32 noundef %19554, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1081, ptr noundef %19557, ptr noundef %19560, ptr noundef %19563, i32 noundef %19565) #12
  br label %19584

19567:                                            ; preds = %19545, %19538
  %19568 = load i32, ptr %400, align 4, !tbaa !5
  %19569 = call ptr @__errno_location() #13
  store i32 %19568, ptr %19569, align 4, !tbaa !5
  %19570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19571 = load i32, ptr @test_count, align 4, !tbaa !5
  %19572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19573 = load i32, ptr %19572, align 4, !tbaa !5
  %19574 = call ptr @s2n_strerror(i32 noundef %19573, ptr noundef @.str.4)
  %19575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19576 = load i32, ptr %19575, align 4, !tbaa !5
  %19577 = call ptr @s2n_strerror_debug(i32 noundef %19576, ptr noundef @.str.4)
  %19578 = call ptr @__errno_location() #13
  %19579 = load i32, ptr %19578, align 4, !tbaa !5
  %19580 = call ptr @strerror(i32 noundef %19579) #12
  %19581 = call ptr @__errno_location() #13
  %19582 = load i32, ptr %19581, align 4, !tbaa !5
  %19583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19570, ptr noundef @.str.5, i32 noundef %19571, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1081, ptr noundef %19574, ptr noundef %19577, ptr noundef %19580, i32 noundef %19582) #12
  br label %19584

19584:                                            ; preds = %19567, %19550
  call void @llvm.lifetime.end.p0(i64 4, ptr %400) #12
  br label %19585

19585:                                            ; preds = %19584
  br label %19586

19586:                                            ; preds = %19585
  call void @exit(i32 noundef 1) #14
  unreachable

19587:                                            ; No predecessors!
  br label %19588

19588:                                            ; preds = %19587
  br label %19589

19589:                                            ; preds = %19588, %19531
  br label %19590

19590:                                            ; preds = %19589
  br label %19591

19591:                                            ; preds = %19590
  %19592 = load ptr, ptr %399, align 8, !tbaa !9
  %19593 = getelementptr inbounds %struct.s2n_connection, ptr %19592, i32 0, i32 2
  store ptr %325, ptr %19593, align 8, !tbaa !80
  %19594 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %19595 = load ptr, ptr %399, align 8, !tbaa !9
  %19596 = getelementptr inbounds %struct.s2n_connection, ptr %19595, i32 0, i32 31
  %19597 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %19596, i32 0, i32 1
  %19598 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %19597, i32 0, i32 0
  store ptr %19594, ptr %19598, align 8, !tbaa !57
  br label %19599

19599:                                            ; preds = %19591
  %19600 = load i32, ptr @test_count, align 4, !tbaa !5
  %19601 = add nsw i32 %19600, 1
  store i32 %19601, ptr @test_count, align 4, !tbaa !5
  %19602 = load ptr, ptr %399, align 8, !tbaa !9
  %19603 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %19602, i8 noundef zeroext 34)
  %19604 = icmp eq i32 %19603, -1
  br i1 %19604, label %19605, label %19658

19605:                                            ; preds = %19599
  br label %19606

19606:                                            ; preds = %19605
  br label %19607

19607:                                            ; preds = %19606
  call void @llvm.lifetime.start.p0(i64 4, ptr %401) #12
  %19608 = call ptr @__errno_location() #13
  %19609 = load i32, ptr %19608, align 4, !tbaa !5
  store i32 %19609, ptr %401, align 4, !tbaa !5
  %19610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19611 = call i32 @s2n_print_stacktrace(ptr noundef %19610)
  %19612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19613 = trunc i8 %19612 to i1
  br i1 %19613, label %19614, label %19636

19614:                                            ; preds = %19607
  %19615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19616 = call i32 @fileno(ptr noundef %19615) #12
  %19617 = call i32 @isatty(i32 noundef %19616) #12
  %19618 = icmp ne i32 %19617, 0
  br i1 %19618, label %19619, label %19636

19619:                                            ; preds = %19614
  %19620 = load i32, ptr %401, align 4, !tbaa !5
  %19621 = call ptr @__errno_location() #13
  store i32 %19620, ptr %19621, align 4, !tbaa !5
  %19622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19623 = load i32, ptr @test_count, align 4, !tbaa !5
  %19624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19625 = load i32, ptr %19624, align 4, !tbaa !5
  %19626 = call ptr @s2n_strerror(i32 noundef %19625, ptr noundef @.str.4)
  %19627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19628 = load i32, ptr %19627, align 4, !tbaa !5
  %19629 = call ptr @s2n_strerror_debug(i32 noundef %19628, ptr noundef @.str.4)
  %19630 = call ptr @__errno_location() #13
  %19631 = load i32, ptr %19630, align 4, !tbaa !5
  %19632 = call ptr @strerror(i32 noundef %19631) #12
  %19633 = call ptr @__errno_location() #13
  %19634 = load i32, ptr %19633, align 4, !tbaa !5
  %19635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19622, ptr noundef @.str.2, i32 noundef %19623, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 1085, ptr noundef %19626, ptr noundef %19629, ptr noundef %19632, i32 noundef %19634) #12
  br label %19653

19636:                                            ; preds = %19614, %19607
  %19637 = load i32, ptr %401, align 4, !tbaa !5
  %19638 = call ptr @__errno_location() #13
  store i32 %19637, ptr %19638, align 4, !tbaa !5
  %19639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19640 = load i32, ptr @test_count, align 4, !tbaa !5
  %19641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19642 = load i32, ptr %19641, align 4, !tbaa !5
  %19643 = call ptr @s2n_strerror(i32 noundef %19642, ptr noundef @.str.4)
  %19644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19645 = load i32, ptr %19644, align 4, !tbaa !5
  %19646 = call ptr @s2n_strerror_debug(i32 noundef %19645, ptr noundef @.str.4)
  %19647 = call ptr @__errno_location() #13
  %19648 = load i32, ptr %19647, align 4, !tbaa !5
  %19649 = call ptr @strerror(i32 noundef %19648) #12
  %19650 = call ptr @__errno_location() #13
  %19651 = load i32, ptr %19650, align 4, !tbaa !5
  %19652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19639, ptr noundef @.str.5, i32 noundef %19640, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 1085, ptr noundef %19643, ptr noundef %19646, ptr noundef %19649, i32 noundef %19651) #12
  br label %19653

19653:                                            ; preds = %19636, %19619
  call void @llvm.lifetime.end.p0(i64 4, ptr %401) #12
  br label %19654

19654:                                            ; preds = %19653
  br label %19655

19655:                                            ; preds = %19654
  call void @exit(i32 noundef 1) #14
  unreachable

19656:                                            ; No predecessors!
  br label %19657

19657:                                            ; preds = %19656
  br label %19658

19658:                                            ; preds = %19657, %19599
  br label %19659

19659:                                            ; preds = %19658
  br label %19660

19660:                                            ; preds = %19659
  %19661 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %402, i32 0, i32 0
  store i16 3, ptr %19661, align 8, !tbaa !60
  %19662 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %402, i32 0, i32 1
  store ptr @main.test_cipher_suite_list.164, ptr %19662, align 8, !tbaa !58
  %19663 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %402, i32 0, i32 2
  store i8 1, ptr %19663, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %402, i64 24, i1 false), !tbaa.struct !82
  call void @llvm.lifetime.start.p0(i64 6, ptr %403) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %403, ptr align 1 @__const.main.test_wire_1, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %404) #12
  store i8 3, ptr %404, align 1, !tbaa !54
  %19664 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 1, ptr %19664, align 8, !tbaa !81
  br label %19665

19665:                                            ; preds = %19660
  %19666 = load i32, ptr @test_count, align 4, !tbaa !5
  %19667 = add nsw i32 %19666, 1
  store i32 %19667, ptr @test_count, align 4, !tbaa !5
  %19668 = load ptr, ptr %399, align 8, !tbaa !9
  %19669 = getelementptr inbounds [6 x i8], ptr %403, i64 0, i64 0
  %19670 = load i8, ptr %404, align 1, !tbaa !54
  %19671 = zext i8 %19670 to i16
  %19672 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %19668, ptr noundef %19669, i16 noundef zeroext %19671)
  %19673 = icmp eq i32 %19672, -1
  br i1 %19673, label %19674, label %19727

19674:                                            ; preds = %19665
  br label %19675

19675:                                            ; preds = %19674
  br label %19676

19676:                                            ; preds = %19675
  call void @llvm.lifetime.start.p0(i64 4, ptr %405) #12
  %19677 = call ptr @__errno_location() #13
  %19678 = load i32, ptr %19677, align 4, !tbaa !5
  store i32 %19678, ptr %405, align 4, !tbaa !5
  %19679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19680 = call i32 @s2n_print_stacktrace(ptr noundef %19679)
  %19681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19682 = trunc i8 %19681 to i1
  br i1 %19682, label %19683, label %19705

19683:                                            ; preds = %19676
  %19684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19685 = call i32 @fileno(ptr noundef %19684) #12
  %19686 = call i32 @isatty(i32 noundef %19685) #12
  %19687 = icmp ne i32 %19686, 0
  br i1 %19687, label %19688, label %19705

19688:                                            ; preds = %19683
  %19689 = load i32, ptr %405, align 4, !tbaa !5
  %19690 = call ptr @__errno_location() #13
  store i32 %19689, ptr %19690, align 4, !tbaa !5
  %19691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19692 = load i32, ptr @test_count, align 4, !tbaa !5
  %19693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19694 = load i32, ptr %19693, align 4, !tbaa !5
  %19695 = call ptr @s2n_strerror(i32 noundef %19694, ptr noundef @.str.4)
  %19696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19697 = load i32, ptr %19696, align 4, !tbaa !5
  %19698 = call ptr @s2n_strerror_debug(i32 noundef %19697, ptr noundef @.str.4)
  %19699 = call ptr @__errno_location() #13
  %19700 = load i32, ptr %19699, align 4, !tbaa !5
  %19701 = call ptr @strerror(i32 noundef %19700) #12
  %19702 = call ptr @__errno_location() #13
  %19703 = load i32, ptr %19702, align 4, !tbaa !5
  %19704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19691, ptr noundef @.str.2, i32 noundef %19692, ptr noundef @.str.165, ptr noundef @.str.1, i32 noundef 1114, ptr noundef %19695, ptr noundef %19698, ptr noundef %19701, i32 noundef %19703) #12
  br label %19722

19705:                                            ; preds = %19683, %19676
  %19706 = load i32, ptr %405, align 4, !tbaa !5
  %19707 = call ptr @__errno_location() #13
  store i32 %19706, ptr %19707, align 4, !tbaa !5
  %19708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19709 = load i32, ptr @test_count, align 4, !tbaa !5
  %19710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19711 = load i32, ptr %19710, align 4, !tbaa !5
  %19712 = call ptr @s2n_strerror(i32 noundef %19711, ptr noundef @.str.4)
  %19713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19714 = load i32, ptr %19713, align 4, !tbaa !5
  %19715 = call ptr @s2n_strerror_debug(i32 noundef %19714, ptr noundef @.str.4)
  %19716 = call ptr @__errno_location() #13
  %19717 = load i32, ptr %19716, align 4, !tbaa !5
  %19718 = call ptr @strerror(i32 noundef %19717) #12
  %19719 = call ptr @__errno_location() #13
  %19720 = load i32, ptr %19719, align 4, !tbaa !5
  %19721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19708, ptr noundef @.str.5, i32 noundef %19709, ptr noundef @.str.165, ptr noundef @.str.1, i32 noundef 1114, ptr noundef %19712, ptr noundef %19715, ptr noundef %19718, i32 noundef %19720) #12
  br label %19722

19722:                                            ; preds = %19705, %19688
  call void @llvm.lifetime.end.p0(i64 4, ptr %405) #12
  br label %19723

19723:                                            ; preds = %19722
  br label %19724

19724:                                            ; preds = %19723
  call void @exit(i32 noundef 1) #14
  unreachable

19725:                                            ; No predecessors!
  br label %19726

19726:                                            ; preds = %19725
  br label %19727

19727:                                            ; preds = %19726, %19665
  br label %19728

19728:                                            ; preds = %19727
  br label %19729

19729:                                            ; preds = %19728
  br label %19730

19730:                                            ; preds = %19729
  %19731 = load i32, ptr @test_count, align 4, !tbaa !5
  %19732 = add nsw i32 %19731, 1
  store i32 %19732, ptr @test_count, align 4, !tbaa !5
  %19733 = load ptr, ptr %399, align 8, !tbaa !9
  %19734 = getelementptr inbounds %struct.s2n_connection, ptr %19733, i32 0, i32 27
  %19735 = load ptr, ptr %19734, align 8, !tbaa !48
  %19736 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %19735, i32 0, i32 0
  %19737 = load ptr, ptr %19736, align 8, !tbaa !49
  %19738 = icmp eq ptr %19737, @s2n_tls13_chacha20_poly1305_sha256
  br i1 %19738, label %19792, label %19739

19739:                                            ; preds = %19730
  br label %19740

19740:                                            ; preds = %19739
  br label %19741

19741:                                            ; preds = %19740
  call void @llvm.lifetime.start.p0(i64 4, ptr %406) #12
  %19742 = call ptr @__errno_location() #13
  %19743 = load i32, ptr %19742, align 4, !tbaa !5
  store i32 %19743, ptr %406, align 4, !tbaa !5
  %19744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19745 = call i32 @s2n_print_stacktrace(ptr noundef %19744)
  %19746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19747 = trunc i8 %19746 to i1
  br i1 %19747, label %19748, label %19770

19748:                                            ; preds = %19741
  %19749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19750 = call i32 @fileno(ptr noundef %19749) #12
  %19751 = call i32 @isatty(i32 noundef %19750) #12
  %19752 = icmp ne i32 %19751, 0
  br i1 %19752, label %19753, label %19770

19753:                                            ; preds = %19748
  %19754 = load i32, ptr %406, align 4, !tbaa !5
  %19755 = call ptr @__errno_location() #13
  store i32 %19754, ptr %19755, align 4, !tbaa !5
  %19756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19757 = load i32, ptr @test_count, align 4, !tbaa !5
  %19758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19759 = load i32, ptr %19758, align 4, !tbaa !5
  %19760 = call ptr @s2n_strerror(i32 noundef %19759, ptr noundef @.str.4)
  %19761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19762 = load i32, ptr %19761, align 4, !tbaa !5
  %19763 = call ptr @s2n_strerror_debug(i32 noundef %19762, ptr noundef @.str.4)
  %19764 = call ptr @__errno_location() #13
  %19765 = load i32, ptr %19764, align 4, !tbaa !5
  %19766 = call ptr @strerror(i32 noundef %19765) #12
  %19767 = call ptr @__errno_location() #13
  %19768 = load i32, ptr %19767, align 4, !tbaa !5
  %19769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19756, ptr noundef @.str.2, i32 noundef %19757, ptr noundef @.str.166, ptr noundef @.str.1, i32 noundef 1115, ptr noundef %19760, ptr noundef %19763, ptr noundef %19766, i32 noundef %19768) #12
  br label %19787

19770:                                            ; preds = %19748, %19741
  %19771 = load i32, ptr %406, align 4, !tbaa !5
  %19772 = call ptr @__errno_location() #13
  store i32 %19771, ptr %19772, align 4, !tbaa !5
  %19773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19774 = load i32, ptr @test_count, align 4, !tbaa !5
  %19775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19776 = load i32, ptr %19775, align 4, !tbaa !5
  %19777 = call ptr @s2n_strerror(i32 noundef %19776, ptr noundef @.str.4)
  %19778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19779 = load i32, ptr %19778, align 4, !tbaa !5
  %19780 = call ptr @s2n_strerror_debug(i32 noundef %19779, ptr noundef @.str.4)
  %19781 = call ptr @__errno_location() #13
  %19782 = load i32, ptr %19781, align 4, !tbaa !5
  %19783 = call ptr @strerror(i32 noundef %19782) #12
  %19784 = call ptr @__errno_location() #13
  %19785 = load i32, ptr %19784, align 4, !tbaa !5
  %19786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19773, ptr noundef @.str.5, i32 noundef %19774, ptr noundef @.str.166, ptr noundef @.str.1, i32 noundef 1115, ptr noundef %19777, ptr noundef %19780, ptr noundef %19783, i32 noundef %19785) #12
  br label %19787

19787:                                            ; preds = %19770, %19753
  call void @llvm.lifetime.end.p0(i64 4, ptr %406) #12
  br label %19788

19788:                                            ; preds = %19787
  br label %19789

19789:                                            ; preds = %19788
  call void @exit(i32 noundef 1) #14
  unreachable

19790:                                            ; No predecessors!
  br label %19791

19791:                                            ; preds = %19790
  br label %19792

19792:                                            ; preds = %19791, %19730
  br label %19793

19793:                                            ; preds = %19792
  br label %19794

19794:                                            ; preds = %19793
  %19795 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 0, ptr %19795, align 8, !tbaa !81
  br label %19796

19796:                                            ; preds = %19794
  %19797 = load i32, ptr @test_count, align 4, !tbaa !5
  %19798 = add nsw i32 %19797, 1
  store i32 %19798, ptr @test_count, align 4, !tbaa !5
  %19799 = load ptr, ptr %399, align 8, !tbaa !9
  %19800 = getelementptr inbounds [6 x i8], ptr %403, i64 0, i64 0
  %19801 = load i8, ptr %404, align 1, !tbaa !54
  %19802 = zext i8 %19801 to i16
  %19803 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %19799, ptr noundef %19800, i16 noundef zeroext %19802)
  %19804 = icmp eq i32 %19803, -1
  br i1 %19804, label %19805, label %19858

19805:                                            ; preds = %19796
  br label %19806

19806:                                            ; preds = %19805
  br label %19807

19807:                                            ; preds = %19806
  call void @llvm.lifetime.start.p0(i64 4, ptr %407) #12
  %19808 = call ptr @__errno_location() #13
  %19809 = load i32, ptr %19808, align 4, !tbaa !5
  store i32 %19809, ptr %407, align 4, !tbaa !5
  %19810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19811 = call i32 @s2n_print_stacktrace(ptr noundef %19810)
  %19812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19813 = trunc i8 %19812 to i1
  br i1 %19813, label %19814, label %19836

19814:                                            ; preds = %19807
  %19815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19816 = call i32 @fileno(ptr noundef %19815) #12
  %19817 = call i32 @isatty(i32 noundef %19816) #12
  %19818 = icmp ne i32 %19817, 0
  br i1 %19818, label %19819, label %19836

19819:                                            ; preds = %19814
  %19820 = load i32, ptr %407, align 4, !tbaa !5
  %19821 = call ptr @__errno_location() #13
  store i32 %19820, ptr %19821, align 4, !tbaa !5
  %19822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19823 = load i32, ptr @test_count, align 4, !tbaa !5
  %19824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19825 = load i32, ptr %19824, align 4, !tbaa !5
  %19826 = call ptr @s2n_strerror(i32 noundef %19825, ptr noundef @.str.4)
  %19827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19828 = load i32, ptr %19827, align 4, !tbaa !5
  %19829 = call ptr @s2n_strerror_debug(i32 noundef %19828, ptr noundef @.str.4)
  %19830 = call ptr @__errno_location() #13
  %19831 = load i32, ptr %19830, align 4, !tbaa !5
  %19832 = call ptr @strerror(i32 noundef %19831) #12
  %19833 = call ptr @__errno_location() #13
  %19834 = load i32, ptr %19833, align 4, !tbaa !5
  %19835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19822, ptr noundef @.str.2, i32 noundef %19823, ptr noundef @.str.165, ptr noundef @.str.1, i32 noundef 1120, ptr noundef %19826, ptr noundef %19829, ptr noundef %19832, i32 noundef %19834) #12
  br label %19853

19836:                                            ; preds = %19814, %19807
  %19837 = load i32, ptr %407, align 4, !tbaa !5
  %19838 = call ptr @__errno_location() #13
  store i32 %19837, ptr %19838, align 4, !tbaa !5
  %19839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19840 = load i32, ptr @test_count, align 4, !tbaa !5
  %19841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19842 = load i32, ptr %19841, align 4, !tbaa !5
  %19843 = call ptr @s2n_strerror(i32 noundef %19842, ptr noundef @.str.4)
  %19844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19845 = load i32, ptr %19844, align 4, !tbaa !5
  %19846 = call ptr @s2n_strerror_debug(i32 noundef %19845, ptr noundef @.str.4)
  %19847 = call ptr @__errno_location() #13
  %19848 = load i32, ptr %19847, align 4, !tbaa !5
  %19849 = call ptr @strerror(i32 noundef %19848) #12
  %19850 = call ptr @__errno_location() #13
  %19851 = load i32, ptr %19850, align 4, !tbaa !5
  %19852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19839, ptr noundef @.str.5, i32 noundef %19840, ptr noundef @.str.165, ptr noundef @.str.1, i32 noundef 1120, ptr noundef %19843, ptr noundef %19846, ptr noundef %19849, i32 noundef %19851) #12
  br label %19853

19853:                                            ; preds = %19836, %19819
  call void @llvm.lifetime.end.p0(i64 4, ptr %407) #12
  br label %19854

19854:                                            ; preds = %19853
  br label %19855

19855:                                            ; preds = %19854
  call void @exit(i32 noundef 1) #14
  unreachable

19856:                                            ; No predecessors!
  br label %19857

19857:                                            ; preds = %19856
  br label %19858

19858:                                            ; preds = %19857, %19796
  br label %19859

19859:                                            ; preds = %19858
  br label %19860

19860:                                            ; preds = %19859
  br label %19861

19861:                                            ; preds = %19860
  %19862 = load i32, ptr @test_count, align 4, !tbaa !5
  %19863 = add nsw i32 %19862, 1
  store i32 %19863, ptr @test_count, align 4, !tbaa !5
  %19864 = load ptr, ptr %399, align 8, !tbaa !9
  %19865 = getelementptr inbounds %struct.s2n_connection, ptr %19864, i32 0, i32 27
  %19866 = load ptr, ptr %19865, align 8, !tbaa !48
  %19867 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %19866, i32 0, i32 0
  %19868 = load ptr, ptr %19867, align 8, !tbaa !49
  %19869 = icmp eq ptr %19868, @s2n_tls13_aes_128_gcm_sha256
  br i1 %19869, label %19923, label %19870

19870:                                            ; preds = %19861
  br label %19871

19871:                                            ; preds = %19870
  br label %19872

19872:                                            ; preds = %19871
  call void @llvm.lifetime.start.p0(i64 4, ptr %408) #12
  %19873 = call ptr @__errno_location() #13
  %19874 = load i32, ptr %19873, align 4, !tbaa !5
  store i32 %19874, ptr %408, align 4, !tbaa !5
  %19875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19876 = call i32 @s2n_print_stacktrace(ptr noundef %19875)
  %19877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19878 = trunc i8 %19877 to i1
  br i1 %19878, label %19879, label %19901

19879:                                            ; preds = %19872
  %19880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19881 = call i32 @fileno(ptr noundef %19880) #12
  %19882 = call i32 @isatty(i32 noundef %19881) #12
  %19883 = icmp ne i32 %19882, 0
  br i1 %19883, label %19884, label %19901

19884:                                            ; preds = %19879
  %19885 = load i32, ptr %408, align 4, !tbaa !5
  %19886 = call ptr @__errno_location() #13
  store i32 %19885, ptr %19886, align 4, !tbaa !5
  %19887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19888 = load i32, ptr @test_count, align 4, !tbaa !5
  %19889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19890 = load i32, ptr %19889, align 4, !tbaa !5
  %19891 = call ptr @s2n_strerror(i32 noundef %19890, ptr noundef @.str.4)
  %19892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19893 = load i32, ptr %19892, align 4, !tbaa !5
  %19894 = call ptr @s2n_strerror_debug(i32 noundef %19893, ptr noundef @.str.4)
  %19895 = call ptr @__errno_location() #13
  %19896 = load i32, ptr %19895, align 4, !tbaa !5
  %19897 = call ptr @strerror(i32 noundef %19896) #12
  %19898 = call ptr @__errno_location() #13
  %19899 = load i32, ptr %19898, align 4, !tbaa !5
  %19900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19887, ptr noundef @.str.2, i32 noundef %19888, ptr noundef @.str.167, ptr noundef @.str.1, i32 noundef 1121, ptr noundef %19891, ptr noundef %19894, ptr noundef %19897, i32 noundef %19899) #12
  br label %19918

19901:                                            ; preds = %19879, %19872
  %19902 = load i32, ptr %408, align 4, !tbaa !5
  %19903 = call ptr @__errno_location() #13
  store i32 %19902, ptr %19903, align 4, !tbaa !5
  %19904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19905 = load i32, ptr @test_count, align 4, !tbaa !5
  %19906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19907 = load i32, ptr %19906, align 4, !tbaa !5
  %19908 = call ptr @s2n_strerror(i32 noundef %19907, ptr noundef @.str.4)
  %19909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19910 = load i32, ptr %19909, align 4, !tbaa !5
  %19911 = call ptr @s2n_strerror_debug(i32 noundef %19910, ptr noundef @.str.4)
  %19912 = call ptr @__errno_location() #13
  %19913 = load i32, ptr %19912, align 4, !tbaa !5
  %19914 = call ptr @strerror(i32 noundef %19913) #12
  %19915 = call ptr @__errno_location() #13
  %19916 = load i32, ptr %19915, align 4, !tbaa !5
  %19917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19904, ptr noundef @.str.5, i32 noundef %19905, ptr noundef @.str.167, ptr noundef @.str.1, i32 noundef 1121, ptr noundef %19908, ptr noundef %19911, ptr noundef %19914, i32 noundef %19916) #12
  br label %19918

19918:                                            ; preds = %19901, %19884
  call void @llvm.lifetime.end.p0(i64 4, ptr %408) #12
  br label %19919

19919:                                            ; preds = %19918
  br label %19920

19920:                                            ; preds = %19919
  call void @exit(i32 noundef 1) #14
  unreachable

19921:                                            ; No predecessors!
  br label %19922

19922:                                            ; preds = %19921
  br label %19923

19923:                                            ; preds = %19922, %19861
  br label %19924

19924:                                            ; preds = %19923
  br label %19925

19925:                                            ; preds = %19924
  call void @llvm.lifetime.start.p0(i64 4, ptr %409) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %409, ptr align 1 @__const.main.test_wire_2, i64 4, i1 false)
  store i8 2, ptr %404, align 1, !tbaa !54
  %19926 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 1, ptr %19926, align 8, !tbaa !81
  br label %19927

19927:                                            ; preds = %19925
  %19928 = load i32, ptr @test_count, align 4, !tbaa !5
  %19929 = add nsw i32 %19928, 1
  store i32 %19929, ptr @test_count, align 4, !tbaa !5
  %19930 = load ptr, ptr %399, align 8, !tbaa !9
  %19931 = getelementptr inbounds [4 x i8], ptr %409, i64 0, i64 0
  %19932 = load i8, ptr %404, align 1, !tbaa !54
  %19933 = zext i8 %19932 to i16
  %19934 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %19930, ptr noundef %19931, i16 noundef zeroext %19933)
  %19935 = icmp eq i32 %19934, -1
  br i1 %19935, label %19936, label %19989

19936:                                            ; preds = %19927
  br label %19937

19937:                                            ; preds = %19936
  br label %19938

19938:                                            ; preds = %19937
  call void @llvm.lifetime.start.p0(i64 4, ptr %410) #12
  %19939 = call ptr @__errno_location() #13
  %19940 = load i32, ptr %19939, align 4, !tbaa !5
  store i32 %19940, ptr %410, align 4, !tbaa !5
  %19941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19942 = call i32 @s2n_print_stacktrace(ptr noundef %19941)
  %19943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19944 = trunc i8 %19943 to i1
  br i1 %19944, label %19945, label %19967

19945:                                            ; preds = %19938
  %19946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19947 = call i32 @fileno(ptr noundef %19946) #12
  %19948 = call i32 @isatty(i32 noundef %19947) #12
  %19949 = icmp ne i32 %19948, 0
  br i1 %19949, label %19950, label %19967

19950:                                            ; preds = %19945
  %19951 = load i32, ptr %410, align 4, !tbaa !5
  %19952 = call ptr @__errno_location() #13
  store i32 %19951, ptr %19952, align 4, !tbaa !5
  %19953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19954 = load i32, ptr @test_count, align 4, !tbaa !5
  %19955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19956 = load i32, ptr %19955, align 4, !tbaa !5
  %19957 = call ptr @s2n_strerror(i32 noundef %19956, ptr noundef @.str.4)
  %19958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19959 = load i32, ptr %19958, align 4, !tbaa !5
  %19960 = call ptr @s2n_strerror_debug(i32 noundef %19959, ptr noundef @.str.4)
  %19961 = call ptr @__errno_location() #13
  %19962 = load i32, ptr %19961, align 4, !tbaa !5
  %19963 = call ptr @strerror(i32 noundef %19962) #12
  %19964 = call ptr @__errno_location() #13
  %19965 = load i32, ptr %19964, align 4, !tbaa !5
  %19966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19953, ptr noundef @.str.2, i32 noundef %19954, ptr noundef @.str.168, ptr noundef @.str.1, i32 noundef 1138, ptr noundef %19957, ptr noundef %19960, ptr noundef %19963, i32 noundef %19965) #12
  br label %19984

19967:                                            ; preds = %19945, %19938
  %19968 = load i32, ptr %410, align 4, !tbaa !5
  %19969 = call ptr @__errno_location() #13
  store i32 %19968, ptr %19969, align 4, !tbaa !5
  %19970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19971 = load i32, ptr @test_count, align 4, !tbaa !5
  %19972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19973 = load i32, ptr %19972, align 4, !tbaa !5
  %19974 = call ptr @s2n_strerror(i32 noundef %19973, ptr noundef @.str.4)
  %19975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19976 = load i32, ptr %19975, align 4, !tbaa !5
  %19977 = call ptr @s2n_strerror_debug(i32 noundef %19976, ptr noundef @.str.4)
  %19978 = call ptr @__errno_location() #13
  %19979 = load i32, ptr %19978, align 4, !tbaa !5
  %19980 = call ptr @strerror(i32 noundef %19979) #12
  %19981 = call ptr @__errno_location() #13
  %19982 = load i32, ptr %19981, align 4, !tbaa !5
  %19983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19970, ptr noundef @.str.5, i32 noundef %19971, ptr noundef @.str.168, ptr noundef @.str.1, i32 noundef 1138, ptr noundef %19974, ptr noundef %19977, ptr noundef %19980, i32 noundef %19982) #12
  br label %19984

19984:                                            ; preds = %19967, %19950
  call void @llvm.lifetime.end.p0(i64 4, ptr %410) #12
  br label %19985

19985:                                            ; preds = %19984
  br label %19986

19986:                                            ; preds = %19985
  call void @exit(i32 noundef 1) #14
  unreachable

19987:                                            ; No predecessors!
  br label %19988

19988:                                            ; preds = %19987
  br label %19989

19989:                                            ; preds = %19988, %19927
  br label %19990

19990:                                            ; preds = %19989
  br label %19991

19991:                                            ; preds = %19990
  br label %19992

19992:                                            ; preds = %19991
  %19993 = load i32, ptr @test_count, align 4, !tbaa !5
  %19994 = add nsw i32 %19993, 1
  store i32 %19994, ptr @test_count, align 4, !tbaa !5
  %19995 = load ptr, ptr %399, align 8, !tbaa !9
  %19996 = getelementptr inbounds %struct.s2n_connection, ptr %19995, i32 0, i32 27
  %19997 = load ptr, ptr %19996, align 8, !tbaa !48
  %19998 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %19997, i32 0, i32 0
  %19999 = load ptr, ptr %19998, align 8, !tbaa !49
  %20000 = icmp eq ptr %19999, @s2n_tls13_aes_256_gcm_sha384
  br i1 %20000, label %20054, label %20001

20001:                                            ; preds = %19992
  br label %20002

20002:                                            ; preds = %20001
  br label %20003

20003:                                            ; preds = %20002
  call void @llvm.lifetime.start.p0(i64 4, ptr %411) #12
  %20004 = call ptr @__errno_location() #13
  %20005 = load i32, ptr %20004, align 4, !tbaa !5
  store i32 %20005, ptr %411, align 4, !tbaa !5
  %20006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20007 = call i32 @s2n_print_stacktrace(ptr noundef %20006)
  %20008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20009 = trunc i8 %20008 to i1
  br i1 %20009, label %20010, label %20032

20010:                                            ; preds = %20003
  %20011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20012 = call i32 @fileno(ptr noundef %20011) #12
  %20013 = call i32 @isatty(i32 noundef %20012) #12
  %20014 = icmp ne i32 %20013, 0
  br i1 %20014, label %20015, label %20032

20015:                                            ; preds = %20010
  %20016 = load i32, ptr %411, align 4, !tbaa !5
  %20017 = call ptr @__errno_location() #13
  store i32 %20016, ptr %20017, align 4, !tbaa !5
  %20018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20019 = load i32, ptr @test_count, align 4, !tbaa !5
  %20020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20021 = load i32, ptr %20020, align 4, !tbaa !5
  %20022 = call ptr @s2n_strerror(i32 noundef %20021, ptr noundef @.str.4)
  %20023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20024 = load i32, ptr %20023, align 4, !tbaa !5
  %20025 = call ptr @s2n_strerror_debug(i32 noundef %20024, ptr noundef @.str.4)
  %20026 = call ptr @__errno_location() #13
  %20027 = load i32, ptr %20026, align 4, !tbaa !5
  %20028 = call ptr @strerror(i32 noundef %20027) #12
  %20029 = call ptr @__errno_location() #13
  %20030 = load i32, ptr %20029, align 4, !tbaa !5
  %20031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20018, ptr noundef @.str.2, i32 noundef %20019, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 1139, ptr noundef %20022, ptr noundef %20025, ptr noundef %20028, i32 noundef %20030) #12
  br label %20049

20032:                                            ; preds = %20010, %20003
  %20033 = load i32, ptr %411, align 4, !tbaa !5
  %20034 = call ptr @__errno_location() #13
  store i32 %20033, ptr %20034, align 4, !tbaa !5
  %20035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20036 = load i32, ptr @test_count, align 4, !tbaa !5
  %20037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20038 = load i32, ptr %20037, align 4, !tbaa !5
  %20039 = call ptr @s2n_strerror(i32 noundef %20038, ptr noundef @.str.4)
  %20040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20041 = load i32, ptr %20040, align 4, !tbaa !5
  %20042 = call ptr @s2n_strerror_debug(i32 noundef %20041, ptr noundef @.str.4)
  %20043 = call ptr @__errno_location() #13
  %20044 = load i32, ptr %20043, align 4, !tbaa !5
  %20045 = call ptr @strerror(i32 noundef %20044) #12
  %20046 = call ptr @__errno_location() #13
  %20047 = load i32, ptr %20046, align 4, !tbaa !5
  %20048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20035, ptr noundef @.str.5, i32 noundef %20036, ptr noundef @.str.169, ptr noundef @.str.1, i32 noundef 1139, ptr noundef %20039, ptr noundef %20042, ptr noundef %20045, i32 noundef %20047) #12
  br label %20049

20049:                                            ; preds = %20032, %20015
  call void @llvm.lifetime.end.p0(i64 4, ptr %411) #12
  br label %20050

20050:                                            ; preds = %20049
  br label %20051

20051:                                            ; preds = %20050
  call void @exit(i32 noundef 1) #14
  unreachable

20052:                                            ; No predecessors!
  br label %20053

20053:                                            ; preds = %20052
  br label %20054

20054:                                            ; preds = %20053, %19992
  br label %20055

20055:                                            ; preds = %20054
  br label %20056

20056:                                            ; preds = %20055
  call void @llvm.lifetime.end.p0(i64 4, ptr %409) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %404) #12
  call void @llvm.lifetime.end.p0(i64 6, ptr %403) #12
  %20057 = call i32 @s2n_connection_ptr_free(ptr noundef %399)
  %20058 = getelementptr inbounds %struct.s2n_result, ptr %412, i32 0, i32 0
  store i32 %20057, ptr %20058, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %399) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %413) #12
  %20059 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %20059, ptr %413, align 8, !tbaa !9
  br label %20060

20060:                                            ; preds = %20056
  %20061 = load i32, ptr @test_count, align 4, !tbaa !5
  %20062 = add nsw i32 %20061, 1
  store i32 %20062, ptr @test_count, align 4, !tbaa !5
  %20063 = load ptr, ptr %413, align 8, !tbaa !9
  %20064 = icmp eq ptr %20063, null
  br i1 %20064, label %20065, label %20118

20065:                                            ; preds = %20060
  br label %20066

20066:                                            ; preds = %20065
  br label %20067

20067:                                            ; preds = %20066
  call void @llvm.lifetime.start.p0(i64 4, ptr %414) #12
  %20068 = call ptr @__errno_location() #13
  %20069 = load i32, ptr %20068, align 4, !tbaa !5
  store i32 %20069, ptr %414, align 4, !tbaa !5
  %20070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20071 = call i32 @s2n_print_stacktrace(ptr noundef %20070)
  %20072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20073 = trunc i8 %20072 to i1
  br i1 %20073, label %20074, label %20096

20074:                                            ; preds = %20067
  %20075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20076 = call i32 @fileno(ptr noundef %20075) #12
  %20077 = call i32 @isatty(i32 noundef %20076) #12
  %20078 = icmp ne i32 %20077, 0
  br i1 %20078, label %20079, label %20096

20079:                                            ; preds = %20074
  %20080 = load i32, ptr %414, align 4, !tbaa !5
  %20081 = call ptr @__errno_location() #13
  store i32 %20080, ptr %20081, align 4, !tbaa !5
  %20082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20083 = load i32, ptr @test_count, align 4, !tbaa !5
  %20084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20085 = load i32, ptr %20084, align 4, !tbaa !5
  %20086 = call ptr @s2n_strerror(i32 noundef %20085, ptr noundef @.str.4)
  %20087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20088 = load i32, ptr %20087, align 4, !tbaa !5
  %20089 = call ptr @s2n_strerror_debug(i32 noundef %20088, ptr noundef @.str.4)
  %20090 = call ptr @__errno_location() #13
  %20091 = load i32, ptr %20090, align 4, !tbaa !5
  %20092 = call ptr @strerror(i32 noundef %20091) #12
  %20093 = call ptr @__errno_location() #13
  %20094 = load i32, ptr %20093, align 4, !tbaa !5
  %20095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20082, ptr noundef @.str.2, i32 noundef %20083, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1145, ptr noundef %20086, ptr noundef %20089, ptr noundef %20092, i32 noundef %20094) #12
  br label %20113

20096:                                            ; preds = %20074, %20067
  %20097 = load i32, ptr %414, align 4, !tbaa !5
  %20098 = call ptr @__errno_location() #13
  store i32 %20097, ptr %20098, align 4, !tbaa !5
  %20099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20100 = load i32, ptr @test_count, align 4, !tbaa !5
  %20101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20102 = load i32, ptr %20101, align 4, !tbaa !5
  %20103 = call ptr @s2n_strerror(i32 noundef %20102, ptr noundef @.str.4)
  %20104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20105 = load i32, ptr %20104, align 4, !tbaa !5
  %20106 = call ptr @s2n_strerror_debug(i32 noundef %20105, ptr noundef @.str.4)
  %20107 = call ptr @__errno_location() #13
  %20108 = load i32, ptr %20107, align 4, !tbaa !5
  %20109 = call ptr @strerror(i32 noundef %20108) #12
  %20110 = call ptr @__errno_location() #13
  %20111 = load i32, ptr %20110, align 4, !tbaa !5
  %20112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20099, ptr noundef @.str.5, i32 noundef %20100, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1145, ptr noundef %20103, ptr noundef %20106, ptr noundef %20109, i32 noundef %20111) #12
  br label %20113

20113:                                            ; preds = %20096, %20079
  call void @llvm.lifetime.end.p0(i64 4, ptr %414) #12
  br label %20114

20114:                                            ; preds = %20113
  br label %20115

20115:                                            ; preds = %20114
  call void @exit(i32 noundef 1) #14
  unreachable

20116:                                            ; No predecessors!
  br label %20117

20117:                                            ; preds = %20116
  br label %20118

20118:                                            ; preds = %20117, %20060
  br label %20119

20119:                                            ; preds = %20118
  br label %20120

20120:                                            ; preds = %20119
  %20121 = load ptr, ptr %413, align 8, !tbaa !9
  %20122 = getelementptr inbounds %struct.s2n_connection, ptr %20121, i32 0, i32 2
  store ptr %325, ptr %20122, align 8, !tbaa !80
  %20123 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %20124 = load ptr, ptr %413, align 8, !tbaa !9
  %20125 = getelementptr inbounds %struct.s2n_connection, ptr %20124, i32 0, i32 31
  %20126 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %20125, i32 0, i32 1
  %20127 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %20126, i32 0, i32 0
  store ptr %20123, ptr %20127, align 8, !tbaa !57
  br label %20128

20128:                                            ; preds = %20120
  %20129 = load i32, ptr @test_count, align 4, !tbaa !5
  %20130 = add nsw i32 %20129, 1
  store i32 %20130, ptr @test_count, align 4, !tbaa !5
  %20131 = load ptr, ptr %413, align 8, !tbaa !9
  %20132 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %20131, i8 noundef zeroext 34)
  %20133 = icmp eq i32 %20132, -1
  br i1 %20133, label %20134, label %20187

20134:                                            ; preds = %20128
  br label %20135

20135:                                            ; preds = %20134
  br label %20136

20136:                                            ; preds = %20135
  call void @llvm.lifetime.start.p0(i64 4, ptr %415) #12
  %20137 = call ptr @__errno_location() #13
  %20138 = load i32, ptr %20137, align 4, !tbaa !5
  store i32 %20138, ptr %415, align 4, !tbaa !5
  %20139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20140 = call i32 @s2n_print_stacktrace(ptr noundef %20139)
  %20141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20142 = trunc i8 %20141 to i1
  br i1 %20142, label %20143, label %20165

20143:                                            ; preds = %20136
  %20144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20145 = call i32 @fileno(ptr noundef %20144) #12
  %20146 = call i32 @isatty(i32 noundef %20145) #12
  %20147 = icmp ne i32 %20146, 0
  br i1 %20147, label %20148, label %20165

20148:                                            ; preds = %20143
  %20149 = load i32, ptr %415, align 4, !tbaa !5
  %20150 = call ptr @__errno_location() #13
  store i32 %20149, ptr %20150, align 4, !tbaa !5
  %20151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20152 = load i32, ptr @test_count, align 4, !tbaa !5
  %20153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20154 = load i32, ptr %20153, align 4, !tbaa !5
  %20155 = call ptr @s2n_strerror(i32 noundef %20154, ptr noundef @.str.4)
  %20156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20157 = load i32, ptr %20156, align 4, !tbaa !5
  %20158 = call ptr @s2n_strerror_debug(i32 noundef %20157, ptr noundef @.str.4)
  %20159 = call ptr @__errno_location() #13
  %20160 = load i32, ptr %20159, align 4, !tbaa !5
  %20161 = call ptr @strerror(i32 noundef %20160) #12
  %20162 = call ptr @__errno_location() #13
  %20163 = load i32, ptr %20162, align 4, !tbaa !5
  %20164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20151, ptr noundef @.str.2, i32 noundef %20152, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 1149, ptr noundef %20155, ptr noundef %20158, ptr noundef %20161, i32 noundef %20163) #12
  br label %20182

20165:                                            ; preds = %20143, %20136
  %20166 = load i32, ptr %415, align 4, !tbaa !5
  %20167 = call ptr @__errno_location() #13
  store i32 %20166, ptr %20167, align 4, !tbaa !5
  %20168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20169 = load i32, ptr @test_count, align 4, !tbaa !5
  %20170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20171 = load i32, ptr %20170, align 4, !tbaa !5
  %20172 = call ptr @s2n_strerror(i32 noundef %20171, ptr noundef @.str.4)
  %20173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20174 = load i32, ptr %20173, align 4, !tbaa !5
  %20175 = call ptr @s2n_strerror_debug(i32 noundef %20174, ptr noundef @.str.4)
  %20176 = call ptr @__errno_location() #13
  %20177 = load i32, ptr %20176, align 4, !tbaa !5
  %20178 = call ptr @strerror(i32 noundef %20177) #12
  %20179 = call ptr @__errno_location() #13
  %20180 = load i32, ptr %20179, align 4, !tbaa !5
  %20181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20168, ptr noundef @.str.5, i32 noundef %20169, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 1149, ptr noundef %20172, ptr noundef %20175, ptr noundef %20178, i32 noundef %20180) #12
  br label %20182

20182:                                            ; preds = %20165, %20148
  call void @llvm.lifetime.end.p0(i64 4, ptr %415) #12
  br label %20183

20183:                                            ; preds = %20182
  br label %20184

20184:                                            ; preds = %20183
  call void @exit(i32 noundef 1) #14
  unreachable

20185:                                            ; No predecessors!
  br label %20186

20186:                                            ; preds = %20185
  br label %20187

20187:                                            ; preds = %20186, %20128
  br label %20188

20188:                                            ; preds = %20187
  br label %20189

20189:                                            ; preds = %20188
  %20190 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %416, i32 0, i32 0
  store i16 1, ptr %20190, align 8, !tbaa !60
  %20191 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %416, i32 0, i32 1
  store ptr @main.test_cipher_suite_list.170, ptr %20191, align 8, !tbaa !58
  %20192 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %416, i32 0, i32 2
  store i8 0, ptr %20192, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %416, i64 24, i1 false), !tbaa.struct !82
  call void @llvm.lifetime.start.p0(i64 2, ptr %417) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %417, ptr align 1 @__const.main.wire.171, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %418) #12
  store i8 1, ptr %418, align 1, !tbaa !54
  br label %20193

20193:                                            ; preds = %20189
  %20194 = load i32, ptr @test_count, align 4, !tbaa !5
  %20195 = add nsw i32 %20194, 1
  store i32 %20195, ptr @test_count, align 4, !tbaa !5
  %20196 = load ptr, ptr %413, align 8, !tbaa !9
  %20197 = getelementptr inbounds [2 x i8], ptr %417, i64 0, i64 0
  %20198 = load i8, ptr %418, align 1, !tbaa !54
  %20199 = zext i8 %20198 to i16
  %20200 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %20196, ptr noundef %20197, i16 noundef zeroext %20199)
  %20201 = icmp eq i32 %20200, -1
  br i1 %20201, label %20202, label %20255

20202:                                            ; preds = %20193
  br label %20203

20203:                                            ; preds = %20202
  br label %20204

20204:                                            ; preds = %20203
  call void @llvm.lifetime.start.p0(i64 4, ptr %419) #12
  %20205 = call ptr @__errno_location() #13
  %20206 = load i32, ptr %20205, align 4, !tbaa !5
  store i32 %20206, ptr %419, align 4, !tbaa !5
  %20207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20208 = call i32 @s2n_print_stacktrace(ptr noundef %20207)
  %20209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20210 = trunc i8 %20209 to i1
  br i1 %20210, label %20211, label %20233

20211:                                            ; preds = %20204
  %20212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20213 = call i32 @fileno(ptr noundef %20212) #12
  %20214 = call i32 @isatty(i32 noundef %20213) #12
  %20215 = icmp ne i32 %20214, 0
  br i1 %20215, label %20216, label %20233

20216:                                            ; preds = %20211
  %20217 = load i32, ptr %419, align 4, !tbaa !5
  %20218 = call ptr @__errno_location() #13
  store i32 %20217, ptr %20218, align 4, !tbaa !5
  %20219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20220 = load i32, ptr @test_count, align 4, !tbaa !5
  %20221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20222 = load i32, ptr %20221, align 4, !tbaa !5
  %20223 = call ptr @s2n_strerror(i32 noundef %20222, ptr noundef @.str.4)
  %20224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20225 = load i32, ptr %20224, align 4, !tbaa !5
  %20226 = call ptr @s2n_strerror_debug(i32 noundef %20225, ptr noundef @.str.4)
  %20227 = call ptr @__errno_location() #13
  %20228 = load i32, ptr %20227, align 4, !tbaa !5
  %20229 = call ptr @strerror(i32 noundef %20228) #12
  %20230 = call ptr @__errno_location() #13
  %20231 = load i32, ptr %20230, align 4, !tbaa !5
  %20232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20219, ptr noundef @.str.2, i32 noundef %20220, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1169, ptr noundef %20223, ptr noundef %20226, ptr noundef %20229, i32 noundef %20231) #12
  br label %20250

20233:                                            ; preds = %20211, %20204
  %20234 = load i32, ptr %419, align 4, !tbaa !5
  %20235 = call ptr @__errno_location() #13
  store i32 %20234, ptr %20235, align 4, !tbaa !5
  %20236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20237 = load i32, ptr @test_count, align 4, !tbaa !5
  %20238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20239 = load i32, ptr %20238, align 4, !tbaa !5
  %20240 = call ptr @s2n_strerror(i32 noundef %20239, ptr noundef @.str.4)
  %20241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20242 = load i32, ptr %20241, align 4, !tbaa !5
  %20243 = call ptr @s2n_strerror_debug(i32 noundef %20242, ptr noundef @.str.4)
  %20244 = call ptr @__errno_location() #13
  %20245 = load i32, ptr %20244, align 4, !tbaa !5
  %20246 = call ptr @strerror(i32 noundef %20245) #12
  %20247 = call ptr @__errno_location() #13
  %20248 = load i32, ptr %20247, align 4, !tbaa !5
  %20249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20236, ptr noundef @.str.5, i32 noundef %20237, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1169, ptr noundef %20240, ptr noundef %20243, ptr noundef %20246, i32 noundef %20248) #12
  br label %20250

20250:                                            ; preds = %20233, %20216
  call void @llvm.lifetime.end.p0(i64 4, ptr %419) #12
  br label %20251

20251:                                            ; preds = %20250
  br label %20252

20252:                                            ; preds = %20251
  call void @exit(i32 noundef 1) #14
  unreachable

20253:                                            ; No predecessors!
  br label %20254

20254:                                            ; preds = %20253
  br label %20255

20255:                                            ; preds = %20254, %20193
  br label %20256

20256:                                            ; preds = %20255
  br label %20257

20257:                                            ; preds = %20256
  br label %20258

20258:                                            ; preds = %20257
  %20259 = load i32, ptr @test_count, align 4, !tbaa !5
  %20260 = add nsw i32 %20259, 1
  store i32 %20260, ptr @test_count, align 4, !tbaa !5
  %20261 = load ptr, ptr %413, align 8, !tbaa !9
  %20262 = getelementptr inbounds %struct.s2n_connection, ptr %20261, i32 0, i32 27
  %20263 = load ptr, ptr %20262, align 8, !tbaa !48
  %20264 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %20263, i32 0, i32 0
  %20265 = load ptr, ptr %20264, align 8, !tbaa !49
  %20266 = icmp eq ptr %20265, @s2n_tls13_chacha20_poly1305_sha256
  br i1 %20266, label %20320, label %20267

20267:                                            ; preds = %20258
  br label %20268

20268:                                            ; preds = %20267
  br label %20269

20269:                                            ; preds = %20268
  call void @llvm.lifetime.start.p0(i64 4, ptr %420) #12
  %20270 = call ptr @__errno_location() #13
  %20271 = load i32, ptr %20270, align 4, !tbaa !5
  store i32 %20271, ptr %420, align 4, !tbaa !5
  %20272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20273 = call i32 @s2n_print_stacktrace(ptr noundef %20272)
  %20274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20275 = trunc i8 %20274 to i1
  br i1 %20275, label %20276, label %20298

20276:                                            ; preds = %20269
  %20277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20278 = call i32 @fileno(ptr noundef %20277) #12
  %20279 = call i32 @isatty(i32 noundef %20278) #12
  %20280 = icmp ne i32 %20279, 0
  br i1 %20280, label %20281, label %20298

20281:                                            ; preds = %20276
  %20282 = load i32, ptr %420, align 4, !tbaa !5
  %20283 = call ptr @__errno_location() #13
  store i32 %20282, ptr %20283, align 4, !tbaa !5
  %20284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20285 = load i32, ptr @test_count, align 4, !tbaa !5
  %20286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20287 = load i32, ptr %20286, align 4, !tbaa !5
  %20288 = call ptr @s2n_strerror(i32 noundef %20287, ptr noundef @.str.4)
  %20289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20290 = load i32, ptr %20289, align 4, !tbaa !5
  %20291 = call ptr @s2n_strerror_debug(i32 noundef %20290, ptr noundef @.str.4)
  %20292 = call ptr @__errno_location() #13
  %20293 = load i32, ptr %20292, align 4, !tbaa !5
  %20294 = call ptr @strerror(i32 noundef %20293) #12
  %20295 = call ptr @__errno_location() #13
  %20296 = load i32, ptr %20295, align 4, !tbaa !5
  %20297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20284, ptr noundef @.str.2, i32 noundef %20285, ptr noundef @.str.166, ptr noundef @.str.1, i32 noundef 1170, ptr noundef %20288, ptr noundef %20291, ptr noundef %20294, i32 noundef %20296) #12
  br label %20315

20298:                                            ; preds = %20276, %20269
  %20299 = load i32, ptr %420, align 4, !tbaa !5
  %20300 = call ptr @__errno_location() #13
  store i32 %20299, ptr %20300, align 4, !tbaa !5
  %20301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20302 = load i32, ptr @test_count, align 4, !tbaa !5
  %20303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20304 = load i32, ptr %20303, align 4, !tbaa !5
  %20305 = call ptr @s2n_strerror(i32 noundef %20304, ptr noundef @.str.4)
  %20306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20307 = load i32, ptr %20306, align 4, !tbaa !5
  %20308 = call ptr @s2n_strerror_debug(i32 noundef %20307, ptr noundef @.str.4)
  %20309 = call ptr @__errno_location() #13
  %20310 = load i32, ptr %20309, align 4, !tbaa !5
  %20311 = call ptr @strerror(i32 noundef %20310) #12
  %20312 = call ptr @__errno_location() #13
  %20313 = load i32, ptr %20312, align 4, !tbaa !5
  %20314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20301, ptr noundef @.str.5, i32 noundef %20302, ptr noundef @.str.166, ptr noundef @.str.1, i32 noundef 1170, ptr noundef %20305, ptr noundef %20308, ptr noundef %20311, i32 noundef %20313) #12
  br label %20315

20315:                                            ; preds = %20298, %20281
  call void @llvm.lifetime.end.p0(i64 4, ptr %420) #12
  br label %20316

20316:                                            ; preds = %20315
  br label %20317

20317:                                            ; preds = %20316
  call void @exit(i32 noundef 1) #14
  unreachable

20318:                                            ; No predecessors!
  br label %20319

20319:                                            ; preds = %20318
  br label %20320

20320:                                            ; preds = %20319, %20258
  br label %20321

20321:                                            ; preds = %20320
  br label %20322

20322:                                            ; preds = %20321
  call void @llvm.lifetime.end.p0(i64 1, ptr %418) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %417) #12
  %20323 = call i32 @s2n_connection_ptr_free(ptr noundef %413)
  %20324 = getelementptr inbounds %struct.s2n_result, ptr %421, i32 0, i32 0
  store i32 %20323, ptr %20324, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %413) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %422) #12
  %20325 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %20325, ptr %422, align 8, !tbaa !9
  br label %20326

20326:                                            ; preds = %20322
  %20327 = load i32, ptr @test_count, align 4, !tbaa !5
  %20328 = add nsw i32 %20327, 1
  store i32 %20328, ptr @test_count, align 4, !tbaa !5
  %20329 = load ptr, ptr %422, align 8, !tbaa !9
  %20330 = icmp eq ptr %20329, null
  br i1 %20330, label %20331, label %20384

20331:                                            ; preds = %20326
  br label %20332

20332:                                            ; preds = %20331
  br label %20333

20333:                                            ; preds = %20332
  call void @llvm.lifetime.start.p0(i64 4, ptr %423) #12
  %20334 = call ptr @__errno_location() #13
  %20335 = load i32, ptr %20334, align 4, !tbaa !5
  store i32 %20335, ptr %423, align 4, !tbaa !5
  %20336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20337 = call i32 @s2n_print_stacktrace(ptr noundef %20336)
  %20338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20339 = trunc i8 %20338 to i1
  br i1 %20339, label %20340, label %20362

20340:                                            ; preds = %20333
  %20341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20342 = call i32 @fileno(ptr noundef %20341) #12
  %20343 = call i32 @isatty(i32 noundef %20342) #12
  %20344 = icmp ne i32 %20343, 0
  br i1 %20344, label %20345, label %20362

20345:                                            ; preds = %20340
  %20346 = load i32, ptr %423, align 4, !tbaa !5
  %20347 = call ptr @__errno_location() #13
  store i32 %20346, ptr %20347, align 4, !tbaa !5
  %20348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20349 = load i32, ptr @test_count, align 4, !tbaa !5
  %20350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20351 = load i32, ptr %20350, align 4, !tbaa !5
  %20352 = call ptr @s2n_strerror(i32 noundef %20351, ptr noundef @.str.4)
  %20353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20354 = load i32, ptr %20353, align 4, !tbaa !5
  %20355 = call ptr @s2n_strerror_debug(i32 noundef %20354, ptr noundef @.str.4)
  %20356 = call ptr @__errno_location() #13
  %20357 = load i32, ptr %20356, align 4, !tbaa !5
  %20358 = call ptr @strerror(i32 noundef %20357) #12
  %20359 = call ptr @__errno_location() #13
  %20360 = load i32, ptr %20359, align 4, !tbaa !5
  %20361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20348, ptr noundef @.str.2, i32 noundef %20349, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1178, ptr noundef %20352, ptr noundef %20355, ptr noundef %20358, i32 noundef %20360) #12
  br label %20379

20362:                                            ; preds = %20340, %20333
  %20363 = load i32, ptr %423, align 4, !tbaa !5
  %20364 = call ptr @__errno_location() #13
  store i32 %20363, ptr %20364, align 4, !tbaa !5
  %20365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20366 = load i32, ptr @test_count, align 4, !tbaa !5
  %20367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20368 = load i32, ptr %20367, align 4, !tbaa !5
  %20369 = call ptr @s2n_strerror(i32 noundef %20368, ptr noundef @.str.4)
  %20370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20371 = load i32, ptr %20370, align 4, !tbaa !5
  %20372 = call ptr @s2n_strerror_debug(i32 noundef %20371, ptr noundef @.str.4)
  %20373 = call ptr @__errno_location() #13
  %20374 = load i32, ptr %20373, align 4, !tbaa !5
  %20375 = call ptr @strerror(i32 noundef %20374) #12
  %20376 = call ptr @__errno_location() #13
  %20377 = load i32, ptr %20376, align 4, !tbaa !5
  %20378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20365, ptr noundef @.str.5, i32 noundef %20366, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1178, ptr noundef %20369, ptr noundef %20372, ptr noundef %20375, i32 noundef %20377) #12
  br label %20379

20379:                                            ; preds = %20362, %20345
  call void @llvm.lifetime.end.p0(i64 4, ptr %423) #12
  br label %20380

20380:                                            ; preds = %20379
  br label %20381

20381:                                            ; preds = %20380
  call void @exit(i32 noundef 1) #14
  unreachable

20382:                                            ; No predecessors!
  br label %20383

20383:                                            ; preds = %20382
  br label %20384

20384:                                            ; preds = %20383, %20326
  br label %20385

20385:                                            ; preds = %20384
  br label %20386

20386:                                            ; preds = %20385
  %20387 = load ptr, ptr %422, align 8, !tbaa !9
  %20388 = getelementptr inbounds %struct.s2n_connection, ptr %20387, i32 0, i32 2
  store ptr %325, ptr %20388, align 8, !tbaa !80
  %20389 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %20390 = load ptr, ptr %422, align 8, !tbaa !9
  %20391 = getelementptr inbounds %struct.s2n_connection, ptr %20390, i32 0, i32 31
  %20392 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %20391, i32 0, i32 1
  %20393 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %20392, i32 0, i32 0
  store ptr %20389, ptr %20393, align 8, !tbaa !57
  br label %20394

20394:                                            ; preds = %20386
  %20395 = load i32, ptr @test_count, align 4, !tbaa !5
  %20396 = add nsw i32 %20395, 1
  store i32 %20396, ptr @test_count, align 4, !tbaa !5
  %20397 = load ptr, ptr %422, align 8, !tbaa !9
  %20398 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %20397, i8 noundef zeroext 20)
  %20399 = icmp eq i32 %20398, -1
  br i1 %20399, label %20400, label %20453

20400:                                            ; preds = %20394
  br label %20401

20401:                                            ; preds = %20400
  br label %20402

20402:                                            ; preds = %20401
  call void @llvm.lifetime.start.p0(i64 4, ptr %424) #12
  %20403 = call ptr @__errno_location() #13
  %20404 = load i32, ptr %20403, align 4, !tbaa !5
  store i32 %20404, ptr %424, align 4, !tbaa !5
  %20405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20406 = call i32 @s2n_print_stacktrace(ptr noundef %20405)
  %20407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20408 = trunc i8 %20407 to i1
  br i1 %20408, label %20409, label %20431

20409:                                            ; preds = %20402
  %20410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20411 = call i32 @fileno(ptr noundef %20410) #12
  %20412 = call i32 @isatty(i32 noundef %20411) #12
  %20413 = icmp ne i32 %20412, 0
  br i1 %20413, label %20414, label %20431

20414:                                            ; preds = %20409
  %20415 = load i32, ptr %424, align 4, !tbaa !5
  %20416 = call ptr @__errno_location() #13
  store i32 %20415, ptr %20416, align 4, !tbaa !5
  %20417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20418 = load i32, ptr @test_count, align 4, !tbaa !5
  %20419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20420 = load i32, ptr %20419, align 4, !tbaa !5
  %20421 = call ptr @s2n_strerror(i32 noundef %20420, ptr noundef @.str.4)
  %20422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20423 = load i32, ptr %20422, align 4, !tbaa !5
  %20424 = call ptr @s2n_strerror_debug(i32 noundef %20423, ptr noundef @.str.4)
  %20425 = call ptr @__errno_location() #13
  %20426 = load i32, ptr %20425, align 4, !tbaa !5
  %20427 = call ptr @strerror(i32 noundef %20426) #12
  %20428 = call ptr @__errno_location() #13
  %20429 = load i32, ptr %20428, align 4, !tbaa !5
  %20430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20417, ptr noundef @.str.2, i32 noundef %20418, ptr noundef @.str.172, ptr noundef @.str.1, i32 noundef 1182, ptr noundef %20421, ptr noundef %20424, ptr noundef %20427, i32 noundef %20429) #12
  br label %20448

20431:                                            ; preds = %20409, %20402
  %20432 = load i32, ptr %424, align 4, !tbaa !5
  %20433 = call ptr @__errno_location() #13
  store i32 %20432, ptr %20433, align 4, !tbaa !5
  %20434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20435 = load i32, ptr @test_count, align 4, !tbaa !5
  %20436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20437 = load i32, ptr %20436, align 4, !tbaa !5
  %20438 = call ptr @s2n_strerror(i32 noundef %20437, ptr noundef @.str.4)
  %20439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20440 = load i32, ptr %20439, align 4, !tbaa !5
  %20441 = call ptr @s2n_strerror_debug(i32 noundef %20440, ptr noundef @.str.4)
  %20442 = call ptr @__errno_location() #13
  %20443 = load i32, ptr %20442, align 4, !tbaa !5
  %20444 = call ptr @strerror(i32 noundef %20443) #12
  %20445 = call ptr @__errno_location() #13
  %20446 = load i32, ptr %20445, align 4, !tbaa !5
  %20447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20434, ptr noundef @.str.5, i32 noundef %20435, ptr noundef @.str.172, ptr noundef @.str.1, i32 noundef 1182, ptr noundef %20438, ptr noundef %20441, ptr noundef %20444, i32 noundef %20446) #12
  br label %20448

20448:                                            ; preds = %20431, %20414
  call void @llvm.lifetime.end.p0(i64 4, ptr %424) #12
  br label %20449

20449:                                            ; preds = %20448
  br label %20450

20450:                                            ; preds = %20449
  call void @exit(i32 noundef 1) #14
  unreachable

20451:                                            ; No predecessors!
  br label %20452

20452:                                            ; preds = %20451
  br label %20453

20453:                                            ; preds = %20452, %20394
  br label %20454

20454:                                            ; preds = %20453
  br label %20455

20455:                                            ; preds = %20454
  br label %20456

20456:                                            ; preds = %20455
  %20457 = load i32, ptr @test_count, align 4, !tbaa !5
  %20458 = add nsw i32 %20457, 1
  store i32 %20458, ptr @test_count, align 4, !tbaa !5
  %20459 = load ptr, ptr %422, align 8, !tbaa !9
  %20460 = load ptr, ptr %326, align 8, !tbaa !9
  %20461 = call i32 @s2n_connection_set_config(ptr noundef %20459, ptr noundef %20460)
  %20462 = icmp eq i32 %20461, -1
  br i1 %20462, label %20463, label %20516

20463:                                            ; preds = %20456
  br label %20464

20464:                                            ; preds = %20463
  br label %20465

20465:                                            ; preds = %20464
  call void @llvm.lifetime.start.p0(i64 4, ptr %425) #12
  %20466 = call ptr @__errno_location() #13
  %20467 = load i32, ptr %20466, align 4, !tbaa !5
  store i32 %20467, ptr %425, align 4, !tbaa !5
  %20468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20469 = call i32 @s2n_print_stacktrace(ptr noundef %20468)
  %20470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20471 = trunc i8 %20470 to i1
  br i1 %20471, label %20472, label %20494

20472:                                            ; preds = %20465
  %20473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20474 = call i32 @fileno(ptr noundef %20473) #12
  %20475 = call i32 @isatty(i32 noundef %20474) #12
  %20476 = icmp ne i32 %20475, 0
  br i1 %20476, label %20477, label %20494

20477:                                            ; preds = %20472
  %20478 = load i32, ptr %425, align 4, !tbaa !5
  %20479 = call ptr @__errno_location() #13
  store i32 %20478, ptr %20479, align 4, !tbaa !5
  %20480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20481 = load i32, ptr @test_count, align 4, !tbaa !5
  %20482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20483 = load i32, ptr %20482, align 4, !tbaa !5
  %20484 = call ptr @s2n_strerror(i32 noundef %20483, ptr noundef @.str.4)
  %20485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20486 = load i32, ptr %20485, align 4, !tbaa !5
  %20487 = call ptr @s2n_strerror_debug(i32 noundef %20486, ptr noundef @.str.4)
  %20488 = call ptr @__errno_location() #13
  %20489 = load i32, ptr %20488, align 4, !tbaa !5
  %20490 = call ptr @strerror(i32 noundef %20489) #12
  %20491 = call ptr @__errno_location() #13
  %20492 = load i32, ptr %20491, align 4, !tbaa !5
  %20493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20480, ptr noundef @.str.2, i32 noundef %20481, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 1183, ptr noundef %20484, ptr noundef %20487, ptr noundef %20490, i32 noundef %20492) #12
  br label %20511

20494:                                            ; preds = %20472, %20465
  %20495 = load i32, ptr %425, align 4, !tbaa !5
  %20496 = call ptr @__errno_location() #13
  store i32 %20495, ptr %20496, align 4, !tbaa !5
  %20497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20498 = load i32, ptr @test_count, align 4, !tbaa !5
  %20499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20500 = load i32, ptr %20499, align 4, !tbaa !5
  %20501 = call ptr @s2n_strerror(i32 noundef %20500, ptr noundef @.str.4)
  %20502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20503 = load i32, ptr %20502, align 4, !tbaa !5
  %20504 = call ptr @s2n_strerror_debug(i32 noundef %20503, ptr noundef @.str.4)
  %20505 = call ptr @__errno_location() #13
  %20506 = load i32, ptr %20505, align 4, !tbaa !5
  %20507 = call ptr @strerror(i32 noundef %20506) #12
  %20508 = call ptr @__errno_location() #13
  %20509 = load i32, ptr %20508, align 4, !tbaa !5
  %20510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20497, ptr noundef @.str.5, i32 noundef %20498, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 1183, ptr noundef %20501, ptr noundef %20504, ptr noundef %20507, i32 noundef %20509) #12
  br label %20511

20511:                                            ; preds = %20494, %20477
  call void @llvm.lifetime.end.p0(i64 4, ptr %425) #12
  br label %20512

20512:                                            ; preds = %20511
  br label %20513

20513:                                            ; preds = %20512
  call void @exit(i32 noundef 1) #14
  unreachable

20514:                                            ; No predecessors!
  br label %20515

20515:                                            ; preds = %20514
  br label %20516

20516:                                            ; preds = %20515, %20456
  br label %20517

20517:                                            ; preds = %20516
  br label %20518

20518:                                            ; preds = %20517
  %20519 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %426, i32 0, i32 0
  store i16 3, ptr %20519, align 8, !tbaa !60
  %20520 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %426, i32 0, i32 1
  store ptr @main.test_cipher_suite_list.173, ptr %20520, align 8, !tbaa !58
  %20521 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %426, i32 0, i32 2
  store i8 1, ptr %20521, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %426, i64 24, i1 false), !tbaa.struct !82
  call void @llvm.lifetime.start.p0(i64 9, ptr %427) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %427, ptr align 1 @__const.main.wire.174, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %428) #12
  store i8 3, ptr %428, align 1, !tbaa !54
  %20522 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 1, ptr %20522, align 8, !tbaa !81
  br label %20523

20523:                                            ; preds = %20518
  %20524 = load i32, ptr @test_count, align 4, !tbaa !5
  %20525 = add nsw i32 %20524, 1
  store i32 %20525, ptr @test_count, align 4, !tbaa !5
  %20526 = load ptr, ptr %422, align 8, !tbaa !9
  %20527 = getelementptr inbounds [9 x i8], ptr %427, i64 0, i64 0
  %20528 = load i8, ptr %428, align 1, !tbaa !54
  %20529 = zext i8 %20528 to i16
  %20530 = call i32 @s2n_set_cipher_as_sslv2_server(ptr noundef %20526, ptr noundef %20527, i16 noundef zeroext %20529)
  %20531 = icmp eq i32 %20530, -1
  br i1 %20531, label %20532, label %20585

20532:                                            ; preds = %20523
  br label %20533

20533:                                            ; preds = %20532
  br label %20534

20534:                                            ; preds = %20533
  call void @llvm.lifetime.start.p0(i64 4, ptr %429) #12
  %20535 = call ptr @__errno_location() #13
  %20536 = load i32, ptr %20535, align 4, !tbaa !5
  store i32 %20536, ptr %429, align 4, !tbaa !5
  %20537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20538 = call i32 @s2n_print_stacktrace(ptr noundef %20537)
  %20539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20540 = trunc i8 %20539 to i1
  br i1 %20540, label %20541, label %20563

20541:                                            ; preds = %20534
  %20542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20543 = call i32 @fileno(ptr noundef %20542) #12
  %20544 = call i32 @isatty(i32 noundef %20543) #12
  %20545 = icmp ne i32 %20544, 0
  br i1 %20545, label %20546, label %20563

20546:                                            ; preds = %20541
  %20547 = load i32, ptr %429, align 4, !tbaa !5
  %20548 = call ptr @__errno_location() #13
  store i32 %20547, ptr %20548, align 4, !tbaa !5
  %20549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20550 = load i32, ptr @test_count, align 4, !tbaa !5
  %20551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20552 = load i32, ptr %20551, align 4, !tbaa !5
  %20553 = call ptr @s2n_strerror(i32 noundef %20552, ptr noundef @.str.4)
  %20554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20555 = load i32, ptr %20554, align 4, !tbaa !5
  %20556 = call ptr @s2n_strerror_debug(i32 noundef %20555, ptr noundef @.str.4)
  %20557 = call ptr @__errno_location() #13
  %20558 = load i32, ptr %20557, align 4, !tbaa !5
  %20559 = call ptr @strerror(i32 noundef %20558) #12
  %20560 = call ptr @__errno_location() #13
  %20561 = load i32, ptr %20560, align 4, !tbaa !5
  %20562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20549, ptr noundef @.str.2, i32 noundef %20550, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 1224, ptr noundef %20553, ptr noundef %20556, ptr noundef %20559, i32 noundef %20561) #12
  br label %20580

20563:                                            ; preds = %20541, %20534
  %20564 = load i32, ptr %429, align 4, !tbaa !5
  %20565 = call ptr @__errno_location() #13
  store i32 %20564, ptr %20565, align 4, !tbaa !5
  %20566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20567 = load i32, ptr @test_count, align 4, !tbaa !5
  %20568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20569 = load i32, ptr %20568, align 4, !tbaa !5
  %20570 = call ptr @s2n_strerror(i32 noundef %20569, ptr noundef @.str.4)
  %20571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20572 = load i32, ptr %20571, align 4, !tbaa !5
  %20573 = call ptr @s2n_strerror_debug(i32 noundef %20572, ptr noundef @.str.4)
  %20574 = call ptr @__errno_location() #13
  %20575 = load i32, ptr %20574, align 4, !tbaa !5
  %20576 = call ptr @strerror(i32 noundef %20575) #12
  %20577 = call ptr @__errno_location() #13
  %20578 = load i32, ptr %20577, align 4, !tbaa !5
  %20579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20566, ptr noundef @.str.5, i32 noundef %20567, ptr noundef @.str.175, ptr noundef @.str.1, i32 noundef 1224, ptr noundef %20570, ptr noundef %20573, ptr noundef %20576, i32 noundef %20578) #12
  br label %20580

20580:                                            ; preds = %20563, %20546
  call void @llvm.lifetime.end.p0(i64 4, ptr %429) #12
  br label %20581

20581:                                            ; preds = %20580
  br label %20582

20582:                                            ; preds = %20581
  call void @exit(i32 noundef 1) #14
  unreachable

20583:                                            ; No predecessors!
  br label %20584

20584:                                            ; preds = %20583
  br label %20585

20585:                                            ; preds = %20584, %20523
  br label %20586

20586:                                            ; preds = %20585
  br label %20587

20587:                                            ; preds = %20586
  br label %20588

20588:                                            ; preds = %20587
  %20589 = load i32, ptr @test_count, align 4, !tbaa !5
  %20590 = add nsw i32 %20589, 1
  store i32 %20590, ptr @test_count, align 4, !tbaa !5
  %20591 = load ptr, ptr %422, align 8, !tbaa !9
  %20592 = getelementptr inbounds %struct.s2n_connection, ptr %20591, i32 0, i32 27
  %20593 = load ptr, ptr %20592, align 8, !tbaa !48
  %20594 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %20593, i32 0, i32 0
  %20595 = load ptr, ptr %20594, align 8, !tbaa !49
  %20596 = icmp eq ptr %20595, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha
  br i1 %20596, label %20650, label %20597

20597:                                            ; preds = %20588
  br label %20598

20598:                                            ; preds = %20597
  br label %20599

20599:                                            ; preds = %20598
  call void @llvm.lifetime.start.p0(i64 4, ptr %430) #12
  %20600 = call ptr @__errno_location() #13
  %20601 = load i32, ptr %20600, align 4, !tbaa !5
  store i32 %20601, ptr %430, align 4, !tbaa !5
  %20602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20603 = call i32 @s2n_print_stacktrace(ptr noundef %20602)
  %20604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20605 = trunc i8 %20604 to i1
  br i1 %20605, label %20606, label %20628

20606:                                            ; preds = %20599
  %20607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20608 = call i32 @fileno(ptr noundef %20607) #12
  %20609 = call i32 @isatty(i32 noundef %20608) #12
  %20610 = icmp ne i32 %20609, 0
  br i1 %20610, label %20611, label %20628

20611:                                            ; preds = %20606
  %20612 = load i32, ptr %430, align 4, !tbaa !5
  %20613 = call ptr @__errno_location() #13
  store i32 %20612, ptr %20613, align 4, !tbaa !5
  %20614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20615 = load i32, ptr @test_count, align 4, !tbaa !5
  %20616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20617 = load i32, ptr %20616, align 4, !tbaa !5
  %20618 = call ptr @s2n_strerror(i32 noundef %20617, ptr noundef @.str.4)
  %20619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20620 = load i32, ptr %20619, align 4, !tbaa !5
  %20621 = call ptr @s2n_strerror_debug(i32 noundef %20620, ptr noundef @.str.4)
  %20622 = call ptr @__errno_location() #13
  %20623 = load i32, ptr %20622, align 4, !tbaa !5
  %20624 = call ptr @strerror(i32 noundef %20623) #12
  %20625 = call ptr @__errno_location() #13
  %20626 = load i32, ptr %20625, align 4, !tbaa !5
  %20627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20614, ptr noundef @.str.2, i32 noundef %20615, ptr noundef @.str.176, ptr noundef @.str.1, i32 noundef 1225, ptr noundef %20618, ptr noundef %20621, ptr noundef %20624, i32 noundef %20626) #12
  br label %20645

20628:                                            ; preds = %20606, %20599
  %20629 = load i32, ptr %430, align 4, !tbaa !5
  %20630 = call ptr @__errno_location() #13
  store i32 %20629, ptr %20630, align 4, !tbaa !5
  %20631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20632 = load i32, ptr @test_count, align 4, !tbaa !5
  %20633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20634 = load i32, ptr %20633, align 4, !tbaa !5
  %20635 = call ptr @s2n_strerror(i32 noundef %20634, ptr noundef @.str.4)
  %20636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20637 = load i32, ptr %20636, align 4, !tbaa !5
  %20638 = call ptr @s2n_strerror_debug(i32 noundef %20637, ptr noundef @.str.4)
  %20639 = call ptr @__errno_location() #13
  %20640 = load i32, ptr %20639, align 4, !tbaa !5
  %20641 = call ptr @strerror(i32 noundef %20640) #12
  %20642 = call ptr @__errno_location() #13
  %20643 = load i32, ptr %20642, align 4, !tbaa !5
  %20644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20631, ptr noundef @.str.5, i32 noundef %20632, ptr noundef @.str.176, ptr noundef @.str.1, i32 noundef 1225, ptr noundef %20635, ptr noundef %20638, ptr noundef %20641, i32 noundef %20643) #12
  br label %20645

20645:                                            ; preds = %20628, %20611
  call void @llvm.lifetime.end.p0(i64 4, ptr %430) #12
  br label %20646

20646:                                            ; preds = %20645
  br label %20647

20647:                                            ; preds = %20646
  call void @exit(i32 noundef 1) #14
  unreachable

20648:                                            ; No predecessors!
  br label %20649

20649:                                            ; preds = %20648
  br label %20650

20650:                                            ; preds = %20649, %20588
  br label %20651

20651:                                            ; preds = %20650
  br label %20652

20652:                                            ; preds = %20651
  call void @llvm.lifetime.end.p0(i64 1, ptr %428) #12
  call void @llvm.lifetime.end.p0(i64 9, ptr %427) #12
  %20653 = call i32 @s2n_connection_ptr_free(ptr noundef %422)
  %20654 = getelementptr inbounds %struct.s2n_result, ptr %431, i32 0, i32 0
  store i32 %20653, ptr %20654, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %422) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %432) #12
  %20655 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %20655, ptr %432, align 8, !tbaa !9
  br label %20656

20656:                                            ; preds = %20652
  %20657 = load i32, ptr @test_count, align 4, !tbaa !5
  %20658 = add nsw i32 %20657, 1
  store i32 %20658, ptr @test_count, align 4, !tbaa !5
  %20659 = load ptr, ptr %432, align 8, !tbaa !9
  %20660 = icmp eq ptr %20659, null
  br i1 %20660, label %20661, label %20714

20661:                                            ; preds = %20656
  br label %20662

20662:                                            ; preds = %20661
  br label %20663

20663:                                            ; preds = %20662
  call void @llvm.lifetime.start.p0(i64 4, ptr %433) #12
  %20664 = call ptr @__errno_location() #13
  %20665 = load i32, ptr %20664, align 4, !tbaa !5
  store i32 %20665, ptr %433, align 4, !tbaa !5
  %20666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20667 = call i32 @s2n_print_stacktrace(ptr noundef %20666)
  %20668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20669 = trunc i8 %20668 to i1
  br i1 %20669, label %20670, label %20692

20670:                                            ; preds = %20663
  %20671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20672 = call i32 @fileno(ptr noundef %20671) #12
  %20673 = call i32 @isatty(i32 noundef %20672) #12
  %20674 = icmp ne i32 %20673, 0
  br i1 %20674, label %20675, label %20692

20675:                                            ; preds = %20670
  %20676 = load i32, ptr %433, align 4, !tbaa !5
  %20677 = call ptr @__errno_location() #13
  store i32 %20676, ptr %20677, align 4, !tbaa !5
  %20678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20679 = load i32, ptr @test_count, align 4, !tbaa !5
  %20680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20681 = load i32, ptr %20680, align 4, !tbaa !5
  %20682 = call ptr @s2n_strerror(i32 noundef %20681, ptr noundef @.str.4)
  %20683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20684 = load i32, ptr %20683, align 4, !tbaa !5
  %20685 = call ptr @s2n_strerror_debug(i32 noundef %20684, ptr noundef @.str.4)
  %20686 = call ptr @__errno_location() #13
  %20687 = load i32, ptr %20686, align 4, !tbaa !5
  %20688 = call ptr @strerror(i32 noundef %20687) #12
  %20689 = call ptr @__errno_location() #13
  %20690 = load i32, ptr %20689, align 4, !tbaa !5
  %20691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20678, ptr noundef @.str.2, i32 noundef %20679, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1231, ptr noundef %20682, ptr noundef %20685, ptr noundef %20688, i32 noundef %20690) #12
  br label %20709

20692:                                            ; preds = %20670, %20663
  %20693 = load i32, ptr %433, align 4, !tbaa !5
  %20694 = call ptr @__errno_location() #13
  store i32 %20693, ptr %20694, align 4, !tbaa !5
  %20695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20696 = load i32, ptr @test_count, align 4, !tbaa !5
  %20697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20698 = load i32, ptr %20697, align 4, !tbaa !5
  %20699 = call ptr @s2n_strerror(i32 noundef %20698, ptr noundef @.str.4)
  %20700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20701 = load i32, ptr %20700, align 4, !tbaa !5
  %20702 = call ptr @s2n_strerror_debug(i32 noundef %20701, ptr noundef @.str.4)
  %20703 = call ptr @__errno_location() #13
  %20704 = load i32, ptr %20703, align 4, !tbaa !5
  %20705 = call ptr @strerror(i32 noundef %20704) #12
  %20706 = call ptr @__errno_location() #13
  %20707 = load i32, ptr %20706, align 4, !tbaa !5
  %20708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20695, ptr noundef @.str.5, i32 noundef %20696, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1231, ptr noundef %20699, ptr noundef %20702, ptr noundef %20705, i32 noundef %20707) #12
  br label %20709

20709:                                            ; preds = %20692, %20675
  call void @llvm.lifetime.end.p0(i64 4, ptr %433) #12
  br label %20710

20710:                                            ; preds = %20709
  br label %20711

20711:                                            ; preds = %20710
  call void @exit(i32 noundef 1) #14
  unreachable

20712:                                            ; No predecessors!
  br label %20713

20713:                                            ; preds = %20712
  br label %20714

20714:                                            ; preds = %20713, %20656
  br label %20715

20715:                                            ; preds = %20714
  br label %20716

20716:                                            ; preds = %20715
  br label %20717

20717:                                            ; preds = %20716
  %20718 = load i32, ptr @test_count, align 4, !tbaa !5
  %20719 = add nsw i32 %20718, 1
  store i32 %20719, ptr @test_count, align 4, !tbaa !5
  %20720 = call i32 (...) @s2n_enable_tls13_in_test()
  %20721 = icmp eq i32 %20720, -1
  br i1 %20721, label %20722, label %20775

20722:                                            ; preds = %20717
  br label %20723

20723:                                            ; preds = %20722
  br label %20724

20724:                                            ; preds = %20723
  call void @llvm.lifetime.start.p0(i64 4, ptr %434) #12
  %20725 = call ptr @__errno_location() #13
  %20726 = load i32, ptr %20725, align 4, !tbaa !5
  store i32 %20726, ptr %434, align 4, !tbaa !5
  %20727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20728 = call i32 @s2n_print_stacktrace(ptr noundef %20727)
  %20729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20730 = trunc i8 %20729 to i1
  br i1 %20730, label %20731, label %20753

20731:                                            ; preds = %20724
  %20732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20733 = call i32 @fileno(ptr noundef %20732) #12
  %20734 = call i32 @isatty(i32 noundef %20733) #12
  %20735 = icmp ne i32 %20734, 0
  br i1 %20735, label %20736, label %20753

20736:                                            ; preds = %20731
  %20737 = load i32, ptr %434, align 4, !tbaa !5
  %20738 = call ptr @__errno_location() #13
  store i32 %20737, ptr %20738, align 4, !tbaa !5
  %20739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20740 = load i32, ptr @test_count, align 4, !tbaa !5
  %20741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20742 = load i32, ptr %20741, align 4, !tbaa !5
  %20743 = call ptr @s2n_strerror(i32 noundef %20742, ptr noundef @.str.4)
  %20744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20745 = load i32, ptr %20744, align 4, !tbaa !5
  %20746 = call ptr @s2n_strerror_debug(i32 noundef %20745, ptr noundef @.str.4)
  %20747 = call ptr @__errno_location() #13
  %20748 = load i32, ptr %20747, align 4, !tbaa !5
  %20749 = call ptr @strerror(i32 noundef %20748) #12
  %20750 = call ptr @__errno_location() #13
  %20751 = load i32, ptr %20750, align 4, !tbaa !5
  %20752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20739, ptr noundef @.str.2, i32 noundef %20740, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 1232, ptr noundef %20743, ptr noundef %20746, ptr noundef %20749, i32 noundef %20751) #12
  br label %20770

20753:                                            ; preds = %20731, %20724
  %20754 = load i32, ptr %434, align 4, !tbaa !5
  %20755 = call ptr @__errno_location() #13
  store i32 %20754, ptr %20755, align 4, !tbaa !5
  %20756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20757 = load i32, ptr @test_count, align 4, !tbaa !5
  %20758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20759 = load i32, ptr %20758, align 4, !tbaa !5
  %20760 = call ptr @s2n_strerror(i32 noundef %20759, ptr noundef @.str.4)
  %20761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20762 = load i32, ptr %20761, align 4, !tbaa !5
  %20763 = call ptr @s2n_strerror_debug(i32 noundef %20762, ptr noundef @.str.4)
  %20764 = call ptr @__errno_location() #13
  %20765 = load i32, ptr %20764, align 4, !tbaa !5
  %20766 = call ptr @strerror(i32 noundef %20765) #12
  %20767 = call ptr @__errno_location() #13
  %20768 = load i32, ptr %20767, align 4, !tbaa !5
  %20769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20756, ptr noundef @.str.5, i32 noundef %20757, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 1232, ptr noundef %20760, ptr noundef %20763, ptr noundef %20766, i32 noundef %20768) #12
  br label %20770

20770:                                            ; preds = %20753, %20736
  call void @llvm.lifetime.end.p0(i64 4, ptr %434) #12
  br label %20771

20771:                                            ; preds = %20770
  br label %20772

20772:                                            ; preds = %20771
  call void @exit(i32 noundef 1) #14
  unreachable

20773:                                            ; No predecessors!
  br label %20774

20774:                                            ; preds = %20773
  br label %20775

20775:                                            ; preds = %20774, %20717
  br label %20776

20776:                                            ; preds = %20775
  br label %20777

20777:                                            ; preds = %20776
  %20778 = load ptr, ptr %432, align 8, !tbaa !9
  %20779 = getelementptr inbounds %struct.s2n_connection, ptr %20778, i32 0, i32 2
  store ptr %325, ptr %20779, align 8, !tbaa !80
  %20780 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %20781 = load ptr, ptr %432, align 8, !tbaa !9
  %20782 = getelementptr inbounds %struct.s2n_connection, ptr %20781, i32 0, i32 31
  %20783 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %20782, i32 0, i32 1
  %20784 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %20783, i32 0, i32 0
  store ptr %20780, ptr %20784, align 8, !tbaa !57
  br label %20785

20785:                                            ; preds = %20777
  %20786 = load i32, ptr @test_count, align 4, !tbaa !5
  %20787 = add nsw i32 %20786, 1
  store i32 %20787, ptr @test_count, align 4, !tbaa !5
  %20788 = load ptr, ptr %432, align 8, !tbaa !9
  %20789 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %20788, i8 noundef zeroext 34)
  %20790 = icmp eq i32 %20789, -1
  br i1 %20790, label %20791, label %20844

20791:                                            ; preds = %20785
  br label %20792

20792:                                            ; preds = %20791
  br label %20793

20793:                                            ; preds = %20792
  call void @llvm.lifetime.start.p0(i64 4, ptr %435) #12
  %20794 = call ptr @__errno_location() #13
  %20795 = load i32, ptr %20794, align 4, !tbaa !5
  store i32 %20795, ptr %435, align 4, !tbaa !5
  %20796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20797 = call i32 @s2n_print_stacktrace(ptr noundef %20796)
  %20798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20799 = trunc i8 %20798 to i1
  br i1 %20799, label %20800, label %20822

20800:                                            ; preds = %20793
  %20801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20802 = call i32 @fileno(ptr noundef %20801) #12
  %20803 = call i32 @isatty(i32 noundef %20802) #12
  %20804 = icmp ne i32 %20803, 0
  br i1 %20804, label %20805, label %20822

20805:                                            ; preds = %20800
  %20806 = load i32, ptr %435, align 4, !tbaa !5
  %20807 = call ptr @__errno_location() #13
  store i32 %20806, ptr %20807, align 4, !tbaa !5
  %20808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20809 = load i32, ptr @test_count, align 4, !tbaa !5
  %20810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20811 = load i32, ptr %20810, align 4, !tbaa !5
  %20812 = call ptr @s2n_strerror(i32 noundef %20811, ptr noundef @.str.4)
  %20813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20814 = load i32, ptr %20813, align 4, !tbaa !5
  %20815 = call ptr @s2n_strerror_debug(i32 noundef %20814, ptr noundef @.str.4)
  %20816 = call ptr @__errno_location() #13
  %20817 = load i32, ptr %20816, align 4, !tbaa !5
  %20818 = call ptr @strerror(i32 noundef %20817) #12
  %20819 = call ptr @__errno_location() #13
  %20820 = load i32, ptr %20819, align 4, !tbaa !5
  %20821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20808, ptr noundef @.str.2, i32 noundef %20809, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 1236, ptr noundef %20812, ptr noundef %20815, ptr noundef %20818, i32 noundef %20820) #12
  br label %20839

20822:                                            ; preds = %20800, %20793
  %20823 = load i32, ptr %435, align 4, !tbaa !5
  %20824 = call ptr @__errno_location() #13
  store i32 %20823, ptr %20824, align 4, !tbaa !5
  %20825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20826 = load i32, ptr @test_count, align 4, !tbaa !5
  %20827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20828 = load i32, ptr %20827, align 4, !tbaa !5
  %20829 = call ptr @s2n_strerror(i32 noundef %20828, ptr noundef @.str.4)
  %20830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20831 = load i32, ptr %20830, align 4, !tbaa !5
  %20832 = call ptr @s2n_strerror_debug(i32 noundef %20831, ptr noundef @.str.4)
  %20833 = call ptr @__errno_location() #13
  %20834 = load i32, ptr %20833, align 4, !tbaa !5
  %20835 = call ptr @strerror(i32 noundef %20834) #12
  %20836 = call ptr @__errno_location() #13
  %20837 = load i32, ptr %20836, align 4, !tbaa !5
  %20838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20825, ptr noundef @.str.5, i32 noundef %20826, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 1236, ptr noundef %20829, ptr noundef %20832, ptr noundef %20835, i32 noundef %20837) #12
  br label %20839

20839:                                            ; preds = %20822, %20805
  call void @llvm.lifetime.end.p0(i64 4, ptr %435) #12
  br label %20840

20840:                                            ; preds = %20839
  br label %20841

20841:                                            ; preds = %20840
  call void @exit(i32 noundef 1) #14
  unreachable

20842:                                            ; No predecessors!
  br label %20843

20843:                                            ; preds = %20842
  br label %20844

20844:                                            ; preds = %20843, %20785
  br label %20845

20845:                                            ; preds = %20844
  br label %20846

20846:                                            ; preds = %20845
  %20847 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %436, i32 0, i32 0
  store i16 2, ptr %20847, align 8, !tbaa !60
  %20848 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %436, i32 0, i32 1
  store ptr @main.test_cipher_suite_list.177, ptr %20848, align 8, !tbaa !58
  %20849 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %436, i32 0, i32 2
  store i8 1, ptr %20849, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %436, i64 24, i1 false), !tbaa.struct !82
  call void @llvm.lifetime.start.p0(i64 6, ptr %437) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %437, ptr align 1 @__const.main.wire.178, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %438) #12
  store i8 3, ptr %438, align 1, !tbaa !54
  %20850 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 0, ptr %20850, align 8, !tbaa !81
  br label %20851

20851:                                            ; preds = %20846
  %20852 = load i32, ptr @test_count, align 4, !tbaa !5
  %20853 = add nsw i32 %20852, 1
  store i32 %20853, ptr @test_count, align 4, !tbaa !5
  %20854 = load ptr, ptr %432, align 8, !tbaa !9
  %20855 = getelementptr inbounds [6 x i8], ptr %437, i64 0, i64 0
  %20856 = load i8, ptr %438, align 1, !tbaa !54
  %20857 = zext i8 %20856 to i16
  %20858 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %20854, ptr noundef %20855, i16 noundef zeroext %20857)
  %20859 = icmp eq i32 %20858, -1
  br i1 %20859, label %20860, label %20913

20860:                                            ; preds = %20851
  br label %20861

20861:                                            ; preds = %20860
  br label %20862

20862:                                            ; preds = %20861
  call void @llvm.lifetime.start.p0(i64 4, ptr %439) #12
  %20863 = call ptr @__errno_location() #13
  %20864 = load i32, ptr %20863, align 4, !tbaa !5
  store i32 %20864, ptr %439, align 4, !tbaa !5
  %20865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20866 = call i32 @s2n_print_stacktrace(ptr noundef %20865)
  %20867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20868 = trunc i8 %20867 to i1
  br i1 %20868, label %20869, label %20891

20869:                                            ; preds = %20862
  %20870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20871 = call i32 @fileno(ptr noundef %20870) #12
  %20872 = call i32 @isatty(i32 noundef %20871) #12
  %20873 = icmp ne i32 %20872, 0
  br i1 %20873, label %20874, label %20891

20874:                                            ; preds = %20869
  %20875 = load i32, ptr %439, align 4, !tbaa !5
  %20876 = call ptr @__errno_location() #13
  store i32 %20875, ptr %20876, align 4, !tbaa !5
  %20877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20878 = load i32, ptr @test_count, align 4, !tbaa !5
  %20879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20880 = load i32, ptr %20879, align 4, !tbaa !5
  %20881 = call ptr @s2n_strerror(i32 noundef %20880, ptr noundef @.str.4)
  %20882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20883 = load i32, ptr %20882, align 4, !tbaa !5
  %20884 = call ptr @s2n_strerror_debug(i32 noundef %20883, ptr noundef @.str.4)
  %20885 = call ptr @__errno_location() #13
  %20886 = load i32, ptr %20885, align 4, !tbaa !5
  %20887 = call ptr @strerror(i32 noundef %20886) #12
  %20888 = call ptr @__errno_location() #13
  %20889 = load i32, ptr %20888, align 4, !tbaa !5
  %20890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20877, ptr noundef @.str.2, i32 noundef %20878, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1263, ptr noundef %20881, ptr noundef %20884, ptr noundef %20887, i32 noundef %20889) #12
  br label %20908

20891:                                            ; preds = %20869, %20862
  %20892 = load i32, ptr %439, align 4, !tbaa !5
  %20893 = call ptr @__errno_location() #13
  store i32 %20892, ptr %20893, align 4, !tbaa !5
  %20894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20895 = load i32, ptr @test_count, align 4, !tbaa !5
  %20896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20897 = load i32, ptr %20896, align 4, !tbaa !5
  %20898 = call ptr @s2n_strerror(i32 noundef %20897, ptr noundef @.str.4)
  %20899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20900 = load i32, ptr %20899, align 4, !tbaa !5
  %20901 = call ptr @s2n_strerror_debug(i32 noundef %20900, ptr noundef @.str.4)
  %20902 = call ptr @__errno_location() #13
  %20903 = load i32, ptr %20902, align 4, !tbaa !5
  %20904 = call ptr @strerror(i32 noundef %20903) #12
  %20905 = call ptr @__errno_location() #13
  %20906 = load i32, ptr %20905, align 4, !tbaa !5
  %20907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20894, ptr noundef @.str.5, i32 noundef %20895, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1263, ptr noundef %20898, ptr noundef %20901, ptr noundef %20904, i32 noundef %20906) #12
  br label %20908

20908:                                            ; preds = %20891, %20874
  call void @llvm.lifetime.end.p0(i64 4, ptr %439) #12
  br label %20909

20909:                                            ; preds = %20908
  br label %20910

20910:                                            ; preds = %20909
  call void @exit(i32 noundef 1) #14
  unreachable

20911:                                            ; No predecessors!
  br label %20912

20912:                                            ; preds = %20911
  br label %20913

20913:                                            ; preds = %20912, %20851
  br label %20914

20914:                                            ; preds = %20913
  br label %20915

20915:                                            ; preds = %20914
  br label %20916

20916:                                            ; preds = %20915
  %20917 = load i32, ptr @test_count, align 4, !tbaa !5
  %20918 = add nsw i32 %20917, 1
  store i32 %20918, ptr @test_count, align 4, !tbaa !5
  %20919 = load ptr, ptr %432, align 8, !tbaa !9
  %20920 = getelementptr inbounds %struct.s2n_connection, ptr %20919, i32 0, i32 27
  %20921 = load ptr, ptr %20920, align 8, !tbaa !48
  %20922 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %20921, i32 0, i32 0
  %20923 = load ptr, ptr %20922, align 8, !tbaa !49
  %20924 = icmp eq ptr %20923, @s2n_tls13_aes_128_gcm_sha256
  br i1 %20924, label %20978, label %20925

20925:                                            ; preds = %20916
  br label %20926

20926:                                            ; preds = %20925
  br label %20927

20927:                                            ; preds = %20926
  call void @llvm.lifetime.start.p0(i64 4, ptr %440) #12
  %20928 = call ptr @__errno_location() #13
  %20929 = load i32, ptr %20928, align 4, !tbaa !5
  store i32 %20929, ptr %440, align 4, !tbaa !5
  %20930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20931 = call i32 @s2n_print_stacktrace(ptr noundef %20930)
  %20932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20933 = trunc i8 %20932 to i1
  br i1 %20933, label %20934, label %20956

20934:                                            ; preds = %20927
  %20935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20936 = call i32 @fileno(ptr noundef %20935) #12
  %20937 = call i32 @isatty(i32 noundef %20936) #12
  %20938 = icmp ne i32 %20937, 0
  br i1 %20938, label %20939, label %20956

20939:                                            ; preds = %20934
  %20940 = load i32, ptr %440, align 4, !tbaa !5
  %20941 = call ptr @__errno_location() #13
  store i32 %20940, ptr %20941, align 4, !tbaa !5
  %20942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20943 = load i32, ptr @test_count, align 4, !tbaa !5
  %20944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20945 = load i32, ptr %20944, align 4, !tbaa !5
  %20946 = call ptr @s2n_strerror(i32 noundef %20945, ptr noundef @.str.4)
  %20947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20948 = load i32, ptr %20947, align 4, !tbaa !5
  %20949 = call ptr @s2n_strerror_debug(i32 noundef %20948, ptr noundef @.str.4)
  %20950 = call ptr @__errno_location() #13
  %20951 = load i32, ptr %20950, align 4, !tbaa !5
  %20952 = call ptr @strerror(i32 noundef %20951) #12
  %20953 = call ptr @__errno_location() #13
  %20954 = load i32, ptr %20953, align 4, !tbaa !5
  %20955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20942, ptr noundef @.str.2, i32 noundef %20943, ptr noundef @.str.167, ptr noundef @.str.1, i32 noundef 1264, ptr noundef %20946, ptr noundef %20949, ptr noundef %20952, i32 noundef %20954) #12
  br label %20973

20956:                                            ; preds = %20934, %20927
  %20957 = load i32, ptr %440, align 4, !tbaa !5
  %20958 = call ptr @__errno_location() #13
  store i32 %20957, ptr %20958, align 4, !tbaa !5
  %20959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20960 = load i32, ptr @test_count, align 4, !tbaa !5
  %20961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20962 = load i32, ptr %20961, align 4, !tbaa !5
  %20963 = call ptr @s2n_strerror(i32 noundef %20962, ptr noundef @.str.4)
  %20964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20965 = load i32, ptr %20964, align 4, !tbaa !5
  %20966 = call ptr @s2n_strerror_debug(i32 noundef %20965, ptr noundef @.str.4)
  %20967 = call ptr @__errno_location() #13
  %20968 = load i32, ptr %20967, align 4, !tbaa !5
  %20969 = call ptr @strerror(i32 noundef %20968) #12
  %20970 = call ptr @__errno_location() #13
  %20971 = load i32, ptr %20970, align 4, !tbaa !5
  %20972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20959, ptr noundef @.str.5, i32 noundef %20960, ptr noundef @.str.167, ptr noundef @.str.1, i32 noundef 1264, ptr noundef %20963, ptr noundef %20966, ptr noundef %20969, i32 noundef %20971) #12
  br label %20973

20973:                                            ; preds = %20956, %20939
  call void @llvm.lifetime.end.p0(i64 4, ptr %440) #12
  br label %20974

20974:                                            ; preds = %20973
  br label %20975

20975:                                            ; preds = %20974
  call void @exit(i32 noundef 1) #14
  unreachable

20976:                                            ; No predecessors!
  br label %20977

20977:                                            ; preds = %20976
  br label %20978

20978:                                            ; preds = %20977, %20916
  br label %20979

20979:                                            ; preds = %20978
  br label %20980

20980:                                            ; preds = %20979
  br label %20981

20981:                                            ; preds = %20980
  %20982 = load i32, ptr @test_count, align 4, !tbaa !5
  %20983 = add nsw i32 %20982, 1
  store i32 %20983, ptr @test_count, align 4, !tbaa !5
  %20984 = call i32 (...) @s2n_disable_tls13_in_test()
  %20985 = icmp eq i32 %20984, -1
  br i1 %20985, label %20986, label %21039

20986:                                            ; preds = %20981
  br label %20987

20987:                                            ; preds = %20986
  br label %20988

20988:                                            ; preds = %20987
  call void @llvm.lifetime.start.p0(i64 4, ptr %441) #12
  %20989 = call ptr @__errno_location() #13
  %20990 = load i32, ptr %20989, align 4, !tbaa !5
  store i32 %20990, ptr %441, align 4, !tbaa !5
  %20991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20992 = call i32 @s2n_print_stacktrace(ptr noundef %20991)
  %20993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20994 = trunc i8 %20993 to i1
  br i1 %20994, label %20995, label %21017

20995:                                            ; preds = %20988
  %20996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20997 = call i32 @fileno(ptr noundef %20996) #12
  %20998 = call i32 @isatty(i32 noundef %20997) #12
  %20999 = icmp ne i32 %20998, 0
  br i1 %20999, label %21000, label %21017

21000:                                            ; preds = %20995
  %21001 = load i32, ptr %441, align 4, !tbaa !5
  %21002 = call ptr @__errno_location() #13
  store i32 %21001, ptr %21002, align 4, !tbaa !5
  %21003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21004 = load i32, ptr @test_count, align 4, !tbaa !5
  %21005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21006 = load i32, ptr %21005, align 4, !tbaa !5
  %21007 = call ptr @s2n_strerror(i32 noundef %21006, ptr noundef @.str.4)
  %21008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21009 = load i32, ptr %21008, align 4, !tbaa !5
  %21010 = call ptr @s2n_strerror_debug(i32 noundef %21009, ptr noundef @.str.4)
  %21011 = call ptr @__errno_location() #13
  %21012 = load i32, ptr %21011, align 4, !tbaa !5
  %21013 = call ptr @strerror(i32 noundef %21012) #12
  %21014 = call ptr @__errno_location() #13
  %21015 = load i32, ptr %21014, align 4, !tbaa !5
  %21016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21003, ptr noundef @.str.2, i32 noundef %21004, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 1265, ptr noundef %21007, ptr noundef %21010, ptr noundef %21013, i32 noundef %21015) #12
  br label %21034

21017:                                            ; preds = %20995, %20988
  %21018 = load i32, ptr %441, align 4, !tbaa !5
  %21019 = call ptr @__errno_location() #13
  store i32 %21018, ptr %21019, align 4, !tbaa !5
  %21020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21021 = load i32, ptr @test_count, align 4, !tbaa !5
  %21022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21023 = load i32, ptr %21022, align 4, !tbaa !5
  %21024 = call ptr @s2n_strerror(i32 noundef %21023, ptr noundef @.str.4)
  %21025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21026 = load i32, ptr %21025, align 4, !tbaa !5
  %21027 = call ptr @s2n_strerror_debug(i32 noundef %21026, ptr noundef @.str.4)
  %21028 = call ptr @__errno_location() #13
  %21029 = load i32, ptr %21028, align 4, !tbaa !5
  %21030 = call ptr @strerror(i32 noundef %21029) #12
  %21031 = call ptr @__errno_location() #13
  %21032 = load i32, ptr %21031, align 4, !tbaa !5
  %21033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21020, ptr noundef @.str.5, i32 noundef %21021, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 1265, ptr noundef %21024, ptr noundef %21027, ptr noundef %21030, i32 noundef %21032) #12
  br label %21034

21034:                                            ; preds = %21017, %21000
  call void @llvm.lifetime.end.p0(i64 4, ptr %441) #12
  br label %21035

21035:                                            ; preds = %21034
  br label %21036

21036:                                            ; preds = %21035
  call void @exit(i32 noundef 1) #14
  unreachable

21037:                                            ; No predecessors!
  br label %21038

21038:                                            ; preds = %21037
  br label %21039

21039:                                            ; preds = %21038, %20981
  br label %21040

21040:                                            ; preds = %21039
  br label %21041

21041:                                            ; preds = %21040
  call void @llvm.lifetime.end.p0(i64 1, ptr %438) #12
  call void @llvm.lifetime.end.p0(i64 6, ptr %437) #12
  %21042 = call i32 @s2n_connection_ptr_free(ptr noundef %432)
  %21043 = getelementptr inbounds %struct.s2n_result, ptr %442, i32 0, i32 0
  store i32 %21042, ptr %21043, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %443) #12
  %21044 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %21044, ptr %443, align 8, !tbaa !9
  br label %21045

21045:                                            ; preds = %21041
  %21046 = load i32, ptr @test_count, align 4, !tbaa !5
  %21047 = add nsw i32 %21046, 1
  store i32 %21047, ptr @test_count, align 4, !tbaa !5
  %21048 = load ptr, ptr %443, align 8, !tbaa !9
  %21049 = icmp eq ptr %21048, null
  br i1 %21049, label %21050, label %21103

21050:                                            ; preds = %21045
  br label %21051

21051:                                            ; preds = %21050
  br label %21052

21052:                                            ; preds = %21051
  call void @llvm.lifetime.start.p0(i64 4, ptr %444) #12
  %21053 = call ptr @__errno_location() #13
  %21054 = load i32, ptr %21053, align 4, !tbaa !5
  store i32 %21054, ptr %444, align 4, !tbaa !5
  %21055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21056 = call i32 @s2n_print_stacktrace(ptr noundef %21055)
  %21057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21058 = trunc i8 %21057 to i1
  br i1 %21058, label %21059, label %21081

21059:                                            ; preds = %21052
  %21060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21061 = call i32 @fileno(ptr noundef %21060) #12
  %21062 = call i32 @isatty(i32 noundef %21061) #12
  %21063 = icmp ne i32 %21062, 0
  br i1 %21063, label %21064, label %21081

21064:                                            ; preds = %21059
  %21065 = load i32, ptr %444, align 4, !tbaa !5
  %21066 = call ptr @__errno_location() #13
  store i32 %21065, ptr %21066, align 4, !tbaa !5
  %21067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21068 = load i32, ptr @test_count, align 4, !tbaa !5
  %21069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21070 = load i32, ptr %21069, align 4, !tbaa !5
  %21071 = call ptr @s2n_strerror(i32 noundef %21070, ptr noundef @.str.4)
  %21072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21073 = load i32, ptr %21072, align 4, !tbaa !5
  %21074 = call ptr @s2n_strerror_debug(i32 noundef %21073, ptr noundef @.str.4)
  %21075 = call ptr @__errno_location() #13
  %21076 = load i32, ptr %21075, align 4, !tbaa !5
  %21077 = call ptr @strerror(i32 noundef %21076) #12
  %21078 = call ptr @__errno_location() #13
  %21079 = load i32, ptr %21078, align 4, !tbaa !5
  %21080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21067, ptr noundef @.str.2, i32 noundef %21068, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1271, ptr noundef %21071, ptr noundef %21074, ptr noundef %21077, i32 noundef %21079) #12
  br label %21098

21081:                                            ; preds = %21059, %21052
  %21082 = load i32, ptr %444, align 4, !tbaa !5
  %21083 = call ptr @__errno_location() #13
  store i32 %21082, ptr %21083, align 4, !tbaa !5
  %21084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21085 = load i32, ptr @test_count, align 4, !tbaa !5
  %21086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21087 = load i32, ptr %21086, align 4, !tbaa !5
  %21088 = call ptr @s2n_strerror(i32 noundef %21087, ptr noundef @.str.4)
  %21089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21090 = load i32, ptr %21089, align 4, !tbaa !5
  %21091 = call ptr @s2n_strerror_debug(i32 noundef %21090, ptr noundef @.str.4)
  %21092 = call ptr @__errno_location() #13
  %21093 = load i32, ptr %21092, align 4, !tbaa !5
  %21094 = call ptr @strerror(i32 noundef %21093) #12
  %21095 = call ptr @__errno_location() #13
  %21096 = load i32, ptr %21095, align 4, !tbaa !5
  %21097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21084, ptr noundef @.str.5, i32 noundef %21085, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1271, ptr noundef %21088, ptr noundef %21091, ptr noundef %21094, i32 noundef %21096) #12
  br label %21098

21098:                                            ; preds = %21081, %21064
  call void @llvm.lifetime.end.p0(i64 4, ptr %444) #12
  br label %21099

21099:                                            ; preds = %21098
  br label %21100

21100:                                            ; preds = %21099
  call void @exit(i32 noundef 1) #14
  unreachable

21101:                                            ; No predecessors!
  br label %21102

21102:                                            ; preds = %21101
  br label %21103

21103:                                            ; preds = %21102, %21045
  br label %21104

21104:                                            ; preds = %21103
  br label %21105

21105:                                            ; preds = %21104
  %21106 = load ptr, ptr %443, align 8, !tbaa !9
  %21107 = getelementptr inbounds %struct.s2n_connection, ptr %21106, i32 0, i32 2
  store ptr %325, ptr %21107, align 8, !tbaa !80
  %21108 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %21109 = load ptr, ptr %443, align 8, !tbaa !9
  %21110 = getelementptr inbounds %struct.s2n_connection, ptr %21109, i32 0, i32 31
  %21111 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %21110, i32 0, i32 1
  %21112 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %21111, i32 0, i32 0
  store ptr %21108, ptr %21112, align 8, !tbaa !57
  br label %21113

21113:                                            ; preds = %21105
  %21114 = load i32, ptr @test_count, align 4, !tbaa !5
  %21115 = add nsw i32 %21114, 1
  store i32 %21115, ptr @test_count, align 4, !tbaa !5
  %21116 = load ptr, ptr %443, align 8, !tbaa !9
  %21117 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %21116, i8 noundef zeroext 33)
  %21118 = icmp eq i32 %21117, -1
  br i1 %21118, label %21119, label %21172

21119:                                            ; preds = %21113
  br label %21120

21120:                                            ; preds = %21119
  br label %21121

21121:                                            ; preds = %21120
  call void @llvm.lifetime.start.p0(i64 4, ptr %445) #12
  %21122 = call ptr @__errno_location() #13
  %21123 = load i32, ptr %21122, align 4, !tbaa !5
  store i32 %21123, ptr %445, align 4, !tbaa !5
  %21124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21125 = call i32 @s2n_print_stacktrace(ptr noundef %21124)
  %21126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21127 = trunc i8 %21126 to i1
  br i1 %21127, label %21128, label %21150

21128:                                            ; preds = %21121
  %21129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21130 = call i32 @fileno(ptr noundef %21129) #12
  %21131 = call i32 @isatty(i32 noundef %21130) #12
  %21132 = icmp ne i32 %21131, 0
  br i1 %21132, label %21133, label %21150

21133:                                            ; preds = %21128
  %21134 = load i32, ptr %445, align 4, !tbaa !5
  %21135 = call ptr @__errno_location() #13
  store i32 %21134, ptr %21135, align 4, !tbaa !5
  %21136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21137 = load i32, ptr @test_count, align 4, !tbaa !5
  %21138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21139 = load i32, ptr %21138, align 4, !tbaa !5
  %21140 = call ptr @s2n_strerror(i32 noundef %21139, ptr noundef @.str.4)
  %21141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21142 = load i32, ptr %21141, align 4, !tbaa !5
  %21143 = call ptr @s2n_strerror_debug(i32 noundef %21142, ptr noundef @.str.4)
  %21144 = call ptr @__errno_location() #13
  %21145 = load i32, ptr %21144, align 4, !tbaa !5
  %21146 = call ptr @strerror(i32 noundef %21145) #12
  %21147 = call ptr @__errno_location() #13
  %21148 = load i32, ptr %21147, align 4, !tbaa !5
  %21149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21136, ptr noundef @.str.2, i32 noundef %21137, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1275, ptr noundef %21140, ptr noundef %21143, ptr noundef %21146, i32 noundef %21148) #12
  br label %21167

21150:                                            ; preds = %21128, %21121
  %21151 = load i32, ptr %445, align 4, !tbaa !5
  %21152 = call ptr @__errno_location() #13
  store i32 %21151, ptr %21152, align 4, !tbaa !5
  %21153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21154 = load i32, ptr @test_count, align 4, !tbaa !5
  %21155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21156 = load i32, ptr %21155, align 4, !tbaa !5
  %21157 = call ptr @s2n_strerror(i32 noundef %21156, ptr noundef @.str.4)
  %21158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21159 = load i32, ptr %21158, align 4, !tbaa !5
  %21160 = call ptr @s2n_strerror_debug(i32 noundef %21159, ptr noundef @.str.4)
  %21161 = call ptr @__errno_location() #13
  %21162 = load i32, ptr %21161, align 4, !tbaa !5
  %21163 = call ptr @strerror(i32 noundef %21162) #12
  %21164 = call ptr @__errno_location() #13
  %21165 = load i32, ptr %21164, align 4, !tbaa !5
  %21166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21153, ptr noundef @.str.5, i32 noundef %21154, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1275, ptr noundef %21157, ptr noundef %21160, ptr noundef %21163, i32 noundef %21165) #12
  br label %21167

21167:                                            ; preds = %21150, %21133
  call void @llvm.lifetime.end.p0(i64 4, ptr %445) #12
  br label %21168

21168:                                            ; preds = %21167
  br label %21169

21169:                                            ; preds = %21168
  call void @exit(i32 noundef 1) #14
  unreachable

21170:                                            ; No predecessors!
  br label %21171

21171:                                            ; preds = %21170
  br label %21172

21172:                                            ; preds = %21171, %21113
  br label %21173

21173:                                            ; preds = %21172
  br label %21174

21174:                                            ; preds = %21173
  br label %21175

21175:                                            ; preds = %21174
  %21176 = load i32, ptr @test_count, align 4, !tbaa !5
  %21177 = add nsw i32 %21176, 1
  store i32 %21177, ptr @test_count, align 4, !tbaa !5
  %21178 = load ptr, ptr %443, align 8, !tbaa !9
  %21179 = load ptr, ptr %326, align 8, !tbaa !9
  %21180 = call i32 @s2n_connection_set_config(ptr noundef %21178, ptr noundef %21179)
  %21181 = icmp eq i32 %21180, -1
  br i1 %21181, label %21182, label %21235

21182:                                            ; preds = %21175
  br label %21183

21183:                                            ; preds = %21182
  br label %21184

21184:                                            ; preds = %21183
  call void @llvm.lifetime.start.p0(i64 4, ptr %446) #12
  %21185 = call ptr @__errno_location() #13
  %21186 = load i32, ptr %21185, align 4, !tbaa !5
  store i32 %21186, ptr %446, align 4, !tbaa !5
  %21187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21188 = call i32 @s2n_print_stacktrace(ptr noundef %21187)
  %21189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21190 = trunc i8 %21189 to i1
  br i1 %21190, label %21191, label %21213

21191:                                            ; preds = %21184
  %21192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21193 = call i32 @fileno(ptr noundef %21192) #12
  %21194 = call i32 @isatty(i32 noundef %21193) #12
  %21195 = icmp ne i32 %21194, 0
  br i1 %21195, label %21196, label %21213

21196:                                            ; preds = %21191
  %21197 = load i32, ptr %446, align 4, !tbaa !5
  %21198 = call ptr @__errno_location() #13
  store i32 %21197, ptr %21198, align 4, !tbaa !5
  %21199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21200 = load i32, ptr @test_count, align 4, !tbaa !5
  %21201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21202 = load i32, ptr %21201, align 4, !tbaa !5
  %21203 = call ptr @s2n_strerror(i32 noundef %21202, ptr noundef @.str.4)
  %21204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21205 = load i32, ptr %21204, align 4, !tbaa !5
  %21206 = call ptr @s2n_strerror_debug(i32 noundef %21205, ptr noundef @.str.4)
  %21207 = call ptr @__errno_location() #13
  %21208 = load i32, ptr %21207, align 4, !tbaa !5
  %21209 = call ptr @strerror(i32 noundef %21208) #12
  %21210 = call ptr @__errno_location() #13
  %21211 = load i32, ptr %21210, align 4, !tbaa !5
  %21212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21199, ptr noundef @.str.2, i32 noundef %21200, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 1277, ptr noundef %21203, ptr noundef %21206, ptr noundef %21209, i32 noundef %21211) #12
  br label %21230

21213:                                            ; preds = %21191, %21184
  %21214 = load i32, ptr %446, align 4, !tbaa !5
  %21215 = call ptr @__errno_location() #13
  store i32 %21214, ptr %21215, align 4, !tbaa !5
  %21216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21217 = load i32, ptr @test_count, align 4, !tbaa !5
  %21218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21219 = load i32, ptr %21218, align 4, !tbaa !5
  %21220 = call ptr @s2n_strerror(i32 noundef %21219, ptr noundef @.str.4)
  %21221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21222 = load i32, ptr %21221, align 4, !tbaa !5
  %21223 = call ptr @s2n_strerror_debug(i32 noundef %21222, ptr noundef @.str.4)
  %21224 = call ptr @__errno_location() #13
  %21225 = load i32, ptr %21224, align 4, !tbaa !5
  %21226 = call ptr @strerror(i32 noundef %21225) #12
  %21227 = call ptr @__errno_location() #13
  %21228 = load i32, ptr %21227, align 4, !tbaa !5
  %21229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21216, ptr noundef @.str.5, i32 noundef %21217, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 1277, ptr noundef %21220, ptr noundef %21223, ptr noundef %21226, i32 noundef %21228) #12
  br label %21230

21230:                                            ; preds = %21213, %21196
  call void @llvm.lifetime.end.p0(i64 4, ptr %446) #12
  br label %21231

21231:                                            ; preds = %21230
  br label %21232

21232:                                            ; preds = %21231
  call void @exit(i32 noundef 1) #14
  unreachable

21233:                                            ; No predecessors!
  br label %21234

21234:                                            ; preds = %21233
  br label %21235

21235:                                            ; preds = %21234, %21175
  br label %21236

21236:                                            ; preds = %21235
  br label %21237

21237:                                            ; preds = %21236
  %21238 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %447, i32 0, i32 0
  store i16 3, ptr %21238, align 8, !tbaa !60
  %21239 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %447, i32 0, i32 1
  store ptr @main.test_cipher_suite_list.179, ptr %21239, align 8, !tbaa !58
  %21240 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %447, i32 0, i32 2
  store i8 1, ptr %21240, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %447, i64 24, i1 false), !tbaa.struct !82
  call void @llvm.lifetime.start.p0(i64 6, ptr %448) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %448, ptr align 1 @__const.main.wire.180, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %449) #12
  store i8 3, ptr %449, align 1, !tbaa !54
  %21241 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 1, ptr %21241, align 8, !tbaa !81
  br label %21242

21242:                                            ; preds = %21237
  %21243 = load i32, ptr @test_count, align 4, !tbaa !5
  %21244 = add nsw i32 %21243, 1
  store i32 %21244, ptr @test_count, align 4, !tbaa !5
  %21245 = load ptr, ptr %443, align 8, !tbaa !9
  %21246 = getelementptr inbounds [6 x i8], ptr %448, i64 0, i64 0
  %21247 = load i8, ptr %449, align 1, !tbaa !54
  %21248 = zext i8 %21247 to i16
  %21249 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %21245, ptr noundef %21246, i16 noundef zeroext %21248)
  %21250 = icmp eq i32 %21249, -1
  br i1 %21250, label %21251, label %21304

21251:                                            ; preds = %21242
  br label %21252

21252:                                            ; preds = %21251
  br label %21253

21253:                                            ; preds = %21252
  call void @llvm.lifetime.start.p0(i64 4, ptr %450) #12
  %21254 = call ptr @__errno_location() #13
  %21255 = load i32, ptr %21254, align 4, !tbaa !5
  store i32 %21255, ptr %450, align 4, !tbaa !5
  %21256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21257 = call i32 @s2n_print_stacktrace(ptr noundef %21256)
  %21258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21259 = trunc i8 %21258 to i1
  br i1 %21259, label %21260, label %21282

21260:                                            ; preds = %21253
  %21261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21262 = call i32 @fileno(ptr noundef %21261) #12
  %21263 = call i32 @isatty(i32 noundef %21262) #12
  %21264 = icmp ne i32 %21263, 0
  br i1 %21264, label %21265, label %21282

21265:                                            ; preds = %21260
  %21266 = load i32, ptr %450, align 4, !tbaa !5
  %21267 = call ptr @__errno_location() #13
  store i32 %21266, ptr %21267, align 4, !tbaa !5
  %21268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21269 = load i32, ptr @test_count, align 4, !tbaa !5
  %21270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21271 = load i32, ptr %21270, align 4, !tbaa !5
  %21272 = call ptr @s2n_strerror(i32 noundef %21271, ptr noundef @.str.4)
  %21273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21274 = load i32, ptr %21273, align 4, !tbaa !5
  %21275 = call ptr @s2n_strerror_debug(i32 noundef %21274, ptr noundef @.str.4)
  %21276 = call ptr @__errno_location() #13
  %21277 = load i32, ptr %21276, align 4, !tbaa !5
  %21278 = call ptr @strerror(i32 noundef %21277) #12
  %21279 = call ptr @__errno_location() #13
  %21280 = load i32, ptr %21279, align 4, !tbaa !5
  %21281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21268, ptr noundef @.str.2, i32 noundef %21269, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1306, ptr noundef %21272, ptr noundef %21275, ptr noundef %21278, i32 noundef %21280) #12
  br label %21299

21282:                                            ; preds = %21260, %21253
  %21283 = load i32, ptr %450, align 4, !tbaa !5
  %21284 = call ptr @__errno_location() #13
  store i32 %21283, ptr %21284, align 4, !tbaa !5
  %21285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21286 = load i32, ptr @test_count, align 4, !tbaa !5
  %21287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21288 = load i32, ptr %21287, align 4, !tbaa !5
  %21289 = call ptr @s2n_strerror(i32 noundef %21288, ptr noundef @.str.4)
  %21290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21291 = load i32, ptr %21290, align 4, !tbaa !5
  %21292 = call ptr @s2n_strerror_debug(i32 noundef %21291, ptr noundef @.str.4)
  %21293 = call ptr @__errno_location() #13
  %21294 = load i32, ptr %21293, align 4, !tbaa !5
  %21295 = call ptr @strerror(i32 noundef %21294) #12
  %21296 = call ptr @__errno_location() #13
  %21297 = load i32, ptr %21296, align 4, !tbaa !5
  %21298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21285, ptr noundef @.str.5, i32 noundef %21286, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1306, ptr noundef %21289, ptr noundef %21292, ptr noundef %21295, i32 noundef %21297) #12
  br label %21299

21299:                                            ; preds = %21282, %21265
  call void @llvm.lifetime.end.p0(i64 4, ptr %450) #12
  br label %21300

21300:                                            ; preds = %21299
  br label %21301

21301:                                            ; preds = %21300
  call void @exit(i32 noundef 1) #14
  unreachable

21302:                                            ; No predecessors!
  br label %21303

21303:                                            ; preds = %21302
  br label %21304

21304:                                            ; preds = %21303, %21242
  br label %21305

21305:                                            ; preds = %21304
  br label %21306

21306:                                            ; preds = %21305
  br label %21307

21307:                                            ; preds = %21306
  %21308 = load i32, ptr @test_count, align 4, !tbaa !5
  %21309 = add nsw i32 %21308, 1
  store i32 %21309, ptr @test_count, align 4, !tbaa !5
  %21310 = load ptr, ptr %443, align 8, !tbaa !9
  %21311 = getelementptr inbounds %struct.s2n_connection, ptr %21310, i32 0, i32 27
  %21312 = load ptr, ptr %21311, align 8, !tbaa !48
  %21313 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %21312, i32 0, i32 0
  %21314 = load ptr, ptr %21313, align 8, !tbaa !49
  %21315 = icmp eq ptr %21314, @s2n_ecdhe_rsa_with_chacha20_poly1305_sha256
  br i1 %21315, label %21369, label %21316

21316:                                            ; preds = %21307
  br label %21317

21317:                                            ; preds = %21316
  br label %21318

21318:                                            ; preds = %21317
  call void @llvm.lifetime.start.p0(i64 4, ptr %451) #12
  %21319 = call ptr @__errno_location() #13
  %21320 = load i32, ptr %21319, align 4, !tbaa !5
  store i32 %21320, ptr %451, align 4, !tbaa !5
  %21321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21322 = call i32 @s2n_print_stacktrace(ptr noundef %21321)
  %21323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21324 = trunc i8 %21323 to i1
  br i1 %21324, label %21325, label %21347

21325:                                            ; preds = %21318
  %21326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21327 = call i32 @fileno(ptr noundef %21326) #12
  %21328 = call i32 @isatty(i32 noundef %21327) #12
  %21329 = icmp ne i32 %21328, 0
  br i1 %21329, label %21330, label %21347

21330:                                            ; preds = %21325
  %21331 = load i32, ptr %451, align 4, !tbaa !5
  %21332 = call ptr @__errno_location() #13
  store i32 %21331, ptr %21332, align 4, !tbaa !5
  %21333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21334 = load i32, ptr @test_count, align 4, !tbaa !5
  %21335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21336 = load i32, ptr %21335, align 4, !tbaa !5
  %21337 = call ptr @s2n_strerror(i32 noundef %21336, ptr noundef @.str.4)
  %21338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21339 = load i32, ptr %21338, align 4, !tbaa !5
  %21340 = call ptr @s2n_strerror_debug(i32 noundef %21339, ptr noundef @.str.4)
  %21341 = call ptr @__errno_location() #13
  %21342 = load i32, ptr %21341, align 4, !tbaa !5
  %21343 = call ptr @strerror(i32 noundef %21342) #12
  %21344 = call ptr @__errno_location() #13
  %21345 = load i32, ptr %21344, align 4, !tbaa !5
  %21346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21333, ptr noundef @.str.2, i32 noundef %21334, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 1307, ptr noundef %21337, ptr noundef %21340, ptr noundef %21343, i32 noundef %21345) #12
  br label %21364

21347:                                            ; preds = %21325, %21318
  %21348 = load i32, ptr %451, align 4, !tbaa !5
  %21349 = call ptr @__errno_location() #13
  store i32 %21348, ptr %21349, align 4, !tbaa !5
  %21350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21351 = load i32, ptr @test_count, align 4, !tbaa !5
  %21352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21353 = load i32, ptr %21352, align 4, !tbaa !5
  %21354 = call ptr @s2n_strerror(i32 noundef %21353, ptr noundef @.str.4)
  %21355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21356 = load i32, ptr %21355, align 4, !tbaa !5
  %21357 = call ptr @s2n_strerror_debug(i32 noundef %21356, ptr noundef @.str.4)
  %21358 = call ptr @__errno_location() #13
  %21359 = load i32, ptr %21358, align 4, !tbaa !5
  %21360 = call ptr @strerror(i32 noundef %21359) #12
  %21361 = call ptr @__errno_location() #13
  %21362 = load i32, ptr %21361, align 4, !tbaa !5
  %21363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21350, ptr noundef @.str.5, i32 noundef %21351, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 1307, ptr noundef %21354, ptr noundef %21357, ptr noundef %21360, i32 noundef %21362) #12
  br label %21364

21364:                                            ; preds = %21347, %21330
  call void @llvm.lifetime.end.p0(i64 4, ptr %451) #12
  br label %21365

21365:                                            ; preds = %21364
  br label %21366

21366:                                            ; preds = %21365
  call void @exit(i32 noundef 1) #14
  unreachable

21367:                                            ; No predecessors!
  br label %21368

21368:                                            ; preds = %21367
  br label %21369

21369:                                            ; preds = %21368, %21307
  br label %21370

21370:                                            ; preds = %21369
  br label %21371

21371:                                            ; preds = %21370
  %21372 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 0, ptr %21372, align 8, !tbaa !81
  br label %21373

21373:                                            ; preds = %21371
  %21374 = load i32, ptr @test_count, align 4, !tbaa !5
  %21375 = add nsw i32 %21374, 1
  store i32 %21375, ptr @test_count, align 4, !tbaa !5
  %21376 = load ptr, ptr %443, align 8, !tbaa !9
  %21377 = getelementptr inbounds [6 x i8], ptr %448, i64 0, i64 0
  %21378 = load i8, ptr %449, align 1, !tbaa !54
  %21379 = zext i8 %21378 to i16
  %21380 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %21376, ptr noundef %21377, i16 noundef zeroext %21379)
  %21381 = icmp eq i32 %21380, -1
  br i1 %21381, label %21382, label %21435

21382:                                            ; preds = %21373
  br label %21383

21383:                                            ; preds = %21382
  br label %21384

21384:                                            ; preds = %21383
  call void @llvm.lifetime.start.p0(i64 4, ptr %452) #12
  %21385 = call ptr @__errno_location() #13
  %21386 = load i32, ptr %21385, align 4, !tbaa !5
  store i32 %21386, ptr %452, align 4, !tbaa !5
  %21387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21388 = call i32 @s2n_print_stacktrace(ptr noundef %21387)
  %21389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21390 = trunc i8 %21389 to i1
  br i1 %21390, label %21391, label %21413

21391:                                            ; preds = %21384
  %21392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21393 = call i32 @fileno(ptr noundef %21392) #12
  %21394 = call i32 @isatty(i32 noundef %21393) #12
  %21395 = icmp ne i32 %21394, 0
  br i1 %21395, label %21396, label %21413

21396:                                            ; preds = %21391
  %21397 = load i32, ptr %452, align 4, !tbaa !5
  %21398 = call ptr @__errno_location() #13
  store i32 %21397, ptr %21398, align 4, !tbaa !5
  %21399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21400 = load i32, ptr @test_count, align 4, !tbaa !5
  %21401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21402 = load i32, ptr %21401, align 4, !tbaa !5
  %21403 = call ptr @s2n_strerror(i32 noundef %21402, ptr noundef @.str.4)
  %21404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21405 = load i32, ptr %21404, align 4, !tbaa !5
  %21406 = call ptr @s2n_strerror_debug(i32 noundef %21405, ptr noundef @.str.4)
  %21407 = call ptr @__errno_location() #13
  %21408 = load i32, ptr %21407, align 4, !tbaa !5
  %21409 = call ptr @strerror(i32 noundef %21408) #12
  %21410 = call ptr @__errno_location() #13
  %21411 = load i32, ptr %21410, align 4, !tbaa !5
  %21412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21399, ptr noundef @.str.2, i32 noundef %21400, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1312, ptr noundef %21403, ptr noundef %21406, ptr noundef %21409, i32 noundef %21411) #12
  br label %21430

21413:                                            ; preds = %21391, %21384
  %21414 = load i32, ptr %452, align 4, !tbaa !5
  %21415 = call ptr @__errno_location() #13
  store i32 %21414, ptr %21415, align 4, !tbaa !5
  %21416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21417 = load i32, ptr @test_count, align 4, !tbaa !5
  %21418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21419 = load i32, ptr %21418, align 4, !tbaa !5
  %21420 = call ptr @s2n_strerror(i32 noundef %21419, ptr noundef @.str.4)
  %21421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21422 = load i32, ptr %21421, align 4, !tbaa !5
  %21423 = call ptr @s2n_strerror_debug(i32 noundef %21422, ptr noundef @.str.4)
  %21424 = call ptr @__errno_location() #13
  %21425 = load i32, ptr %21424, align 4, !tbaa !5
  %21426 = call ptr @strerror(i32 noundef %21425) #12
  %21427 = call ptr @__errno_location() #13
  %21428 = load i32, ptr %21427, align 4, !tbaa !5
  %21429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21416, ptr noundef @.str.5, i32 noundef %21417, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1312, ptr noundef %21420, ptr noundef %21423, ptr noundef %21426, i32 noundef %21428) #12
  br label %21430

21430:                                            ; preds = %21413, %21396
  call void @llvm.lifetime.end.p0(i64 4, ptr %452) #12
  br label %21431

21431:                                            ; preds = %21430
  br label %21432

21432:                                            ; preds = %21431
  call void @exit(i32 noundef 1) #14
  unreachable

21433:                                            ; No predecessors!
  br label %21434

21434:                                            ; preds = %21433
  br label %21435

21435:                                            ; preds = %21434, %21373
  br label %21436

21436:                                            ; preds = %21435
  br label %21437

21437:                                            ; preds = %21436
  br label %21438

21438:                                            ; preds = %21437
  %21439 = load i32, ptr @test_count, align 4, !tbaa !5
  %21440 = add nsw i32 %21439, 1
  store i32 %21440, ptr @test_count, align 4, !tbaa !5
  %21441 = load ptr, ptr %443, align 8, !tbaa !9
  %21442 = getelementptr inbounds %struct.s2n_connection, ptr %21441, i32 0, i32 27
  %21443 = load ptr, ptr %21442, align 8, !tbaa !48
  %21444 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %21443, i32 0, i32 0
  %21445 = load ptr, ptr %21444, align 8, !tbaa !49
  %21446 = icmp eq ptr %21445, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %21446, label %21500, label %21447

21447:                                            ; preds = %21438
  br label %21448

21448:                                            ; preds = %21447
  br label %21449

21449:                                            ; preds = %21448
  call void @llvm.lifetime.start.p0(i64 4, ptr %453) #12
  %21450 = call ptr @__errno_location() #13
  %21451 = load i32, ptr %21450, align 4, !tbaa !5
  store i32 %21451, ptr %453, align 4, !tbaa !5
  %21452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21453 = call i32 @s2n_print_stacktrace(ptr noundef %21452)
  %21454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21455 = trunc i8 %21454 to i1
  br i1 %21455, label %21456, label %21478

21456:                                            ; preds = %21449
  %21457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21458 = call i32 @fileno(ptr noundef %21457) #12
  %21459 = call i32 @isatty(i32 noundef %21458) #12
  %21460 = icmp ne i32 %21459, 0
  br i1 %21460, label %21461, label %21478

21461:                                            ; preds = %21456
  %21462 = load i32, ptr %453, align 4, !tbaa !5
  %21463 = call ptr @__errno_location() #13
  store i32 %21462, ptr %21463, align 4, !tbaa !5
  %21464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21465 = load i32, ptr @test_count, align 4, !tbaa !5
  %21466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21467 = load i32, ptr %21466, align 4, !tbaa !5
  %21468 = call ptr @s2n_strerror(i32 noundef %21467, ptr noundef @.str.4)
  %21469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21470 = load i32, ptr %21469, align 4, !tbaa !5
  %21471 = call ptr @s2n_strerror_debug(i32 noundef %21470, ptr noundef @.str.4)
  %21472 = call ptr @__errno_location() #13
  %21473 = load i32, ptr %21472, align 4, !tbaa !5
  %21474 = call ptr @strerror(i32 noundef %21473) #12
  %21475 = call ptr @__errno_location() #13
  %21476 = load i32, ptr %21475, align 4, !tbaa !5
  %21477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21464, ptr noundef @.str.2, i32 noundef %21465, ptr noundef @.str.162, ptr noundef @.str.1, i32 noundef 1313, ptr noundef %21468, ptr noundef %21471, ptr noundef %21474, i32 noundef %21476) #12
  br label %21495

21478:                                            ; preds = %21456, %21449
  %21479 = load i32, ptr %453, align 4, !tbaa !5
  %21480 = call ptr @__errno_location() #13
  store i32 %21479, ptr %21480, align 4, !tbaa !5
  %21481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21482 = load i32, ptr @test_count, align 4, !tbaa !5
  %21483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21484 = load i32, ptr %21483, align 4, !tbaa !5
  %21485 = call ptr @s2n_strerror(i32 noundef %21484, ptr noundef @.str.4)
  %21486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21487 = load i32, ptr %21486, align 4, !tbaa !5
  %21488 = call ptr @s2n_strerror_debug(i32 noundef %21487, ptr noundef @.str.4)
  %21489 = call ptr @__errno_location() #13
  %21490 = load i32, ptr %21489, align 4, !tbaa !5
  %21491 = call ptr @strerror(i32 noundef %21490) #12
  %21492 = call ptr @__errno_location() #13
  %21493 = load i32, ptr %21492, align 4, !tbaa !5
  %21494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21481, ptr noundef @.str.5, i32 noundef %21482, ptr noundef @.str.162, ptr noundef @.str.1, i32 noundef 1313, ptr noundef %21485, ptr noundef %21488, ptr noundef %21491, i32 noundef %21493) #12
  br label %21495

21495:                                            ; preds = %21478, %21461
  call void @llvm.lifetime.end.p0(i64 4, ptr %453) #12
  br label %21496

21496:                                            ; preds = %21495
  br label %21497

21497:                                            ; preds = %21496
  call void @exit(i32 noundef 1) #14
  unreachable

21498:                                            ; No predecessors!
  br label %21499

21499:                                            ; preds = %21498
  br label %21500

21500:                                            ; preds = %21499, %21438
  br label %21501

21501:                                            ; preds = %21500
  br label %21502

21502:                                            ; preds = %21501
  call void @llvm.lifetime.end.p0(i64 1, ptr %449) #12
  call void @llvm.lifetime.end.p0(i64 6, ptr %448) #12
  %21503 = call i32 @s2n_connection_ptr_free(ptr noundef %443)
  %21504 = getelementptr inbounds %struct.s2n_result, ptr %454, i32 0, i32 0
  store i32 %21503, ptr %21504, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %443) #12
  br label %21505

21505:                                            ; preds = %21502, %17226
  %21506 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_chacha20_poly1305, i32 0, i32 3), align 8, !tbaa !67
  %21507 = call zeroext i1 %21506()
  br i1 %21507, label %21839, label %21508

21508:                                            ; preds = %21505
  call void @llvm.lifetime.start.p0(i64 8, ptr %455) #12
  %21509 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %21509, ptr %455, align 8, !tbaa !9
  br label %21510

21510:                                            ; preds = %21508
  %21511 = load i32, ptr @test_count, align 4, !tbaa !5
  %21512 = add nsw i32 %21511, 1
  store i32 %21512, ptr @test_count, align 4, !tbaa !5
  %21513 = load ptr, ptr %455, align 8, !tbaa !9
  %21514 = icmp eq ptr %21513, null
  br i1 %21514, label %21515, label %21568

21515:                                            ; preds = %21510
  br label %21516

21516:                                            ; preds = %21515
  br label %21517

21517:                                            ; preds = %21516
  call void @llvm.lifetime.start.p0(i64 4, ptr %456) #12
  %21518 = call ptr @__errno_location() #13
  %21519 = load i32, ptr %21518, align 4, !tbaa !5
  store i32 %21519, ptr %456, align 4, !tbaa !5
  %21520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21521 = call i32 @s2n_print_stacktrace(ptr noundef %21520)
  %21522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21523 = trunc i8 %21522 to i1
  br i1 %21523, label %21524, label %21546

21524:                                            ; preds = %21517
  %21525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21526 = call i32 @fileno(ptr noundef %21525) #12
  %21527 = call i32 @isatty(i32 noundef %21526) #12
  %21528 = icmp ne i32 %21527, 0
  br i1 %21528, label %21529, label %21546

21529:                                            ; preds = %21524
  %21530 = load i32, ptr %456, align 4, !tbaa !5
  %21531 = call ptr @__errno_location() #13
  store i32 %21530, ptr %21531, align 4, !tbaa !5
  %21532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21533 = load i32, ptr @test_count, align 4, !tbaa !5
  %21534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21535 = load i32, ptr %21534, align 4, !tbaa !5
  %21536 = call ptr @s2n_strerror(i32 noundef %21535, ptr noundef @.str.4)
  %21537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21538 = load i32, ptr %21537, align 4, !tbaa !5
  %21539 = call ptr @s2n_strerror_debug(i32 noundef %21538, ptr noundef @.str.4)
  %21540 = call ptr @__errno_location() #13
  %21541 = load i32, ptr %21540, align 4, !tbaa !5
  %21542 = call ptr @strerror(i32 noundef %21541) #12
  %21543 = call ptr @__errno_location() #13
  %21544 = load i32, ptr %21543, align 4, !tbaa !5
  %21545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21532, ptr noundef @.str.2, i32 noundef %21533, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1320, ptr noundef %21536, ptr noundef %21539, ptr noundef %21542, i32 noundef %21544) #12
  br label %21563

21546:                                            ; preds = %21524, %21517
  %21547 = load i32, ptr %456, align 4, !tbaa !5
  %21548 = call ptr @__errno_location() #13
  store i32 %21547, ptr %21548, align 4, !tbaa !5
  %21549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21550 = load i32, ptr @test_count, align 4, !tbaa !5
  %21551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21552 = load i32, ptr %21551, align 4, !tbaa !5
  %21553 = call ptr @s2n_strerror(i32 noundef %21552, ptr noundef @.str.4)
  %21554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21555 = load i32, ptr %21554, align 4, !tbaa !5
  %21556 = call ptr @s2n_strerror_debug(i32 noundef %21555, ptr noundef @.str.4)
  %21557 = call ptr @__errno_location() #13
  %21558 = load i32, ptr %21557, align 4, !tbaa !5
  %21559 = call ptr @strerror(i32 noundef %21558) #12
  %21560 = call ptr @__errno_location() #13
  %21561 = load i32, ptr %21560, align 4, !tbaa !5
  %21562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21549, ptr noundef @.str.5, i32 noundef %21550, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 1320, ptr noundef %21553, ptr noundef %21556, ptr noundef %21559, i32 noundef %21561) #12
  br label %21563

21563:                                            ; preds = %21546, %21529
  call void @llvm.lifetime.end.p0(i64 4, ptr %456) #12
  br label %21564

21564:                                            ; preds = %21563
  br label %21565

21565:                                            ; preds = %21564
  call void @exit(i32 noundef 1) #14
  unreachable

21566:                                            ; No predecessors!
  br label %21567

21567:                                            ; preds = %21566
  br label %21568

21568:                                            ; preds = %21567, %21510
  br label %21569

21569:                                            ; preds = %21568
  br label %21570

21570:                                            ; preds = %21569
  %21571 = load ptr, ptr %455, align 8, !tbaa !9
  %21572 = getelementptr inbounds %struct.s2n_connection, ptr %21571, i32 0, i32 2
  store ptr %325, ptr %21572, align 8, !tbaa !80
  %21573 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  %21574 = load ptr, ptr %455, align 8, !tbaa !9
  %21575 = getelementptr inbounds %struct.s2n_connection, ptr %21574, i32 0, i32 31
  %21576 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %21575, i32 0, i32 1
  %21577 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %21576, i32 0, i32 0
  store ptr %21573, ptr %21577, align 8, !tbaa !57
  br label %21578

21578:                                            ; preds = %21570
  %21579 = load i32, ptr @test_count, align 4, !tbaa !5
  %21580 = add nsw i32 %21579, 1
  store i32 %21580, ptr @test_count, align 4, !tbaa !5
  %21581 = load ptr, ptr %455, align 8, !tbaa !9
  %21582 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %21581, i8 noundef zeroext 33)
  %21583 = icmp eq i32 %21582, -1
  br i1 %21583, label %21584, label %21637

21584:                                            ; preds = %21578
  br label %21585

21585:                                            ; preds = %21584
  br label %21586

21586:                                            ; preds = %21585
  call void @llvm.lifetime.start.p0(i64 4, ptr %457) #12
  %21587 = call ptr @__errno_location() #13
  %21588 = load i32, ptr %21587, align 4, !tbaa !5
  store i32 %21588, ptr %457, align 4, !tbaa !5
  %21589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21590 = call i32 @s2n_print_stacktrace(ptr noundef %21589)
  %21591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21592 = trunc i8 %21591 to i1
  br i1 %21592, label %21593, label %21615

21593:                                            ; preds = %21586
  %21594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21595 = call i32 @fileno(ptr noundef %21594) #12
  %21596 = call i32 @isatty(i32 noundef %21595) #12
  %21597 = icmp ne i32 %21596, 0
  br i1 %21597, label %21598, label %21615

21598:                                            ; preds = %21593
  %21599 = load i32, ptr %457, align 4, !tbaa !5
  %21600 = call ptr @__errno_location() #13
  store i32 %21599, ptr %21600, align 4, !tbaa !5
  %21601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21602 = load i32, ptr @test_count, align 4, !tbaa !5
  %21603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21604 = load i32, ptr %21603, align 4, !tbaa !5
  %21605 = call ptr @s2n_strerror(i32 noundef %21604, ptr noundef @.str.4)
  %21606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21607 = load i32, ptr %21606, align 4, !tbaa !5
  %21608 = call ptr @s2n_strerror_debug(i32 noundef %21607, ptr noundef @.str.4)
  %21609 = call ptr @__errno_location() #13
  %21610 = load i32, ptr %21609, align 4, !tbaa !5
  %21611 = call ptr @strerror(i32 noundef %21610) #12
  %21612 = call ptr @__errno_location() #13
  %21613 = load i32, ptr %21612, align 4, !tbaa !5
  %21614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21601, ptr noundef @.str.2, i32 noundef %21602, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1323, ptr noundef %21605, ptr noundef %21608, ptr noundef %21611, i32 noundef %21613) #12
  br label %21632

21615:                                            ; preds = %21593, %21586
  %21616 = load i32, ptr %457, align 4, !tbaa !5
  %21617 = call ptr @__errno_location() #13
  store i32 %21616, ptr %21617, align 4, !tbaa !5
  %21618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21619 = load i32, ptr @test_count, align 4, !tbaa !5
  %21620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21621 = load i32, ptr %21620, align 4, !tbaa !5
  %21622 = call ptr @s2n_strerror(i32 noundef %21621, ptr noundef @.str.4)
  %21623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21624 = load i32, ptr %21623, align 4, !tbaa !5
  %21625 = call ptr @s2n_strerror_debug(i32 noundef %21624, ptr noundef @.str.4)
  %21626 = call ptr @__errno_location() #13
  %21627 = load i32, ptr %21626, align 4, !tbaa !5
  %21628 = call ptr @strerror(i32 noundef %21627) #12
  %21629 = call ptr @__errno_location() #13
  %21630 = load i32, ptr %21629, align 4, !tbaa !5
  %21631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21618, ptr noundef @.str.5, i32 noundef %21619, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 1323, ptr noundef %21622, ptr noundef %21625, ptr noundef %21628, i32 noundef %21630) #12
  br label %21632

21632:                                            ; preds = %21615, %21598
  call void @llvm.lifetime.end.p0(i64 4, ptr %457) #12
  br label %21633

21633:                                            ; preds = %21632
  br label %21634

21634:                                            ; preds = %21633
  call void @exit(i32 noundef 1) #14
  unreachable

21635:                                            ; No predecessors!
  br label %21636

21636:                                            ; preds = %21635
  br label %21637

21637:                                            ; preds = %21636, %21578
  br label %21638

21638:                                            ; preds = %21637
  br label %21639

21639:                                            ; preds = %21638
  br label %21640

21640:                                            ; preds = %21639
  %21641 = load i32, ptr @test_count, align 4, !tbaa !5
  %21642 = add nsw i32 %21641, 1
  store i32 %21642, ptr @test_count, align 4, !tbaa !5
  %21643 = load ptr, ptr %455, align 8, !tbaa !9
  %21644 = load ptr, ptr %326, align 8, !tbaa !9
  %21645 = call i32 @s2n_connection_set_config(ptr noundef %21643, ptr noundef %21644)
  %21646 = icmp eq i32 %21645, -1
  br i1 %21646, label %21647, label %21700

21647:                                            ; preds = %21640
  br label %21648

21648:                                            ; preds = %21647
  br label %21649

21649:                                            ; preds = %21648
  call void @llvm.lifetime.start.p0(i64 4, ptr %458) #12
  %21650 = call ptr @__errno_location() #13
  %21651 = load i32, ptr %21650, align 4, !tbaa !5
  store i32 %21651, ptr %458, align 4, !tbaa !5
  %21652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21653 = call i32 @s2n_print_stacktrace(ptr noundef %21652)
  %21654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21655 = trunc i8 %21654 to i1
  br i1 %21655, label %21656, label %21678

21656:                                            ; preds = %21649
  %21657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21658 = call i32 @fileno(ptr noundef %21657) #12
  %21659 = call i32 @isatty(i32 noundef %21658) #12
  %21660 = icmp ne i32 %21659, 0
  br i1 %21660, label %21661, label %21678

21661:                                            ; preds = %21656
  %21662 = load i32, ptr %458, align 4, !tbaa !5
  %21663 = call ptr @__errno_location() #13
  store i32 %21662, ptr %21663, align 4, !tbaa !5
  %21664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21665 = load i32, ptr @test_count, align 4, !tbaa !5
  %21666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21667 = load i32, ptr %21666, align 4, !tbaa !5
  %21668 = call ptr @s2n_strerror(i32 noundef %21667, ptr noundef @.str.4)
  %21669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21670 = load i32, ptr %21669, align 4, !tbaa !5
  %21671 = call ptr @s2n_strerror_debug(i32 noundef %21670, ptr noundef @.str.4)
  %21672 = call ptr @__errno_location() #13
  %21673 = load i32, ptr %21672, align 4, !tbaa !5
  %21674 = call ptr @strerror(i32 noundef %21673) #12
  %21675 = call ptr @__errno_location() #13
  %21676 = load i32, ptr %21675, align 4, !tbaa !5
  %21677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21664, ptr noundef @.str.2, i32 noundef %21665, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 1324, ptr noundef %21668, ptr noundef %21671, ptr noundef %21674, i32 noundef %21676) #12
  br label %21695

21678:                                            ; preds = %21656, %21649
  %21679 = load i32, ptr %458, align 4, !tbaa !5
  %21680 = call ptr @__errno_location() #13
  store i32 %21679, ptr %21680, align 4, !tbaa !5
  %21681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21682 = load i32, ptr @test_count, align 4, !tbaa !5
  %21683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21684 = load i32, ptr %21683, align 4, !tbaa !5
  %21685 = call ptr @s2n_strerror(i32 noundef %21684, ptr noundef @.str.4)
  %21686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21687 = load i32, ptr %21686, align 4, !tbaa !5
  %21688 = call ptr @s2n_strerror_debug(i32 noundef %21687, ptr noundef @.str.4)
  %21689 = call ptr @__errno_location() #13
  %21690 = load i32, ptr %21689, align 4, !tbaa !5
  %21691 = call ptr @strerror(i32 noundef %21690) #12
  %21692 = call ptr @__errno_location() #13
  %21693 = load i32, ptr %21692, align 4, !tbaa !5
  %21694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21681, ptr noundef @.str.5, i32 noundef %21682, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 1324, ptr noundef %21685, ptr noundef %21688, ptr noundef %21691, i32 noundef %21693) #12
  br label %21695

21695:                                            ; preds = %21678, %21661
  call void @llvm.lifetime.end.p0(i64 4, ptr %458) #12
  br label %21696

21696:                                            ; preds = %21695
  br label %21697

21697:                                            ; preds = %21696
  call void @exit(i32 noundef 1) #14
  unreachable

21698:                                            ; No predecessors!
  br label %21699

21699:                                            ; preds = %21698
  br label %21700

21700:                                            ; preds = %21699, %21640
  br label %21701

21701:                                            ; preds = %21700
  br label %21702

21702:                                            ; preds = %21701
  %21703 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %459, i32 0, i32 0
  store i16 3, ptr %21703, align 8, !tbaa !60
  %21704 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %459, i32 0, i32 1
  store ptr @main.test_cipher_suite_list.181, ptr %21704, align 8, !tbaa !58
  %21705 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %459, i32 0, i32 2
  store i8 1, ptr %21705, align 8, !tbaa !81
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %324, ptr align 8 %459, i64 24, i1 false), !tbaa.struct !82
  call void @llvm.lifetime.start.p0(i64 6, ptr %460) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %460, ptr align 1 @__const.main.wire.182, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %461) #12
  store i8 3, ptr %461, align 1, !tbaa !54
  %21706 = getelementptr inbounds %struct.s2n_cipher_preferences, ptr %324, i32 0, i32 2
  store i8 1, ptr %21706, align 8, !tbaa !81
  br label %21707

21707:                                            ; preds = %21702
  %21708 = load i32, ptr @test_count, align 4, !tbaa !5
  %21709 = add nsw i32 %21708, 1
  store i32 %21709, ptr @test_count, align 4, !tbaa !5
  %21710 = load ptr, ptr %455, align 8, !tbaa !9
  %21711 = getelementptr inbounds [6 x i8], ptr %460, i64 0, i64 0
  %21712 = load i8, ptr %461, align 1, !tbaa !54
  %21713 = zext i8 %21712 to i16
  %21714 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %21710, ptr noundef %21711, i16 noundef zeroext %21713)
  %21715 = icmp eq i32 %21714, -1
  br i1 %21715, label %21716, label %21769

21716:                                            ; preds = %21707
  br label %21717

21717:                                            ; preds = %21716
  br label %21718

21718:                                            ; preds = %21717
  call void @llvm.lifetime.start.p0(i64 4, ptr %462) #12
  %21719 = call ptr @__errno_location() #13
  %21720 = load i32, ptr %21719, align 4, !tbaa !5
  store i32 %21720, ptr %462, align 4, !tbaa !5
  %21721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21722 = call i32 @s2n_print_stacktrace(ptr noundef %21721)
  %21723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21724 = trunc i8 %21723 to i1
  br i1 %21724, label %21725, label %21747

21725:                                            ; preds = %21718
  %21726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21727 = call i32 @fileno(ptr noundef %21726) #12
  %21728 = call i32 @isatty(i32 noundef %21727) #12
  %21729 = icmp ne i32 %21728, 0
  br i1 %21729, label %21730, label %21747

21730:                                            ; preds = %21725
  %21731 = load i32, ptr %462, align 4, !tbaa !5
  %21732 = call ptr @__errno_location() #13
  store i32 %21731, ptr %21732, align 4, !tbaa !5
  %21733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21734 = load i32, ptr @test_count, align 4, !tbaa !5
  %21735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21736 = load i32, ptr %21735, align 4, !tbaa !5
  %21737 = call ptr @s2n_strerror(i32 noundef %21736, ptr noundef @.str.4)
  %21738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21739 = load i32, ptr %21738, align 4, !tbaa !5
  %21740 = call ptr @s2n_strerror_debug(i32 noundef %21739, ptr noundef @.str.4)
  %21741 = call ptr @__errno_location() #13
  %21742 = load i32, ptr %21741, align 4, !tbaa !5
  %21743 = call ptr @strerror(i32 noundef %21742) #12
  %21744 = call ptr @__errno_location() #13
  %21745 = load i32, ptr %21744, align 4, !tbaa !5
  %21746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21733, ptr noundef @.str.2, i32 noundef %21734, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1353, ptr noundef %21737, ptr noundef %21740, ptr noundef %21743, i32 noundef %21745) #12
  br label %21764

21747:                                            ; preds = %21725, %21718
  %21748 = load i32, ptr %462, align 4, !tbaa !5
  %21749 = call ptr @__errno_location() #13
  store i32 %21748, ptr %21749, align 4, !tbaa !5
  %21750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21751 = load i32, ptr @test_count, align 4, !tbaa !5
  %21752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21753 = load i32, ptr %21752, align 4, !tbaa !5
  %21754 = call ptr @s2n_strerror(i32 noundef %21753, ptr noundef @.str.4)
  %21755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21756 = load i32, ptr %21755, align 4, !tbaa !5
  %21757 = call ptr @s2n_strerror_debug(i32 noundef %21756, ptr noundef @.str.4)
  %21758 = call ptr @__errno_location() #13
  %21759 = load i32, ptr %21758, align 4, !tbaa !5
  %21760 = call ptr @strerror(i32 noundef %21759) #12
  %21761 = call ptr @__errno_location() #13
  %21762 = load i32, ptr %21761, align 4, !tbaa !5
  %21763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21750, ptr noundef @.str.5, i32 noundef %21751, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 1353, ptr noundef %21754, ptr noundef %21757, ptr noundef %21760, i32 noundef %21762) #12
  br label %21764

21764:                                            ; preds = %21747, %21730
  call void @llvm.lifetime.end.p0(i64 4, ptr %462) #12
  br label %21765

21765:                                            ; preds = %21764
  br label %21766

21766:                                            ; preds = %21765
  call void @exit(i32 noundef 1) #14
  unreachable

21767:                                            ; No predecessors!
  br label %21768

21768:                                            ; preds = %21767
  br label %21769

21769:                                            ; preds = %21768, %21707
  br label %21770

21770:                                            ; preds = %21769
  br label %21771

21771:                                            ; preds = %21770
  br label %21772

21772:                                            ; preds = %21771
  %21773 = load i32, ptr @test_count, align 4, !tbaa !5
  %21774 = add nsw i32 %21773, 1
  store i32 %21774, ptr @test_count, align 4, !tbaa !5
  %21775 = load ptr, ptr %455, align 8, !tbaa !9
  %21776 = getelementptr inbounds %struct.s2n_connection, ptr %21775, i32 0, i32 27
  %21777 = load ptr, ptr %21776, align 8, !tbaa !48
  %21778 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %21777, i32 0, i32 0
  %21779 = load ptr, ptr %21778, align 8, !tbaa !49
  %21780 = icmp eq ptr %21779, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %21780, label %21834, label %21781

21781:                                            ; preds = %21772
  br label %21782

21782:                                            ; preds = %21781
  br label %21783

21783:                                            ; preds = %21782
  call void @llvm.lifetime.start.p0(i64 4, ptr %463) #12
  %21784 = call ptr @__errno_location() #13
  %21785 = load i32, ptr %21784, align 4, !tbaa !5
  store i32 %21785, ptr %463, align 4, !tbaa !5
  %21786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21787 = call i32 @s2n_print_stacktrace(ptr noundef %21786)
  %21788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21789 = trunc i8 %21788 to i1
  br i1 %21789, label %21790, label %21812

21790:                                            ; preds = %21783
  %21791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21792 = call i32 @fileno(ptr noundef %21791) #12
  %21793 = call i32 @isatty(i32 noundef %21792) #12
  %21794 = icmp ne i32 %21793, 0
  br i1 %21794, label %21795, label %21812

21795:                                            ; preds = %21790
  %21796 = load i32, ptr %463, align 4, !tbaa !5
  %21797 = call ptr @__errno_location() #13
  store i32 %21796, ptr %21797, align 4, !tbaa !5
  %21798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21799 = load i32, ptr @test_count, align 4, !tbaa !5
  %21800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21801 = load i32, ptr %21800, align 4, !tbaa !5
  %21802 = call ptr @s2n_strerror(i32 noundef %21801, ptr noundef @.str.4)
  %21803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21804 = load i32, ptr %21803, align 4, !tbaa !5
  %21805 = call ptr @s2n_strerror_debug(i32 noundef %21804, ptr noundef @.str.4)
  %21806 = call ptr @__errno_location() #13
  %21807 = load i32, ptr %21806, align 4, !tbaa !5
  %21808 = call ptr @strerror(i32 noundef %21807) #12
  %21809 = call ptr @__errno_location() #13
  %21810 = load i32, ptr %21809, align 4, !tbaa !5
  %21811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21798, ptr noundef @.str.2, i32 noundef %21799, ptr noundef @.str.162, ptr noundef @.str.1, i32 noundef 1354, ptr noundef %21802, ptr noundef %21805, ptr noundef %21808, i32 noundef %21810) #12
  br label %21829

21812:                                            ; preds = %21790, %21783
  %21813 = load i32, ptr %463, align 4, !tbaa !5
  %21814 = call ptr @__errno_location() #13
  store i32 %21813, ptr %21814, align 4, !tbaa !5
  %21815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21816 = load i32, ptr @test_count, align 4, !tbaa !5
  %21817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21818 = load i32, ptr %21817, align 4, !tbaa !5
  %21819 = call ptr @s2n_strerror(i32 noundef %21818, ptr noundef @.str.4)
  %21820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21821 = load i32, ptr %21820, align 4, !tbaa !5
  %21822 = call ptr @s2n_strerror_debug(i32 noundef %21821, ptr noundef @.str.4)
  %21823 = call ptr @__errno_location() #13
  %21824 = load i32, ptr %21823, align 4, !tbaa !5
  %21825 = call ptr @strerror(i32 noundef %21824) #12
  %21826 = call ptr @__errno_location() #13
  %21827 = load i32, ptr %21826, align 4, !tbaa !5
  %21828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21815, ptr noundef @.str.5, i32 noundef %21816, ptr noundef @.str.162, ptr noundef @.str.1, i32 noundef 1354, ptr noundef %21819, ptr noundef %21822, ptr noundef %21825, i32 noundef %21827) #12
  br label %21829

21829:                                            ; preds = %21812, %21795
  call void @llvm.lifetime.end.p0(i64 4, ptr %463) #12
  br label %21830

21830:                                            ; preds = %21829
  br label %21831

21831:                                            ; preds = %21830
  call void @exit(i32 noundef 1) #14
  unreachable

21832:                                            ; No predecessors!
  br label %21833

21833:                                            ; preds = %21832
  br label %21834

21834:                                            ; preds = %21833, %21772
  br label %21835

21835:                                            ; preds = %21834
  br label %21836

21836:                                            ; preds = %21835
  call void @llvm.lifetime.end.p0(i64 1, ptr %461) #12
  call void @llvm.lifetime.end.p0(i64 6, ptr %460) #12
  %21837 = call i32 @s2n_connection_ptr_free(ptr noundef %455)
  %21838 = getelementptr inbounds %struct.s2n_result, ptr %464, i32 0, i32 0
  store i32 %21837, ptr %21838, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %455) #12
  br label %21839

21839:                                            ; preds = %21836, %21505
  br label %21840

21840:                                            ; preds = %21839
  %21841 = load i32, ptr @test_count, align 4, !tbaa !5
  %21842 = add nsw i32 %21841, 1
  store i32 %21842, ptr @test_count, align 4, !tbaa !5
  %21843 = load ptr, ptr %327, align 8, !tbaa !9
  %21844 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %21843)
  %21845 = icmp eq i32 %21844, -1
  br i1 %21845, label %21846, label %21899

21846:                                            ; preds = %21840
  br label %21847

21847:                                            ; preds = %21846
  br label %21848

21848:                                            ; preds = %21847
  call void @llvm.lifetime.start.p0(i64 4, ptr %465) #12
  %21849 = call ptr @__errno_location() #13
  %21850 = load i32, ptr %21849, align 4, !tbaa !5
  store i32 %21850, ptr %465, align 4, !tbaa !5
  %21851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21852 = call i32 @s2n_print_stacktrace(ptr noundef %21851)
  %21853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21854 = trunc i8 %21853 to i1
  br i1 %21854, label %21855, label %21877

21855:                                            ; preds = %21848
  %21856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21857 = call i32 @fileno(ptr noundef %21856) #12
  %21858 = call i32 @isatty(i32 noundef %21857) #12
  %21859 = icmp ne i32 %21858, 0
  br i1 %21859, label %21860, label %21877

21860:                                            ; preds = %21855
  %21861 = load i32, ptr %465, align 4, !tbaa !5
  %21862 = call ptr @__errno_location() #13
  store i32 %21861, ptr %21862, align 4, !tbaa !5
  %21863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21864 = load i32, ptr @test_count, align 4, !tbaa !5
  %21865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21866 = load i32, ptr %21865, align 4, !tbaa !5
  %21867 = call ptr @s2n_strerror(i32 noundef %21866, ptr noundef @.str.4)
  %21868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21869 = load i32, ptr %21868, align 4, !tbaa !5
  %21870 = call ptr @s2n_strerror_debug(i32 noundef %21869, ptr noundef @.str.4)
  %21871 = call ptr @__errno_location() #13
  %21872 = load i32, ptr %21871, align 4, !tbaa !5
  %21873 = call ptr @strerror(i32 noundef %21872) #12
  %21874 = call ptr @__errno_location() #13
  %21875 = load i32, ptr %21874, align 4, !tbaa !5
  %21876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21863, ptr noundef @.str.2, i32 noundef %21864, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 1357, ptr noundef %21867, ptr noundef %21870, ptr noundef %21873, i32 noundef %21875) #12
  br label %21894

21877:                                            ; preds = %21855, %21848
  %21878 = load i32, ptr %465, align 4, !tbaa !5
  %21879 = call ptr @__errno_location() #13
  store i32 %21878, ptr %21879, align 4, !tbaa !5
  %21880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21881 = load i32, ptr @test_count, align 4, !tbaa !5
  %21882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21883 = load i32, ptr %21882, align 4, !tbaa !5
  %21884 = call ptr @s2n_strerror(i32 noundef %21883, ptr noundef @.str.4)
  %21885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21886 = load i32, ptr %21885, align 4, !tbaa !5
  %21887 = call ptr @s2n_strerror_debug(i32 noundef %21886, ptr noundef @.str.4)
  %21888 = call ptr @__errno_location() #13
  %21889 = load i32, ptr %21888, align 4, !tbaa !5
  %21890 = call ptr @strerror(i32 noundef %21889) #12
  %21891 = call ptr @__errno_location() #13
  %21892 = load i32, ptr %21891, align 4, !tbaa !5
  %21893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21880, ptr noundef @.str.5, i32 noundef %21881, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 1357, ptr noundef %21884, ptr noundef %21887, ptr noundef %21890, i32 noundef %21892) #12
  br label %21894

21894:                                            ; preds = %21877, %21860
  call void @llvm.lifetime.end.p0(i64 4, ptr %465) #12
  br label %21895

21895:                                            ; preds = %21894
  br label %21896

21896:                                            ; preds = %21895
  call void @exit(i32 noundef 1) #14
  unreachable

21897:                                            ; No predecessors!
  br label %21898

21898:                                            ; preds = %21897
  br label %21899

21899:                                            ; preds = %21898, %21840
  br label %21900

21900:                                            ; preds = %21899
  br label %21901

21901:                                            ; preds = %21900
  br label %21902

21902:                                            ; preds = %21901
  %21903 = load i32, ptr @test_count, align 4, !tbaa !5
  %21904 = add nsw i32 %21903, 1
  store i32 %21904, ptr @test_count, align 4, !tbaa !5
  %21905 = load ptr, ptr %328, align 8, !tbaa !9
  %21906 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %21905)
  %21907 = icmp eq i32 %21906, -1
  br i1 %21907, label %21908, label %21961

21908:                                            ; preds = %21902
  br label %21909

21909:                                            ; preds = %21908
  br label %21910

21910:                                            ; preds = %21909
  call void @llvm.lifetime.start.p0(i64 4, ptr %466) #12
  %21911 = call ptr @__errno_location() #13
  %21912 = load i32, ptr %21911, align 4, !tbaa !5
  store i32 %21912, ptr %466, align 4, !tbaa !5
  %21913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21914 = call i32 @s2n_print_stacktrace(ptr noundef %21913)
  %21915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21916 = trunc i8 %21915 to i1
  br i1 %21916, label %21917, label %21939

21917:                                            ; preds = %21910
  %21918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21919 = call i32 @fileno(ptr noundef %21918) #12
  %21920 = call i32 @isatty(i32 noundef %21919) #12
  %21921 = icmp ne i32 %21920, 0
  br i1 %21921, label %21922, label %21939

21922:                                            ; preds = %21917
  %21923 = load i32, ptr %466, align 4, !tbaa !5
  %21924 = call ptr @__errno_location() #13
  store i32 %21923, ptr %21924, align 4, !tbaa !5
  %21925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21926 = load i32, ptr @test_count, align 4, !tbaa !5
  %21927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21928 = load i32, ptr %21927, align 4, !tbaa !5
  %21929 = call ptr @s2n_strerror(i32 noundef %21928, ptr noundef @.str.4)
  %21930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21931 = load i32, ptr %21930, align 4, !tbaa !5
  %21932 = call ptr @s2n_strerror_debug(i32 noundef %21931, ptr noundef @.str.4)
  %21933 = call ptr @__errno_location() #13
  %21934 = load i32, ptr %21933, align 4, !tbaa !5
  %21935 = call ptr @strerror(i32 noundef %21934) #12
  %21936 = call ptr @__errno_location() #13
  %21937 = load i32, ptr %21936, align 4, !tbaa !5
  %21938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21925, ptr noundef @.str.2, i32 noundef %21926, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 1358, ptr noundef %21929, ptr noundef %21932, ptr noundef %21935, i32 noundef %21937) #12
  br label %21956

21939:                                            ; preds = %21917, %21910
  %21940 = load i32, ptr %466, align 4, !tbaa !5
  %21941 = call ptr @__errno_location() #13
  store i32 %21940, ptr %21941, align 4, !tbaa !5
  %21942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21943 = load i32, ptr @test_count, align 4, !tbaa !5
  %21944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21945 = load i32, ptr %21944, align 4, !tbaa !5
  %21946 = call ptr @s2n_strerror(i32 noundef %21945, ptr noundef @.str.4)
  %21947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21948 = load i32, ptr %21947, align 4, !tbaa !5
  %21949 = call ptr @s2n_strerror_debug(i32 noundef %21948, ptr noundef @.str.4)
  %21950 = call ptr @__errno_location() #13
  %21951 = load i32, ptr %21950, align 4, !tbaa !5
  %21952 = call ptr @strerror(i32 noundef %21951) #12
  %21953 = call ptr @__errno_location() #13
  %21954 = load i32, ptr %21953, align 4, !tbaa !5
  %21955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21942, ptr noundef @.str.5, i32 noundef %21943, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 1358, ptr noundef %21946, ptr noundef %21949, ptr noundef %21952, i32 noundef %21954) #12
  br label %21956

21956:                                            ; preds = %21939, %21922
  call void @llvm.lifetime.end.p0(i64 4, ptr %466) #12
  br label %21957

21957:                                            ; preds = %21956
  br label %21958

21958:                                            ; preds = %21957
  call void @exit(i32 noundef 1) #14
  unreachable

21959:                                            ; No predecessors!
  br label %21960

21960:                                            ; preds = %21959
  br label %21961

21961:                                            ; preds = %21960, %21902
  br label %21962

21962:                                            ; preds = %21961
  br label %21963

21963:                                            ; preds = %21962
  call void @llvm.lifetime.end.p0(i64 8, ptr %328) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %327) #12
  %21964 = call i32 @s2n_config_ptr_free(ptr noundef %326)
  %21965 = getelementptr inbounds %struct.s2n_result, ptr %467, i32 0, i32 0
  store i32 %21964, ptr %21965, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %326) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr %325) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr %324) #12
  br label %21966

21966:                                            ; preds = %21963
  br label %21967

21967:                                            ; preds = %21966
  %21968 = call i32 @s2n_cleanup()
  %21969 = icmp eq i32 %21968, -1
  br i1 %21969, label %21970, label %22023

21970:                                            ; preds = %21967
  br label %21971

21971:                                            ; preds = %21970
  br label %21972

21972:                                            ; preds = %21971
  call void @llvm.lifetime.start.p0(i64 4, ptr %468) #12
  %21973 = call ptr @__errno_location() #13
  %21974 = load i32, ptr %21973, align 4, !tbaa !5
  store i32 %21974, ptr %468, align 4, !tbaa !5
  %21975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21976 = call i32 @s2n_print_stacktrace(ptr noundef %21975)
  %21977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21978 = trunc i8 %21977 to i1
  br i1 %21978, label %21979, label %22001

21979:                                            ; preds = %21972
  %21980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21981 = call i32 @fileno(ptr noundef %21980) #12
  %21982 = call i32 @isatty(i32 noundef %21981) #12
  %21983 = icmp ne i32 %21982, 0
  br i1 %21983, label %21984, label %22001

21984:                                            ; preds = %21979
  %21985 = load i32, ptr %468, align 4, !tbaa !5
  %21986 = call ptr @__errno_location() #13
  store i32 %21985, ptr %21986, align 4, !tbaa !5
  %21987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21988 = load i32, ptr @test_count, align 4, !tbaa !5
  %21989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21990 = load i32, ptr %21989, align 4, !tbaa !5
  %21991 = call ptr @s2n_strerror(i32 noundef %21990, ptr noundef @.str.4)
  %21992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21993 = load i32, ptr %21992, align 4, !tbaa !5
  %21994 = call ptr @s2n_strerror_debug(i32 noundef %21993, ptr noundef @.str.4)
  %21995 = call ptr @__errno_location() #13
  %21996 = load i32, ptr %21995, align 4, !tbaa !5
  %21997 = call ptr @strerror(i32 noundef %21996) #12
  %21998 = call ptr @__errno_location() #13
  %21999 = load i32, ptr %21998, align 4, !tbaa !5
  %22000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21987, ptr noundef @.str.2, i32 noundef %21988, ptr noundef @.str.183, ptr noundef @.str.1, i32 noundef 1361, ptr noundef %21991, ptr noundef %21994, ptr noundef %21997, i32 noundef %21999) #12
  br label %22018

22001:                                            ; preds = %21979, %21972
  %22002 = load i32, ptr %468, align 4, !tbaa !5
  %22003 = call ptr @__errno_location() #13
  store i32 %22002, ptr %22003, align 4, !tbaa !5
  %22004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22005 = load i32, ptr @test_count, align 4, !tbaa !5
  %22006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22007 = load i32, ptr %22006, align 4, !tbaa !5
  %22008 = call ptr @s2n_strerror(i32 noundef %22007, ptr noundef @.str.4)
  %22009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22010 = load i32, ptr %22009, align 4, !tbaa !5
  %22011 = call ptr @s2n_strerror_debug(i32 noundef %22010, ptr noundef @.str.4)
  %22012 = call ptr @__errno_location() #13
  %22013 = load i32, ptr %22012, align 4, !tbaa !5
  %22014 = call ptr @strerror(i32 noundef %22013) #12
  %22015 = call ptr @__errno_location() #13
  %22016 = load i32, ptr %22015, align 4, !tbaa !5
  %22017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22004, ptr noundef @.str.5, i32 noundef %22005, ptr noundef @.str.183, ptr noundef @.str.1, i32 noundef 1361, ptr noundef %22008, ptr noundef %22011, ptr noundef %22014, i32 noundef %22016) #12
  br label %22018

22018:                                            ; preds = %22001, %21984
  call void @llvm.lifetime.end.p0(i64 4, ptr %468) #12
  br label %22019

22019:                                            ; preds = %22018
  br label %22020

22020:                                            ; preds = %22019
  call void @exit(i32 noundef 1) #14
  unreachable

22021:                                            ; No predecessors!
  br label %22022

22022:                                            ; preds = %22021
  br label %22023

22023:                                            ; preds = %22022, %21967
  br label %22024

22024:                                            ; preds = %22023
  br label %22025

22025:                                            ; preds = %22024
  br label %22026

22026:                                            ; preds = %22025
  br label %22027

22027:                                            ; preds = %22026
  %22028 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %22029 = icmp eq i32 %22028, -1
  br i1 %22029, label %22030, label %22083

22030:                                            ; preds = %22027
  br label %22031

22031:                                            ; preds = %22030
  br label %22032

22032:                                            ; preds = %22031
  call void @llvm.lifetime.start.p0(i64 4, ptr %469) #12
  %22033 = call ptr @__errno_location() #13
  %22034 = load i32, ptr %22033, align 4, !tbaa !5
  store i32 %22034, ptr %469, align 4, !tbaa !5
  %22035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22036 = call i32 @s2n_print_stacktrace(ptr noundef %22035)
  %22037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22038 = trunc i8 %22037 to i1
  br i1 %22038, label %22039, label %22061

22039:                                            ; preds = %22032
  %22040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22041 = call i32 @fileno(ptr noundef %22040) #12
  %22042 = call i32 @isatty(i32 noundef %22041) #12
  %22043 = icmp ne i32 %22042, 0
  br i1 %22043, label %22044, label %22061

22044:                                            ; preds = %22039
  %22045 = load i32, ptr %469, align 4, !tbaa !5
  %22046 = call ptr @__errno_location() #13
  store i32 %22045, ptr %22046, align 4, !tbaa !5
  %22047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22048 = load i32, ptr @test_count, align 4, !tbaa !5
  %22049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22050 = load i32, ptr %22049, align 4, !tbaa !5
  %22051 = call ptr @s2n_strerror(i32 noundef %22050, ptr noundef @.str.4)
  %22052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22053 = load i32, ptr %22052, align 4, !tbaa !5
  %22054 = call ptr @s2n_strerror_debug(i32 noundef %22053, ptr noundef @.str.4)
  %22055 = call ptr @__errno_location() #13
  %22056 = load i32, ptr %22055, align 4, !tbaa !5
  %22057 = call ptr @strerror(i32 noundef %22056) #12
  %22058 = call ptr @__errno_location() #13
  %22059 = load i32, ptr %22058, align 4, !tbaa !5
  %22060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22047, ptr noundef @.str.2, i32 noundef %22048, ptr noundef @.str.184, ptr noundef @.str.1, i32 noundef 1361, ptr noundef %22051, ptr noundef %22054, ptr noundef %22057, i32 noundef %22059) #12
  br label %22078

22061:                                            ; preds = %22039, %22032
  %22062 = load i32, ptr %469, align 4, !tbaa !5
  %22063 = call ptr @__errno_location() #13
  store i32 %22062, ptr %22063, align 4, !tbaa !5
  %22064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22065 = load i32, ptr @test_count, align 4, !tbaa !5
  %22066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22067 = load i32, ptr %22066, align 4, !tbaa !5
  %22068 = call ptr @s2n_strerror(i32 noundef %22067, ptr noundef @.str.4)
  %22069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22070 = load i32, ptr %22069, align 4, !tbaa !5
  %22071 = call ptr @s2n_strerror_debug(i32 noundef %22070, ptr noundef @.str.4)
  %22072 = call ptr @__errno_location() #13
  %22073 = load i32, ptr %22072, align 4, !tbaa !5
  %22074 = call ptr @strerror(i32 noundef %22073) #12
  %22075 = call ptr @__errno_location() #13
  %22076 = load i32, ptr %22075, align 4, !tbaa !5
  %22077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22064, ptr noundef @.str.5, i32 noundef %22065, ptr noundef @.str.184, ptr noundef @.str.1, i32 noundef 1361, ptr noundef %22068, ptr noundef %22071, ptr noundef %22074, i32 noundef %22076) #12
  br label %22078

22078:                                            ; preds = %22061, %22044
  call void @llvm.lifetime.end.p0(i64 4, ptr %469) #12
  br label %22079

22079:                                            ; preds = %22078
  br label %22080

22080:                                            ; preds = %22079
  call void @exit(i32 noundef 1) #14
  unreachable

22081:                                            ; No predecessors!
  br label %22082

22082:                                            ; preds = %22081
  br label %22083

22083:                                            ; preds = %22082, %22027
  br label %22084

22084:                                            ; preds = %22083
  br label %22085

22085:                                            ; preds = %22084
  %22086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22087 = trunc i8 %22086 to i1
  br i1 %22087, label %22088, label %22104

22088:                                            ; preds = %22085
  %22089 = load ptr, ptr @stdout, align 8, !tbaa !9
  %22090 = call i32 @fileno(ptr noundef %22089) #12
  %22091 = call i32 @isatty(i32 noundef %22090) #12
  %22092 = icmp ne i32 %22091, 0
  br i1 %22092, label %22093, label %22104

22093:                                            ; preds = %22088
  %22094 = load i32, ptr @test_count, align 4, !tbaa !5
  %22095 = icmp ne i32 %22094, 0
  br i1 %22095, label %22096, label %22100

22096:                                            ; preds = %22093
  %22097 = load ptr, ptr @stdout, align 8, !tbaa !9
  %22098 = load i32, ptr @test_count, align 4, !tbaa !5
  %22099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22097, ptr noundef @.str.185, i32 noundef %22098) #12
  br label %22103

22100:                                            ; preds = %22093
  %22101 = load ptr, ptr @stdout, align 8, !tbaa !9
  %22102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22101, ptr noundef @.str.186) #12
  br label %22103

22103:                                            ; preds = %22100, %22096
  br label %22115

22104:                                            ; preds = %22088, %22085
  %22105 = load i32, ptr @test_count, align 4, !tbaa !5
  %22106 = icmp ne i32 %22105, 0
  br i1 %22106, label %22107, label %22111

22107:                                            ; preds = %22104
  %22108 = load ptr, ptr @stdout, align 8, !tbaa !9
  %22109 = load i32, ptr @test_count, align 4, !tbaa !5
  %22110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22108, ptr noundef @.str.187, i32 noundef %22109) #12
  br label %22114

22111:                                            ; preds = %22104
  %22112 = load ptr, ptr @stdout, align 8, !tbaa !9
  %22113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22112, ptr noundef @.str.188) #12
  br label %22114

22114:                                            ; preds = %22111, %22107
  br label %22115

22115:                                            ; preds = %22114, %22103
  store i32 0, ptr %3, align 4
  store i32 1, ptr %470, align 4
  br label %22120

22116:                                            ; No predecessors!
  br label %22117

22117:                                            ; preds = %22116
  br label %22118

22118:                                            ; preds = %22117
  br label %22119

22119:                                            ; preds = %22118
  store i32 0, ptr %470, align 4
  br label %22120

22120:                                            ; preds = %22119, %22115
  call void @llvm.lifetime.end.p0(i64 12000, ptr %10) #12
  %22121 = load i32, ptr %470, align 4
  switch i32 %22121, label %22124 [
    i32 0, label %22122
    i32 1, label %22122
  ]

22122:                                            ; preds = %22120, %22120
  %22123 = load i32, ptr %3, align 4
  ret i32 %22123

22124:                                            ; preds = %22120
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

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

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #2

declare ptr @s2n_connection_new(i32 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_connection_set_config(ptr noundef, ptr noundef) #2

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

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

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

declare i32 @s2n_connection_wipe(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

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

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

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #10

declare ptr @s2n_cert_chain_and_key_new() #2

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

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

declare i32 @s2n_set_cipher_as_tls_server(ptr noundef, ptr noundef, i16 noundef zeroext) #2

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

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

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

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

declare ptr @s2n_strerror_name(i32 noundef) #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_enable_tls13_in_test(...) #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

; Function Attrs: nounwind
declare void @free(ptr noundef) #1

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

declare i32 @s2n_set_cipher_as_sslv2_server(ptr noundef, ptr noundef, i16 noundef zeroext) #2

declare i32 @s2n_cleanup() #2

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

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 218}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !7, i64 220}
!43 = !{!16, !7, i64 219}
!44 = !{!16, !10, i64 1736}
!45 = !{!46, !6, i64 56}
!46 = !{!"s2n_psk", !6, i64 0, !25, i64 8, !25, i64 32, !6, i64 56, !6, i64 60, !18, i64 64, !25, i64 72, !47, i64 96, !18, i64 160}
!47 = !{!"s2n_early_data_config", !6, i64 0, !7, i64 4, !10, i64 8, !25, i64 16, !25, i64 40}
!48 = !{!16, !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, !31, i64 4, !6, i64 8, !31, 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, !18, i64 16, !7, i64 24}
!54 = !{!7, !7, i64 0}
!55 = !{!56, !10, i64 8}
!56 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!57 = !{!16, !10, i64 656}
!58 = !{!59, !10, i64 8}
!59 = !{!"s2n_cipher_preferences", !31, i64 0, !10, i64 8, !12, i64 16}
!60 = !{!59, !31, i64 0}
!61 = !{!18, !18, i64 0}
!62 = !{!63, !10, i64 0}
!63 = !{!"test_case", !10, i64 0, !10, i64 8}
!64 = !{!63, !10, i64 8}
!65 = distinct !{!65, !66}
!66 = !{!"llvm.loop.mustprogress"}
!67 = !{!68, !10, i64 56}
!68 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!69 = !{!70, !6, i64 96}
!70 = !{!"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}
!71 = !{!72, !7, i64 0}
!72 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!73 = !{!72, !10, i64 8}
!74 = !{!72, !10, i64 16}
!75 = !{!72, !10, i64 24}
!76 = !{!72, !10, i64 32}
!77 = !{!72, !10, i64 40}
!78 = !{!72, !10, i64 48}
!79 = !{!72, !12, i64 56}
!80 = !{!16, !10, i64 16}
!81 = !{!59, !12, i64 16}
!82 = !{i64 0, i64 2, !83, i64 8, i64 8, !9, i64 16, i64 1, !11}
!83 = !{!31, !31, i64 0}


; 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_cipher_preferences = type { i16, ptr, i8 }
%struct.test_case = type { ptr, ptr }
%struct.s2n_cipher = type { i32, %union.anon.1, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon.1 = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [89 x i8], align 1
@__const.main.valid_wire_ciphers = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [90 x i8], align 1
@__const.main.invalid_wire_ciphers = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [61 x i8], align 1
@__const.main.valid_tls13_wire_ciphers = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [82 x i8], align 1
@s2n_null_cipher_suite = external global %struct.s2n_cipher_suite, align 8
@.str.29 = external hidden unnamed_addr constant [70 x i8], align 1
@__const.main.valid_tls13_wire_ciphers.30 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [85 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.32 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [117 x i8], align 1
@__const.main.wire_ciphers = external hidden unnamed_addr constant [48 x i8], align 16
@__const.main.wire_ciphers_fallback = external hidden unnamed_addr constant [48 x i8], align 16
@__const.main.wire_ciphers_renegotiation = external hidden unnamed_addr constant [48 x i8], align 16
@__const.main.wire_ciphers_with_ecdsa = external hidden unnamed_addr constant [4 x i8], align 1
@__const.main.wire_ciphers_only_ecdsa = external hidden unnamed_addr constant [8 x i8], align 1
@__const.main.wire_ciphers_rsa_fallback = external hidden unnamed_addr constant [12 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [43 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.76 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [90 x i8], align 1
@s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.82 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_rsa_with_rc4_128_md5 = external global %struct.s2n_cipher_suite, align 8
@s2n_rsa_with_3des_ede_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@s2n_ecdhe_ecdsa_with_aes_256_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.87 = external hidden unnamed_addr constant [113 x i8], align 1
@s2n_rsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.88 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [114 x i8], align 1
@cipher_preferences_20170210 = external local_unnamed_addr constant %struct.s2n_cipher_preferences, align 8
@.str.106 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [66 x i8], align 1
@__const.main.test_cases = external hidden unnamed_addr constant [3 x %struct.test_case], align 16
@.str.108 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [82 x i8], align 1
@__const.main.wire_ciphers2 = external hidden unnamed_addr constant [8 x i8], align 1
@s2n_chacha20_poly1305 = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@.str.110 = external hidden unnamed_addr constant [85 x i8], align 1
@s2n_tls13_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.111 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [82 x i8], align 1
@__const.main.test_wire_ciphers = external hidden unnamed_addr constant [4 x i8], align 1
@s2n_all_supported_curves_list = external local_unnamed_addr constant [0 x ptr], align 8
@.str.113 = external hidden unnamed_addr constant [89 x i8], align 1
@s2n_ecdhe_rsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.114 = external hidden unnamed_addr constant [86 x i8], align 1
@__const.main.test_wire_ciphers.115 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [85 x i8], align 1
@__const.main.test_wire_ciphers.119 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [82 x i8], align 1
@__const.main.test_wire_ciphers.121 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [55 x i8], align 1
@__const.main.invalid_cipher_pref = external hidden unnamed_addr constant [2 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [70 x i8], align 1
@__const.main.wire = external hidden unnamed_addr constant [2 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [74 x i8], align 1
@s2n_dhe_rsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.133 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [68 x i8], align 1
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@s2n_signature_preferences_20201021 = external constant %struct.s2n_signature_preferences, align 8
@s2n_ecc_preferences_test_all = external constant %struct.s2n_ecc_preferences, align 8
@.str.136 = external hidden unnamed_addr constant [195 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [83 x i8], align 1
@main.test_cipher_suite_list = external hidden global [3 x ptr], align 16
@s2n_ecdhe_ecdsa_with_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_ecdhe_rsa_with_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@s2n_ecdhe_rsa_with_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@__const.main.wire.146 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [81 x i8], align 1
@main.test_cipher_suite_list.151 = external hidden global [3 x ptr], align 16
@s2n_ecdhe_rsa_with_aes_256_cbc_sha384 = external global %struct.s2n_cipher_suite, align 8
@__const.main.wire.152 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [92 x i8], align 1
@main.test_cipher_suite_list.155 = external hidden global [3 x ptr], align 16
@s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@__const.main.wire.156 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [94 x i8], align 1
@main.test_cipher_suite_list.158 = external hidden global [3 x ptr], align 16
@__const.main.wire.159 = external hidden unnamed_addr constant [6 x i8], align 1
@main.test_cipher_suite_list.160 = external hidden global [2 x ptr], align 16
@__const.main.wire.161 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [85 x i8], align 1
@main.test_cipher_suite_list.164 = external hidden global [3 x ptr], align 16
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@__const.main.test_wire_1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [83 x i8], align 1
@__const.main.test_wire_2 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [83 x i8], align 1
@main.test_cipher_suite_list.170 = external hidden global [1 x ptr], align 8
@__const.main.wire.171 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [85 x i8], align 1
@main.test_cipher_suite_list.173 = external hidden global [3 x ptr], align 16
@s2n_ecdhe_ecdsa_with_aes_128_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@__const.main.wire.174 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [91 x i8], align 1
@main.test_cipher_suite_list.177 = external hidden global [2 x ptr], align 16
@__const.main.wire.178 = external hidden unnamed_addr constant [6 x i8], align 1
@main.test_cipher_suite_list.179 = external hidden global [3 x ptr], align 16
@__const.main.wire.180 = external hidden unnamed_addr constant [6 x i8], align 1
@main.test_cipher_suite_list.181 = external hidden global [3 x ptr], align 16
@__const.main.wire.182 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [12000 x i8], align 16
  %4 = alloca ptr, align 8
  %5 = alloca [2 x i8], align 2
  %6 = alloca [2 x i8], align 2
  %7 = alloca [2 x i8], align 2
  %8 = alloca [2 x i8], align 2
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca [48 x i8], align 16
  %12 = alloca [48 x i8], align 16
  %13 = alloca [48 x i8], align 16
  %14 = alloca [4 x i8], align 4
  %15 = alloca [8 x i8], align 8
  %16 = alloca [12 x i8], align 1
  %17 = alloca ptr, align 8
  %18 = alloca [2 x ptr], align 16
  %19 = alloca [2 x ptr], align 16
  %20 = alloca [8 x i8], align 4
  %21 = alloca [8 x i8], align 8
  %22 = alloca [4 x i8], align 4
  %23 = alloca [6 x i8], align 1
  %24 = alloca [4 x i8], align 4
  %25 = alloca [4 x i8], align 4
  %26 = alloca [2 x i8], align 2
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca [2 x i8], align 2
  %30 = alloca %struct.s2n_cipher_preferences, align 8
  %31 = alloca %struct.s2n_security_policy, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca [6 x i8], align 1
  %38 = alloca ptr, align 8
  %39 = alloca [6 x i8], align 1
  %40 = alloca ptr, align 8
  %41 = alloca [4 x i8], align 4
  %42 = alloca ptr, align 8
  %43 = alloca [6 x i8], align 1
  %44 = alloca ptr, align 8
  %45 = alloca [4 x i8], align 4
  %46 = alloca ptr, align 8
  %47 = alloca [6 x i8], align 1
  %48 = alloca [4 x i8], align 4
  %49 = alloca ptr, align 8
  %50 = alloca [2 x i8], align 2
  %51 = alloca ptr, align 8
  %52 = alloca [9 x i8], align 1
  %53 = alloca ptr, align 8
  %54 = alloca [6 x i8], align 1
  %55 = alloca ptr, align 8
  %56 = alloca [6 x i8], align 1
  %57 = alloca ptr, align 8
  %58 = alloca [6 x i8], align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %59 = load ptr, ptr @stdout, align 8, !tbaa !9
  %60 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #14
  %61 = load ptr, ptr @stdout, align 8, !tbaa !9
  %62 = tail call i32 @fflush(ptr noundef %61)
  %63 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #14
  %64 = icmp eq i32 %63, -1
  br i1 %64, label %65, label %89

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

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

76:                                               ; preds = %72, %65
  br label %77

77:                                               ; preds = %72, %76
  %.str.5.sink = phi ptr [ @.str.5, %76 ], [ @.str.2, %72 ]
  store i32 %67, ptr %66, align 4, !tbaa !5
  %78 = load ptr, ptr @stderr, align 8, !tbaa !9
  %79 = load i32, ptr @test_count, align 4, !tbaa !5
  %80 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %81 = load i32, ptr %80, align 4, !tbaa !5
  %82 = tail call ptr @s2n_strerror(i32 noundef %81, ptr noundef nonnull @.str.4) #14
  %83 = load i32, ptr %80, align 4, !tbaa !5
  %84 = tail call ptr @s2n_strerror_debug(i32 noundef %83, ptr noundef nonnull @.str.4) #14
  %85 = load i32, ptr %66, align 4, !tbaa !5
  %86 = tail call ptr @strerror(i32 noundef %85) #14
  %87 = load i32, ptr %66, align 4, !tbaa !5
  %88 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %78, ptr noundef nonnull %.str.5.sink, i32 noundef %79, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %82, ptr noundef %84, ptr noundef %86, i32 noundef %87) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

89:                                               ; preds = %2
  %90 = load i32, ptr @test_count, align 4, !tbaa !5
  %91 = add nsw i32 %90, 1
  store i32 %91, ptr @test_count, align 4, !tbaa !5
  %92 = tail call i32 @s2n_enable_atexit() #14
  %93 = icmp eq i32 %92, -1
  br i1 %93, label %94, label %118

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

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

105:                                              ; preds = %101, %94
  br label %106

106:                                              ; preds = %101, %105
  %.str.5.sink1444 = phi ptr [ @.str.5, %105 ], [ @.str.2, %101 ]
  store i32 %96, ptr %95, align 4, !tbaa !5
  %107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %108 = load i32, ptr @test_count, align 4, !tbaa !5
  %109 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %110 = load i32, ptr %109, align 4, !tbaa !5
  %111 = tail call ptr @s2n_strerror(i32 noundef %110, ptr noundef nonnull @.str.4) #14
  %112 = load i32, ptr %109, align 4, !tbaa !5
  %113 = tail call ptr @s2n_strerror_debug(i32 noundef %112, ptr noundef nonnull @.str.4) #14
  %114 = load i32, ptr %95, align 4, !tbaa !5
  %115 = tail call ptr @strerror(i32 noundef %114) #14
  %116 = load i32, ptr %95, align 4, !tbaa !5
  %117 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %107, ptr noundef nonnull %.str.5.sink1444, i32 noundef %108, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %111, ptr noundef %113, ptr noundef %115, i32 noundef %116) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

118:                                              ; preds = %89
  %119 = tail call i32 @s2n_init() #14
  %120 = icmp eq i32 %119, -1
  br i1 %120, label %121, label %145

121:                                              ; preds = %118
  %122 = tail call ptr @__errno_location() #15
  %123 = load i32, ptr %122, align 4, !tbaa !5
  %124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %125 = tail call i32 @s2n_print_stacktrace(ptr noundef %124) #14
  %126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %127 = trunc nuw i8 %126 to i1
  br i1 %127, label %128, label %132

128:                                              ; preds = %121
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = tail call i32 @fileno(ptr noundef %129) #14
  %131 = tail call i32 @isatty(i32 noundef %130) #14
  %.not1430 = icmp eq i32 %131, 0
  br i1 %.not1430, label %132, label %133

132:                                              ; preds = %128, %121
  br label %133

133:                                              ; preds = %128, %132
  %.str.5.sink1455 = phi ptr [ @.str.5, %132 ], [ @.str.2, %128 ]
  store i32 %123, ptr %122, align 4, !tbaa !5
  %134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %135 = load i32, ptr @test_count, align 4, !tbaa !5
  %136 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %137 = load i32, ptr %136, align 4, !tbaa !5
  %138 = tail call ptr @s2n_strerror(i32 noundef %137, ptr noundef nonnull @.str.4) #14
  %139 = load i32, ptr %136, align 4, !tbaa !5
  %140 = tail call ptr @s2n_strerror_debug(i32 noundef %139, ptr noundef nonnull @.str.4) #14
  %141 = load i32, ptr %122, align 4, !tbaa !5
  %142 = tail call ptr @strerror(i32 noundef %141) #14
  %143 = load i32, ptr %122, align 4, !tbaa !5
  %144 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %134, ptr noundef nonnull %.str.5.sink1455, i32 noundef %135, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %138, ptr noundef %140, ptr noundef %142, i32 noundef %143) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

145:                                              ; preds = %118
  %146 = load i32, ptr @test_count, align 4, !tbaa !5
  %147 = add nsw i32 %146, 1
  store i32 %147, ptr @test_count, align 4, !tbaa !5
  %148 = tail call i32 (...) @s2n_disable_tls13_in_test() #14
  %149 = icmp eq i32 %148, -1
  br i1 %149, label %150, label %174

150:                                              ; preds = %145
  %151 = tail call ptr @__errno_location() #15
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %154 = tail call i32 @s2n_print_stacktrace(ptr noundef %153) #14
  %155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %156 = trunc nuw i8 %155 to i1
  br i1 %156, label %157, label %161

157:                                              ; preds = %150
  %158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %159 = tail call i32 @fileno(ptr noundef %158) #14
  %160 = tail call i32 @isatty(i32 noundef %159) #14
  %.not1429 = icmp eq i32 %160, 0
  br i1 %.not1429, label %161, label %162

161:                                              ; preds = %157, %150
  br label %162

162:                                              ; preds = %157, %161
  %.str.5.sink1466 = phi ptr [ @.str.5, %161 ], [ @.str.2, %157 ]
  store i32 %152, ptr %151, align 4, !tbaa !5
  %163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %164 = load i32, ptr @test_count, align 4, !tbaa !5
  %165 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = tail call ptr @s2n_strerror(i32 noundef %166, ptr noundef nonnull @.str.4) #14
  %168 = load i32, ptr %165, align 4, !tbaa !5
  %169 = tail call ptr @s2n_strerror_debug(i32 noundef %168, ptr noundef nonnull @.str.4) #14
  %170 = load i32, ptr %151, align 4, !tbaa !5
  %171 = tail call ptr @strerror(i32 noundef %170) #14
  %172 = load i32, ptr %151, align 4, !tbaa !5
  %173 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef nonnull %.str.5.sink1466, i32 noundef %164, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %167, ptr noundef %169, ptr noundef %171, i32 noundef %172) #16
  tail call void @exit(i32 noundef 1) #17
  unreachable

174:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %3) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %3, i8 0, i64 12000, i1 false)
  %175 = load i32, ptr @test_count, align 4, !tbaa !5
  %176 = add nsw i32 %175, 1
  store i32 %176, ptr @test_count, align 4, !tbaa !5
  %177 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.9, ptr noundef nonnull %3, i64 noundef 12000) #14
  %178 = icmp eq i32 %177, -1
  br i1 %178, label %179, label %203

179:                                              ; preds = %174
  %180 = tail call ptr @__errno_location() #15
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %183 = call i32 @s2n_print_stacktrace(ptr noundef %182) #14
  %184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %185 = trunc nuw i8 %184 to i1
  br i1 %185, label %186, label %190

186:                                              ; preds = %179
  %187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %188 = call i32 @fileno(ptr noundef %187) #14
  %189 = call i32 @isatty(i32 noundef %188) #14
  %.not1428 = icmp eq i32 %189, 0
  br i1 %.not1428, label %190, label %191

190:                                              ; preds = %186, %179
  br label %191

191:                                              ; preds = %186, %190
  %.str.5.sink1477 = phi ptr [ @.str.5, %190 ], [ @.str.2, %186 ]
  store i32 %181, ptr %180, align 4, !tbaa !5
  %192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %193 = load i32, ptr @test_count, align 4, !tbaa !5
  %194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %195 = load i32, ptr %194, align 4, !tbaa !5
  %196 = call ptr @s2n_strerror(i32 noundef %195, ptr noundef nonnull @.str.4) #14
  %197 = load i32, ptr %194, align 4, !tbaa !5
  %198 = call ptr @s2n_strerror_debug(i32 noundef %197, ptr noundef nonnull @.str.4) #14
  %199 = load i32, ptr %180, align 4, !tbaa !5
  %200 = call ptr @strerror(i32 noundef %199) #14
  %201 = load i32, ptr %180, align 4, !tbaa !5
  %202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %192, ptr noundef nonnull %.str.5.sink1477, i32 noundef %193, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %196, ptr noundef %198, ptr noundef %200, i32 noundef %201) #16
  call void @exit(i32 noundef 1) #17
  unreachable

203:                                              ; preds = %174
  %204 = load i32, ptr @test_count, align 4, !tbaa !5
  %205 = add nsw i32 %204, 1
  store i32 %205, ptr @test_count, align 4, !tbaa !5
  %206 = call ptr @s2n_connection_new(i32 noundef 1) #14
  %207 = icmp eq ptr %206, null
  br i1 %207, label %208, label %232

208:                                              ; preds = %203
  %209 = tail call ptr @__errno_location() #15
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %212 = call i32 @s2n_print_stacktrace(ptr noundef %211) #14
  %213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %214 = trunc nuw i8 %213 to i1
  br i1 %214, label %215, label %219

215:                                              ; preds = %208
  %216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %217 = call i32 @fileno(ptr noundef %216) #14
  %218 = call i32 @isatty(i32 noundef %217) #14
  %.not1427 = icmp eq i32 %218, 0
  br i1 %.not1427, label %219, label %220

219:                                              ; preds = %215, %208
  br label %220

220:                                              ; preds = %215, %219
  %.str.5.sink1488 = phi ptr [ @.str.5, %219 ], [ @.str.2, %215 ]
  store i32 %210, ptr %209, align 4, !tbaa !5
  %221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %222 = load i32, ptr @test_count, align 4, !tbaa !5
  %223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = call ptr @s2n_strerror(i32 noundef %224, ptr noundef nonnull @.str.4) #14
  %226 = load i32, ptr %223, align 4, !tbaa !5
  %227 = call ptr @s2n_strerror_debug(i32 noundef %226, ptr noundef nonnull @.str.4) #14
  %228 = load i32, ptr %209, align 4, !tbaa !5
  %229 = call ptr @strerror(i32 noundef %228) #14
  %230 = load i32, ptr %209, align 4, !tbaa !5
  %231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %221, ptr noundef nonnull %.str.5.sink1488, i32 noundef %222, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %225, ptr noundef %227, ptr noundef %229, i32 noundef %230) #16
  call void @exit(i32 noundef 1) #17
  unreachable

232:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #14
  store ptr null, ptr %4, align 8, !tbaa !9
  %233 = load i32, ptr @test_count, align 4, !tbaa !5
  %234 = add nsw i32 %233, 1
  store i32 %234, ptr @test_count, align 4, !tbaa !5
  %235 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %4, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.13) #14
  %236 = icmp eq i32 %235, -1
  br i1 %236, label %237, label %261

237:                                              ; preds = %232
  %238 = tail call ptr @__errno_location() #15
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %241 = call i32 @s2n_print_stacktrace(ptr noundef %240) #14
  %242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %243 = trunc nuw i8 %242 to i1
  br i1 %243, label %244, label %248

244:                                              ; preds = %237
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = call i32 @fileno(ptr noundef %245) #14
  %247 = call i32 @isatty(i32 noundef %246) #14
  %.not1426 = icmp eq i32 %247, 0
  br i1 %.not1426, label %248, label %249

248:                                              ; preds = %244, %237
  br label %249

249:                                              ; preds = %244, %248
  %.str.5.sink1499 = phi ptr [ @.str.5, %248 ], [ @.str.2, %244 ]
  store i32 %239, ptr %238, align 4, !tbaa !5
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = call ptr @s2n_strerror(i32 noundef %253, ptr noundef nonnull @.str.4) #14
  %255 = load i32, ptr %252, align 4, !tbaa !5
  %256 = call ptr @s2n_strerror_debug(i32 noundef %255, ptr noundef nonnull @.str.4) #14
  %257 = load i32, ptr %238, align 4, !tbaa !5
  %258 = call ptr @strerror(i32 noundef %257) #14
  %259 = load i32, ptr %238, align 4, !tbaa !5
  %260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %250, ptr noundef nonnull %.str.5.sink1499, i32 noundef %251, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %254, ptr noundef %256, ptr noundef %258, i32 noundef %259) #16
  call void @exit(i32 noundef 1) #17
  unreachable

261:                                              ; preds = %232
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr @test_count, align 4, !tbaa !5
  %264 = call ptr @s2n_config_new() #14
  %265 = icmp eq ptr %264, null
  br i1 %265, label %266, label %290

266:                                              ; preds = %261
  %267 = tail call ptr @__errno_location() #15
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %270 = call i32 @s2n_print_stacktrace(ptr noundef %269) #14
  %271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %272 = trunc nuw i8 %271 to i1
  br i1 %272, label %273, label %277

273:                                              ; preds = %266
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = call i32 @fileno(ptr noundef %274) #14
  %276 = call i32 @isatty(i32 noundef %275) #14
  %.not1425 = icmp eq i32 %276, 0
  br i1 %.not1425, label %277, label %278

277:                                              ; preds = %273, %266
  br label %278

278:                                              ; preds = %273, %277
  %.str.5.sink1510 = phi ptr [ @.str.5, %277 ], [ @.str.2, %273 ]
  store i32 %268, ptr %267, align 4, !tbaa !5
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call ptr @s2n_strerror(i32 noundef %282, ptr noundef nonnull @.str.4) #14
  %284 = load i32, ptr %281, align 4, !tbaa !5
  %285 = call ptr @s2n_strerror_debug(i32 noundef %284, ptr noundef nonnull @.str.4) #14
  %286 = load i32, ptr %267, align 4, !tbaa !5
  %287 = call ptr @strerror(i32 noundef %286) #14
  %288 = load i32, ptr %267, align 4, !tbaa !5
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %279, ptr noundef nonnull %.str.5.sink1510, i32 noundef %280, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %283, ptr noundef %285, ptr noundef %287, i32 noundef %288) #16
  call void @exit(i32 noundef 1) #17
  unreachable

290:                                              ; preds = %261
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = add nsw i32 %291, 1
  store i32 %292, ptr @test_count, align 4, !tbaa !5
  %293 = load ptr, ptr %4, align 8, !tbaa !9
  %294 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %264, ptr noundef %293) #14
  %295 = icmp eq i32 %294, -1
  br i1 %295, label %296, label %320

296:                                              ; preds = %290
  %297 = tail call ptr @__errno_location() #15
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = call i32 @s2n_print_stacktrace(ptr noundef %299) #14
  %301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %302 = trunc nuw i8 %301 to i1
  br i1 %302, label %303, label %307

303:                                              ; preds = %296
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @fileno(ptr noundef %304) #14
  %306 = call i32 @isatty(i32 noundef %305) #14
  %.not1424 = icmp eq i32 %306, 0
  br i1 %.not1424, label %307, label %308

307:                                              ; preds = %303, %296
  br label %308

308:                                              ; preds = %303, %307
  %.str.5.sink1521 = phi ptr [ @.str.5, %307 ], [ @.str.2, %303 ]
  store i32 %298, ptr %297, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = call ptr @s2n_strerror(i32 noundef %312, ptr noundef nonnull @.str.4) #14
  %314 = load i32, ptr %311, align 4, !tbaa !5
  %315 = call ptr @s2n_strerror_debug(i32 noundef %314, ptr noundef nonnull @.str.4) #14
  %316 = load i32, ptr %297, align 4, !tbaa !5
  %317 = call ptr @strerror(i32 noundef %316) #14
  %318 = load i32, ptr %297, align 4, !tbaa !5
  %319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef nonnull %.str.5.sink1521, i32 noundef %310, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %313, ptr noundef %315, ptr noundef %317, i32 noundef %318) #16
  call void @exit(i32 noundef 1) #17
  unreachable

320:                                              ; preds = %290
  %321 = load i32, ptr @test_count, align 4, !tbaa !5
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr @test_count, align 4, !tbaa !5
  %323 = call i32 @s2n_connection_set_config(ptr noundef nonnull %206, ptr noundef nonnull %264) #14
  %324 = icmp eq i32 %323, -1
  br i1 %324, label %325, label %349

325:                                              ; preds = %320
  %326 = tail call ptr @__errno_location() #15
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = call i32 @s2n_print_stacktrace(ptr noundef %328) #14
  %330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %331 = trunc nuw i8 %330 to i1
  br i1 %331, label %332, label %336

332:                                              ; preds = %325
  %333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %334 = call i32 @fileno(ptr noundef %333) #14
  %335 = call i32 @isatty(i32 noundef %334) #14
  %.not1423 = icmp eq i32 %335, 0
  br i1 %.not1423, label %336, label %337

336:                                              ; preds = %332, %325
  br label %337

337:                                              ; preds = %332, %336
  %.str.5.sink1532 = phi ptr [ @.str.5, %336 ], [ @.str.2, %332 ]
  store i32 %327, ptr %326, align 4, !tbaa !5
  %338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %339 = load i32, ptr @test_count, align 4, !tbaa !5
  %340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = call ptr @s2n_strerror(i32 noundef %341, ptr noundef nonnull @.str.4) #14
  %343 = load i32, ptr %340, align 4, !tbaa !5
  %344 = call ptr @s2n_strerror_debug(i32 noundef %343, ptr noundef nonnull @.str.4) #14
  %345 = load i32, ptr %326, align 4, !tbaa !5
  %346 = call ptr @strerror(i32 noundef %345) #14
  %347 = load i32, ptr %326, align 4, !tbaa !5
  %348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %338, ptr noundef nonnull %.str.5.sink1532, i32 noundef %339, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %342, ptr noundef %344, ptr noundef %346, i32 noundef %347) #16
  call void @exit(i32 noundef 1) #17
  unreachable

349:                                              ; preds = %320
  %350 = getelementptr inbounds i8, ptr %206, i64 218
  store i8 34, ptr %350, align 2, !tbaa !15
  %351 = getelementptr inbounds i8, ptr %206, i64 220
  store i8 34, ptr %351, align 4, !tbaa !42
  %352 = getelementptr inbounds i8, ptr %206, i64 219
  store i8 34, ptr %352, align 1, !tbaa !43
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr @test_count, align 4, !tbaa !5
  %355 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %206, ptr noundef nonnull @.str.18) #14
  %356 = icmp eq i32 %355, -1
  br i1 %356, label %357, label %381

357:                                              ; preds = %349
  %358 = tail call ptr @__errno_location() #15
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = call i32 @s2n_print_stacktrace(ptr noundef %360) #14
  %362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %363 = trunc nuw i8 %362 to i1
  br i1 %363, label %364, label %368

364:                                              ; preds = %357
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = call i32 @fileno(ptr noundef %365) #14
  %367 = call i32 @isatty(i32 noundef %366) #14
  %.not1422 = icmp eq i32 %367, 0
  br i1 %.not1422, label %368, label %369

368:                                              ; preds = %364, %357
  br label %369

369:                                              ; preds = %364, %368
  %.str.5.sink1543 = phi ptr [ @.str.5, %368 ], [ @.str.2, %364 ]
  store i32 %359, ptr %358, align 4, !tbaa !5
  %370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %371 = load i32, ptr @test_count, align 4, !tbaa !5
  %372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = call ptr @s2n_strerror(i32 noundef %373, ptr noundef nonnull @.str.4) #14
  %375 = load i32, ptr %372, align 4, !tbaa !5
  %376 = call ptr @s2n_strerror_debug(i32 noundef %375, ptr noundef nonnull @.str.4) #14
  %377 = load i32, ptr %358, align 4, !tbaa !5
  %378 = call ptr @strerror(i32 noundef %377) #14
  %379 = load i32, ptr %358, align 4, !tbaa !5
  %380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %370, ptr noundef nonnull %.str.5.sink1543, i32 noundef %371, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %374, ptr noundef %376, ptr noundef %378, i32 noundef %379) #16
  call void @exit(i32 noundef 1) #17
  unreachable

381:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #14
  %382 = load i16, ptr @__const.main.valid_wire_ciphers, align 1
  store i16 %382, ptr %5, align 2
  %383 = load i32, ptr @test_count, align 4, !tbaa !5
  %384 = add nsw i32 %383, 1
  store i32 %384, ptr @test_count, align 4, !tbaa !5
  %385 = call i32 @s2n_set_cipher_as_client(ptr noundef nonnull %206, ptr noundef nonnull %5) #14
  %386 = icmp eq i32 %385, -1
  br i1 %386, label %387, label %411

387:                                              ; preds = %381
  %388 = tail call ptr @__errno_location() #15
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = call i32 @s2n_print_stacktrace(ptr noundef %390) #14
  %392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %393 = trunc nuw i8 %392 to i1
  br i1 %393, label %394, label %398

394:                                              ; preds = %387
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @fileno(ptr noundef %395) #14
  %397 = call i32 @isatty(i32 noundef %396) #14
  %.not1421 = icmp eq i32 %397, 0
  br i1 %.not1421, label %398, label %399

398:                                              ; preds = %394, %387
  br label %399

399:                                              ; preds = %394, %398
  %.str.5.sink1554 = phi ptr [ @.str.5, %398 ], [ @.str.2, %394 ]
  store i32 %389, ptr %388, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @s2n_strerror(i32 noundef %403, ptr noundef nonnull @.str.4) #14
  %405 = load i32, ptr %402, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef nonnull @.str.4) #14
  %407 = load i32, ptr %388, align 4, !tbaa !5
  %408 = call ptr @strerror(i32 noundef %407) #14
  %409 = load i32, ptr %388, align 4, !tbaa !5
  %410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %400, ptr noundef nonnull %.str.5.sink1554, i32 noundef %401, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %404, ptr noundef %406, ptr noundef %408, i32 noundef %409) #16
  call void @exit(i32 noundef 1) #17
  unreachable

411:                                              ; preds = %381
  %412 = load i32, ptr @test_count, align 4, !tbaa !5
  %413 = add nsw i32 %412, 1
  store i32 %413, ptr @test_count, align 4, !tbaa !5
  %414 = call i32 @s2n_connection_wipe(ptr noundef nonnull %206) #14
  %415 = icmp eq i32 %414, -1
  br i1 %415, label %416, label %440

416:                                              ; preds = %411
  %417 = tail call ptr @__errno_location() #15
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = call i32 @s2n_print_stacktrace(ptr noundef %419) #14
  %421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %422 = trunc nuw i8 %421 to i1
  br i1 %422, label %423, label %427

423:                                              ; preds = %416
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = call i32 @fileno(ptr noundef %424) #14
  %426 = call i32 @isatty(i32 noundef %425) #14
  %.not1420 = icmp eq i32 %426, 0
  br i1 %.not1420, label %427, label %428

427:                                              ; preds = %423, %416
  br label %428

428:                                              ; preds = %423, %427
  %.str.5.sink1565 = phi ptr [ @.str.5, %427 ], [ @.str.2, %423 ]
  store i32 %418, ptr %417, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror(i32 noundef %432, ptr noundef nonnull @.str.4) #14
  %434 = load i32, ptr %431, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror_debug(i32 noundef %434, ptr noundef nonnull @.str.4) #14
  %436 = load i32, ptr %417, align 4, !tbaa !5
  %437 = call ptr @strerror(i32 noundef %436) #14
  %438 = load i32, ptr %417, align 4, !tbaa !5
  %439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %429, ptr noundef nonnull %.str.5.sink1565, i32 noundef %430, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %433, ptr noundef %435, ptr noundef %437, i32 noundef %438) #16
  call void @exit(i32 noundef 1) #17
  unreachable

440:                                              ; preds = %411
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #14
  store i8 34, ptr %350, align 2, !tbaa !15
  store i8 34, ptr %351, align 4, !tbaa !42
  store i8 34, ptr %352, align 1, !tbaa !43
  %441 = load i32, ptr @test_count, align 4, !tbaa !5
  %442 = add nsw i32 %441, 1
  store i32 %442, ptr @test_count, align 4, !tbaa !5
  %443 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %206, ptr noundef nonnull @.str.22) #14
  %444 = icmp eq i32 %443, -1
  br i1 %444, label %445, label %469

445:                                              ; preds = %440
  %446 = tail call ptr @__errno_location() #15
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = call i32 @s2n_print_stacktrace(ptr noundef %448) #14
  %450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %451 = trunc nuw i8 %450 to i1
  br i1 %451, label %452, label %456

452:                                              ; preds = %445
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @fileno(ptr noundef %453) #14
  %455 = call i32 @isatty(i32 noundef %454) #14
  %.not1419 = icmp eq i32 %455, 0
  br i1 %.not1419, label %456, label %457

456:                                              ; preds = %452, %445
  br label %457

457:                                              ; preds = %452, %456
  %.str.5.sink1576 = phi ptr [ @.str.5, %456 ], [ @.str.2, %452 ]
  store i32 %447, ptr %446, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @s2n_strerror(i32 noundef %461, ptr noundef nonnull @.str.4) #14
  %463 = load i32, ptr %460, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror_debug(i32 noundef %463, ptr noundef nonnull @.str.4) #14
  %465 = load i32, ptr %446, align 4, !tbaa !5
  %466 = call ptr @strerror(i32 noundef %465) #14
  %467 = load i32, ptr %446, align 4, !tbaa !5
  %468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef nonnull %.str.5.sink1576, i32 noundef %459, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %462, ptr noundef %464, ptr noundef %466, i32 noundef %467) #16
  call void @exit(i32 noundef 1) #17
  unreachable

469:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %6) #14
  %470 = load i16, ptr @__const.main.invalid_wire_ciphers, align 1
  store i16 %470, ptr %6, align 2
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = add nsw i32 %471, 1
  store i32 %472, ptr @test_count, align 4, !tbaa !5
  %473 = call i32 @s2n_set_cipher_as_client(ptr noundef nonnull %206, ptr noundef nonnull %6) #14
  %474 = icmp eq i32 %473, -1
  br i1 %474, label %499, label %475

475:                                              ; preds = %469
  %476 = tail call ptr @__errno_location() #15
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %479 = call i32 @s2n_print_stacktrace(ptr noundef %478) #14
  %480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %481 = trunc nuw i8 %480 to i1
  br i1 %481, label %482, label %486

482:                                              ; preds = %475
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = call i32 @fileno(ptr noundef %483) #14
  %485 = call i32 @isatty(i32 noundef %484) #14
  %.not = icmp eq i32 %485, 0
  br i1 %.not, label %486, label %487

486:                                              ; preds = %482, %475
  br label %487

487:                                              ; preds = %482, %486
  %.str.5.sink1587 = phi ptr [ @.str.5, %486 ], [ @.str.2, %482 ]
  store i32 %477, ptr %476, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror(i32 noundef %491, ptr noundef nonnull @.str.4) #14
  %493 = load i32, ptr %490, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror_debug(i32 noundef %493, ptr noundef nonnull @.str.4) #14
  %495 = load i32, ptr %476, align 4, !tbaa !5
  %496 = call ptr @strerror(i32 noundef %495) #14
  %497 = load i32, ptr %476, align 4, !tbaa !5
  %498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %488, ptr noundef nonnull %.str.5.sink1587, i32 noundef %489, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %492, ptr noundef %494, ptr noundef %496, i32 noundef %497) #16
  call void @exit(i32 noundef 1) #17
  unreachable

499:                                              ; preds = %469
  %500 = load i32, ptr @test_count, align 4, !tbaa !5
  %501 = add nsw i32 %500, 1
  store i32 %501, ptr @test_count, align 4, !tbaa !5
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = icmp eq i32 %503, 335544334
  br i1 %504, label %528, label %505

505:                                              ; preds = %499
  %506 = tail call ptr @__errno_location() #15
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = call i32 @s2n_print_stacktrace(ptr noundef %508) #14
  %510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %511 = trunc nuw i8 %510 to i1
  br i1 %511, label %512, label %516

512:                                              ; preds = %505
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @fileno(ptr noundef %513) #14
  %515 = call i32 @isatty(i32 noundef %514) #14
  %.not1096 = icmp eq i32 %515, 0
  br i1 %.not1096, label %516, label %517

516:                                              ; preds = %512, %505
  br label %517

517:                                              ; preds = %512, %516
  %.str.5.sink1598 = phi ptr [ @.str.5, %516 ], [ @.str.2, %512 ]
  store i32 %507, ptr %506, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = load i32, ptr %502, align 4, !tbaa !5
  %521 = call ptr @s2n_strerror(i32 noundef %520, ptr noundef nonnull @.str.4) #14
  %522 = load i32, ptr %502, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror_debug(i32 noundef %522, ptr noundef nonnull @.str.4) #14
  %524 = load i32, ptr %506, align 4, !tbaa !5
  %525 = call ptr @strerror(i32 noundef %524) #14
  %526 = load i32, ptr %506, align 4, !tbaa !5
  %527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef nonnull %.str.5.sink1598, i32 noundef %519, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %521, ptr noundef %523, ptr noundef %525, i32 noundef %526) #16
  call void @exit(i32 noundef 1) #17
  unreachable

528:                                              ; preds = %499
  %529 = add nsw i32 %500, 2
  store i32 %529, ptr @test_count, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror_debug(i32 noundef 335544334, ptr noundef nonnull @.str.4) #14
  %531 = icmp eq ptr %530, null
  br i1 %531, label %532, label %555

532:                                              ; preds = %528
  %533 = tail call ptr @__errno_location() #15
  %534 = load i32, ptr %533, align 4, !tbaa !5
  %535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %536 = call i32 @s2n_print_stacktrace(ptr noundef %535) #14
  %537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %538 = trunc nuw i8 %537 to i1
  br i1 %538, label %539, label %543

539:                                              ; preds = %532
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @fileno(ptr noundef %540) #14
  %542 = call i32 @isatty(i32 noundef %541) #14
  %.not1418 = icmp eq i32 %542, 0
  br i1 %.not1418, label %543, label %544

543:                                              ; preds = %539, %532
  br label %544

544:                                              ; preds = %539, %543
  %.str.5.sink1607 = phi ptr [ @.str.5, %543 ], [ @.str.2, %539 ]
  store i32 %534, ptr %533, align 4, !tbaa !5
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = load i32, ptr @test_count, align 4, !tbaa !5
  %547 = load i32, ptr %502, align 4, !tbaa !5
  %548 = call ptr @s2n_strerror(i32 noundef %547, ptr noundef nonnull @.str.4) #14
  %549 = load i32, ptr %502, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror_debug(i32 noundef %549, ptr noundef nonnull @.str.4) #14
  %551 = load i32, ptr %533, align 4, !tbaa !5
  %552 = call ptr @strerror(i32 noundef %551) #14
  %553 = load i32, ptr %533, align 4, !tbaa !5
  %554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %545, ptr noundef nonnull %.str.5.sink1607, i32 noundef %546, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %548, ptr noundef %550, ptr noundef %552, i32 noundef %553) #16
  call void @exit(i32 noundef 1) #17
  unreachable

555:                                              ; preds = %528
  store i32 0, ptr %502, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  %556 = tail call ptr @__errno_location() #15
  store i32 0, ptr %556, align 4, !tbaa !5
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr @test_count, align 4, !tbaa !5
  %559 = call i32 @s2n_connection_wipe(ptr noundef nonnull %206) #14
  %560 = icmp eq i32 %559, -1
  br i1 %560, label %561, label %583

561:                                              ; preds = %555
  %562 = load i32, ptr %556, align 4, !tbaa !5
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = call i32 @s2n_print_stacktrace(ptr noundef %563) #14
  %565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %566 = trunc nuw i8 %565 to i1
  br i1 %566, label %567, label %571

567:                                              ; preds = %561
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = call i32 @fileno(ptr noundef %568) #14
  %570 = call i32 @isatty(i32 noundef %569) #14
  %.not1417 = icmp eq i32 %570, 0
  br i1 %.not1417, label %571, label %572

571:                                              ; preds = %567, %561
  br label %572

572:                                              ; preds = %567, %571
  %.str.5.sink1616 = phi ptr [ @.str.5, %571 ], [ @.str.2, %567 ]
  store i32 %562, ptr %556, align 4, !tbaa !5
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = load i32, ptr @test_count, align 4, !tbaa !5
  %575 = load i32, ptr %502, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror(i32 noundef %575, ptr noundef nonnull @.str.4) #14
  %577 = load i32, ptr %502, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror_debug(i32 noundef %577, ptr noundef nonnull @.str.4) #14
  %579 = load i32, ptr %556, align 4, !tbaa !5
  %580 = call ptr @strerror(i32 noundef %579) #14
  %581 = load i32, ptr %556, align 4, !tbaa !5
  %582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %573, ptr noundef nonnull %.str.5.sink1616, i32 noundef %574, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %576, ptr noundef %578, ptr noundef %580, i32 noundef %581) #16
  call void @exit(i32 noundef 1) #17
  unreachable

583:                                              ; preds = %555
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %6) #14
  %584 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %206, ptr noundef nonnull @.str.18) #14
  %585 = load i32, ptr @test_count, align 4, !tbaa !5
  %586 = add nsw i32 %585, 1
  store i32 %586, ptr @test_count, align 4, !tbaa !5
  %587 = call i32 @s2n_conn_set_chosen_psk(ptr noundef nonnull %206)
  %588 = call zeroext i1 @s2n_result_is_ok(i32 %587)
  br i1 %588, label %611, label %589

589:                                              ; preds = %583
  %590 = load i32, ptr %556, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = call i32 @s2n_print_stacktrace(ptr noundef %591) #14
  %593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %594 = trunc nuw i8 %593 to i1
  br i1 %594, label %595, label %599

595:                                              ; preds = %589
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = call i32 @fileno(ptr noundef %596) #14
  %598 = call i32 @isatty(i32 noundef %597) #14
  %.not1097 = icmp eq i32 %598, 0
  br i1 %.not1097, label %599, label %600

599:                                              ; preds = %595, %589
  br label %600

600:                                              ; preds = %595, %599
  %.str.5.sink1625 = phi ptr [ @.str.5, %599 ], [ @.str.2, %595 ]
  store i32 %590, ptr %556, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = load i32, ptr %502, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror(i32 noundef %603, ptr noundef nonnull @.str.4) #14
  %605 = load i32, ptr %502, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror_debug(i32 noundef %605, ptr noundef nonnull @.str.4) #14
  %607 = load i32, ptr %556, align 4, !tbaa !5
  %608 = call ptr @strerror(i32 noundef %607) #14
  %609 = load i32, ptr %556, align 4, !tbaa !5
  %610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef nonnull %.str.5.sink1625, i32 noundef %602, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %604, ptr noundef %606, ptr noundef %608, i32 noundef %609) #16
  call void @exit(i32 noundef 1) #17
  unreachable

611:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %7) #14
  %612 = load i16, ptr @__const.main.valid_tls13_wire_ciphers, align 1
  store i16 %612, ptr %7, align 2
  %613 = getelementptr inbounds i8, ptr %206, i64 1736
  %614 = load ptr, ptr %613, align 8, !tbaa !44
  %615 = getelementptr inbounds i8, ptr %614, i64 56
  store i32 2, ptr %615, align 8, !tbaa !45
  %616 = load i32, ptr @test_count, align 4, !tbaa !5
  %617 = add nsw i32 %616, 1
  store i32 %617, ptr @test_count, align 4, !tbaa !5
  %618 = call i32 @s2n_set_cipher_as_client(ptr noundef nonnull %206, ptr noundef nonnull %7) #14
  %619 = icmp eq i32 %618, -1
  br i1 %619, label %642, label %620

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

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

630:                                              ; preds = %626, %620
  br label %631

631:                                              ; preds = %626, %630
  %.str.5.sink1634 = phi ptr [ @.str.5, %630 ], [ @.str.2, %626 ]
  store i32 %621, ptr %556, align 4, !tbaa !5
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = load i32, ptr %502, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror(i32 noundef %634, ptr noundef nonnull @.str.4) #14
  %636 = load i32, ptr %502, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror_debug(i32 noundef %636, ptr noundef nonnull @.str.4) #14
  %638 = load i32, ptr %556, align 4, !tbaa !5
  %639 = call ptr @strerror(i32 noundef %638) #14
  %640 = load i32, ptr %556, align 4, !tbaa !5
  %641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %632, ptr noundef nonnull %.str.5.sink1634, i32 noundef %633, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %635, ptr noundef %637, ptr noundef %639, i32 noundef %640) #16
  call void @exit(i32 noundef 1) #17
  unreachable

642:                                              ; preds = %611
  %643 = load i32, ptr @test_count, align 4, !tbaa !5
  %644 = add nsw i32 %643, 1
  store i32 %644, ptr @test_count, align 4, !tbaa !5
  %645 = load i32, ptr %502, align 4, !tbaa !5
  %646 = icmp eq i32 %645, 335544334
  br i1 %646, label %669, label %647

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

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

657:                                              ; preds = %653, %647
  br label %658

658:                                              ; preds = %653, %657
  %.str.5.sink1643 = phi ptr [ @.str.5, %657 ], [ @.str.2, %653 ]
  store i32 %648, ptr %556, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = load i32, ptr @test_count, align 4, !tbaa !5
  %661 = load i32, ptr %502, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror(i32 noundef %661, ptr noundef nonnull @.str.4) #14
  %663 = load i32, ptr %502, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror_debug(i32 noundef %663, ptr noundef nonnull @.str.4) #14
  %665 = load i32, ptr %556, align 4, !tbaa !5
  %666 = call ptr @strerror(i32 noundef %665) #14
  %667 = load i32, ptr %556, align 4, !tbaa !5
  %668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %659, ptr noundef nonnull %.str.5.sink1643, i32 noundef %660, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %662, ptr noundef %664, ptr noundef %666, i32 noundef %667) #16
  call void @exit(i32 noundef 1) #17
  unreachable

669:                                              ; preds = %642
  %670 = add nsw i32 %643, 2
  store i32 %670, ptr @test_count, align 4, !tbaa !5
  %671 = call ptr @s2n_strerror_debug(i32 noundef 335544334, ptr noundef nonnull @.str.4) #14
  %672 = icmp eq ptr %671, null
  br i1 %672, label %673, label %695

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

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

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

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

695:                                              ; preds = %669
  store i32 0, ptr %502, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  store i32 0, ptr %556, align 4, !tbaa !5
  %696 = load i32, ptr @test_count, align 4, !tbaa !5
  %697 = add nsw i32 %696, 1
  store i32 %697, ptr @test_count, align 4, !tbaa !5
  %698 = getelementptr inbounds i8, ptr %206, i64 232
  %699 = load ptr, ptr %698, align 8, !tbaa !48
  %700 = load ptr, ptr %699, align 8, !tbaa !49
  %701 = icmp eq ptr %700, @s2n_null_cipher_suite
  br i1 %701, label %724, label %702

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

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

712:                                              ; preds = %708, %702
  br label %713

713:                                              ; preds = %708, %712
  %.str.5.sink1661 = phi ptr [ @.str.5, %712 ], [ @.str.2, %708 ]
  store i32 %703, ptr %556, align 4, !tbaa !5
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = load i32, ptr %502, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror(i32 noundef %716, ptr noundef nonnull @.str.4) #14
  %718 = load i32, ptr %502, align 4, !tbaa !5
  %719 = call ptr @s2n_strerror_debug(i32 noundef %718, ptr noundef nonnull @.str.4) #14
  %720 = load i32, ptr %556, align 4, !tbaa !5
  %721 = call ptr @strerror(i32 noundef %720) #14
  %722 = load i32, ptr %556, align 4, !tbaa !5
  %723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %714, ptr noundef nonnull %.str.5.sink1661, i32 noundef %715, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %717, ptr noundef %719, ptr noundef %721, i32 noundef %722) #16
  call void @exit(i32 noundef 1) #17
  unreachable

724:                                              ; preds = %695
  %725 = add nsw i32 %696, 2
  store i32 %725, ptr @test_count, align 4, !tbaa !5
  %726 = call i32 @s2n_connection_wipe(ptr noundef nonnull %206) #14
  %727 = icmp eq i32 %726, -1
  br i1 %727, label %728, label %750

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

734:                                              ; preds = %728
  %735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %736 = call i32 @fileno(ptr noundef %735) #14
  %737 = call i32 @isatty(i32 noundef %736) #14
  %.not1415 = icmp eq i32 %737, 0
  br i1 %.not1415, label %738, label %739

738:                                              ; preds = %734, %728
  br label %739

739:                                              ; preds = %734, %738
  %.str.5.sink1670 = phi ptr [ @.str.5, %738 ], [ @.str.2, %734 ]
  store i32 %729, ptr %556, align 4, !tbaa !5
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = load i32, ptr %502, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror(i32 noundef %742, ptr noundef nonnull @.str.4) #14
  %744 = load i32, ptr %502, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror_debug(i32 noundef %744, ptr noundef nonnull @.str.4) #14
  %746 = load i32, ptr %556, align 4, !tbaa !5
  %747 = call ptr @strerror(i32 noundef %746) #14
  %748 = load i32, ptr %556, align 4, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %740, ptr noundef nonnull %.str.5.sink1670, i32 noundef %741, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %743, ptr noundef %745, ptr noundef %747, i32 noundef %748) #16
  call void @exit(i32 noundef 1) #17
  unreachable

750:                                              ; preds = %724
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %7) #14
  %751 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %206, ptr noundef nonnull @.str.18) #14
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr @test_count, align 4, !tbaa !5
  %754 = call i32 @s2n_conn_set_chosen_psk(ptr noundef nonnull %206)
  %755 = call zeroext i1 @s2n_result_is_ok(i32 %754)
  br i1 %755, label %778, label %756

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

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

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

767:                                              ; preds = %762, %766
  %.str.5.sink1679 = phi ptr [ @.str.5, %766 ], [ @.str.2, %762 ]
  store i32 %757, ptr %556, align 4, !tbaa !5
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = load i32, ptr %502, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror(i32 noundef %770, ptr noundef nonnull @.str.4) #14
  %772 = load i32, ptr %502, align 4, !tbaa !5
  %773 = call ptr @s2n_strerror_debug(i32 noundef %772, ptr noundef nonnull @.str.4) #14
  %774 = load i32, ptr %556, align 4, !tbaa !5
  %775 = call ptr @strerror(i32 noundef %774) #14
  %776 = load i32, ptr %556, align 4, !tbaa !5
  %777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef nonnull %.str.5.sink1679, i32 noundef %769, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %771, ptr noundef %773, ptr noundef %775, i32 noundef %776) #16
  call void @exit(i32 noundef 1) #17
  unreachable

778:                                              ; preds = %750
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %8) #14
  %779 = load i16, ptr @__const.main.valid_tls13_wire_ciphers.30, align 1
  store i16 %779, ptr %8, align 2
  %780 = load ptr, ptr %613, align 8, !tbaa !44
  %781 = getelementptr inbounds i8, ptr %780, i64 56
  store i32 4, ptr %781, align 8, !tbaa !45
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr @test_count, align 4, !tbaa !5
  %784 = call i32 @s2n_set_cipher_as_client(ptr noundef nonnull %206, ptr noundef nonnull %8) #14
  %785 = icmp eq i32 %784, -1
  br i1 %785, label %786, label %808

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

792:                                              ; preds = %786
  %793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %794 = call i32 @fileno(ptr noundef %793) #14
  %795 = call i32 @isatty(i32 noundef %794) #14
  %.not1414 = icmp eq i32 %795, 0
  br i1 %.not1414, label %796, label %797

796:                                              ; preds = %792, %786
  br label %797

797:                                              ; preds = %792, %796
  %.str.5.sink1688 = phi ptr [ @.str.5, %796 ], [ @.str.2, %792 ]
  store i32 %787, ptr %556, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = load i32, ptr %502, align 4, !tbaa !5
  %801 = call ptr @s2n_strerror(i32 noundef %800, ptr noundef nonnull @.str.4) #14
  %802 = load i32, ptr %502, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror_debug(i32 noundef %802, ptr noundef nonnull @.str.4) #14
  %804 = load i32, ptr %556, align 4, !tbaa !5
  %805 = call ptr @strerror(i32 noundef %804) #14
  %806 = load i32, ptr %556, align 4, !tbaa !5
  %807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %798, ptr noundef nonnull %.str.5.sink1688, i32 noundef %799, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %801, ptr noundef %803, ptr noundef %805, i32 noundef %806) #16
  call void @exit(i32 noundef 1) #17
  unreachable

808:                                              ; preds = %778
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr @test_count, align 4, !tbaa !5
  %811 = load ptr, ptr %698, align 8, !tbaa !48
  %812 = load ptr, ptr %811, align 8, !tbaa !49
  %813 = icmp eq ptr %812, @s2n_tls13_aes_128_gcm_sha256
  br i1 %813, label %836, label %814

814:                                              ; preds = %808
  %815 = load i32, ptr %556, align 4, !tbaa !5
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = call i32 @s2n_print_stacktrace(ptr noundef %816) #14
  %818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %819 = trunc nuw i8 %818 to i1
  br i1 %819, label %820, label %824

820:                                              ; preds = %814
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @fileno(ptr noundef %821) #14
  %823 = call i32 @isatty(i32 noundef %822) #14
  %.not1102 = icmp eq i32 %823, 0
  br i1 %.not1102, label %824, label %825

824:                                              ; preds = %820, %814
  br label %825

825:                                              ; preds = %820, %824
  %.str.5.sink1697 = phi ptr [ @.str.5, %824 ], [ @.str.2, %820 ]
  store i32 %815, ptr %556, align 4, !tbaa !5
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = load i32, ptr @test_count, align 4, !tbaa !5
  %828 = load i32, ptr %502, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror(i32 noundef %828, ptr noundef nonnull @.str.4) #14
  %830 = load i32, ptr %502, align 4, !tbaa !5
  %831 = call ptr @s2n_strerror_debug(i32 noundef %830, ptr noundef nonnull @.str.4) #14
  %832 = load i32, ptr %556, align 4, !tbaa !5
  %833 = call ptr @strerror(i32 noundef %832) #14
  %834 = load i32, ptr %556, align 4, !tbaa !5
  %835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %826, ptr noundef nonnull %.str.5.sink1697, i32 noundef %827, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %829, ptr noundef %831, ptr noundef %833, i32 noundef %834) #16
  call void @exit(i32 noundef 1) #17
  unreachable

836:                                              ; preds = %808
  %837 = add nsw i32 %809, 2
  store i32 %837, ptr @test_count, align 4, !tbaa !5
  %838 = call i32 @s2n_connection_wipe(ptr noundef nonnull %206) #14
  %839 = icmp eq i32 %838, -1
  br i1 %839, label %840, label %862

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

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

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

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

862:                                              ; preds = %836
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %8) #14
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr @test_count, align 4, !tbaa !5
  %865 = call i32 @s2n_connection_free(ptr noundef nonnull %206) #14
  %866 = icmp eq i32 %865, -1
  br i1 %866, label %867, label %889

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

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

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

878:                                              ; preds = %873, %877
  %.str.5.sink1715 = phi ptr [ @.str.5, %877 ], [ @.str.2, %873 ]
  store i32 %868, ptr %556, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = load i32, ptr %502, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror(i32 noundef %881, ptr noundef nonnull @.str.4) #14
  %883 = load i32, ptr %502, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror_debug(i32 noundef %883, ptr noundef nonnull @.str.4) #14
  %885 = load i32, ptr %556, align 4, !tbaa !5
  %886 = call ptr @strerror(i32 noundef %885) #14
  %887 = load i32, ptr %556, align 4, !tbaa !5
  %888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %879, ptr noundef nonnull %.str.5.sink1715, i32 noundef %880, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %882, ptr noundef %884, ptr noundef %886, i32 noundef %887) #16
  call void @exit(i32 noundef 1) #17
  unreachable

889:                                              ; preds = %862
  %890 = load i32, ptr @test_count, align 4, !tbaa !5
  %891 = add nsw i32 %890, 1
  store i32 %891, ptr @test_count, align 4, !tbaa !5
  %892 = load ptr, ptr %4, align 8, !tbaa !9
  %893 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %892) #14
  %894 = icmp eq i32 %893, -1
  br i1 %894, label %895, label %917

895:                                              ; preds = %889
  %896 = load i32, ptr %556, align 4, !tbaa !5
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = call i32 @s2n_print_stacktrace(ptr noundef %897) #14
  %899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %900 = trunc nuw i8 %899 to i1
  br i1 %900, label %901, label %905

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

905:                                              ; preds = %901, %895
  br label %906

906:                                              ; preds = %901, %905
  %.str.5.sink1724 = phi ptr [ @.str.5, %905 ], [ @.str.2, %901 ]
  store i32 %896, ptr %556, align 4, !tbaa !5
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = load i32, ptr @test_count, align 4, !tbaa !5
  %909 = load i32, ptr %502, align 4, !tbaa !5
  %910 = call ptr @s2n_strerror(i32 noundef %909, ptr noundef nonnull @.str.4) #14
  %911 = load i32, ptr %502, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror_debug(i32 noundef %911, ptr noundef nonnull @.str.4) #14
  %913 = load i32, ptr %556, align 4, !tbaa !5
  %914 = call ptr @strerror(i32 noundef %913) #14
  %915 = load i32, ptr %556, align 4, !tbaa !5
  %916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %907, ptr noundef nonnull %.str.5.sink1724, i32 noundef %908, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %910, ptr noundef %912, ptr noundef %914, i32 noundef %915) #16
  call void @exit(i32 noundef 1) #17
  unreachable

917:                                              ; preds = %889
  %918 = load i32, ptr @test_count, align 4, !tbaa !5
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr @test_count, align 4, !tbaa !5
  %920 = call i32 @s2n_config_free(ptr noundef nonnull %264) #14
  %921 = icmp eq i32 %920, -1
  br i1 %921, label %922, label %944

922:                                              ; preds = %917
  %923 = load i32, ptr %556, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = call i32 @s2n_print_stacktrace(ptr noundef %924) #14
  %926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %927 = trunc nuw i8 %926 to i1
  br i1 %927, label %928, label %932

928:                                              ; preds = %922
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = call i32 @fileno(ptr noundef %929) #14
  %931 = call i32 @isatty(i32 noundef %930) #14
  %.not1410 = icmp eq i32 %931, 0
  br i1 %.not1410, label %932, label %933

932:                                              ; preds = %928, %922
  br label %933

933:                                              ; preds = %928, %932
  %.str.5.sink1733 = phi ptr [ @.str.5, %932 ], [ @.str.2, %928 ]
  store i32 %923, ptr %556, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = load i32, ptr @test_count, align 4, !tbaa !5
  %936 = load i32, ptr %502, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror(i32 noundef %936, ptr noundef nonnull @.str.4) #14
  %938 = load i32, ptr %502, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror_debug(i32 noundef %938, ptr noundef nonnull @.str.4) #14
  %940 = load i32, ptr %556, align 4, !tbaa !5
  %941 = call ptr @strerror(i32 noundef %940) #14
  %942 = load i32, ptr %556, align 4, !tbaa !5
  %943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %934, ptr noundef nonnull %.str.5.sink1733, i32 noundef %935, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %937, ptr noundef %939, ptr noundef %941, i32 noundef %942) #16
  call void @exit(i32 noundef 1) #17
  unreachable

944:                                              ; preds = %917
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  store ptr null, ptr %10, align 8, !tbaa !9
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = add nsw i32 %945, 1
  store i32 %946, ptr @test_count, align 4, !tbaa !5
  %947 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #18
  %948 = icmp eq ptr %947, null
  br i1 %948, label %949, label %971

949:                                              ; preds = %944
  %950 = load i32, ptr %556, align 4, !tbaa !5
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = call i32 @s2n_print_stacktrace(ptr noundef %951) #14
  %953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %954 = trunc nuw i8 %953 to i1
  br i1 %954, label %955, label %959

955:                                              ; preds = %949
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = call i32 @fileno(ptr noundef %956) #14
  %958 = call i32 @isatty(i32 noundef %957) #14
  %.not1409 = icmp eq i32 %958, 0
  br i1 %.not1409, label %959, label %960

959:                                              ; preds = %955, %949
  br label %960

960:                                              ; preds = %955, %959
  %.str.5.sink1742 = phi ptr [ @.str.5, %959 ], [ @.str.2, %955 ]
  store i32 %950, ptr %556, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = load i32, ptr %502, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror(i32 noundef %963, ptr noundef nonnull @.str.4) #14
  %965 = load i32, ptr %502, align 4, !tbaa !5
  %966 = call ptr @s2n_strerror_debug(i32 noundef %965, ptr noundef nonnull @.str.4) #14
  %967 = load i32, ptr %556, align 4, !tbaa !5
  %968 = call ptr @strerror(i32 noundef %967) #14
  %969 = load i32, ptr %556, align 4, !tbaa !5
  %970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef nonnull %.str.5.sink1742, i32 noundef %962, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %964, ptr noundef %966, ptr noundef %968, i32 noundef %969) #16
  call void @exit(i32 noundef 1) #17
  unreachable

971:                                              ; preds = %944
  %972 = add nsw i32 %945, 2
  store i32 %972, ptr @test_count, align 4, !tbaa !5
  %973 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #18
  %974 = icmp eq ptr %973, null
  br i1 %974, label %975, label %997

975:                                              ; preds = %971
  %976 = load i32, ptr %556, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = call i32 @s2n_print_stacktrace(ptr noundef %977) #14
  %979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %980 = trunc nuw i8 %979 to i1
  br i1 %980, label %981, label %985

981:                                              ; preds = %975
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = call i32 @fileno(ptr noundef %982) #14
  %984 = call i32 @isatty(i32 noundef %983) #14
  %.not1408 = icmp eq i32 %984, 0
  br i1 %.not1408, label %985, label %986

985:                                              ; preds = %981, %975
  br label %986

986:                                              ; preds = %981, %985
  %.str.5.sink1751 = phi ptr [ @.str.5, %985 ], [ @.str.2, %981 ]
  store i32 %976, ptr %556, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %989 = load i32, ptr %502, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror(i32 noundef %989, ptr noundef nonnull @.str.4) #14
  %991 = load i32, ptr %502, align 4, !tbaa !5
  %992 = call ptr @s2n_strerror_debug(i32 noundef %991, ptr noundef nonnull @.str.4) #14
  %993 = load i32, ptr %556, align 4, !tbaa !5
  %994 = call ptr @strerror(i32 noundef %993) #14
  %995 = load i32, ptr %556, align 4, !tbaa !5
  %996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %987, ptr noundef nonnull %.str.5.sink1751, i32 noundef %988, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %990, ptr noundef %992, ptr noundef %994, i32 noundef %995) #16
  call void @exit(i32 noundef 1) #17
  unreachable

997:                                              ; preds = %971
  %998 = add nsw i32 %945, 3
  store i32 %998, ptr @test_count, align 4, !tbaa !5
  %999 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #18
  %1000 = icmp eq ptr %999, null
  br i1 %1000, label %1001, label %1023

1001:                                             ; preds = %997
  %1002 = load i32, ptr %556, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = call i32 @s2n_print_stacktrace(ptr noundef %1003) #14
  %1005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1006 = trunc nuw i8 %1005 to i1
  br i1 %1006, label %1007, label %1011

1007:                                             ; preds = %1001
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @fileno(ptr noundef %1008) #14
  %1010 = call i32 @isatty(i32 noundef %1009) #14
  %.not1407 = icmp eq i32 %1010, 0
  br i1 %.not1407, label %1011, label %1012

1011:                                             ; preds = %1007, %1001
  br label %1012

1012:                                             ; preds = %1007, %1011
  %.str.5.sink1760 = phi ptr [ @.str.5, %1011 ], [ @.str.2, %1007 ]
  store i32 %1002, ptr %556, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = load i32, ptr %502, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror(i32 noundef %1015, ptr noundef nonnull @.str.4) #14
  %1017 = load i32, ptr %502, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror_debug(i32 noundef %1017, ptr noundef nonnull @.str.4) #14
  %1019 = load i32, ptr %556, align 4, !tbaa !5
  %1020 = call ptr @strerror(i32 noundef %1019) #14
  %1021 = load i32, ptr %556, align 4, !tbaa !5
  %1022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1013, ptr noundef nonnull %.str.5.sink1760, i32 noundef %1014, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1016, ptr noundef %1018, ptr noundef %1020, i32 noundef %1021) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1023:                                             ; preds = %997
  %1024 = add nsw i32 %945, 4
  store i32 %1024, ptr @test_count, align 4, !tbaa !5
  %1025 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #18
  %1026 = icmp eq ptr %1025, null
  br i1 %1026, label %1027, label %1049

1027:                                             ; preds = %1023
  %1028 = load i32, ptr %556, align 4, !tbaa !5
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = call i32 @s2n_print_stacktrace(ptr noundef %1029) #14
  %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) #14
  %1036 = call i32 @isatty(i32 noundef %1035) #14
  %.not1406 = icmp eq i32 %1036, 0
  br i1 %.not1406, label %1037, label %1038

1037:                                             ; preds = %1033, %1027
  br label %1038

1038:                                             ; preds = %1033, %1037
  %.str.5.sink1769 = phi ptr [ @.str.5, %1037 ], [ @.str.2, %1033 ]
  store i32 %1028, ptr %556, 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 %502, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror(i32 noundef %1041, ptr noundef nonnull @.str.4) #14
  %1043 = load i32, ptr %502, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror_debug(i32 noundef %1043, ptr noundef nonnull @.str.4) #14
  %1045 = load i32, ptr %556, align 4, !tbaa !5
  %1046 = call ptr @strerror(i32 noundef %1045) #14
  %1047 = load i32, ptr %556, align 4, !tbaa !5
  %1048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1039, ptr noundef nonnull %.str.5.sink1769, i32 noundef %1040, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %1042, ptr noundef %1044, ptr noundef %1046, i32 noundef %1047) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1049:                                             ; preds = %1023
  %1050 = add nsw i32 %945, 5
  store i32 %1050, ptr @test_count, align 4, !tbaa !5
  %1051 = call ptr @s2n_connection_new(i32 noundef 0) #14
  %1052 = icmp eq ptr %1051, null
  br i1 %1052, label %1053, label %1075

1053:                                             ; preds = %1049
  %1054 = load i32, ptr %556, align 4, !tbaa !5
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = call i32 @s2n_print_stacktrace(ptr noundef %1055) #14
  %1057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1058 = trunc nuw i8 %1057 to i1
  br i1 %1058, label %1059, label %1063

1059:                                             ; preds = %1053
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = call i32 @fileno(ptr noundef %1060) #14
  %1062 = call i32 @isatty(i32 noundef %1061) #14
  %.not1405 = icmp eq i32 %1062, 0
  br i1 %.not1405, label %1063, label %1064

1063:                                             ; preds = %1059, %1053
  br label %1064

1064:                                             ; preds = %1059, %1063
  %.str.5.sink1778 = phi ptr [ @.str.5, %1063 ], [ @.str.2, %1059 ]
  store i32 %1054, ptr %556, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = load i32, ptr @test_count, align 4, !tbaa !5
  %1067 = load i32, ptr %502, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror(i32 noundef %1067, ptr noundef nonnull @.str.4) #14
  %1069 = load i32, ptr %502, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror_debug(i32 noundef %1069, ptr noundef nonnull @.str.4) #14
  %1071 = load i32, ptr %556, align 4, !tbaa !5
  %1072 = call ptr @strerror(i32 noundef %1071) #14
  %1073 = load i32, ptr %556, align 4, !tbaa !5
  %1074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1065, ptr noundef nonnull %.str.5.sink1778, i32 noundef %1066, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 164, ptr noundef %1068, ptr noundef %1070, ptr noundef %1072, i32 noundef %1073) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1075:                                             ; preds = %1049
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = add nsw i32 %1076, 1
  store i32 %1077, ptr @test_count, align 4, !tbaa !5
  %1078 = call ptr @s2n_cert_chain_and_key_new() #14
  store ptr %1078, ptr %9, align 8, !tbaa !9
  %1079 = icmp eq ptr %1078, null
  br i1 %1079, label %1080, label %1102

1080:                                             ; preds = %1075
  %1081 = load i32, ptr %556, align 4, !tbaa !5
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = call i32 @s2n_print_stacktrace(ptr noundef %1082) #14
  %1084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1085 = trunc nuw i8 %1084 to i1
  br i1 %1085, label %1086, label %1090

1086:                                             ; preds = %1080
  %1087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1088 = call i32 @fileno(ptr noundef %1087) #14
  %1089 = call i32 @isatty(i32 noundef %1088) #14
  %.not1404 = icmp eq i32 %1089, 0
  br i1 %.not1404, label %1090, label %1091

1090:                                             ; preds = %1086, %1080
  br label %1091

1091:                                             ; preds = %1086, %1090
  %.str.5.sink1787 = phi ptr [ @.str.5, %1090 ], [ @.str.2, %1086 ]
  store i32 %1081, ptr %556, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = load i32, ptr @test_count, align 4, !tbaa !5
  %1094 = load i32, ptr %502, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror(i32 noundef %1094, ptr noundef nonnull @.str.4) #14
  %1096 = load i32, ptr %502, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror_debug(i32 noundef %1096, ptr noundef nonnull @.str.4) #14
  %1098 = load i32, ptr %556, align 4, !tbaa !5
  %1099 = call ptr @strerror(i32 noundef %1098) #14
  %1100 = load i32, ptr %556, align 4, !tbaa !5
  %1101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1092, ptr noundef nonnull %.str.5.sink1787, i32 noundef %1093, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %1095, ptr noundef %1097, ptr noundef %1099, i32 noundef %1100) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1102:                                             ; preds = %1075
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = add nsw i32 %1103, 1
  store i32 %1104, ptr @test_count, align 4, !tbaa !5
  %1105 = call ptr @s2n_cert_chain_and_key_new() #14
  store ptr %1105, ptr %10, align 8, !tbaa !9
  %1106 = icmp eq ptr %1105, null
  br i1 %1106, label %1107, label %1129

1107:                                             ; preds = %1102
  %1108 = load i32, ptr %556, align 4, !tbaa !5
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = call i32 @s2n_print_stacktrace(ptr noundef %1109) #14
  %1111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1112 = trunc nuw i8 %1111 to i1
  br i1 %1112, label %1113, label %1117

1113:                                             ; preds = %1107
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = call i32 @fileno(ptr noundef %1114) #14
  %1116 = call i32 @isatty(i32 noundef %1115) #14
  %.not1403 = icmp eq i32 %1116, 0
  br i1 %.not1403, label %1117, label %1118

1117:                                             ; preds = %1113, %1107
  br label %1118

1118:                                             ; preds = %1113, %1117
  %.str.5.sink1796 = phi ptr [ @.str.5, %1117 ], [ @.str.2, %1113 ]
  store i32 %1108, ptr %556, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = load i32, ptr @test_count, align 4, !tbaa !5
  %1121 = load i32, ptr %502, align 4, !tbaa !5
  %1122 = call ptr @s2n_strerror(i32 noundef %1121, ptr noundef nonnull @.str.4) #14
  %1123 = load i32, ptr %502, align 4, !tbaa !5
  %1124 = call ptr @s2n_strerror_debug(i32 noundef %1123, ptr noundef nonnull @.str.4) #14
  %1125 = load i32, ptr %556, align 4, !tbaa !5
  %1126 = call ptr @strerror(i32 noundef %1125) #14
  %1127 = load i32, ptr %556, align 4, !tbaa !5
  %1128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1119, ptr noundef nonnull %.str.5.sink1796, i32 noundef %1120, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1122, ptr noundef %1124, ptr noundef %1126, i32 noundef %1127) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1129:                                             ; preds = %1102
  %1130 = load i32, ptr @test_count, align 4, !tbaa !5
  %1131 = add nsw i32 %1130, 1
  store i32 %1131, ptr @test_count, align 4, !tbaa !5
  %1132 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.12, ptr noundef nonnull %947, i64 noundef 12000) #14
  %1133 = icmp eq i32 %1132, -1
  br i1 %1133, label %1134, label %1156

1134:                                             ; preds = %1129
  %1135 = load i32, ptr %556, align 4, !tbaa !5
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1137 = call i32 @s2n_print_stacktrace(ptr noundef %1136) #14
  %1138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1139 = trunc nuw i8 %1138 to i1
  br i1 %1139, label %1140, label %1144

1140:                                             ; preds = %1134
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = call i32 @fileno(ptr noundef %1141) #14
  %1143 = call i32 @isatty(i32 noundef %1142) #14
  %.not1402 = icmp eq i32 %1143, 0
  br i1 %.not1402, label %1144, label %1145

1144:                                             ; preds = %1140, %1134
  br label %1145

1145:                                             ; preds = %1140, %1144
  %.str.5.sink1805 = phi ptr [ @.str.5, %1144 ], [ @.str.2, %1140 ]
  store i32 %1135, ptr %556, align 4, !tbaa !5
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = load i32, ptr @test_count, align 4, !tbaa !5
  %1148 = load i32, ptr %502, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror(i32 noundef %1148, ptr noundef nonnull @.str.4) #14
  %1150 = load i32, ptr %502, align 4, !tbaa !5
  %1151 = call ptr @s2n_strerror_debug(i32 noundef %1150, ptr noundef nonnull @.str.4) #14
  %1152 = load i32, ptr %556, align 4, !tbaa !5
  %1153 = call ptr @strerror(i32 noundef %1152) #14
  %1154 = load i32, ptr %556, align 4, !tbaa !5
  %1155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1146, ptr noundef nonnull %.str.5.sink1805, i32 noundef %1147, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1149, ptr noundef %1151, ptr noundef %1153, i32 noundef %1154) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1156:                                             ; preds = %1129
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = add nsw i32 %1157, 1
  store i32 %1158, ptr @test_count, align 4, !tbaa !5
  %1159 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.13, ptr noundef nonnull %973, i64 noundef 12000) #14
  %1160 = icmp eq i32 %1159, -1
  br i1 %1160, label %1161, label %1183

1161:                                             ; preds = %1156
  %1162 = load i32, ptr %556, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = call i32 @s2n_print_stacktrace(ptr noundef %1163) #14
  %1165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1166 = trunc nuw i8 %1165 to i1
  br i1 %1166, label %1167, label %1171

1167:                                             ; preds = %1161
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = call i32 @fileno(ptr noundef %1168) #14
  %1170 = call i32 @isatty(i32 noundef %1169) #14
  %.not1401 = icmp eq i32 %1170, 0
  br i1 %.not1401, label %1171, label %1172

1171:                                             ; preds = %1167, %1161
  br label %1172

1172:                                             ; preds = %1167, %1171
  %.str.5.sink1814 = phi ptr [ @.str.5, %1171 ], [ @.str.2, %1167 ]
  store i32 %1162, ptr %556, align 4, !tbaa !5
  %1173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1174 = load i32, ptr @test_count, align 4, !tbaa !5
  %1175 = load i32, ptr %502, align 4, !tbaa !5
  %1176 = call ptr @s2n_strerror(i32 noundef %1175, ptr noundef nonnull @.str.4) #14
  %1177 = load i32, ptr %502, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror_debug(i32 noundef %1177, ptr noundef nonnull @.str.4) #14
  %1179 = load i32, ptr %556, align 4, !tbaa !5
  %1180 = call ptr @strerror(i32 noundef %1179) #14
  %1181 = load i32, ptr %556, align 4, !tbaa !5
  %1182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1173, ptr noundef nonnull %.str.5.sink1814, i32 noundef %1174, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1176, ptr noundef %1178, ptr noundef %1180, i32 noundef %1181) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1183:                                             ; preds = %1156
  %1184 = load i32, ptr @test_count, align 4, !tbaa !5
  %1185 = add nsw i32 %1184, 1
  store i32 %1185, ptr @test_count, align 4, !tbaa !5
  %1186 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.45, ptr noundef nonnull %999, i64 noundef 12000) #14
  %1187 = icmp eq i32 %1186, -1
  br i1 %1187, label %1188, label %1210

1188:                                             ; preds = %1183
  %1189 = load i32, ptr %556, align 4, !tbaa !5
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1191 = call i32 @s2n_print_stacktrace(ptr noundef %1190) #14
  %1192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1193 = trunc nuw i8 %1192 to i1
  br i1 %1193, label %1194, label %1198

1194:                                             ; preds = %1188
  %1195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1196 = call i32 @fileno(ptr noundef %1195) #14
  %1197 = call i32 @isatty(i32 noundef %1196) #14
  %.not1400 = icmp eq i32 %1197, 0
  br i1 %.not1400, label %1198, label %1199

1198:                                             ; preds = %1194, %1188
  br label %1199

1199:                                             ; preds = %1194, %1198
  %.str.5.sink1823 = phi ptr [ @.str.5, %1198 ], [ @.str.2, %1194 ]
  store i32 %1189, ptr %556, align 4, !tbaa !5
  %1200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = load i32, ptr %502, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror(i32 noundef %1202, ptr noundef nonnull @.str.4) #14
  %1204 = load i32, ptr %502, align 4, !tbaa !5
  %1205 = call ptr @s2n_strerror_debug(i32 noundef %1204, ptr noundef nonnull @.str.4) #14
  %1206 = load i32, ptr %556, align 4, !tbaa !5
  %1207 = call ptr @strerror(i32 noundef %1206) #14
  %1208 = load i32, ptr %556, align 4, !tbaa !5
  %1209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1200, ptr noundef nonnull %.str.5.sink1823, i32 noundef %1201, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1203, ptr noundef %1205, ptr noundef %1207, i32 noundef %1208) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1210:                                             ; preds = %1183
  %1211 = load i32, ptr @test_count, align 4, !tbaa !5
  %1212 = add nsw i32 %1211, 1
  store i32 %1212, ptr @test_count, align 4, !tbaa !5
  %1213 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.47, ptr noundef nonnull %1025, i64 noundef 12000) #14
  %1214 = icmp eq i32 %1213, -1
  br i1 %1214, label %1215, label %1237

1215:                                             ; preds = %1210
  %1216 = load i32, ptr %556, align 4, !tbaa !5
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = call i32 @s2n_print_stacktrace(ptr noundef %1217) #14
  %1219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1220 = trunc nuw i8 %1219 to i1
  br i1 %1220, label %1221, label %1225

1221:                                             ; preds = %1215
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = call i32 @fileno(ptr noundef %1222) #14
  %1224 = call i32 @isatty(i32 noundef %1223) #14
  %.not1399 = icmp eq i32 %1224, 0
  br i1 %.not1399, label %1225, label %1226

1225:                                             ; preds = %1221, %1215
  br label %1226

1226:                                             ; preds = %1221, %1225
  %.str.5.sink1832 = phi ptr [ @.str.5, %1225 ], [ @.str.2, %1221 ]
  store i32 %1216, ptr %556, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = load i32, ptr @test_count, align 4, !tbaa !5
  %1229 = load i32, ptr %502, align 4, !tbaa !5
  %1230 = call ptr @s2n_strerror(i32 noundef %1229, ptr noundef nonnull @.str.4) #14
  %1231 = load i32, ptr %502, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror_debug(i32 noundef %1231, ptr noundef nonnull @.str.4) #14
  %1233 = load i32, ptr %556, align 4, !tbaa !5
  %1234 = call ptr @strerror(i32 noundef %1233) #14
  %1235 = load i32, ptr %556, align 4, !tbaa !5
  %1236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1227, ptr noundef nonnull %.str.5.sink1832, i32 noundef %1228, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1230, ptr noundef %1232, ptr noundef %1234, i32 noundef %1235) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1237:                                             ; preds = %1210
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = add nsw i32 %1238, 1
  store i32 %1239, ptr @test_count, align 4, !tbaa !5
  %1240 = load ptr, ptr %9, align 8, !tbaa !9
  %1241 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %1240, ptr noundef nonnull %947, ptr noundef nonnull %973) #14
  %1242 = icmp eq i32 %1241, -1
  br i1 %1242, label %1243, label %1265

1243:                                             ; preds = %1237
  %1244 = load i32, ptr %556, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = call i32 @s2n_print_stacktrace(ptr noundef %1245) #14
  %1247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1248 = trunc nuw i8 %1247 to i1
  br i1 %1248, label %1249, label %1253

1249:                                             ; preds = %1243
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = call i32 @fileno(ptr noundef %1250) #14
  %1252 = call i32 @isatty(i32 noundef %1251) #14
  %.not1398 = icmp eq i32 %1252, 0
  br i1 %.not1398, label %1253, label %1254

1253:                                             ; preds = %1249, %1243
  br label %1254

1254:                                             ; preds = %1249, %1253
  %.str.5.sink1841 = phi ptr [ @.str.5, %1253 ], [ @.str.2, %1249 ]
  store i32 %1244, ptr %556, align 4, !tbaa !5
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = load i32, ptr @test_count, align 4, !tbaa !5
  %1257 = load i32, ptr %502, align 4, !tbaa !5
  %1258 = call ptr @s2n_strerror(i32 noundef %1257, ptr noundef nonnull @.str.4) #14
  %1259 = load i32, ptr %502, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror_debug(i32 noundef %1259, ptr noundef nonnull @.str.4) #14
  %1261 = load i32, ptr %556, align 4, !tbaa !5
  %1262 = call ptr @strerror(i32 noundef %1261) #14
  %1263 = load i32, ptr %556, align 4, !tbaa !5
  %1264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1255, ptr noundef nonnull %.str.5.sink1841, i32 noundef %1256, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1258, ptr noundef %1260, ptr noundef %1262, i32 noundef %1263) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1265:                                             ; preds = %1237
  %1266 = load i32, ptr @test_count, align 4, !tbaa !5
  %1267 = add nsw i32 %1266, 1
  store i32 %1267, ptr @test_count, align 4, !tbaa !5
  %1268 = load ptr, ptr %10, align 8, !tbaa !9
  %1269 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %1268, ptr noundef nonnull %999, ptr noundef nonnull %1025) #14
  %1270 = icmp eq i32 %1269, -1
  br i1 %1270, label %1271, label %1293

1271:                                             ; preds = %1265
  %1272 = load i32, ptr %556, align 4, !tbaa !5
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = call i32 @s2n_print_stacktrace(ptr noundef %1273) #14
  %1275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1276 = trunc nuw i8 %1275 to i1
  br i1 %1276, label %1277, label %1281

1277:                                             ; preds = %1271
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = call i32 @fileno(ptr noundef %1278) #14
  %1280 = call i32 @isatty(i32 noundef %1279) #14
  %.not1397 = icmp eq i32 %1280, 0
  br i1 %.not1397, label %1281, label %1282

1281:                                             ; preds = %1277, %1271
  br label %1282

1282:                                             ; preds = %1277, %1281
  %.str.5.sink1850 = phi ptr [ @.str.5, %1281 ], [ @.str.2, %1277 ]
  store i32 %1272, ptr %556, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = load i32, ptr @test_count, align 4, !tbaa !5
  %1285 = load i32, ptr %502, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror(i32 noundef %1285, ptr noundef nonnull @.str.4) #14
  %1287 = load i32, ptr %502, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror_debug(i32 noundef %1287, ptr noundef nonnull @.str.4) #14
  %1289 = load i32, ptr %556, align 4, !tbaa !5
  %1290 = call ptr @strerror(i32 noundef %1289) #14
  %1291 = load i32, ptr %556, align 4, !tbaa !5
  %1292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1283, ptr noundef nonnull %.str.5.sink1850, i32 noundef %1284, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1286, ptr noundef %1288, ptr noundef %1290, i32 noundef %1291) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1293:                                             ; preds = %1265
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %11, ptr noundef nonnull align 16 dereferenceable(48) @__const.main.wire_ciphers, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %12) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %12, ptr noundef nonnull align 16 dereferenceable(48) @__const.main.wire_ciphers_fallback, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %13) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %13, ptr noundef nonnull align 16 dereferenceable(48) @__const.main.wire_ciphers_renegotiation, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #14
  %1294 = load i32, ptr @__const.main.wire_ciphers_with_ecdsa, align 1
  store i32 %1294, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #14
  %1295 = load i64, ptr @__const.main.wire_ciphers_only_ecdsa, align 1
  store i64 %1295, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %16) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %16, ptr noundef nonnull align 1 dereferenceable(12) @__const.main.wire_ciphers_rsa_fallback, i64 12, i1 false)
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = add nsw i32 %1296, 1
  store i32 %1297, ptr @test_count, align 4, !tbaa !5
  %1298 = call ptr @s2n_config_new() #14
  %1299 = icmp eq ptr %1298, null
  br i1 %1299, label %1300, label %1322

1300:                                             ; preds = %1293
  %1301 = load i32, ptr %556, align 4, !tbaa !5
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = call i32 @s2n_print_stacktrace(ptr noundef %1302) #14
  %1304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1305 = trunc nuw i8 %1304 to i1
  br i1 %1305, label %1306, label %1310

1306:                                             ; preds = %1300
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = call i32 @fileno(ptr noundef %1307) #14
  %1309 = call i32 @isatty(i32 noundef %1308) #14
  %.not1396 = icmp eq i32 %1309, 0
  br i1 %.not1396, label %1310, label %1311

1310:                                             ; preds = %1306, %1300
  br label %1311

1311:                                             ; preds = %1306, %1310
  %.str.5.sink1859 = phi ptr [ @.str.5, %1310 ], [ @.str.2, %1306 ]
  store i32 %1301, ptr %556, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = load i32, ptr %502, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror(i32 noundef %1314, ptr noundef nonnull @.str.4) #14
  %1316 = load i32, ptr %502, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror_debug(i32 noundef %1316, ptr noundef nonnull @.str.4) #14
  %1318 = load i32, ptr %556, align 4, !tbaa !5
  %1319 = call ptr @strerror(i32 noundef %1318) #14
  %1320 = load i32, ptr %556, align 4, !tbaa !5
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1312, ptr noundef nonnull %.str.5.sink1859, i32 noundef %1313, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %1315, ptr noundef %1317, ptr noundef %1319, i32 noundef %1320) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1322:                                             ; preds = %1293
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = add nsw i32 %1323, 1
  store i32 %1324, ptr @test_count, align 4, !tbaa !5
  %1325 = load ptr, ptr %9, align 8, !tbaa !9
  %1326 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1298, ptr noundef %1325) #14
  %1327 = icmp eq i32 %1326, -1
  br i1 %1327, label %1328, label %1350

1328:                                             ; preds = %1322
  %1329 = load i32, ptr %556, align 4, !tbaa !5
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @s2n_print_stacktrace(ptr noundef %1330) #14
  %1332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1333 = trunc nuw i8 %1332 to i1
  br i1 %1333, label %1334, label %1338

1334:                                             ; preds = %1328
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = call i32 @fileno(ptr noundef %1335) #14
  %1337 = call i32 @isatty(i32 noundef %1336) #14
  %.not1395 = icmp eq i32 %1337, 0
  br i1 %.not1395, label %1338, label %1339

1338:                                             ; preds = %1334, %1328
  br label %1339

1339:                                             ; preds = %1334, %1338
  %.str.5.sink1868 = phi ptr [ @.str.5, %1338 ], [ @.str.2, %1334 ]
  store i32 %1329, ptr %556, align 4, !tbaa !5
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1341 = load i32, ptr @test_count, align 4, !tbaa !5
  %1342 = load i32, ptr %502, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef nonnull @.str.4) #14
  %1344 = load i32, ptr %502, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror_debug(i32 noundef %1344, ptr noundef nonnull @.str.4) #14
  %1346 = load i32, ptr %556, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #14
  %1348 = load i32, ptr %556, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1340, ptr noundef nonnull %.str.5.sink1868, i32 noundef %1341, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %1343, ptr noundef %1345, ptr noundef %1347, i32 noundef %1348) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1350:                                             ; preds = %1322
  %1351 = load i32, ptr @test_count, align 4, !tbaa !5
  %1352 = add nsw i32 %1351, 1
  store i32 %1352, ptr @test_count, align 4, !tbaa !5
  %1353 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1298, ptr noundef nonnull @.str.53) #14
  %1354 = icmp eq i32 %1353, -1
  br i1 %1354, label %1355, label %1377

1355:                                             ; preds = %1350
  %1356 = load i32, ptr %556, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = call i32 @s2n_print_stacktrace(ptr noundef %1357) #14
  %1359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1360 = trunc nuw i8 %1359 to i1
  br i1 %1360, label %1361, label %1365

1361:                                             ; preds = %1355
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = call i32 @fileno(ptr noundef %1362) #14
  %1364 = call i32 @isatty(i32 noundef %1363) #14
  %.not1394 = icmp eq i32 %1364, 0
  br i1 %.not1394, label %1365, label %1366

1365:                                             ; preds = %1361, %1355
  br label %1366

1366:                                             ; preds = %1361, %1365
  %.str.5.sink1877 = phi ptr [ @.str.5, %1365 ], [ @.str.2, %1361 ]
  store i32 %1356, ptr %556, align 4, !tbaa !5
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = load i32, ptr %502, align 4, !tbaa !5
  %1370 = call ptr @s2n_strerror(i32 noundef %1369, ptr noundef nonnull @.str.4) #14
  %1371 = load i32, ptr %502, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror_debug(i32 noundef %1371, ptr noundef nonnull @.str.4) #14
  %1373 = load i32, ptr %556, align 4, !tbaa !5
  %1374 = call ptr @strerror(i32 noundef %1373) #14
  %1375 = load i32, ptr %556, align 4, !tbaa !5
  %1376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1367, ptr noundef nonnull %.str.5.sink1877, i32 noundef %1368, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %1370, ptr noundef %1372, ptr noundef %1374, i32 noundef %1375) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1377:                                             ; preds = %1350
  %1378 = load i32, ptr @test_count, align 4, !tbaa !5
  %1379 = add nsw i32 %1378, 1
  store i32 %1379, ptr @test_count, align 4, !tbaa !5
  %1380 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %1298) #14
  %1381 = icmp eq i32 %1380, -1
  br i1 %1381, label %1382, label %1404

1382:                                             ; preds = %1377
  %1383 = load i32, ptr %556, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @s2n_print_stacktrace(ptr noundef %1384) #14
  %1386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1387 = trunc nuw i8 %1386 to i1
  br i1 %1387, label %1388, label %1392

1388:                                             ; preds = %1382
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @fileno(ptr noundef %1389) #14
  %1391 = call i32 @isatty(i32 noundef %1390) #14
  %.not1393 = icmp eq i32 %1391, 0
  br i1 %.not1393, label %1392, label %1393

1392:                                             ; preds = %1388, %1382
  br label %1393

1393:                                             ; preds = %1388, %1392
  %.str.5.sink1886 = phi ptr [ @.str.5, %1392 ], [ @.str.2, %1388 ]
  store i32 %1383, ptr %556, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = load i32, ptr %502, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror(i32 noundef %1396, ptr noundef nonnull @.str.4) #14
  %1398 = load i32, ptr %502, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror_debug(i32 noundef %1398, ptr noundef nonnull @.str.4) #14
  %1400 = load i32, ptr %556, align 4, !tbaa !5
  %1401 = call ptr @strerror(i32 noundef %1400) #14
  %1402 = load i32, ptr %556, align 4, !tbaa !5
  %1403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1394, ptr noundef nonnull %.str.5.sink1886, i32 noundef %1395, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %1397, ptr noundef %1399, ptr noundef %1401, i32 noundef %1402) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1404:                                             ; preds = %1377
  %1405 = getelementptr inbounds i8, ptr %1051, i64 220
  store i8 31, ptr %1405, align 4, !tbaa !42
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %11, i16 noundef zeroext 24) #14
  %1409 = icmp eq i32 %1408, -1
  br i1 %1409, label %1410, label %1432

1410:                                             ; preds = %1404
  %1411 = load i32, ptr %556, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @s2n_print_stacktrace(ptr noundef %1412) #14
  %1414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1415 = trunc nuw i8 %1414 to i1
  br i1 %1415, label %1416, label %1420

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

1420:                                             ; preds = %1416, %1410
  br label %1421

1421:                                             ; preds = %1416, %1420
  %.str.5.sink1895 = phi ptr [ @.str.5, %1420 ], [ @.str.2, %1416 ]
  store i32 %1411, ptr %556, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = load i32, ptr %502, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror(i32 noundef %1424, ptr noundef nonnull @.str.4) #14
  %1426 = load i32, ptr %502, align 4, !tbaa !5
  %1427 = call ptr @s2n_strerror_debug(i32 noundef %1426, ptr noundef nonnull @.str.4) #14
  %1428 = load i32, ptr %556, align 4, !tbaa !5
  %1429 = call ptr @strerror(i32 noundef %1428) #14
  %1430 = load i32, ptr %556, align 4, !tbaa !5
  %1431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1422, ptr noundef nonnull %.str.5.sink1895, i32 noundef %1423, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %1425, ptr noundef %1427, ptr noundef %1429, i32 noundef %1430) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1432:                                             ; preds = %1404
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = add nsw i32 %1433, 1
  store i32 %1434, ptr @test_count, align 4, !tbaa !5
  %1435 = load i32, ptr %1051, align 8
  %1436 = and i32 %1435, 8
  %1437 = icmp eq i32 %1436, 0
  br i1 %1437, label %1460, label %1438

1438:                                             ; preds = %1432
  %1439 = load i32, ptr %556, align 4, !tbaa !5
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = call i32 @s2n_print_stacktrace(ptr noundef %1440) #14
  %1442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1443 = trunc nuw i8 %1442 to i1
  br i1 %1443, label %1444, label %1448

1444:                                             ; preds = %1438
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = call i32 @fileno(ptr noundef %1445) #14
  %1447 = call i32 @isatty(i32 noundef %1446) #14
  %.not1103 = icmp eq i32 %1447, 0
  br i1 %.not1103, label %1448, label %1449

1448:                                             ; preds = %1444, %1438
  br label %1449

1449:                                             ; preds = %1444, %1448
  %.str.5.sink1904 = phi ptr [ @.str.5, %1448 ], [ @.str.2, %1444 ]
  store i32 %1439, ptr %556, align 4, !tbaa !5
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = load i32, ptr @test_count, align 4, !tbaa !5
  %1452 = load i32, ptr %502, align 4, !tbaa !5
  %1453 = call ptr @s2n_strerror(i32 noundef %1452, ptr noundef nonnull @.str.4) #14
  %1454 = load i32, ptr %502, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror_debug(i32 noundef %1454, ptr noundef nonnull @.str.4) #14
  %1456 = load i32, ptr %556, align 4, !tbaa !5
  %1457 = call ptr @strerror(i32 noundef %1456) #14
  %1458 = load i32, ptr %556, align 4, !tbaa !5
  %1459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1450, ptr noundef nonnull %.str.5.sink1904, i32 noundef %1451, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %1453, ptr noundef %1455, ptr noundef %1457, i32 noundef %1458) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1460:                                             ; preds = %1432
  %1461 = add nsw i32 %1433, 2
  store i32 %1461, ptr @test_count, align 4, !tbaa !5
  %1462 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %1463 = icmp eq i32 %1462, 1
  br i1 %1463, label %1486, label %1464

1464:                                             ; preds = %1460
  %1465 = load i32, ptr %556, align 4, !tbaa !5
  %1466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1467 = call i32 @s2n_print_stacktrace(ptr noundef %1466) #14
  %1468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1469 = trunc nuw i8 %1468 to i1
  br i1 %1469, label %1470, label %1474

1470:                                             ; preds = %1464
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = call i32 @fileno(ptr noundef %1471) #14
  %1473 = call i32 @isatty(i32 noundef %1472) #14
  %.not1104 = icmp eq i32 %1473, 0
  br i1 %.not1104, label %1474, label %1475

1474:                                             ; preds = %1470, %1464
  br label %1475

1475:                                             ; preds = %1470, %1474
  %.str.5.sink1913 = phi ptr [ @.str.5, %1474 ], [ @.str.2, %1470 ]
  store i32 %1465, ptr %556, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = load i32, ptr %502, align 4, !tbaa !5
  %1479 = call ptr @s2n_strerror(i32 noundef %1478, ptr noundef nonnull @.str.4) #14
  %1480 = load i32, ptr %502, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror_debug(i32 noundef %1480, ptr noundef nonnull @.str.4) #14
  %1482 = load i32, ptr %556, align 4, !tbaa !5
  %1483 = call ptr @strerror(i32 noundef %1482) #14
  %1484 = load i32, ptr %556, align 4, !tbaa !5
  %1485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1476, ptr noundef nonnull %.str.5.sink1913, i32 noundef %1477, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %1479, ptr noundef %1481, ptr noundef %1483, i32 noundef %1484) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1486:                                             ; preds = %1460
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = add nsw i32 %1487, 1
  store i32 %1488, ptr @test_count, align 4, !tbaa !5
  %1489 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.59) #14
  %1490 = icmp eq i32 %1489, 0
  br i1 %1490, label %1513, label %1491

1491:                                             ; preds = %1486
  %1492 = load i32, ptr %556, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = call i32 @s2n_print_stacktrace(ptr noundef %1493) #14
  %1495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1496 = trunc nuw i8 %1495 to i1
  br i1 %1496, label %1497, label %1501

1497:                                             ; preds = %1491
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = call i32 @fileno(ptr noundef %1498) #14
  %1500 = call i32 @isatty(i32 noundef %1499) #14
  %.not1105 = icmp eq i32 %1500, 0
  br i1 %.not1105, label %1501, label %1502

1501:                                             ; preds = %1497, %1491
  br label %1502

1502:                                             ; preds = %1497, %1501
  %.str.5.sink1922 = phi ptr [ @.str.5, %1501 ], [ @.str.2, %1497 ]
  store i32 %1492, ptr %556, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = load i32, ptr %502, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror(i32 noundef %1505, ptr noundef nonnull @.str.4) #14
  %1507 = load i32, ptr %502, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror_debug(i32 noundef %1507, ptr noundef nonnull @.str.4) #14
  %1509 = load i32, ptr %556, align 4, !tbaa !5
  %1510 = call ptr @strerror(i32 noundef %1509) #14
  %1511 = load i32, ptr %556, align 4, !tbaa !5
  %1512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1503, ptr noundef nonnull %.str.5.sink1922, i32 noundef %1504, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %1506, ptr noundef %1508, ptr noundef %1510, i32 noundef %1511) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1513:                                             ; preds = %1486
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = add nsw i32 %1514, 1
  store i32 %1515, ptr @test_count, align 4, !tbaa !5
  %1516 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %1517 = icmp eq i32 %1516, -1
  br i1 %1517, label %1518, label %1540

1518:                                             ; preds = %1513
  %1519 = load i32, ptr %556, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = call i32 @s2n_print_stacktrace(ptr noundef %1520) #14
  %1522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1523 = trunc nuw i8 %1522 to i1
  br i1 %1523, label %1524, label %1528

1524:                                             ; preds = %1518
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = call i32 @fileno(ptr noundef %1525) #14
  %1527 = call i32 @isatty(i32 noundef %1526) #14
  %.not1391 = icmp eq i32 %1527, 0
  br i1 %.not1391, label %1528, label %1529

1528:                                             ; preds = %1524, %1518
  br label %1529

1529:                                             ; preds = %1524, %1528
  %.str.5.sink1931 = phi ptr [ @.str.5, %1528 ], [ @.str.2, %1524 ]
  store i32 %1519, ptr %556, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = load i32, ptr %502, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror(i32 noundef %1532, ptr noundef nonnull @.str.4) #14
  %1534 = load i32, ptr %502, align 4, !tbaa !5
  %1535 = call ptr @s2n_strerror_debug(i32 noundef %1534, ptr noundef nonnull @.str.4) #14
  %1536 = load i32, ptr %556, align 4, !tbaa !5
  %1537 = call ptr @strerror(i32 noundef %1536) #14
  %1538 = load i32, ptr %556, align 4, !tbaa !5
  %1539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1530, ptr noundef nonnull %.str.5.sink1931, i32 noundef %1531, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %1533, ptr noundef %1535, ptr noundef %1537, i32 noundef %1538) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1540:                                             ; preds = %1513
  store i8 33, ptr %1405, align 4, !tbaa !42
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = add nsw i32 %1541, 1
  store i32 %1542, ptr @test_count, align 4, !tbaa !5
  %1543 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %13, i16 noundef zeroext 24) #14
  %1544 = icmp eq i32 %1543, -1
  br i1 %1544, label %1545, label %1567

1545:                                             ; preds = %1540
  %1546 = load i32, ptr %556, align 4, !tbaa !5
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @s2n_print_stacktrace(ptr noundef %1547) #14
  %1549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1550 = trunc nuw i8 %1549 to i1
  br i1 %1550, label %1551, label %1555

1551:                                             ; preds = %1545
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @fileno(ptr noundef %1552) #14
  %1554 = call i32 @isatty(i32 noundef %1553) #14
  %.not1390 = icmp eq i32 %1554, 0
  br i1 %.not1390, label %1555, label %1556

1555:                                             ; preds = %1551, %1545
  br label %1556

1556:                                             ; preds = %1551, %1555
  %.str.5.sink1940 = phi ptr [ @.str.5, %1555 ], [ @.str.2, %1551 ]
  store i32 %1546, ptr %556, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = load i32, ptr @test_count, align 4, !tbaa !5
  %1559 = load i32, ptr %502, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror(i32 noundef %1559, ptr noundef nonnull @.str.4) #14
  %1561 = load i32, ptr %502, align 4, !tbaa !5
  %1562 = call ptr @s2n_strerror_debug(i32 noundef %1561, ptr noundef nonnull @.str.4) #14
  %1563 = load i32, ptr %556, align 4, !tbaa !5
  %1564 = call ptr @strerror(i32 noundef %1563) #14
  %1565 = load i32, ptr %556, align 4, !tbaa !5
  %1566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1557, ptr noundef nonnull %.str.5.sink1940, i32 noundef %1558, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %1560, ptr noundef %1562, ptr noundef %1564, i32 noundef %1565) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1567:                                             ; preds = %1540
  %1568 = load i32, ptr @test_count, align 4, !tbaa !5
  %1569 = add nsw i32 %1568, 1
  store i32 %1569, ptr @test_count, align 4, !tbaa !5
  %1570 = load i32, ptr %1051, align 8
  %1571 = and i32 %1570, 8
  %.not1106 = icmp eq i32 %1571, 0
  br i1 %.not1106, label %1572, label %1594

1572:                                             ; preds = %1567
  %1573 = load i32, ptr %556, align 4, !tbaa !5
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = call i32 @s2n_print_stacktrace(ptr noundef %1574) #14
  %1576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1577 = trunc nuw i8 %1576 to i1
  br i1 %1577, label %1578, label %1582

1578:                                             ; preds = %1572
  %1579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1580 = call i32 @fileno(ptr noundef %1579) #14
  %1581 = call i32 @isatty(i32 noundef %1580) #14
  %.not1107 = icmp eq i32 %1581, 0
  br i1 %.not1107, label %1582, label %1583

1582:                                             ; preds = %1578, %1572
  br label %1583

1583:                                             ; preds = %1578, %1582
  %.str.5.sink1949 = phi ptr [ @.str.5, %1582 ], [ @.str.2, %1578 ]
  store i32 %1573, ptr %556, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = load i32, ptr @test_count, align 4, !tbaa !5
  %1586 = load i32, ptr %502, align 4, !tbaa !5
  %1587 = call ptr @s2n_strerror(i32 noundef %1586, ptr noundef nonnull @.str.4) #14
  %1588 = load i32, ptr %502, align 4, !tbaa !5
  %1589 = call ptr @s2n_strerror_debug(i32 noundef %1588, ptr noundef nonnull @.str.4) #14
  %1590 = load i32, ptr %556, align 4, !tbaa !5
  %1591 = call ptr @strerror(i32 noundef %1590) #14
  %1592 = load i32, ptr %556, align 4, !tbaa !5
  %1593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1584, ptr noundef nonnull %.str.5.sink1949, i32 noundef %1585, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %1587, ptr noundef %1589, ptr noundef %1591, i32 noundef %1592) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1594:                                             ; preds = %1567
  %1595 = add nsw i32 %1568, 2
  store i32 %1595, ptr @test_count, align 4, !tbaa !5
  %1596 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %1597 = icmp eq i32 %1596, 1
  br i1 %1597, label %1620, label %1598

1598:                                             ; preds = %1594
  %1599 = load i32, ptr %556, align 4, !tbaa !5
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = call i32 @s2n_print_stacktrace(ptr noundef %1600) #14
  %1602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1603 = trunc nuw i8 %1602 to i1
  br i1 %1603, label %1604, label %1608

1604:                                             ; preds = %1598
  %1605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1606 = call i32 @fileno(ptr noundef %1605) #14
  %1607 = call i32 @isatty(i32 noundef %1606) #14
  %.not1108 = icmp eq i32 %1607, 0
  br i1 %.not1108, label %1608, label %1609

1608:                                             ; preds = %1604, %1598
  br label %1609

1609:                                             ; preds = %1604, %1608
  %.str.5.sink1958 = phi ptr [ @.str.5, %1608 ], [ @.str.2, %1604 ]
  store i32 %1599, ptr %556, align 4, !tbaa !5
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = load i32, ptr @test_count, align 4, !tbaa !5
  %1612 = load i32, ptr %502, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror(i32 noundef %1612, ptr noundef nonnull @.str.4) #14
  %1614 = load i32, ptr %502, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror_debug(i32 noundef %1614, ptr noundef nonnull @.str.4) #14
  %1616 = load i32, ptr %556, align 4, !tbaa !5
  %1617 = call ptr @strerror(i32 noundef %1616) #14
  %1618 = load i32, ptr %556, align 4, !tbaa !5
  %1619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1610, ptr noundef nonnull %.str.5.sink1958, i32 noundef %1611, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 309, ptr noundef %1613, ptr noundef %1615, ptr noundef %1617, i32 noundef %1618) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1620:                                             ; preds = %1594
  %1621 = load i32, ptr @test_count, align 4, !tbaa !5
  %1622 = add nsw i32 %1621, 1
  store i32 %1622, ptr @test_count, align 4, !tbaa !5
  %1623 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.63) #14
  %1624 = icmp eq i32 %1623, -1
  br i1 %1624, label %1647, label %1625

1625:                                             ; preds = %1620
  %1626 = load i32, ptr %556, align 4, !tbaa !5
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = call i32 @s2n_print_stacktrace(ptr noundef %1627) #14
  %1629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1630 = trunc nuw i8 %1629 to i1
  br i1 %1630, label %1631, label %1635

1631:                                             ; preds = %1625
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = call i32 @fileno(ptr noundef %1632) #14
  %1634 = call i32 @isatty(i32 noundef %1633) #14
  %.not1109 = icmp eq i32 %1634, 0
  br i1 %.not1109, label %1635, label %1636

1635:                                             ; preds = %1631, %1625
  br label %1636

1636:                                             ; preds = %1631, %1635
  %.str.5.sink1967 = phi ptr [ @.str.5, %1635 ], [ @.str.2, %1631 ]
  store i32 %1626, ptr %556, align 4, !tbaa !5
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = load i32, ptr %502, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror(i32 noundef %1639, ptr noundef nonnull @.str.4) #14
  %1641 = load i32, ptr %502, align 4, !tbaa !5
  %1642 = call ptr @s2n_strerror_debug(i32 noundef %1641, ptr noundef nonnull @.str.4) #14
  %1643 = load i32, ptr %556, align 4, !tbaa !5
  %1644 = call ptr @strerror(i32 noundef %1643) #14
  %1645 = load i32, ptr %556, align 4, !tbaa !5
  %1646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1637, ptr noundef nonnull %.str.5.sink1967, i32 noundef %1638, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %1640, ptr noundef %1642, ptr noundef %1644, i32 noundef %1645) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1647:                                             ; preds = %1620
  %1648 = load i32, ptr @test_count, align 4, !tbaa !5
  %1649 = add nsw i32 %1648, 1
  store i32 %1649, ptr @test_count, align 4, !tbaa !5
  %1650 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %1651 = icmp eq i32 %1650, -1
  br i1 %1651, label %1652, label %1674

1652:                                             ; preds = %1647
  %1653 = load i32, ptr %556, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @s2n_print_stacktrace(ptr noundef %1654) #14
  %1656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1657 = trunc nuw i8 %1656 to i1
  br i1 %1657, label %1658, label %1662

1658:                                             ; preds = %1652
  %1659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1660 = call i32 @fileno(ptr noundef %1659) #14
  %1661 = call i32 @isatty(i32 noundef %1660) #14
  %.not1389 = icmp eq i32 %1661, 0
  br i1 %.not1389, label %1662, label %1663

1662:                                             ; preds = %1658, %1652
  br label %1663

1663:                                             ; preds = %1658, %1662
  %.str.5.sink1976 = phi ptr [ @.str.5, %1662 ], [ @.str.2, %1658 ]
  store i32 %1653, ptr %556, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = load i32, ptr %502, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror(i32 noundef %1666, ptr noundef nonnull @.str.4) #14
  %1668 = load i32, ptr %502, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef nonnull @.str.4) #14
  %1670 = load i32, ptr %556, align 4, !tbaa !5
  %1671 = call ptr @strerror(i32 noundef %1670) #14
  %1672 = load i32, ptr %556, align 4, !tbaa !5
  %1673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1664, ptr noundef nonnull %.str.5.sink1976, i32 noundef %1665, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %1667, ptr noundef %1669, ptr noundef %1671, i32 noundef %1672) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1674:                                             ; preds = %1647
  store i8 32, ptr %1405, align 4, !tbaa !42
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = add nsw i32 %1675, 1
  store i32 %1676, ptr @test_count, align 4, !tbaa !5
  %1677 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %12, i16 noundef zeroext 24) #14
  %1678 = icmp eq i32 %1677, -1
  br i1 %1678, label %1701, label %1679

1679:                                             ; preds = %1674
  %1680 = load i32, ptr %556, align 4, !tbaa !5
  %1681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1682 = call i32 @s2n_print_stacktrace(ptr noundef %1681) #14
  %1683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1684 = trunc nuw i8 %1683 to i1
  br i1 %1684, label %1685, label %1689

1685:                                             ; preds = %1679
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = call i32 @fileno(ptr noundef %1686) #14
  %1688 = call i32 @isatty(i32 noundef %1687) #14
  %.not1110 = icmp eq i32 %1688, 0
  br i1 %.not1110, label %1689, label %1690

1689:                                             ; preds = %1685, %1679
  br label %1690

1690:                                             ; preds = %1685, %1689
  %.str.5.sink1985 = phi ptr [ @.str.5, %1689 ], [ @.str.2, %1685 ]
  store i32 %1680, ptr %556, align 4, !tbaa !5
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = load i32, ptr @test_count, align 4, !tbaa !5
  %1693 = load i32, ptr %502, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror(i32 noundef %1693, ptr noundef nonnull @.str.4) #14
  %1695 = load i32, ptr %502, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef nonnull @.str.4) #14
  %1697 = load i32, ptr %556, align 4, !tbaa !5
  %1698 = call ptr @strerror(i32 noundef %1697) #14
  %1699 = load i32, ptr %556, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1691, ptr noundef nonnull %.str.5.sink1985, i32 noundef %1692, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %1694, ptr noundef %1696, ptr noundef %1698, i32 noundef %1699) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1701:                                             ; preds = %1674
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = add nsw i32 %1702, 1
  store i32 %1703, ptr @test_count, align 4, !tbaa !5
  %1704 = load i32, ptr %502, align 4, !tbaa !5
  %1705 = icmp eq i32 %1704, 0
  br i1 %1705, label %1706, label %1728

1706:                                             ; preds = %1701
  %1707 = load i32, ptr %556, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = call i32 @s2n_print_stacktrace(ptr noundef %1708) #14
  %1710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1711 = trunc nuw i8 %1710 to i1
  br i1 %1711, label %1712, label %1716

1712:                                             ; preds = %1706
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = call i32 @fileno(ptr noundef %1713) #14
  %1715 = call i32 @isatty(i32 noundef %1714) #14
  %.not1388 = icmp eq i32 %1715, 0
  br i1 %.not1388, label %1716, label %1717

1716:                                             ; preds = %1712, %1706
  br label %1717

1717:                                             ; preds = %1712, %1716
  %.str.5.sink1994 = phi ptr [ @.str.5, %1716 ], [ @.str.2, %1712 ]
  store i32 %1707, ptr %556, align 4, !tbaa !5
  %1718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1719 = load i32, ptr @test_count, align 4, !tbaa !5
  %1720 = load i32, ptr %502, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror(i32 noundef %1720, ptr noundef nonnull @.str.4) #14
  %1722 = load i32, ptr %502, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror_debug(i32 noundef %1722, ptr noundef nonnull @.str.4) #14
  %1724 = load i32, ptr %556, align 4, !tbaa !5
  %1725 = call ptr @strerror(i32 noundef %1724) #14
  %1726 = load i32, ptr %556, align 4, !tbaa !5
  %1727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1718, ptr noundef nonnull %.str.5.sink1994, i32 noundef %1719, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %1721, ptr noundef %1723, ptr noundef %1725, i32 noundef %1726) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1728:                                             ; preds = %1701
  %1729 = add nsw i32 %1702, 2
  store i32 %1729, ptr @test_count, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror_debug(i32 noundef %1704, ptr noundef nonnull @.str.4) #14
  %1731 = icmp eq ptr %1730, null
  br i1 %1731, label %1732, label %1754

1732:                                             ; preds = %1728
  %1733 = load i32, ptr %556, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = call i32 @s2n_print_stacktrace(ptr noundef %1734) #14
  %1736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1737 = trunc nuw i8 %1736 to i1
  br i1 %1737, label %1738, label %1742

1738:                                             ; preds = %1732
  %1739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1740 = call i32 @fileno(ptr noundef %1739) #14
  %1741 = call i32 @isatty(i32 noundef %1740) #14
  %.not1387 = icmp eq i32 %1741, 0
  br i1 %.not1387, label %1742, label %1743

1742:                                             ; preds = %1738, %1732
  br label %1743

1743:                                             ; preds = %1738, %1742
  %.str.5.sink2003 = phi ptr [ @.str.5, %1742 ], [ @.str.2, %1738 ]
  store i32 %1733, ptr %556, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = load i32, ptr @test_count, align 4, !tbaa !5
  %1746 = load i32, ptr %502, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror(i32 noundef %1746, ptr noundef nonnull @.str.4) #14
  %1748 = load i32, ptr %502, align 4, !tbaa !5
  %1749 = call ptr @s2n_strerror_debug(i32 noundef %1748, ptr noundef nonnull @.str.4) #14
  %1750 = load i32, ptr %556, align 4, !tbaa !5
  %1751 = call ptr @strerror(i32 noundef %1750) #14
  %1752 = load i32, ptr %556, align 4, !tbaa !5
  %1753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1744, ptr noundef nonnull %.str.5.sink2003, i32 noundef %1745, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %1747, ptr noundef %1749, ptr noundef %1751, i32 noundef %1752) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1754:                                             ; preds = %1728
  store i32 0, ptr %502, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  store i32 0, ptr %556, align 4, !tbaa !5
  %1755 = load i32, ptr @test_count, align 4, !tbaa !5
  %1756 = add nsw i32 %1755, 1
  store i32 %1756, ptr @test_count, align 4, !tbaa !5
  %1757 = load i32, ptr %1051, align 8
  %1758 = and i32 %1757, 8
  %1759 = icmp eq i32 %1758, 0
  br i1 %1759, label %1782, label %1760

1760:                                             ; preds = %1754
  %1761 = load i32, ptr %556, align 4, !tbaa !5
  %1762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1763 = call i32 @s2n_print_stacktrace(ptr noundef %1762) #14
  %1764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1765 = trunc nuw i8 %1764 to i1
  br i1 %1765, label %1766, label %1770

1766:                                             ; preds = %1760
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = call i32 @fileno(ptr noundef %1767) #14
  %1769 = call i32 @isatty(i32 noundef %1768) #14
  %.not1111 = icmp eq i32 %1769, 0
  br i1 %.not1111, label %1770, label %1771

1770:                                             ; preds = %1766, %1760
  br label %1771

1771:                                             ; preds = %1766, %1770
  %.str.5.sink2012 = phi ptr [ @.str.5, %1770 ], [ @.str.2, %1766 ]
  store i32 %1761, ptr %556, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = load i32, ptr %502, align 4, !tbaa !5
  %1775 = call ptr @s2n_strerror(i32 noundef %1774, ptr noundef nonnull @.str.4) #14
  %1776 = load i32, ptr %502, align 4, !tbaa !5
  %1777 = call ptr @s2n_strerror_debug(i32 noundef %1776, ptr noundef nonnull @.str.4) #14
  %1778 = load i32, ptr %556, align 4, !tbaa !5
  %1779 = call ptr @strerror(i32 noundef %1778) #14
  %1780 = load i32, ptr %556, align 4, !tbaa !5
  %1781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1772, ptr noundef nonnull %.str.5.sink2012, i32 noundef %1773, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %1775, ptr noundef %1777, ptr noundef %1779, i32 noundef %1780) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1782:                                             ; preds = %1754
  %1783 = add nsw i32 %1755, 2
  store i32 %1783, ptr @test_count, align 4, !tbaa !5
  %1784 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.59) #14
  %1785 = icmp eq i32 %1784, 1
  br i1 %1785, label %1808, label %1786

1786:                                             ; preds = %1782
  %1787 = load i32, ptr %556, align 4, !tbaa !5
  %1788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1789 = call i32 @s2n_print_stacktrace(ptr noundef %1788) #14
  %1790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1791 = trunc nuw i8 %1790 to i1
  br i1 %1791, label %1792, label %1796

1792:                                             ; preds = %1786
  %1793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1794 = call i32 @fileno(ptr noundef %1793) #14
  %1795 = call i32 @isatty(i32 noundef %1794) #14
  %.not1112 = icmp eq i32 %1795, 0
  br i1 %.not1112, label %1796, label %1797

1796:                                             ; preds = %1792, %1786
  br label %1797

1797:                                             ; preds = %1792, %1796
  %.str.5.sink2021 = phi ptr [ @.str.5, %1796 ], [ @.str.2, %1792 ]
  store i32 %1787, ptr %556, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %1800 = load i32, ptr %502, align 4, !tbaa !5
  %1801 = call ptr @s2n_strerror(i32 noundef %1800, ptr noundef nonnull @.str.4) #14
  %1802 = load i32, ptr %502, align 4, !tbaa !5
  %1803 = call ptr @s2n_strerror_debug(i32 noundef %1802, ptr noundef nonnull @.str.4) #14
  %1804 = load i32, ptr %556, align 4, !tbaa !5
  %1805 = call ptr @strerror(i32 noundef %1804) #14
  %1806 = load i32, ptr %556, align 4, !tbaa !5
  %1807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1798, ptr noundef nonnull %.str.5.sink2021, i32 noundef %1799, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 317, ptr noundef %1801, ptr noundef %1803, ptr noundef %1805, i32 noundef %1806) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1808:                                             ; preds = %1782
  %1809 = load i32, ptr @test_count, align 4, !tbaa !5
  %1810 = add nsw i32 %1809, 1
  store i32 %1810, ptr @test_count, align 4, !tbaa !5
  %1811 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.68) #14
  %1812 = icmp eq i32 %1811, 0
  br i1 %1812, label %1835, label %1813

1813:                                             ; preds = %1808
  %1814 = load i32, ptr %556, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = call i32 @s2n_print_stacktrace(ptr noundef %1815) #14
  %1817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1818 = trunc nuw i8 %1817 to i1
  br i1 %1818, label %1819, label %1823

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

1823:                                             ; preds = %1819, %1813
  br label %1824

1824:                                             ; preds = %1819, %1823
  %.str.5.sink2030 = phi ptr [ @.str.5, %1823 ], [ @.str.2, %1819 ]
  store i32 %1814, ptr %556, align 4, !tbaa !5
  %1825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = load i32, ptr %502, align 4, !tbaa !5
  %1828 = call ptr @s2n_strerror(i32 noundef %1827, ptr noundef nonnull @.str.4) #14
  %1829 = load i32, ptr %502, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror_debug(i32 noundef %1829, ptr noundef nonnull @.str.4) #14
  %1831 = load i32, ptr %556, align 4, !tbaa !5
  %1832 = call ptr @strerror(i32 noundef %1831) #14
  %1833 = load i32, ptr %556, align 4, !tbaa !5
  %1834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1825, ptr noundef nonnull %.str.5.sink2030, i32 noundef %1826, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %1828, ptr noundef %1830, ptr noundef %1832, i32 noundef %1833) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1835:                                             ; preds = %1808
  %1836 = load i32, ptr @test_count, align 4, !tbaa !5
  %1837 = add nsw i32 %1836, 1
  store i32 %1837, ptr @test_count, align 4, !tbaa !5
  %1838 = call i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.70) #14
  %1839 = icmp eq i32 %1838, 0
  br i1 %1839, label %1862, label %1840

1840:                                             ; preds = %1835
  %1841 = load i32, ptr %556, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = call i32 @s2n_print_stacktrace(ptr noundef %1842) #14
  %1844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1845 = trunc nuw i8 %1844 to i1
  br i1 %1845, label %1846, label %1850

1846:                                             ; preds = %1840
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = call i32 @fileno(ptr noundef %1847) #14
  %1849 = call i32 @isatty(i32 noundef %1848) #14
  %.not1114 = icmp eq i32 %1849, 0
  br i1 %.not1114, label %1850, label %1851

1850:                                             ; preds = %1846, %1840
  br label %1851

1851:                                             ; preds = %1846, %1850
  %.str.5.sink2039 = phi ptr [ @.str.5, %1850 ], [ @.str.2, %1846 ]
  store i32 %1841, ptr %556, align 4, !tbaa !5
  %1852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1853 = load i32, ptr @test_count, align 4, !tbaa !5
  %1854 = load i32, ptr %502, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror(i32 noundef %1854, ptr noundef nonnull @.str.4) #14
  %1856 = load i32, ptr %502, align 4, !tbaa !5
  %1857 = call ptr @s2n_strerror_debug(i32 noundef %1856, ptr noundef nonnull @.str.4) #14
  %1858 = load i32, ptr %556, align 4, !tbaa !5
  %1859 = call ptr @strerror(i32 noundef %1858) #14
  %1860 = load i32, ptr %556, align 4, !tbaa !5
  %1861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1852, ptr noundef nonnull %.str.5.sink2039, i32 noundef %1853, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %1855, ptr noundef %1857, ptr noundef %1859, i32 noundef %1860) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1862:                                             ; preds = %1835
  %1863 = load i32, ptr @test_count, align 4, !tbaa !5
  %1864 = add nsw i32 %1863, 1
  store i32 %1864, ptr @test_count, align 4, !tbaa !5
  %1865 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %1866 = icmp eq i32 %1865, -1
  br i1 %1866, label %1867, label %1889

1867:                                             ; preds = %1862
  %1868 = load i32, ptr %556, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = call i32 @s2n_print_stacktrace(ptr noundef %1869) #14
  %1871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1872 = trunc nuw i8 %1871 to i1
  br i1 %1872, label %1873, label %1877

1873:                                             ; preds = %1867
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1875 = call i32 @fileno(ptr noundef %1874) #14
  %1876 = call i32 @isatty(i32 noundef %1875) #14
  %.not1386 = icmp eq i32 %1876, 0
  br i1 %.not1386, label %1877, label %1878

1877:                                             ; preds = %1873, %1867
  br label %1878

1878:                                             ; preds = %1873, %1877
  %.str.5.sink2048 = phi ptr [ @.str.5, %1877 ], [ @.str.2, %1873 ]
  store i32 %1868, ptr %556, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = load i32, ptr @test_count, align 4, !tbaa !5
  %1881 = load i32, ptr %502, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror(i32 noundef %1881, ptr noundef nonnull @.str.4) #14
  %1883 = load i32, ptr %502, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror_debug(i32 noundef %1883, ptr noundef nonnull @.str.4) #14
  %1885 = load i32, ptr %556, align 4, !tbaa !5
  %1886 = call ptr @strerror(i32 noundef %1885) #14
  %1887 = load i32, ptr %556, align 4, !tbaa !5
  %1888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1879, ptr noundef nonnull %.str.5.sink2048, i32 noundef %1880, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %1882, ptr noundef %1884, ptr noundef %1886, i32 noundef %1887) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1889:                                             ; preds = %1862
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = add nsw i32 %1890, 1
  store i32 %1891, ptr @test_count, align 4, !tbaa !5
  %1892 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.72) #14
  %1893 = icmp eq i32 %1892, -1
  br i1 %1893, label %1894, label %1916

1894:                                             ; preds = %1889
  %1895 = load i32, ptr %556, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = call i32 @s2n_print_stacktrace(ptr noundef %1896) #14
  %1898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1899 = trunc nuw i8 %1898 to i1
  br i1 %1899, label %1900, label %1904

1900:                                             ; preds = %1894
  %1901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1902 = call i32 @fileno(ptr noundef %1901) #14
  %1903 = call i32 @isatty(i32 noundef %1902) #14
  %.not1385 = icmp eq i32 %1903, 0
  br i1 %.not1385, label %1904, label %1905

1904:                                             ; preds = %1900, %1894
  br label %1905

1905:                                             ; preds = %1900, %1904
  %.str.5.sink2057 = phi ptr [ @.str.5, %1904 ], [ @.str.2, %1900 ]
  store i32 %1895, ptr %556, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = load i32, ptr @test_count, align 4, !tbaa !5
  %1908 = load i32, ptr %502, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror(i32 noundef %1908, ptr noundef nonnull @.str.4) #14
  %1910 = load i32, ptr %502, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror_debug(i32 noundef %1910, ptr noundef nonnull @.str.4) #14
  %1912 = load i32, ptr %556, align 4, !tbaa !5
  %1913 = call ptr @strerror(i32 noundef %1912) #14
  %1914 = load i32, ptr %556, align 4, !tbaa !5
  %1915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1906, ptr noundef nonnull %.str.5.sink2057, i32 noundef %1907, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %1909, ptr noundef %1911, ptr noundef %1913, i32 noundef %1914) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1916:                                             ; preds = %1889
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #14
  store ptr null, ptr %17, align 8, !tbaa !9
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1051, ptr noundef nonnull %17) #14
  %1920 = icmp eq i32 %1919, -1
  br i1 %1920, label %1921, label %1943

1921:                                             ; preds = %1916
  %1922 = load i32, ptr %556, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = call i32 @s2n_print_stacktrace(ptr noundef %1923) #14
  %1925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1926 = trunc nuw i8 %1925 to i1
  br i1 %1926, label %1927, label %1931

1927:                                             ; preds = %1921
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = call i32 @fileno(ptr noundef %1928) #14
  %1930 = call i32 @isatty(i32 noundef %1929) #14
  %.not1384 = icmp eq i32 %1930, 0
  br i1 %.not1384, label %1931, label %1932

1931:                                             ; preds = %1927, %1921
  br label %1932

1932:                                             ; preds = %1927, %1931
  %.str.5.sink2066 = phi ptr [ @.str.5, %1931 ], [ @.str.2, %1927 ]
  store i32 %1922, ptr %556, align 4, !tbaa !5
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = load i32, ptr @test_count, align 4, !tbaa !5
  %1935 = load i32, ptr %502, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror(i32 noundef %1935, ptr noundef nonnull @.str.4) #14
  %1937 = load i32, ptr %502, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror_debug(i32 noundef %1937, ptr noundef nonnull @.str.4) #14
  %1939 = load i32, ptr %556, align 4, !tbaa !5
  %1940 = call ptr @strerror(i32 noundef %1939) #14
  %1941 = load i32, ptr %556, align 4, !tbaa !5
  %1942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1933, ptr noundef nonnull %.str.5.sink2066, i32 noundef %1934, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %1936, ptr noundef %1938, ptr noundef %1940, i32 noundef %1941) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1943:                                             ; preds = %1916
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = add nsw i32 %1944, 1
  store i32 %1945, ptr @test_count, align 4, !tbaa !5
  %1946 = load ptr, ptr %17, align 8, !tbaa !9
  %1947 = icmp eq ptr %1946, null
  br i1 %1947, label %1948, label %1970

1948:                                             ; preds = %1943
  %1949 = load i32, ptr %556, align 4, !tbaa !5
  %1950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1951 = call i32 @s2n_print_stacktrace(ptr noundef %1950) #14
  %1952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1953 = trunc nuw i8 %1952 to i1
  br i1 %1953, label %1954, label %1958

1954:                                             ; preds = %1948
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = call i32 @fileno(ptr noundef %1955) #14
  %1957 = call i32 @isatty(i32 noundef %1956) #14
  %.not1383 = icmp eq i32 %1957, 0
  br i1 %.not1383, label %1958, label %1959

1958:                                             ; preds = %1954, %1948
  br label %1959

1959:                                             ; preds = %1954, %1958
  %.str.5.sink2075 = phi ptr [ @.str.5, %1958 ], [ @.str.2, %1954 ]
  store i32 %1949, ptr %556, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = load i32, ptr %502, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror(i32 noundef %1962, ptr noundef nonnull @.str.4) #14
  %1964 = load i32, ptr %502, align 4, !tbaa !5
  %1965 = call ptr @s2n_strerror_debug(i32 noundef %1964, ptr noundef nonnull @.str.4) #14
  %1966 = load i32, ptr %556, align 4, !tbaa !5
  %1967 = call ptr @strerror(i32 noundef %1966) #14
  %1968 = load i32, ptr %556, align 4, !tbaa !5
  %1969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1960, ptr noundef nonnull %.str.5.sink2075, i32 noundef %1961, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %1963, ptr noundef %1965, ptr noundef %1967, i32 noundef %1968) #16
  call void @exit(i32 noundef 1) #17
  unreachable

1970:                                             ; preds = %1943
  %1971 = getelementptr inbounds i8, ptr %1946, i64 8
  %1972 = load ptr, ptr %1971, align 8, !tbaa !54
  %1973 = load ptr, ptr %1972, align 8, !tbaa !9
  %1974 = getelementptr inbounds i8, ptr %1051, i64 656
  store ptr %1973, ptr %1974, align 8, !tbaa !56
  %1975 = getelementptr inbounds i8, ptr %1051, i64 219
  %1976 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %1976, ptr %1405, align 4, !tbaa !42
  %1977 = add nsw i32 %1944, 2
  store i32 %1977, ptr @test_count, align 4, !tbaa !5
  %1978 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %1979 = icmp eq i32 %1978, -1
  br i1 %1979, label %1980, label %2002

1980:                                             ; preds = %1970
  %1981 = load i32, ptr %556, align 4, !tbaa !5
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = call i32 @s2n_print_stacktrace(ptr noundef %1982) #14
  %1984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1985 = trunc nuw i8 %1984 to i1
  br i1 %1985, label %1986, label %1990

1986:                                             ; preds = %1980
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = call i32 @fileno(ptr noundef %1987) #14
  %1989 = call i32 @isatty(i32 noundef %1988) #14
  %.not1382 = icmp eq i32 %1989, 0
  br i1 %.not1382, label %1990, label %1991

1990:                                             ; preds = %1986, %1980
  br label %1991

1991:                                             ; preds = %1986, %1990
  %.str.5.sink2084 = phi ptr [ @.str.5, %1990 ], [ @.str.2, %1986 ]
  store i32 %1981, ptr %556, align 4, !tbaa !5
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = load i32, ptr @test_count, align 4, !tbaa !5
  %1994 = load i32, ptr %502, align 4, !tbaa !5
  %1995 = call ptr @s2n_strerror(i32 noundef %1994, ptr noundef nonnull @.str.4) #14
  %1996 = load i32, ptr %502, align 4, !tbaa !5
  %1997 = call ptr @s2n_strerror_debug(i32 noundef %1996, ptr noundef nonnull @.str.4) #14
  %1998 = load i32, ptr %556, align 4, !tbaa !5
  %1999 = call ptr @strerror(i32 noundef %1998) #14
  %2000 = load i32, ptr %556, align 4, !tbaa !5
  %2001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1992, ptr noundef nonnull %.str.5.sink2084, i32 noundef %1993, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %1995, ptr noundef %1997, ptr noundef %1999, i32 noundef %2000) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2002:                                             ; preds = %1970
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = add nsw i32 %2003, 1
  store i32 %2004, ptr @test_count, align 4, !tbaa !5
  %2005 = load i32, ptr %1051, align 8
  %2006 = and i32 %2005, 8
  %2007 = icmp eq i32 %2006, 0
  br i1 %2007, label %2030, label %2008

2008:                                             ; preds = %2002
  %2009 = load i32, ptr %556, align 4, !tbaa !5
  %2010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2011 = call i32 @s2n_print_stacktrace(ptr noundef %2010) #14
  %2012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2013 = trunc nuw i8 %2012 to i1
  br i1 %2013, label %2014, label %2018

2014:                                             ; preds = %2008
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = call i32 @fileno(ptr noundef %2015) #14
  %2017 = call i32 @isatty(i32 noundef %2016) #14
  %.not1115 = icmp eq i32 %2017, 0
  br i1 %.not1115, label %2018, label %2019

2018:                                             ; preds = %2014, %2008
  br label %2019

2019:                                             ; preds = %2014, %2018
  %.str.5.sink2093 = phi ptr [ @.str.5, %2018 ], [ @.str.2, %2014 ]
  store i32 %2009, ptr %556, align 4, !tbaa !5
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = load i32, ptr @test_count, align 4, !tbaa !5
  %2022 = load i32, ptr %502, align 4, !tbaa !5
  %2023 = call ptr @s2n_strerror(i32 noundef %2022, ptr noundef nonnull @.str.4) #14
  %2024 = load i32, ptr %502, align 4, !tbaa !5
  %2025 = call ptr @s2n_strerror_debug(i32 noundef %2024, ptr noundef nonnull @.str.4) #14
  %2026 = load i32, ptr %556, align 4, !tbaa !5
  %2027 = call ptr @strerror(i32 noundef %2026) #14
  %2028 = load i32, ptr %556, align 4, !tbaa !5
  %2029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2020, ptr noundef nonnull %.str.5.sink2093, i32 noundef %2021, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %2023, ptr noundef %2025, ptr noundef %2027, i32 noundef %2028) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2030:                                             ; preds = %2002
  %2031 = add nsw i32 %2003, 2
  store i32 %2031, ptr @test_count, align 4, !tbaa !5
  %2032 = getelementptr inbounds i8, ptr %1051, i64 232
  %2033 = load ptr, ptr %2032, align 8, !tbaa !48
  %2034 = load ptr, ptr %2033, align 8, !tbaa !49
  %2035 = icmp eq ptr %2034, @s2n_ecdhe_rsa_with_aes_128_cbc_sha
  br i1 %2035, label %2058, label %2036

2036:                                             ; preds = %2030
  %2037 = load i32, ptr %556, align 4, !tbaa !5
  %2038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2039 = call i32 @s2n_print_stacktrace(ptr noundef %2038) #14
  %2040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2041 = trunc nuw i8 %2040 to i1
  br i1 %2041, label %2042, label %2046

2042:                                             ; preds = %2036
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = call i32 @fileno(ptr noundef %2043) #14
  %2045 = call i32 @isatty(i32 noundef %2044) #14
  %.not1116 = icmp eq i32 %2045, 0
  br i1 %.not1116, label %2046, label %2047

2046:                                             ; preds = %2042, %2036
  br label %2047

2047:                                             ; preds = %2042, %2046
  %.str.5.sink2102 = phi ptr [ @.str.5, %2046 ], [ @.str.2, %2042 ]
  store i32 %2037, ptr %556, align 4, !tbaa !5
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %2050 = load i32, ptr %502, align 4, !tbaa !5
  %2051 = call ptr @s2n_strerror(i32 noundef %2050, ptr noundef nonnull @.str.4) #14
  %2052 = load i32, ptr %502, align 4, !tbaa !5
  %2053 = call ptr @s2n_strerror_debug(i32 noundef %2052, ptr noundef nonnull @.str.4) #14
  %2054 = load i32, ptr %556, align 4, !tbaa !5
  %2055 = call ptr @strerror(i32 noundef %2054) #14
  %2056 = load i32, ptr %556, align 4, !tbaa !5
  %2057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2048, ptr noundef nonnull %.str.5.sink2102, i32 noundef %2049, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %2051, ptr noundef %2053, ptr noundef %2055, i32 noundef %2056) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2058:                                             ; preds = %2030
  %2059 = add nsw i32 %2003, 3
  store i32 %2059, ptr @test_count, align 4, !tbaa !5
  %2060 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %2061 = icmp eq i32 %2060, -1
  br i1 %2061, label %2062, label %2084

2062:                                             ; preds = %2058
  %2063 = load i32, ptr %556, align 4, !tbaa !5
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = call i32 @s2n_print_stacktrace(ptr noundef %2064) #14
  %2066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2067 = trunc nuw i8 %2066 to i1
  br i1 %2067, label %2068, label %2072

2068:                                             ; preds = %2062
  %2069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2070 = call i32 @fileno(ptr noundef %2069) #14
  %2071 = call i32 @isatty(i32 noundef %2070) #14
  %.not1381 = icmp eq i32 %2071, 0
  br i1 %.not1381, label %2072, label %2073

2072:                                             ; preds = %2068, %2062
  br label %2073

2073:                                             ; preds = %2068, %2072
  %.str.5.sink2111 = phi ptr [ @.str.5, %2072 ], [ @.str.2, %2068 ]
  store i32 %2063, ptr %556, align 4, !tbaa !5
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = load i32, ptr @test_count, align 4, !tbaa !5
  %2076 = load i32, ptr %502, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror(i32 noundef %2076, ptr noundef nonnull @.str.4) #14
  %2078 = load i32, ptr %502, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror_debug(i32 noundef %2078, ptr noundef nonnull @.str.4) #14
  %2080 = load i32, ptr %556, align 4, !tbaa !5
  %2081 = call ptr @strerror(i32 noundef %2080) #14
  %2082 = load i32, ptr %556, align 4, !tbaa !5
  %2083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2074, ptr noundef nonnull %.str.5.sink2111, i32 noundef %2075, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 337, ptr noundef %2077, ptr noundef %2079, ptr noundef %2081, i32 noundef %2082) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2084:                                             ; preds = %2058
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = add nsw i32 %2085, 1
  store i32 %2086, ptr @test_count, align 4, !tbaa !5
  %2087 = call i32 @s2n_config_free(ptr noundef nonnull %1298) #14
  %2088 = icmp eq i32 %2087, -1
  br i1 %2088, label %2089, label %2111

2089:                                             ; preds = %2084
  %2090 = load i32, ptr %556, align 4, !tbaa !5
  %2091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2092 = call i32 @s2n_print_stacktrace(ptr noundef %2091) #14
  %2093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2094 = trunc nuw i8 %2093 to i1
  br i1 %2094, label %2095, label %2099

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

2099:                                             ; preds = %2095, %2089
  br label %2100

2100:                                             ; preds = %2095, %2099
  %.str.5.sink2120 = phi ptr [ @.str.5, %2099 ], [ @.str.2, %2095 ]
  store i32 %2090, ptr %556, align 4, !tbaa !5
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = load i32, ptr @test_count, align 4, !tbaa !5
  %2103 = load i32, ptr %502, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror(i32 noundef %2103, ptr noundef nonnull @.str.4) #14
  %2105 = load i32, ptr %502, align 4, !tbaa !5
  %2106 = call ptr @s2n_strerror_debug(i32 noundef %2105, ptr noundef nonnull @.str.4) #14
  %2107 = load i32, ptr %556, align 4, !tbaa !5
  %2108 = call ptr @strerror(i32 noundef %2107) #14
  %2109 = load i32, ptr %556, align 4, !tbaa !5
  %2110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2101, ptr noundef nonnull %.str.5.sink2120, i32 noundef %2102, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 340, ptr noundef %2104, ptr noundef %2106, ptr noundef %2108, i32 noundef %2109) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2111:                                             ; preds = %2084
  %2112 = load i32, ptr @test_count, align 4, !tbaa !5
  %2113 = add nsw i32 %2112, 1
  store i32 %2113, ptr @test_count, align 4, !tbaa !5
  %2114 = call ptr @s2n_config_new() #14
  %2115 = icmp eq ptr %2114, null
  br i1 %2115, label %2116, label %2138

2116:                                             ; preds = %2111
  %2117 = load i32, ptr %556, align 4, !tbaa !5
  %2118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2119 = call i32 @s2n_print_stacktrace(ptr noundef %2118) #14
  %2120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2121 = trunc nuw i8 %2120 to i1
  br i1 %2121, label %2122, label %2126

2122:                                             ; preds = %2116
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = call i32 @fileno(ptr noundef %2123) #14
  %2125 = call i32 @isatty(i32 noundef %2124) #14
  %.not1379 = icmp eq i32 %2125, 0
  br i1 %.not1379, label %2126, label %2127

2126:                                             ; preds = %2122, %2116
  br label %2127

2127:                                             ; preds = %2122, %2126
  %.str.5.sink2129 = phi ptr [ @.str.5, %2126 ], [ @.str.2, %2122 ]
  store i32 %2117, ptr %556, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = load i32, ptr %502, align 4, !tbaa !5
  %2131 = call ptr @s2n_strerror(i32 noundef %2130, ptr noundef nonnull @.str.4) #14
  %2132 = load i32, ptr %502, align 4, !tbaa !5
  %2133 = call ptr @s2n_strerror_debug(i32 noundef %2132, ptr noundef nonnull @.str.4) #14
  %2134 = load i32, ptr %556, align 4, !tbaa !5
  %2135 = call ptr @strerror(i32 noundef %2134) #14
  %2136 = load i32, ptr %556, align 4, !tbaa !5
  %2137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2128, ptr noundef nonnull %.str.5.sink2129, i32 noundef %2129, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %2131, ptr noundef %2133, ptr noundef %2135, i32 noundef %2136) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2138:                                             ; preds = %2111
  %2139 = load i32, ptr @test_count, align 4, !tbaa !5
  %2140 = add nsw i32 %2139, 1
  store i32 %2140, ptr @test_count, align 4, !tbaa !5
  %2141 = load ptr, ptr %10, align 8, !tbaa !9
  %2142 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2114, ptr noundef %2141) #14
  %2143 = icmp eq i32 %2142, -1
  br i1 %2143, label %2144, label %2166

2144:                                             ; preds = %2138
  %2145 = load i32, ptr %556, align 4, !tbaa !5
  %2146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2147 = call i32 @s2n_print_stacktrace(ptr noundef %2146) #14
  %2148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2149 = trunc nuw i8 %2148 to i1
  br i1 %2149, label %2150, label %2154

2150:                                             ; preds = %2144
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = call i32 @fileno(ptr noundef %2151) #14
  %2153 = call i32 @isatty(i32 noundef %2152) #14
  %.not1378 = icmp eq i32 %2153, 0
  br i1 %.not1378, label %2154, label %2155

2154:                                             ; preds = %2150, %2144
  br label %2155

2155:                                             ; preds = %2150, %2154
  %.str.5.sink2138 = phi ptr [ @.str.5, %2154 ], [ @.str.2, %2150 ]
  store i32 %2145, ptr %556, align 4, !tbaa !5
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2157 = load i32, ptr @test_count, align 4, !tbaa !5
  %2158 = load i32, ptr %502, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror(i32 noundef %2158, ptr noundef nonnull @.str.4) #14
  %2160 = load i32, ptr %502, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror_debug(i32 noundef %2160, ptr noundef nonnull @.str.4) #14
  %2162 = load i32, ptr %556, align 4, !tbaa !5
  %2163 = call ptr @strerror(i32 noundef %2162) #14
  %2164 = load i32, ptr %556, align 4, !tbaa !5
  %2165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2156, ptr noundef nonnull %.str.5.sink2138, i32 noundef %2157, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 344, ptr noundef %2159, ptr noundef %2161, ptr noundef %2163, i32 noundef %2164) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2166:                                             ; preds = %2138
  %2167 = load i32, ptr @test_count, align 4, !tbaa !5
  %2168 = add nsw i32 %2167, 1
  store i32 %2168, ptr @test_count, align 4, !tbaa !5
  %2169 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %2114) #14
  %2170 = icmp eq i32 %2169, -1
  br i1 %2170, label %2171, label %2193

2171:                                             ; preds = %2166
  %2172 = load i32, ptr %556, align 4, !tbaa !5
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = call i32 @s2n_print_stacktrace(ptr noundef %2173) #14
  %2175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2176 = trunc nuw i8 %2175 to i1
  br i1 %2176, label %2177, label %2181

2177:                                             ; preds = %2171
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = call i32 @fileno(ptr noundef %2178) #14
  %2180 = call i32 @isatty(i32 noundef %2179) #14
  %.not1377 = icmp eq i32 %2180, 0
  br i1 %.not1377, label %2181, label %2182

2181:                                             ; preds = %2177, %2171
  br label %2182

2182:                                             ; preds = %2177, %2181
  %.str.5.sink2147 = phi ptr [ @.str.5, %2181 ], [ @.str.2, %2177 ]
  store i32 %2172, ptr %556, align 4, !tbaa !5
  %2183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2184 = load i32, ptr @test_count, align 4, !tbaa !5
  %2185 = load i32, ptr %502, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror(i32 noundef %2185, ptr noundef nonnull @.str.4) #14
  %2187 = load i32, ptr %502, align 4, !tbaa !5
  %2188 = call ptr @s2n_strerror_debug(i32 noundef %2187, ptr noundef nonnull @.str.4) #14
  %2189 = load i32, ptr %556, align 4, !tbaa !5
  %2190 = call ptr @strerror(i32 noundef %2189) #14
  %2191 = load i32, ptr %556, align 4, !tbaa !5
  %2192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2183, ptr noundef nonnull %.str.5.sink2147, i32 noundef %2184, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %2186, ptr noundef %2188, ptr noundef %2190, i32 noundef %2191) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2193:                                             ; preds = %2166
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = add nsw i32 %2194, 1
  store i32 %2195, ptr @test_count, align 4, !tbaa !5
  %2196 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1051, ptr noundef nonnull %17) #14
  %2197 = icmp eq i32 %2196, -1
  br i1 %2197, label %2198, label %2220

2198:                                             ; preds = %2193
  %2199 = load i32, ptr %556, align 4, !tbaa !5
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = call i32 @s2n_print_stacktrace(ptr noundef %2200) #14
  %2202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2203 = trunc nuw i8 %2202 to i1
  br i1 %2203, label %2204, label %2208

2204:                                             ; preds = %2198
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = call i32 @fileno(ptr noundef %2205) #14
  %2207 = call i32 @isatty(i32 noundef %2206) #14
  %.not1376 = icmp eq i32 %2207, 0
  br i1 %.not1376, label %2208, label %2209

2208:                                             ; preds = %2204, %2198
  br label %2209

2209:                                             ; preds = %2204, %2208
  %.str.5.sink2156 = phi ptr [ @.str.5, %2208 ], [ @.str.2, %2204 ]
  store i32 %2199, ptr %556, align 4, !tbaa !5
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = load i32, ptr @test_count, align 4, !tbaa !5
  %2212 = load i32, ptr %502, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror(i32 noundef %2212, ptr noundef nonnull @.str.4) #14
  %2214 = load i32, ptr %502, align 4, !tbaa !5
  %2215 = call ptr @s2n_strerror_debug(i32 noundef %2214, ptr noundef nonnull @.str.4) #14
  %2216 = load i32, ptr %556, align 4, !tbaa !5
  %2217 = call ptr @strerror(i32 noundef %2216) #14
  %2218 = load i32, ptr %556, align 4, !tbaa !5
  %2219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2210, ptr noundef nonnull %.str.5.sink2156, i32 noundef %2211, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 347, ptr noundef %2213, ptr noundef %2215, ptr noundef %2217, i32 noundef %2218) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2220:                                             ; preds = %2193
  %2221 = load i32, ptr @test_count, align 4, !tbaa !5
  %2222 = add nsw i32 %2221, 1
  store i32 %2222, ptr @test_count, align 4, !tbaa !5
  %2223 = load ptr, ptr %17, align 8, !tbaa !9
  %2224 = icmp eq ptr %2223, null
  br i1 %2224, label %2225, label %2247

2225:                                             ; preds = %2220
  %2226 = load i32, ptr %556, align 4, !tbaa !5
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = call i32 @s2n_print_stacktrace(ptr noundef %2227) #14
  %2229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2230 = trunc nuw i8 %2229 to i1
  br i1 %2230, label %2231, label %2235

2231:                                             ; preds = %2225
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = call i32 @fileno(ptr noundef %2232) #14
  %2234 = call i32 @isatty(i32 noundef %2233) #14
  %.not1375 = icmp eq i32 %2234, 0
  br i1 %.not1375, label %2235, label %2236

2235:                                             ; preds = %2231, %2225
  br label %2236

2236:                                             ; preds = %2231, %2235
  %.str.5.sink2165 = phi ptr [ @.str.5, %2235 ], [ @.str.2, %2231 ]
  store i32 %2226, ptr %556, align 4, !tbaa !5
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = load i32, ptr @test_count, align 4, !tbaa !5
  %2239 = load i32, ptr %502, align 4, !tbaa !5
  %2240 = call ptr @s2n_strerror(i32 noundef %2239, ptr noundef nonnull @.str.4) #14
  %2241 = load i32, ptr %502, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror_debug(i32 noundef %2241, ptr noundef nonnull @.str.4) #14
  %2243 = load i32, ptr %556, align 4, !tbaa !5
  %2244 = call ptr @strerror(i32 noundef %2243) #14
  %2245 = load i32, ptr %556, align 4, !tbaa !5
  %2246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2237, ptr noundef nonnull %.str.5.sink2165, i32 noundef %2238, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 348, ptr noundef %2240, ptr noundef %2242, ptr noundef %2244, i32 noundef %2245) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2247:                                             ; preds = %2220
  %2248 = add nsw i32 %2221, 2
  store i32 %2248, ptr @test_count, align 4, !tbaa !5
  %2249 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.80) #14
  %2250 = icmp eq i32 %2249, -1
  br i1 %2250, label %2251, label %2273

2251:                                             ; preds = %2247
  %2252 = load i32, ptr %556, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @s2n_print_stacktrace(ptr noundef %2253) #14
  %2255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2256 = trunc nuw i8 %2255 to i1
  br i1 %2256, label %2257, label %2261

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

2261:                                             ; preds = %2257, %2251
  br label %2262

2262:                                             ; preds = %2257, %2261
  %.str.5.sink2174 = phi ptr [ @.str.5, %2261 ], [ @.str.2, %2257 ]
  store i32 %2252, ptr %556, align 4, !tbaa !5
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = load i32, ptr @test_count, align 4, !tbaa !5
  %2265 = load i32, ptr %502, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef nonnull @.str.4) #14
  %2267 = load i32, ptr %502, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef nonnull @.str.4) #14
  %2269 = load i32, ptr %556, align 4, !tbaa !5
  %2270 = call ptr @strerror(i32 noundef %2269) #14
  %2271 = load i32, ptr %556, align 4, !tbaa !5
  %2272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef nonnull %.str.5.sink2174, i32 noundef %2264, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %2266, ptr noundef %2268, ptr noundef %2270, i32 noundef %2271) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2273:                                             ; preds = %2247
  %2274 = load ptr, ptr %17, align 8, !tbaa !9
  %2275 = getelementptr inbounds i8, ptr %2274, i64 8
  %2276 = load ptr, ptr %2275, align 8, !tbaa !54
  %2277 = load ptr, ptr %2276, align 8, !tbaa !9
  store ptr %2277, ptr %1974, align 8, !tbaa !56
  %2278 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %2278, ptr %1405, align 4, !tbaa !42
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = add nsw i32 %2279, 1
  store i32 %2280, ptr @test_count, align 4, !tbaa !5
  %2281 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %2282 = icmp eq i32 %2281, -1
  br i1 %2282, label %2283, label %2305

2283:                                             ; preds = %2273
  %2284 = load i32, ptr %556, align 4, !tbaa !5
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @s2n_print_stacktrace(ptr noundef %2285) #14
  %2287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2288 = trunc nuw i8 %2287 to i1
  br i1 %2288, label %2289, label %2293

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

2293:                                             ; preds = %2289, %2283
  br label %2294

2294:                                             ; preds = %2289, %2293
  %.str.5.sink2183 = phi ptr [ @.str.5, %2293 ], [ @.str.2, %2289 ]
  store i32 %2284, ptr %556, align 4, !tbaa !5
  %2295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2296 = load i32, ptr @test_count, align 4, !tbaa !5
  %2297 = load i32, ptr %502, align 4, !tbaa !5
  %2298 = call ptr @s2n_strerror(i32 noundef %2297, ptr noundef nonnull @.str.4) #14
  %2299 = load i32, ptr %502, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror_debug(i32 noundef %2299, ptr noundef nonnull @.str.4) #14
  %2301 = load i32, ptr %556, align 4, !tbaa !5
  %2302 = call ptr @strerror(i32 noundef %2301) #14
  %2303 = load i32, ptr %556, align 4, !tbaa !5
  %2304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2295, ptr noundef nonnull %.str.5.sink2183, i32 noundef %2296, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 356, ptr noundef %2298, ptr noundef %2300, ptr noundef %2302, i32 noundef %2303) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2305:                                             ; preds = %2273
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %2307 = add nsw i32 %2306, 1
  store i32 %2307, ptr @test_count, align 4, !tbaa !5
  %2308 = load i32, ptr %1051, align 8
  %2309 = and i32 %2308, 8
  %2310 = icmp eq i32 %2309, 0
  br i1 %2310, label %2333, label %2311

2311:                                             ; preds = %2305
  %2312 = load i32, ptr %556, align 4, !tbaa !5
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = call i32 @s2n_print_stacktrace(ptr noundef %2313) #14
  %2315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2316 = trunc nuw i8 %2315 to i1
  br i1 %2316, label %2317, label %2321

2317:                                             ; preds = %2311
  %2318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2319 = call i32 @fileno(ptr noundef %2318) #14
  %2320 = call i32 @isatty(i32 noundef %2319) #14
  %.not1117 = icmp eq i32 %2320, 0
  br i1 %.not1117, label %2321, label %2322

2321:                                             ; preds = %2317, %2311
  br label %2322

2322:                                             ; preds = %2317, %2321
  %.str.5.sink2192 = phi ptr [ @.str.5, %2321 ], [ @.str.2, %2317 ]
  store i32 %2312, ptr %556, align 4, !tbaa !5
  %2323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2324 = load i32, ptr @test_count, align 4, !tbaa !5
  %2325 = load i32, ptr %502, align 4, !tbaa !5
  %2326 = call ptr @s2n_strerror(i32 noundef %2325, ptr noundef nonnull @.str.4) #14
  %2327 = load i32, ptr %502, align 4, !tbaa !5
  %2328 = call ptr @s2n_strerror_debug(i32 noundef %2327, ptr noundef nonnull @.str.4) #14
  %2329 = load i32, ptr %556, align 4, !tbaa !5
  %2330 = call ptr @strerror(i32 noundef %2329) #14
  %2331 = load i32, ptr %556, align 4, !tbaa !5
  %2332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2323, ptr noundef nonnull %.str.5.sink2192, i32 noundef %2324, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2326, ptr noundef %2328, ptr noundef %2330, i32 noundef %2331) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2333:                                             ; preds = %2305
  %2334 = add nsw i32 %2306, 2
  store i32 %2334, ptr @test_count, align 4, !tbaa !5
  %2335 = load ptr, ptr %2032, align 8, !tbaa !48
  %2336 = load ptr, ptr %2335, align 8, !tbaa !49
  %2337 = icmp eq ptr %2336, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %2337, label %2360, label %2338

2338:                                             ; preds = %2333
  %2339 = load i32, ptr %556, align 4, !tbaa !5
  %2340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2341 = call i32 @s2n_print_stacktrace(ptr noundef %2340) #14
  %2342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2343 = trunc nuw i8 %2342 to i1
  br i1 %2343, label %2344, label %2348

2344:                                             ; preds = %2338
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = call i32 @fileno(ptr noundef %2345) #14
  %2347 = call i32 @isatty(i32 noundef %2346) #14
  %.not1118 = icmp eq i32 %2347, 0
  br i1 %.not1118, label %2348, label %2349

2348:                                             ; preds = %2344, %2338
  br label %2349

2349:                                             ; preds = %2344, %2348
  %.str.5.sink2201 = phi ptr [ @.str.5, %2348 ], [ @.str.2, %2344 ]
  store i32 %2339, ptr %556, align 4, !tbaa !5
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = load i32, ptr @test_count, align 4, !tbaa !5
  %2352 = load i32, ptr %502, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror(i32 noundef %2352, ptr noundef nonnull @.str.4) #14
  %2354 = load i32, ptr %502, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror_debug(i32 noundef %2354, ptr noundef nonnull @.str.4) #14
  %2356 = load i32, ptr %556, align 4, !tbaa !5
  %2357 = call ptr @strerror(i32 noundef %2356) #14
  %2358 = load i32, ptr %556, align 4, !tbaa !5
  %2359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2350, ptr noundef nonnull %.str.5.sink2201, i32 noundef %2351, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %2353, ptr noundef %2355, ptr noundef %2357, i32 noundef %2358) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2360:                                             ; preds = %2333
  %2361 = add nsw i32 %2306, 3
  store i32 %2361, ptr @test_count, align 4, !tbaa !5
  %2362 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %2363 = icmp eq i32 %2362, -1
  br i1 %2363, label %2364, label %2386

2364:                                             ; preds = %2360
  %2365 = load i32, ptr %556, align 4, !tbaa !5
  %2366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2367 = call i32 @s2n_print_stacktrace(ptr noundef %2366) #14
  %2368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2369 = trunc nuw i8 %2368 to i1
  br i1 %2369, label %2370, label %2374

2370:                                             ; preds = %2364
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = call i32 @fileno(ptr noundef %2371) #14
  %2373 = call i32 @isatty(i32 noundef %2372) #14
  %.not1372 = icmp eq i32 %2373, 0
  br i1 %.not1372, label %2374, label %2375

2374:                                             ; preds = %2370, %2364
  br label %2375

2375:                                             ; preds = %2370, %2374
  %.str.5.sink2210 = phi ptr [ @.str.5, %2374 ], [ @.str.2, %2370 ]
  store i32 %2365, ptr %556, align 4, !tbaa !5
  %2376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = load i32, ptr %502, align 4, !tbaa !5
  %2379 = call ptr @s2n_strerror(i32 noundef %2378, ptr noundef nonnull @.str.4) #14
  %2380 = load i32, ptr %502, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef %2380, ptr noundef nonnull @.str.4) #14
  %2382 = load i32, ptr %556, align 4, !tbaa !5
  %2383 = call ptr @strerror(i32 noundef %2382) #14
  %2384 = load i32, ptr %556, align 4, !tbaa !5
  %2385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2376, ptr noundef nonnull %.str.5.sink2210, i32 noundef %2377, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 359, ptr noundef %2379, ptr noundef %2381, ptr noundef %2383, i32 noundef %2384) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2386:                                             ; preds = %2360
  %2387 = load i32, ptr @test_count, align 4, !tbaa !5
  %2388 = add nsw i32 %2387, 1
  store i32 %2388, ptr @test_count, align 4, !tbaa !5
  %2389 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %2390 = icmp eq i32 %2389, -1
  br i1 %2390, label %2391, label %2413

2391:                                             ; preds = %2386
  %2392 = load i32, ptr %556, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = call i32 @s2n_print_stacktrace(ptr noundef %2393) #14
  %2395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2396 = trunc nuw i8 %2395 to i1
  br i1 %2396, label %2397, label %2401

2397:                                             ; preds = %2391
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = call i32 @fileno(ptr noundef %2398) #14
  %2400 = call i32 @isatty(i32 noundef %2399) #14
  %.not1371 = icmp eq i32 %2400, 0
  br i1 %.not1371, label %2401, label %2402

2401:                                             ; preds = %2397, %2391
  br label %2402

2402:                                             ; preds = %2397, %2401
  %.str.5.sink2219 = phi ptr [ @.str.5, %2401 ], [ @.str.2, %2397 ]
  store i32 %2392, ptr %556, align 4, !tbaa !5
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = load i32, ptr @test_count, align 4, !tbaa !5
  %2405 = load i32, ptr %502, align 4, !tbaa !5
  %2406 = call ptr @s2n_strerror(i32 noundef %2405, ptr noundef nonnull @.str.4) #14
  %2407 = load i32, ptr %502, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror_debug(i32 noundef %2407, ptr noundef nonnull @.str.4) #14
  %2409 = load i32, ptr %556, align 4, !tbaa !5
  %2410 = call ptr @strerror(i32 noundef %2409) #14
  %2411 = load i32, ptr %556, align 4, !tbaa !5
  %2412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2403, ptr noundef nonnull %.str.5.sink2219, i32 noundef %2404, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 362, ptr noundef %2406, ptr noundef %2408, ptr noundef %2410, i32 noundef %2411) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2413:                                             ; preds = %2386
  %2414 = load ptr, ptr %17, align 8, !tbaa !9
  %2415 = getelementptr inbounds i8, ptr %2414, i64 8
  %2416 = load ptr, ptr %2415, align 8, !tbaa !54
  %2417 = load ptr, ptr %2416, align 8, !tbaa !9
  store ptr %2417, ptr %1974, align 8, !tbaa !56
  %2418 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %2418, ptr %1405, align 4, !tbaa !42
  %2419 = load i32, ptr @test_count, align 4, !tbaa !5
  %2420 = add nsw i32 %2419, 1
  store i32 %2420, ptr @test_count, align 4, !tbaa !5
  %2421 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %2422 = icmp eq i32 %2421, -1
  br i1 %2422, label %2423, label %2445

2423:                                             ; preds = %2413
  %2424 = load i32, ptr %556, align 4, !tbaa !5
  %2425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2426 = call i32 @s2n_print_stacktrace(ptr noundef %2425) #14
  %2427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2428 = trunc nuw i8 %2427 to i1
  br i1 %2428, label %2429, label %2433

2429:                                             ; preds = %2423
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = call i32 @fileno(ptr noundef %2430) #14
  %2432 = call i32 @isatty(i32 noundef %2431) #14
  %.not1370 = icmp eq i32 %2432, 0
  br i1 %.not1370, label %2433, label %2434

2433:                                             ; preds = %2429, %2423
  br label %2434

2434:                                             ; preds = %2429, %2433
  %.str.5.sink2228 = phi ptr [ @.str.5, %2433 ], [ @.str.2, %2429 ]
  store i32 %2424, ptr %556, align 4, !tbaa !5
  %2435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2436 = load i32, ptr @test_count, align 4, !tbaa !5
  %2437 = load i32, ptr %502, align 4, !tbaa !5
  %2438 = call ptr @s2n_strerror(i32 noundef %2437, ptr noundef nonnull @.str.4) #14
  %2439 = load i32, ptr %502, align 4, !tbaa !5
  %2440 = call ptr @s2n_strerror_debug(i32 noundef %2439, ptr noundef nonnull @.str.4) #14
  %2441 = load i32, ptr %556, align 4, !tbaa !5
  %2442 = call ptr @strerror(i32 noundef %2441) #14
  %2443 = load i32, ptr %556, align 4, !tbaa !5
  %2444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2435, ptr noundef nonnull %.str.5.sink2228, i32 noundef %2436, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %2438, ptr noundef %2440, ptr noundef %2442, i32 noundef %2443) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2445:                                             ; preds = %2413
  %2446 = load i32, ptr @test_count, align 4, !tbaa !5
  %2447 = add nsw i32 %2446, 1
  store i32 %2447, ptr @test_count, align 4, !tbaa !5
  %2448 = load i32, ptr %1051, align 8
  %2449 = and i32 %2448, 8
  %2450 = icmp eq i32 %2449, 0
  br i1 %2450, label %2473, label %2451

2451:                                             ; preds = %2445
  %2452 = load i32, ptr %556, align 4, !tbaa !5
  %2453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2454 = call i32 @s2n_print_stacktrace(ptr noundef %2453) #14
  %2455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2456 = trunc nuw i8 %2455 to i1
  br i1 %2456, label %2457, label %2461

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

2461:                                             ; preds = %2457, %2451
  br label %2462

2462:                                             ; preds = %2457, %2461
  %.str.5.sink2237 = phi ptr [ @.str.5, %2461 ], [ @.str.2, %2457 ]
  store i32 %2452, ptr %556, align 4, !tbaa !5
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = load i32, ptr @test_count, align 4, !tbaa !5
  %2465 = load i32, ptr %502, align 4, !tbaa !5
  %2466 = call ptr @s2n_strerror(i32 noundef %2465, ptr noundef nonnull @.str.4) #14
  %2467 = load i32, ptr %502, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror_debug(i32 noundef %2467, ptr noundef nonnull @.str.4) #14
  %2469 = load i32, ptr %556, align 4, !tbaa !5
  %2470 = call ptr @strerror(i32 noundef %2469) #14
  %2471 = load i32, ptr %556, align 4, !tbaa !5
  %2472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2463, ptr noundef nonnull %.str.5.sink2237, i32 noundef %2464, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %2466, ptr noundef %2468, ptr noundef %2470, i32 noundef %2471) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2473:                                             ; preds = %2445
  %2474 = add nsw i32 %2446, 2
  store i32 %2474, ptr @test_count, align 4, !tbaa !5
  %2475 = load ptr, ptr %2032, align 8, !tbaa !48
  %2476 = load ptr, ptr %2475, align 8, !tbaa !49
  %2477 = icmp eq ptr %2476, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %2477, label %2500, label %2478

2478:                                             ; preds = %2473
  %2479 = load i32, ptr %556, align 4, !tbaa !5
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = call i32 @s2n_print_stacktrace(ptr noundef %2480) #14
  %2482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2483 = trunc nuw i8 %2482 to i1
  br i1 %2483, label %2484, label %2488

2484:                                             ; preds = %2478
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = call i32 @fileno(ptr noundef %2485) #14
  %2487 = call i32 @isatty(i32 noundef %2486) #14
  %.not1120 = icmp eq i32 %2487, 0
  br i1 %.not1120, label %2488, label %2489

2488:                                             ; preds = %2484, %2478
  br label %2489

2489:                                             ; preds = %2484, %2488
  %.str.5.sink2246 = phi ptr [ @.str.5, %2488 ], [ @.str.2, %2484 ]
  store i32 %2479, ptr %556, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = load i32, ptr %502, align 4, !tbaa !5
  %2493 = call ptr @s2n_strerror(i32 noundef %2492, ptr noundef nonnull @.str.4) #14
  %2494 = load i32, ptr %502, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror_debug(i32 noundef %2494, ptr noundef nonnull @.str.4) #14
  %2496 = load i32, ptr %556, align 4, !tbaa !5
  %2497 = call ptr @strerror(i32 noundef %2496) #14
  %2498 = load i32, ptr %556, align 4, !tbaa !5
  %2499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2490, ptr noundef nonnull %.str.5.sink2246, i32 noundef %2491, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %2493, ptr noundef %2495, ptr noundef %2497, i32 noundef %2498) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2500:                                             ; preds = %2473
  %2501 = add nsw i32 %2446, 3
  store i32 %2501, ptr @test_count, align 4, !tbaa !5
  %2502 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %2503 = icmp eq i32 %2502, -1
  br i1 %2503, label %2504, label %2526

2504:                                             ; preds = %2500
  %2505 = load i32, ptr %556, align 4, !tbaa !5
  %2506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2507 = call i32 @s2n_print_stacktrace(ptr noundef %2506) #14
  %2508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2509 = trunc nuw i8 %2508 to i1
  br i1 %2509, label %2510, label %2514

2510:                                             ; preds = %2504
  %2511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2512 = call i32 @fileno(ptr noundef %2511) #14
  %2513 = call i32 @isatty(i32 noundef %2512) #14
  %.not1369 = icmp eq i32 %2513, 0
  br i1 %.not1369, label %2514, label %2515

2514:                                             ; preds = %2510, %2504
  br label %2515

2515:                                             ; preds = %2510, %2514
  %.str.5.sink2255 = phi ptr [ @.str.5, %2514 ], [ @.str.2, %2510 ]
  store i32 %2505, ptr %556, align 4, !tbaa !5
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = load i32, ptr @test_count, align 4, !tbaa !5
  %2518 = load i32, ptr %502, align 4, !tbaa !5
  %2519 = call ptr @s2n_strerror(i32 noundef %2518, ptr noundef nonnull @.str.4) #14
  %2520 = load i32, ptr %502, align 4, !tbaa !5
  %2521 = call ptr @s2n_strerror_debug(i32 noundef %2520, ptr noundef nonnull @.str.4) #14
  %2522 = load i32, ptr %556, align 4, !tbaa !5
  %2523 = call ptr @strerror(i32 noundef %2522) #14
  %2524 = load i32, ptr %556, align 4, !tbaa !5
  %2525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2516, ptr noundef nonnull %.str.5.sink2255, i32 noundef %2517, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %2519, ptr noundef %2521, ptr noundef %2523, i32 noundef %2524) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2526:                                             ; preds = %2500
  %2527 = load i32, ptr @test_count, align 4, !tbaa !5
  %2528 = add nsw i32 %2527, 1
  store i32 %2528, ptr @test_count, align 4, !tbaa !5
  %2529 = call i32 @s2n_config_free(ptr noundef nonnull %2114) #14
  %2530 = icmp eq i32 %2529, -1
  br i1 %2530, label %2531, label %2553

2531:                                             ; preds = %2526
  %2532 = load i32, ptr %556, align 4, !tbaa !5
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2534 = call i32 @s2n_print_stacktrace(ptr noundef %2533) #14
  %2535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2536 = trunc nuw i8 %2535 to i1
  br i1 %2536, label %2537, label %2541

2537:                                             ; preds = %2531
  %2538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2539 = call i32 @fileno(ptr noundef %2538) #14
  %2540 = call i32 @isatty(i32 noundef %2539) #14
  %.not1368 = icmp eq i32 %2540, 0
  br i1 %.not1368, label %2541, label %2542

2541:                                             ; preds = %2537, %2531
  br label %2542

2542:                                             ; preds = %2537, %2541
  %.str.5.sink2264 = phi ptr [ @.str.5, %2541 ], [ @.str.2, %2537 ]
  store i32 %2532, ptr %556, align 4, !tbaa !5
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2544 = load i32, ptr @test_count, align 4, !tbaa !5
  %2545 = load i32, ptr %502, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror(i32 noundef %2545, ptr noundef nonnull @.str.4) #14
  %2547 = load i32, ptr %502, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef nonnull @.str.4) #14
  %2549 = load i32, ptr %556, align 4, !tbaa !5
  %2550 = call ptr @strerror(i32 noundef %2549) #14
  %2551 = load i32, ptr %556, align 4, !tbaa !5
  %2552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2543, ptr noundef nonnull %.str.5.sink2264, i32 noundef %2544, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %2546, ptr noundef %2548, ptr noundef %2550, i32 noundef %2551) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2553:                                             ; preds = %2526
  %2554 = load i32, ptr @test_count, align 4, !tbaa !5
  %2555 = add nsw i32 %2554, 1
  store i32 %2555, ptr @test_count, align 4, !tbaa !5
  %2556 = call ptr @s2n_config_new() #14
  %2557 = icmp eq ptr %2556, null
  br i1 %2557, label %2558, label %2580

2558:                                             ; preds = %2553
  %2559 = load i32, ptr %556, align 4, !tbaa !5
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = call i32 @s2n_print_stacktrace(ptr noundef %2560) #14
  %2562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2563 = trunc nuw i8 %2562 to i1
  br i1 %2563, label %2564, label %2568

2564:                                             ; preds = %2558
  %2565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2566 = call i32 @fileno(ptr noundef %2565) #14
  %2567 = call i32 @isatty(i32 noundef %2566) #14
  %.not1367 = icmp eq i32 %2567, 0
  br i1 %.not1367, label %2568, label %2569

2568:                                             ; preds = %2564, %2558
  br label %2569

2569:                                             ; preds = %2564, %2568
  %.str.5.sink2273 = phi ptr [ @.str.5, %2568 ], [ @.str.2, %2564 ]
  store i32 %2559, ptr %556, align 4, !tbaa !5
  %2570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2571 = load i32, ptr @test_count, align 4, !tbaa !5
  %2572 = load i32, ptr %502, align 4, !tbaa !5
  %2573 = call ptr @s2n_strerror(i32 noundef %2572, ptr noundef nonnull @.str.4) #14
  %2574 = load i32, ptr %502, align 4, !tbaa !5
  %2575 = call ptr @s2n_strerror_debug(i32 noundef %2574, ptr noundef nonnull @.str.4) #14
  %2576 = load i32, ptr %556, align 4, !tbaa !5
  %2577 = call ptr @strerror(i32 noundef %2576) #14
  %2578 = load i32, ptr %556, align 4, !tbaa !5
  %2579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2570, ptr noundef nonnull %.str.5.sink2273, i32 noundef %2571, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %2573, ptr noundef %2575, ptr noundef %2577, i32 noundef %2578) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2580:                                             ; preds = %2553
  %2581 = load i32, ptr @test_count, align 4, !tbaa !5
  %2582 = add nsw i32 %2581, 1
  store i32 %2582, ptr @test_count, align 4, !tbaa !5
  %2583 = load ptr, ptr %9, align 8, !tbaa !9
  %2584 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2556, ptr noundef %2583) #14
  %2585 = icmp eq i32 %2584, -1
  br i1 %2585, label %2586, label %2608

2586:                                             ; preds = %2580
  %2587 = load i32, ptr %556, align 4, !tbaa !5
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @s2n_print_stacktrace(ptr noundef %2588) #14
  %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) #14
  %2595 = call i32 @isatty(i32 noundef %2594) #14
  %.not1366 = icmp eq i32 %2595, 0
  br i1 %.not1366, label %2596, label %2597

2596:                                             ; preds = %2592, %2586
  br label %2597

2597:                                             ; preds = %2592, %2596
  %.str.5.sink2282 = phi ptr [ @.str.5, %2596 ], [ @.str.2, %2592 ]
  store i32 %2587, ptr %556, 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 %502, align 4, !tbaa !5
  %2601 = call ptr @s2n_strerror(i32 noundef %2600, ptr noundef nonnull @.str.4) #14
  %2602 = load i32, ptr %502, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror_debug(i32 noundef %2602, ptr noundef nonnull @.str.4) #14
  %2604 = load i32, ptr %556, align 4, !tbaa !5
  %2605 = call ptr @strerror(i32 noundef %2604) #14
  %2606 = load i32, ptr %556, align 4, !tbaa !5
  %2607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2598, ptr noundef nonnull %.str.5.sink2282, i32 noundef %2599, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %2601, ptr noundef %2603, ptr noundef %2605, i32 noundef %2606) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2608:                                             ; preds = %2580
  %2609 = load i32, ptr @test_count, align 4, !tbaa !5
  %2610 = add nsw i32 %2609, 1
  store i32 %2610, ptr @test_count, align 4, !tbaa !5
  %2611 = load ptr, ptr %10, align 8, !tbaa !9
  %2612 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %2556, ptr noundef %2611) #14
  %2613 = icmp eq i32 %2612, -1
  br i1 %2613, label %2614, label %2636

2614:                                             ; preds = %2608
  %2615 = load i32, ptr %556, align 4, !tbaa !5
  %2616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2617 = call i32 @s2n_print_stacktrace(ptr noundef %2616) #14
  %2618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2619 = trunc nuw i8 %2618 to i1
  br i1 %2619, label %2620, label %2624

2620:                                             ; preds = %2614
  %2621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2622 = call i32 @fileno(ptr noundef %2621) #14
  %2623 = call i32 @isatty(i32 noundef %2622) #14
  %.not1365 = icmp eq i32 %2623, 0
  br i1 %.not1365, label %2624, label %2625

2624:                                             ; preds = %2620, %2614
  br label %2625

2625:                                             ; preds = %2620, %2624
  %.str.5.sink2291 = phi ptr [ @.str.5, %2624 ], [ @.str.2, %2620 ]
  store i32 %2615, ptr %556, align 4, !tbaa !5
  %2626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2627 = load i32, ptr @test_count, align 4, !tbaa !5
  %2628 = load i32, ptr %502, align 4, !tbaa !5
  %2629 = call ptr @s2n_strerror(i32 noundef %2628, ptr noundef nonnull @.str.4) #14
  %2630 = load i32, ptr %502, align 4, !tbaa !5
  %2631 = call ptr @s2n_strerror_debug(i32 noundef %2630, ptr noundef nonnull @.str.4) #14
  %2632 = load i32, ptr %556, align 4, !tbaa !5
  %2633 = call ptr @strerror(i32 noundef %2632) #14
  %2634 = load i32, ptr %556, align 4, !tbaa !5
  %2635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2626, ptr noundef nonnull %.str.5.sink2291, i32 noundef %2627, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %2629, ptr noundef %2631, ptr noundef %2633, i32 noundef %2634) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2636:                                             ; preds = %2608
  %2637 = load i32, ptr @test_count, align 4, !tbaa !5
  %2638 = add nsw i32 %2637, 1
  store i32 %2638, ptr @test_count, align 4, !tbaa !5
  %2639 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %2556) #14
  %2640 = icmp eq i32 %2639, -1
  br i1 %2640, label %2641, label %2663

2641:                                             ; preds = %2636
  %2642 = load i32, ptr %556, align 4, !tbaa !5
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = call i32 @s2n_print_stacktrace(ptr noundef %2643) #14
  %2645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2646 = trunc nuw i8 %2645 to i1
  br i1 %2646, label %2647, label %2651

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

2651:                                             ; preds = %2647, %2641
  br label %2652

2652:                                             ; preds = %2647, %2651
  %.str.5.sink2300 = phi ptr [ @.str.5, %2651 ], [ @.str.2, %2647 ]
  store i32 %2642, ptr %556, align 4, !tbaa !5
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = load i32, ptr @test_count, align 4, !tbaa !5
  %2655 = load i32, ptr %502, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror(i32 noundef %2655, ptr noundef nonnull @.str.4) #14
  %2657 = load i32, ptr %502, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror_debug(i32 noundef %2657, ptr noundef nonnull @.str.4) #14
  %2659 = load i32, ptr %556, align 4, !tbaa !5
  %2660 = call ptr @strerror(i32 noundef %2659) #14
  %2661 = load i32, ptr %556, align 4, !tbaa !5
  %2662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2653, ptr noundef nonnull %.str.5.sink2300, i32 noundef %2654, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 378, ptr noundef %2656, ptr noundef %2658, ptr noundef %2660, i32 noundef %2661) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2663:                                             ; preds = %2636
  %2664 = load i32, ptr @test_count, align 4, !tbaa !5
  %2665 = add nsw i32 %2664, 1
  store i32 %2665, ptr @test_count, align 4, !tbaa !5
  %2666 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.72) #14
  %2667 = icmp eq i32 %2666, -1
  br i1 %2667, label %2668, label %2690

2668:                                             ; preds = %2663
  %2669 = load i32, ptr %556, align 4, !tbaa !5
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = call i32 @s2n_print_stacktrace(ptr noundef %2670) #14
  %2672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2673 = trunc nuw i8 %2672 to i1
  br i1 %2673, label %2674, label %2678

2674:                                             ; preds = %2668
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = call i32 @fileno(ptr noundef %2675) #14
  %2677 = call i32 @isatty(i32 noundef %2676) #14
  %.not1363 = icmp eq i32 %2677, 0
  br i1 %.not1363, label %2678, label %2679

2678:                                             ; preds = %2674, %2668
  br label %2679

2679:                                             ; preds = %2674, %2678
  %.str.5.sink2309 = phi ptr [ @.str.5, %2678 ], [ @.str.2, %2674 ]
  store i32 %2669, ptr %556, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = load i32, ptr %502, align 4, !tbaa !5
  %2683 = call ptr @s2n_strerror(i32 noundef %2682, ptr noundef nonnull @.str.4) #14
  %2684 = load i32, ptr %502, align 4, !tbaa !5
  %2685 = call ptr @s2n_strerror_debug(i32 noundef %2684, ptr noundef nonnull @.str.4) #14
  %2686 = load i32, ptr %556, align 4, !tbaa !5
  %2687 = call ptr @strerror(i32 noundef %2686) #14
  %2688 = load i32, ptr %556, align 4, !tbaa !5
  %2689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2680, ptr noundef nonnull %.str.5.sink2309, i32 noundef %2681, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 383, ptr noundef %2683, ptr noundef %2685, ptr noundef %2687, i32 noundef %2688) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2690:                                             ; preds = %2663
  %2691 = load ptr, ptr %17, align 8, !tbaa !9
  %2692 = getelementptr inbounds i8, ptr %2691, i64 8
  %2693 = load ptr, ptr %2692, align 8, !tbaa !54
  %2694 = load ptr, ptr %2693, align 8, !tbaa !9
  store ptr %2694, ptr %1974, align 8, !tbaa !56
  %2695 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %2695, ptr %1405, align 4, !tbaa !42
  %2696 = load i32, ptr @test_count, align 4, !tbaa !5
  %2697 = add nsw i32 %2696, 1
  store i32 %2697, ptr @test_count, align 4, !tbaa !5
  %2698 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %2556) #14
  %2699 = icmp eq i32 %2698, -1
  br i1 %2699, label %2700, label %2722

2700:                                             ; preds = %2690
  %2701 = load i32, ptr %556, align 4, !tbaa !5
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = call i32 @s2n_print_stacktrace(ptr noundef %2702) #14
  %2704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2705 = trunc nuw i8 %2704 to i1
  br i1 %2705, label %2706, label %2710

2706:                                             ; preds = %2700
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = call i32 @fileno(ptr noundef %2707) #14
  %2709 = call i32 @isatty(i32 noundef %2708) #14
  %.not1362 = icmp eq i32 %2709, 0
  br i1 %.not1362, label %2710, label %2711

2710:                                             ; preds = %2706, %2700
  br label %2711

2711:                                             ; preds = %2706, %2710
  %.str.5.sink2318 = phi ptr [ @.str.5, %2710 ], [ @.str.2, %2706 ]
  store i32 %2701, ptr %556, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = load i32, ptr %502, align 4, !tbaa !5
  %2715 = call ptr @s2n_strerror(i32 noundef %2714, ptr noundef nonnull @.str.4) #14
  %2716 = load i32, ptr %502, align 4, !tbaa !5
  %2717 = call ptr @s2n_strerror_debug(i32 noundef %2716, ptr noundef nonnull @.str.4) #14
  %2718 = load i32, ptr %556, align 4, !tbaa !5
  %2719 = call ptr @strerror(i32 noundef %2718) #14
  %2720 = load i32, ptr %556, align 4, !tbaa !5
  %2721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2712, ptr noundef nonnull %.str.5.sink2318, i32 noundef %2713, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %2715, ptr noundef %2717, ptr noundef %2719, i32 noundef %2720) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2722:                                             ; preds = %2690
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = add nsw i32 %2723, 1
  store i32 %2724, ptr @test_count, align 4, !tbaa !5
  %2725 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %2726 = icmp eq i32 %2725, -1
  br i1 %2726, label %2727, label %2749

2727:                                             ; preds = %2722
  %2728 = load i32, ptr %556, align 4, !tbaa !5
  %2729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2730 = call i32 @s2n_print_stacktrace(ptr noundef %2729) #14
  %2731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2732 = trunc nuw i8 %2731 to i1
  br i1 %2732, label %2733, label %2737

2733:                                             ; preds = %2727
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = call i32 @fileno(ptr noundef %2734) #14
  %2736 = call i32 @isatty(i32 noundef %2735) #14
  %.not1361 = icmp eq i32 %2736, 0
  br i1 %.not1361, label %2737, label %2738

2737:                                             ; preds = %2733, %2727
  br label %2738

2738:                                             ; preds = %2733, %2737
  %.str.5.sink2327 = phi ptr [ @.str.5, %2737 ], [ @.str.2, %2733 ]
  store i32 %2728, ptr %556, align 4, !tbaa !5
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = load i32, ptr @test_count, align 4, !tbaa !5
  %2741 = load i32, ptr %502, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror(i32 noundef %2741, ptr noundef nonnull @.str.4) #14
  %2743 = load i32, ptr %502, align 4, !tbaa !5
  %2744 = call ptr @s2n_strerror_debug(i32 noundef %2743, ptr noundef nonnull @.str.4) #14
  %2745 = load i32, ptr %556, align 4, !tbaa !5
  %2746 = call ptr @strerror(i32 noundef %2745) #14
  %2747 = load i32, ptr %556, align 4, !tbaa !5
  %2748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2739, ptr noundef nonnull %.str.5.sink2327, i32 noundef %2740, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %2742, ptr noundef %2744, ptr noundef %2746, i32 noundef %2747) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2749:                                             ; preds = %2722
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = add nsw i32 %2750, 1
  store i32 %2751, ptr @test_count, align 4, !tbaa !5
  %2752 = load i32, ptr %1051, align 8
  %2753 = and i32 %2752, 8
  %2754 = icmp eq i32 %2753, 0
  br i1 %2754, label %2777, label %2755

2755:                                             ; preds = %2749
  %2756 = load i32, ptr %556, align 4, !tbaa !5
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = call i32 @s2n_print_stacktrace(ptr noundef %2757) #14
  %2759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2760 = trunc nuw i8 %2759 to i1
  br i1 %2760, label %2761, label %2765

2761:                                             ; preds = %2755
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @fileno(ptr noundef %2762) #14
  %2764 = call i32 @isatty(i32 noundef %2763) #14
  %.not1121 = icmp eq i32 %2764, 0
  br i1 %.not1121, label %2765, label %2766

2765:                                             ; preds = %2761, %2755
  br label %2766

2766:                                             ; preds = %2761, %2765
  %.str.5.sink2336 = phi ptr [ @.str.5, %2765 ], [ @.str.2, %2761 ]
  store i32 %2756, ptr %556, align 4, !tbaa !5
  %2767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2768 = load i32, ptr @test_count, align 4, !tbaa !5
  %2769 = load i32, ptr %502, align 4, !tbaa !5
  %2770 = call ptr @s2n_strerror(i32 noundef %2769, ptr noundef nonnull @.str.4) #14
  %2771 = load i32, ptr %502, align 4, !tbaa !5
  %2772 = call ptr @s2n_strerror_debug(i32 noundef %2771, ptr noundef nonnull @.str.4) #14
  %2773 = load i32, ptr %556, align 4, !tbaa !5
  %2774 = call ptr @strerror(i32 noundef %2773) #14
  %2775 = load i32, ptr %556, align 4, !tbaa !5
  %2776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2767, ptr noundef nonnull %.str.5.sink2336, i32 noundef %2768, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 388, ptr noundef %2770, ptr noundef %2772, ptr noundef %2774, i32 noundef %2775) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2777:                                             ; preds = %2749
  %2778 = add nsw i32 %2750, 2
  store i32 %2778, ptr @test_count, align 4, !tbaa !5
  %2779 = load ptr, ptr %2032, align 8, !tbaa !48
  %2780 = load ptr, ptr %2779, align 8, !tbaa !49
  %2781 = icmp eq ptr %2780, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %2781, label %2804, label %2782

2782:                                             ; preds = %2777
  %2783 = load i32, ptr %556, align 4, !tbaa !5
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = call i32 @s2n_print_stacktrace(ptr noundef %2784) #14
  %2786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2787 = trunc nuw i8 %2786 to i1
  br i1 %2787, label %2788, label %2792

2788:                                             ; preds = %2782
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = call i32 @fileno(ptr noundef %2789) #14
  %2791 = call i32 @isatty(i32 noundef %2790) #14
  %.not1122 = icmp eq i32 %2791, 0
  br i1 %.not1122, label %2792, label %2793

2792:                                             ; preds = %2788, %2782
  br label %2793

2793:                                             ; preds = %2788, %2792
  %.str.5.sink2345 = phi ptr [ @.str.5, %2792 ], [ @.str.2, %2788 ]
  store i32 %2783, ptr %556, align 4, !tbaa !5
  %2794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2795 = load i32, ptr @test_count, align 4, !tbaa !5
  %2796 = load i32, ptr %502, align 4, !tbaa !5
  %2797 = call ptr @s2n_strerror(i32 noundef %2796, ptr noundef nonnull @.str.4) #14
  %2798 = load i32, ptr %502, align 4, !tbaa !5
  %2799 = call ptr @s2n_strerror_debug(i32 noundef %2798, ptr noundef nonnull @.str.4) #14
  %2800 = load i32, ptr %556, align 4, !tbaa !5
  %2801 = call ptr @strerror(i32 noundef %2800) #14
  %2802 = load i32, ptr %556, align 4, !tbaa !5
  %2803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2794, ptr noundef nonnull %.str.5.sink2345, i32 noundef %2795, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 389, ptr noundef %2797, ptr noundef %2799, ptr noundef %2801, i32 noundef %2802) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2804:                                             ; preds = %2777
  %2805 = add nsw i32 %2750, 3
  store i32 %2805, ptr @test_count, align 4, !tbaa !5
  %2806 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %2807 = icmp eq i32 %2806, -1
  br i1 %2807, label %2808, label %2830

2808:                                             ; preds = %2804
  %2809 = load i32, ptr %556, align 4, !tbaa !5
  %2810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2811 = call i32 @s2n_print_stacktrace(ptr noundef %2810) #14
  %2812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2813 = trunc nuw i8 %2812 to i1
  br i1 %2813, label %2814, label %2818

2814:                                             ; preds = %2808
  %2815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2816 = call i32 @fileno(ptr noundef %2815) #14
  %2817 = call i32 @isatty(i32 noundef %2816) #14
  %.not1360 = icmp eq i32 %2817, 0
  br i1 %.not1360, label %2818, label %2819

2818:                                             ; preds = %2814, %2808
  br label %2819

2819:                                             ; preds = %2814, %2818
  %.str.5.sink2354 = phi ptr [ @.str.5, %2818 ], [ @.str.2, %2814 ]
  store i32 %2809, ptr %556, align 4, !tbaa !5
  %2820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2821 = load i32, ptr @test_count, align 4, !tbaa !5
  %2822 = load i32, ptr %502, align 4, !tbaa !5
  %2823 = call ptr @s2n_strerror(i32 noundef %2822, ptr noundef nonnull @.str.4) #14
  %2824 = load i32, ptr %502, align 4, !tbaa !5
  %2825 = call ptr @s2n_strerror_debug(i32 noundef %2824, ptr noundef nonnull @.str.4) #14
  %2826 = load i32, ptr %556, align 4, !tbaa !5
  %2827 = call ptr @strerror(i32 noundef %2826) #14
  %2828 = load i32, ptr %556, align 4, !tbaa !5
  %2829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2820, ptr noundef nonnull %.str.5.sink2354, i32 noundef %2821, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 390, ptr noundef %2823, ptr noundef %2825, ptr noundef %2827, i32 noundef %2828) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2830:                                             ; preds = %2804
  %2831 = load i32, ptr @test_count, align 4, !tbaa !5
  %2832 = add nsw i32 %2831, 1
  store i32 %2832, ptr @test_count, align 4, !tbaa !5
  %2833 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %2834 = icmp eq i32 %2833, -1
  br i1 %2834, label %2835, label %2857

2835:                                             ; preds = %2830
  %2836 = load i32, ptr %556, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = call i32 @s2n_print_stacktrace(ptr noundef %2837) #14
  %2839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2840 = trunc nuw i8 %2839 to i1
  br i1 %2840, label %2841, label %2845

2841:                                             ; preds = %2835
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = call i32 @fileno(ptr noundef %2842) #14
  %2844 = call i32 @isatty(i32 noundef %2843) #14
  %.not1359 = icmp eq i32 %2844, 0
  br i1 %.not1359, label %2845, label %2846

2845:                                             ; preds = %2841, %2835
  br label %2846

2846:                                             ; preds = %2841, %2845
  %.str.5.sink2363 = phi ptr [ @.str.5, %2845 ], [ @.str.2, %2841 ]
  store i32 %2836, ptr %556, align 4, !tbaa !5
  %2847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2848 = load i32, ptr @test_count, align 4, !tbaa !5
  %2849 = load i32, ptr %502, align 4, !tbaa !5
  %2850 = call ptr @s2n_strerror(i32 noundef %2849, ptr noundef nonnull @.str.4) #14
  %2851 = load i32, ptr %502, align 4, !tbaa !5
  %2852 = call ptr @s2n_strerror_debug(i32 noundef %2851, ptr noundef nonnull @.str.4) #14
  %2853 = load i32, ptr %556, align 4, !tbaa !5
  %2854 = call ptr @strerror(i32 noundef %2853) #14
  %2855 = load i32, ptr %556, align 4, !tbaa !5
  %2856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2847, ptr noundef nonnull %.str.5.sink2363, i32 noundef %2848, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 396, ptr noundef %2850, ptr noundef %2852, ptr noundef %2854, i32 noundef %2855) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2857:                                             ; preds = %2830
  %2858 = load ptr, ptr %17, align 8, !tbaa !9
  %2859 = getelementptr inbounds i8, ptr %2858, i64 8
  %2860 = load ptr, ptr %2859, align 8, !tbaa !54
  %2861 = load ptr, ptr %2860, align 8, !tbaa !9
  store ptr %2861, ptr %1974, align 8, !tbaa !56
  %2862 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %2862, ptr %1405, align 4, !tbaa !42
  %2863 = load i32, ptr @test_count, align 4, !tbaa !5
  %2864 = add nsw i32 %2863, 1
  store i32 %2864, ptr @test_count, align 4, !tbaa !5
  %2865 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %2556) #14
  %2866 = icmp eq i32 %2865, -1
  br i1 %2866, label %2867, label %2889

2867:                                             ; preds = %2857
  %2868 = load i32, ptr %556, align 4, !tbaa !5
  %2869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2870 = call i32 @s2n_print_stacktrace(ptr noundef %2869) #14
  %2871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2872 = trunc nuw i8 %2871 to i1
  br i1 %2872, label %2873, label %2877

2873:                                             ; preds = %2867
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = call i32 @fileno(ptr noundef %2874) #14
  %2876 = call i32 @isatty(i32 noundef %2875) #14
  %.not1358 = icmp eq i32 %2876, 0
  br i1 %.not1358, label %2877, label %2878

2877:                                             ; preds = %2873, %2867
  br label %2878

2878:                                             ; preds = %2873, %2877
  %.str.5.sink2372 = phi ptr [ @.str.5, %2877 ], [ @.str.2, %2873 ]
  store i32 %2868, ptr %556, align 4, !tbaa !5
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = load i32, ptr @test_count, align 4, !tbaa !5
  %2881 = load i32, ptr %502, align 4, !tbaa !5
  %2882 = call ptr @s2n_strerror(i32 noundef %2881, ptr noundef nonnull @.str.4) #14
  %2883 = load i32, ptr %502, align 4, !tbaa !5
  %2884 = call ptr @s2n_strerror_debug(i32 noundef %2883, ptr noundef nonnull @.str.4) #14
  %2885 = load i32, ptr %556, align 4, !tbaa !5
  %2886 = call ptr @strerror(i32 noundef %2885) #14
  %2887 = load i32, ptr %556, align 4, !tbaa !5
  %2888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2879, ptr noundef nonnull %.str.5.sink2372, i32 noundef %2880, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 399, ptr noundef %2882, ptr noundef %2884, ptr noundef %2886, i32 noundef %2887) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2889:                                             ; preds = %2857
  %2890 = load i32, ptr @test_count, align 4, !tbaa !5
  %2891 = add nsw i32 %2890, 1
  store i32 %2891, ptr @test_count, align 4, !tbaa !5
  %2892 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %2893 = icmp eq i32 %2892, -1
  br i1 %2893, label %2894, label %2916

2894:                                             ; preds = %2889
  %2895 = load i32, ptr %556, align 4, !tbaa !5
  %2896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2897 = call i32 @s2n_print_stacktrace(ptr noundef %2896) #14
  %2898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2899 = trunc nuw i8 %2898 to i1
  br i1 %2899, label %2900, label %2904

2900:                                             ; preds = %2894
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = call i32 @fileno(ptr noundef %2901) #14
  %2903 = call i32 @isatty(i32 noundef %2902) #14
  %.not1357 = icmp eq i32 %2903, 0
  br i1 %.not1357, label %2904, label %2905

2904:                                             ; preds = %2900, %2894
  br label %2905

2905:                                             ; preds = %2900, %2904
  %.str.5.sink2381 = phi ptr [ @.str.5, %2904 ], [ @.str.2, %2900 ]
  store i32 %2895, ptr %556, align 4, !tbaa !5
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2907 = load i32, ptr @test_count, align 4, !tbaa !5
  %2908 = load i32, ptr %502, align 4, !tbaa !5
  %2909 = call ptr @s2n_strerror(i32 noundef %2908, ptr noundef nonnull @.str.4) #14
  %2910 = load i32, ptr %502, align 4, !tbaa !5
  %2911 = call ptr @s2n_strerror_debug(i32 noundef %2910, ptr noundef nonnull @.str.4) #14
  %2912 = load i32, ptr %556, align 4, !tbaa !5
  %2913 = call ptr @strerror(i32 noundef %2912) #14
  %2914 = load i32, ptr %556, align 4, !tbaa !5
  %2915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2906, ptr noundef nonnull %.str.5.sink2381, i32 noundef %2907, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %2909, ptr noundef %2911, ptr noundef %2913, i32 noundef %2914) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2916:                                             ; preds = %2889
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = add nsw i32 %2917, 1
  store i32 %2918, ptr @test_count, align 4, !tbaa !5
  %2919 = load i32, ptr %1051, align 8
  %2920 = and i32 %2919, 8
  %2921 = icmp eq i32 %2920, 0
  br i1 %2921, label %2944, label %2922

2922:                                             ; preds = %2916
  %2923 = load i32, ptr %556, align 4, !tbaa !5
  %2924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2925 = call i32 @s2n_print_stacktrace(ptr noundef %2924) #14
  %2926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2927 = trunc nuw i8 %2926 to i1
  br i1 %2927, label %2928, label %2932

2928:                                             ; preds = %2922
  %2929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2930 = call i32 @fileno(ptr noundef %2929) #14
  %2931 = call i32 @isatty(i32 noundef %2930) #14
  %.not1123 = icmp eq i32 %2931, 0
  br i1 %.not1123, label %2932, label %2933

2932:                                             ; preds = %2928, %2922
  br label %2933

2933:                                             ; preds = %2928, %2932
  %.str.5.sink2390 = phi ptr [ @.str.5, %2932 ], [ @.str.2, %2928 ]
  store i32 %2923, ptr %556, align 4, !tbaa !5
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = load i32, ptr @test_count, align 4, !tbaa !5
  %2936 = load i32, ptr %502, align 4, !tbaa !5
  %2937 = call ptr @s2n_strerror(i32 noundef %2936, ptr noundef nonnull @.str.4) #14
  %2938 = load i32, ptr %502, align 4, !tbaa !5
  %2939 = call ptr @s2n_strerror_debug(i32 noundef %2938, ptr noundef nonnull @.str.4) #14
  %2940 = load i32, ptr %556, align 4, !tbaa !5
  %2941 = call ptr @strerror(i32 noundef %2940) #14
  %2942 = load i32, ptr %556, align 4, !tbaa !5
  %2943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2934, ptr noundef nonnull %.str.5.sink2390, i32 noundef %2935, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 401, ptr noundef %2937, ptr noundef %2939, ptr noundef %2941, i32 noundef %2942) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2944:                                             ; preds = %2916
  %2945 = add nsw i32 %2917, 2
  store i32 %2945, ptr @test_count, align 4, !tbaa !5
  %2946 = load ptr, ptr %2032, align 8, !tbaa !48
  %2947 = load ptr, ptr %2946, align 8, !tbaa !49
  %2948 = icmp eq ptr %2947, @s2n_ecdhe_rsa_with_aes_128_cbc_sha
  br i1 %2948, label %2971, label %2949

2949:                                             ; preds = %2944
  %2950 = load i32, ptr %556, align 4, !tbaa !5
  %2951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2952 = call i32 @s2n_print_stacktrace(ptr noundef %2951) #14
  %2953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2954 = trunc nuw i8 %2953 to i1
  br i1 %2954, label %2955, label %2959

2955:                                             ; preds = %2949
  %2956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2957 = call i32 @fileno(ptr noundef %2956) #14
  %2958 = call i32 @isatty(i32 noundef %2957) #14
  %.not1124 = icmp eq i32 %2958, 0
  br i1 %.not1124, label %2959, label %2960

2959:                                             ; preds = %2955, %2949
  br label %2960

2960:                                             ; preds = %2955, %2959
  %.str.5.sink2399 = phi ptr [ @.str.5, %2959 ], [ @.str.2, %2955 ]
  store i32 %2950, ptr %556, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = load i32, ptr @test_count, align 4, !tbaa !5
  %2963 = load i32, ptr %502, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror(i32 noundef %2963, ptr noundef nonnull @.str.4) #14
  %2965 = load i32, ptr %502, align 4, !tbaa !5
  %2966 = call ptr @s2n_strerror_debug(i32 noundef %2965, ptr noundef nonnull @.str.4) #14
  %2967 = load i32, ptr %556, align 4, !tbaa !5
  %2968 = call ptr @strerror(i32 noundef %2967) #14
  %2969 = load i32, ptr %556, align 4, !tbaa !5
  %2970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2961, ptr noundef nonnull %.str.5.sink2399, i32 noundef %2962, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %2964, ptr noundef %2966, ptr noundef %2968, i32 noundef %2969) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2971:                                             ; preds = %2944
  %2972 = add nsw i32 %2917, 3
  store i32 %2972, ptr @test_count, align 4, !tbaa !5
  %2973 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %2974 = icmp eq i32 %2973, -1
  br i1 %2974, label %2975, label %2997

2975:                                             ; preds = %2971
  %2976 = load i32, ptr %556, align 4, !tbaa !5
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = call i32 @s2n_print_stacktrace(ptr noundef %2977) #14
  %2979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2980 = trunc nuw i8 %2979 to i1
  br i1 %2980, label %2981, label %2985

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

2985:                                             ; preds = %2981, %2975
  br label %2986

2986:                                             ; preds = %2981, %2985
  %.str.5.sink2408 = phi ptr [ @.str.5, %2985 ], [ @.str.2, %2981 ]
  store i32 %2976, ptr %556, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = load i32, ptr %502, align 4, !tbaa !5
  %2990 = call ptr @s2n_strerror(i32 noundef %2989, ptr noundef nonnull @.str.4) #14
  %2991 = load i32, ptr %502, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror_debug(i32 noundef %2991, ptr noundef nonnull @.str.4) #14
  %2993 = load i32, ptr %556, align 4, !tbaa !5
  %2994 = call ptr @strerror(i32 noundef %2993) #14
  %2995 = load i32, ptr %556, align 4, !tbaa !5
  %2996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2987, ptr noundef nonnull %.str.5.sink2408, i32 noundef %2988, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 403, ptr noundef %2990, ptr noundef %2992, ptr noundef %2994, i32 noundef %2995) #16
  call void @exit(i32 noundef 1) #17
  unreachable

2997:                                             ; preds = %2971
  %2998 = load i32, ptr @test_count, align 4, !tbaa !5
  %2999 = add nsw i32 %2998, 1
  store i32 %2999, ptr @test_count, align 4, !tbaa !5
  %3000 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.85) #14
  %3001 = icmp eq i32 %3000, -1
  br i1 %3001, label %3002, label %3024

3002:                                             ; preds = %2997
  %3003 = load i32, ptr %556, align 4, !tbaa !5
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = call i32 @s2n_print_stacktrace(ptr noundef %3004) #14
  %3006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3007 = trunc nuw i8 %3006 to i1
  br i1 %3007, label %3008, label %3012

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

3012:                                             ; preds = %3008, %3002
  br label %3013

3013:                                             ; preds = %3008, %3012
  %.str.5.sink2417 = phi ptr [ @.str.5, %3012 ], [ @.str.2, %3008 ]
  store i32 %3003, ptr %556, align 4, !tbaa !5
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = load i32, ptr @test_count, align 4, !tbaa !5
  %3016 = load i32, ptr %502, align 4, !tbaa !5
  %3017 = call ptr @s2n_strerror(i32 noundef %3016, ptr noundef nonnull @.str.4) #14
  %3018 = load i32, ptr %502, align 4, !tbaa !5
  %3019 = call ptr @s2n_strerror_debug(i32 noundef %3018, ptr noundef nonnull @.str.4) #14
  %3020 = load i32, ptr %556, align 4, !tbaa !5
  %3021 = call ptr @strerror(i32 noundef %3020) #14
  %3022 = load i32, ptr %556, align 4, !tbaa !5
  %3023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3014, ptr noundef nonnull %.str.5.sink2417, i32 noundef %3015, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 412, ptr noundef %3017, ptr noundef %3019, ptr noundef %3021, i32 noundef %3022) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3024:                                             ; preds = %2997
  %3025 = load ptr, ptr %17, align 8, !tbaa !9
  %3026 = getelementptr inbounds i8, ptr %3025, i64 8
  %3027 = load ptr, ptr %3026, align 8, !tbaa !54
  %3028 = load ptr, ptr %3027, align 8, !tbaa !9
  store ptr %3028, ptr %1974, align 8, !tbaa !56
  %3029 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %3029, ptr %1405, align 4, !tbaa !42
  %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 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %2556) #14
  %3033 = icmp eq i32 %3032, -1
  br i1 %3033, label %3034, label %3056

3034:                                             ; preds = %3024
  %3035 = load i32, ptr %556, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = call i32 @s2n_print_stacktrace(ptr noundef %3036) #14
  %3038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3039 = trunc nuw i8 %3038 to i1
  br i1 %3039, label %3040, label %3044

3040:                                             ; preds = %3034
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @fileno(ptr noundef %3041) #14
  %3043 = call i32 @isatty(i32 noundef %3042) #14
  %.not1354 = icmp eq i32 %3043, 0
  br i1 %.not1354, label %3044, label %3045

3044:                                             ; preds = %3040, %3034
  br label %3045

3045:                                             ; preds = %3040, %3044
  %.str.5.sink2426 = phi ptr [ @.str.5, %3044 ], [ @.str.2, %3040 ]
  store i32 %3035, ptr %556, align 4, !tbaa !5
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = load i32, ptr @test_count, align 4, !tbaa !5
  %3048 = load i32, ptr %502, align 4, !tbaa !5
  %3049 = call ptr @s2n_strerror(i32 noundef %3048, ptr noundef nonnull @.str.4) #14
  %3050 = load i32, ptr %502, align 4, !tbaa !5
  %3051 = call ptr @s2n_strerror_debug(i32 noundef %3050, ptr noundef nonnull @.str.4) #14
  %3052 = load i32, ptr %556, align 4, !tbaa !5
  %3053 = call ptr @strerror(i32 noundef %3052) #14
  %3054 = load i32, ptr %556, align 4, !tbaa !5
  %3055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3046, ptr noundef nonnull %.str.5.sink2426, i32 noundef %3047, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %3049, ptr noundef %3051, ptr noundef %3053, i32 noundef %3054) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3056:                                             ; preds = %3024
  %3057 = load i32, ptr @test_count, align 4, !tbaa !5
  %3058 = add nsw i32 %3057, 1
  store i32 %3058, ptr @test_count, align 4, !tbaa !5
  %3059 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %3060 = icmp eq i32 %3059, -1
  br i1 %3060, label %3061, label %3083

3061:                                             ; preds = %3056
  %3062 = load i32, ptr %556, align 4, !tbaa !5
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = call i32 @s2n_print_stacktrace(ptr noundef %3063) #14
  %3065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3066 = trunc nuw i8 %3065 to i1
  br i1 %3066, label %3067, label %3071

3067:                                             ; preds = %3061
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = call i32 @fileno(ptr noundef %3068) #14
  %3070 = call i32 @isatty(i32 noundef %3069) #14
  %.not1353 = icmp eq i32 %3070, 0
  br i1 %.not1353, label %3071, label %3072

3071:                                             ; preds = %3067, %3061
  br label %3072

3072:                                             ; preds = %3067, %3071
  %.str.5.sink2435 = phi ptr [ @.str.5, %3071 ], [ @.str.2, %3067 ]
  store i32 %3062, ptr %556, align 4, !tbaa !5
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = load i32, ptr @test_count, align 4, !tbaa !5
  %3075 = load i32, ptr %502, align 4, !tbaa !5
  %3076 = call ptr @s2n_strerror(i32 noundef %3075, ptr noundef nonnull @.str.4) #14
  %3077 = load i32, ptr %502, align 4, !tbaa !5
  %3078 = call ptr @s2n_strerror_debug(i32 noundef %3077, ptr noundef nonnull @.str.4) #14
  %3079 = load i32, ptr %556, align 4, !tbaa !5
  %3080 = call ptr @strerror(i32 noundef %3079) #14
  %3081 = load i32, ptr %556, align 4, !tbaa !5
  %3082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3073, ptr noundef nonnull %.str.5.sink2435, i32 noundef %3074, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %3076, ptr noundef %3078, ptr noundef %3080, i32 noundef %3081) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3083:                                             ; preds = %3056
  %3084 = load i32, ptr @test_count, align 4, !tbaa !5
  %3085 = add nsw i32 %3084, 1
  store i32 %3085, ptr @test_count, align 4, !tbaa !5
  %3086 = load i32, ptr %1051, align 8
  %3087 = and i32 %3086, 8
  %3088 = icmp eq i32 %3087, 0
  br i1 %3088, label %3111, label %3089

3089:                                             ; preds = %3083
  %3090 = load i32, ptr %556, align 4, !tbaa !5
  %3091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3092 = call i32 @s2n_print_stacktrace(ptr noundef %3091) #14
  %3093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3094 = trunc nuw i8 %3093 to i1
  br i1 %3094, label %3095, label %3099

3095:                                             ; preds = %3089
  %3096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3097 = call i32 @fileno(ptr noundef %3096) #14
  %3098 = call i32 @isatty(i32 noundef %3097) #14
  %.not1125 = icmp eq i32 %3098, 0
  br i1 %.not1125, label %3099, label %3100

3099:                                             ; preds = %3095, %3089
  br label %3100

3100:                                             ; preds = %3095, %3099
  %.str.5.sink2444 = phi ptr [ @.str.5, %3099 ], [ @.str.2, %3095 ]
  store i32 %3090, ptr %556, align 4, !tbaa !5
  %3101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3102 = load i32, ptr @test_count, align 4, !tbaa !5
  %3103 = load i32, ptr %502, align 4, !tbaa !5
  %3104 = call ptr @s2n_strerror(i32 noundef %3103, ptr noundef nonnull @.str.4) #14
  %3105 = load i32, ptr %502, align 4, !tbaa !5
  %3106 = call ptr @s2n_strerror_debug(i32 noundef %3105, ptr noundef nonnull @.str.4) #14
  %3107 = load i32, ptr %556, align 4, !tbaa !5
  %3108 = call ptr @strerror(i32 noundef %3107) #14
  %3109 = load i32, ptr %556, align 4, !tbaa !5
  %3110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3101, ptr noundef nonnull %.str.5.sink2444, i32 noundef %3102, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 417, ptr noundef %3104, ptr noundef %3106, ptr noundef %3108, i32 noundef %3109) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3111:                                             ; preds = %3083
  %3112 = add nsw i32 %3084, 2
  store i32 %3112, ptr @test_count, align 4, !tbaa !5
  %3113 = load ptr, ptr %2032, align 8, !tbaa !48
  %3114 = load ptr, ptr %3113, align 8, !tbaa !49
  %3115 = icmp eq ptr %3114, @s2n_ecdhe_rsa_with_aes_128_cbc_sha
  br i1 %3115, label %3138, label %3116

3116:                                             ; preds = %3111
  %3117 = load i32, ptr %556, align 4, !tbaa !5
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = call i32 @s2n_print_stacktrace(ptr noundef %3118) #14
  %3120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3121 = trunc nuw i8 %3120 to i1
  br i1 %3121, label %3122, label %3126

3122:                                             ; preds = %3116
  %3123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3124 = call i32 @fileno(ptr noundef %3123) #14
  %3125 = call i32 @isatty(i32 noundef %3124) #14
  %.not1126 = icmp eq i32 %3125, 0
  br i1 %.not1126, label %3126, label %3127

3126:                                             ; preds = %3122, %3116
  br label %3127

3127:                                             ; preds = %3122, %3126
  %.str.5.sink2453 = phi ptr [ @.str.5, %3126 ], [ @.str.2, %3122 ]
  store i32 %3117, ptr %556, align 4, !tbaa !5
  %3128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3129 = load i32, ptr @test_count, align 4, !tbaa !5
  %3130 = load i32, ptr %502, align 4, !tbaa !5
  %3131 = call ptr @s2n_strerror(i32 noundef %3130, ptr noundef nonnull @.str.4) #14
  %3132 = load i32, ptr %502, align 4, !tbaa !5
  %3133 = call ptr @s2n_strerror_debug(i32 noundef %3132, ptr noundef nonnull @.str.4) #14
  %3134 = load i32, ptr %556, align 4, !tbaa !5
  %3135 = call ptr @strerror(i32 noundef %3134) #14
  %3136 = load i32, ptr %556, align 4, !tbaa !5
  %3137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3128, ptr noundef nonnull %.str.5.sink2453, i32 noundef %3129, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 418, ptr noundef %3131, ptr noundef %3133, ptr noundef %3135, i32 noundef %3136) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3138:                                             ; preds = %3111
  %3139 = add nsw i32 %3084, 3
  store i32 %3139, ptr @test_count, align 4, !tbaa !5
  %3140 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %3141 = icmp eq i32 %3140, -1
  br i1 %3141, label %3142, label %3164

3142:                                             ; preds = %3138
  %3143 = load i32, ptr %556, align 4, !tbaa !5
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = call i32 @s2n_print_stacktrace(ptr noundef %3144) #14
  %3146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3147 = trunc nuw i8 %3146 to i1
  br i1 %3147, label %3148, label %3152

3148:                                             ; preds = %3142
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = call i32 @fileno(ptr noundef %3149) #14
  %3151 = call i32 @isatty(i32 noundef %3150) #14
  %.not1352 = icmp eq i32 %3151, 0
  br i1 %.not1352, label %3152, label %3153

3152:                                             ; preds = %3148, %3142
  br label %3153

3153:                                             ; preds = %3148, %3152
  %.str.5.sink2462 = phi ptr [ @.str.5, %3152 ], [ @.str.2, %3148 ]
  store i32 %3143, ptr %556, align 4, !tbaa !5
  %3154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3155 = load i32, ptr @test_count, align 4, !tbaa !5
  %3156 = load i32, ptr %502, align 4, !tbaa !5
  %3157 = call ptr @s2n_strerror(i32 noundef %3156, ptr noundef nonnull @.str.4) #14
  %3158 = load i32, ptr %502, align 4, !tbaa !5
  %3159 = call ptr @s2n_strerror_debug(i32 noundef %3158, ptr noundef nonnull @.str.4) #14
  %3160 = load i32, ptr %556, align 4, !tbaa !5
  %3161 = call ptr @strerror(i32 noundef %3160) #14
  %3162 = load i32, ptr %556, align 4, !tbaa !5
  %3163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3154, ptr noundef nonnull %.str.5.sink2462, i32 noundef %3155, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 419, ptr noundef %3157, ptr noundef %3159, ptr noundef %3161, i32 noundef %3162) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3164:                                             ; preds = %3138
  %3165 = load i32, ptr @test_count, align 4, !tbaa !5
  %3166 = add nsw i32 %3165, 1
  store i32 %3166, ptr @test_count, align 4, !tbaa !5
  %3167 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.80) #14
  %3168 = icmp eq i32 %3167, -1
  br i1 %3168, label %3169, label %3191

3169:                                             ; preds = %3164
  %3170 = load i32, ptr %556, align 4, !tbaa !5
  %3171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3172 = call i32 @s2n_print_stacktrace(ptr noundef %3171) #14
  %3173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3174 = trunc nuw i8 %3173 to i1
  br i1 %3174, label %3175, label %3179

3175:                                             ; preds = %3169
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = call i32 @fileno(ptr noundef %3176) #14
  %3178 = call i32 @isatty(i32 noundef %3177) #14
  %.not1351 = icmp eq i32 %3178, 0
  br i1 %.not1351, label %3179, label %3180

3179:                                             ; preds = %3175, %3169
  br label %3180

3180:                                             ; preds = %3175, %3179
  %.str.5.sink2471 = phi ptr [ @.str.5, %3179 ], [ @.str.2, %3175 ]
  store i32 %3170, ptr %556, align 4, !tbaa !5
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = load i32, ptr @test_count, align 4, !tbaa !5
  %3183 = load i32, ptr %502, align 4, !tbaa !5
  %3184 = call ptr @s2n_strerror(i32 noundef %3183, ptr noundef nonnull @.str.4) #14
  %3185 = load i32, ptr %502, align 4, !tbaa !5
  %3186 = call ptr @s2n_strerror_debug(i32 noundef %3185, ptr noundef nonnull @.str.4) #14
  %3187 = load i32, ptr %556, align 4, !tbaa !5
  %3188 = call ptr @strerror(i32 noundef %3187) #14
  %3189 = load i32, ptr %556, align 4, !tbaa !5
  %3190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3181, ptr noundef nonnull %.str.5.sink2471, i32 noundef %3182, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %3184, ptr noundef %3186, ptr noundef %3188, i32 noundef %3189) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3191:                                             ; preds = %3164
  %3192 = load ptr, ptr %17, align 8, !tbaa !9
  %3193 = getelementptr inbounds i8, ptr %3192, i64 8
  %3194 = load ptr, ptr %3193, align 8, !tbaa !54
  %3195 = load ptr, ptr %3194, align 8, !tbaa !9
  store ptr %3195, ptr %1974, align 8, !tbaa !56
  %3196 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %3196, ptr %1405, align 4, !tbaa !42
  %3197 = load i32, ptr @test_count, align 4, !tbaa !5
  %3198 = add nsw i32 %3197, 1
  store i32 %3198, ptr @test_count, align 4, !tbaa !5
  %3199 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %2556) #14
  %3200 = icmp eq i32 %3199, -1
  br i1 %3200, label %3201, label %3223

3201:                                             ; preds = %3191
  %3202 = load i32, ptr %556, align 4, !tbaa !5
  %3203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3204 = call i32 @s2n_print_stacktrace(ptr noundef %3203) #14
  %3205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3206 = trunc nuw i8 %3205 to i1
  br i1 %3206, label %3207, label %3211

3207:                                             ; preds = %3201
  %3208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3209 = call i32 @fileno(ptr noundef %3208) #14
  %3210 = call i32 @isatty(i32 noundef %3209) #14
  %.not1350 = icmp eq i32 %3210, 0
  br i1 %.not1350, label %3211, label %3212

3211:                                             ; preds = %3207, %3201
  br label %3212

3212:                                             ; preds = %3207, %3211
  %.str.5.sink2480 = phi ptr [ @.str.5, %3211 ], [ @.str.2, %3207 ]
  store i32 %3202, ptr %556, align 4, !tbaa !5
  %3213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3214 = load i32, ptr @test_count, align 4, !tbaa !5
  %3215 = load i32, ptr %502, align 4, !tbaa !5
  %3216 = call ptr @s2n_strerror(i32 noundef %3215, ptr noundef nonnull @.str.4) #14
  %3217 = load i32, ptr %502, align 4, !tbaa !5
  %3218 = call ptr @s2n_strerror_debug(i32 noundef %3217, ptr noundef nonnull @.str.4) #14
  %3219 = load i32, ptr %556, align 4, !tbaa !5
  %3220 = call ptr @strerror(i32 noundef %3219) #14
  %3221 = load i32, ptr %556, align 4, !tbaa !5
  %3222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3213, ptr noundef nonnull %.str.5.sink2480, i32 noundef %3214, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 430, ptr noundef %3216, ptr noundef %3218, ptr noundef %3220, i32 noundef %3221) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3223:                                             ; preds = %3191
  %3224 = load i32, ptr @test_count, align 4, !tbaa !5
  %3225 = add nsw i32 %3224, 1
  store i32 %3225, ptr @test_count, align 4, !tbaa !5
  %3226 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %3227 = icmp eq i32 %3226, -1
  br i1 %3227, label %3228, label %3250

3228:                                             ; preds = %3223
  %3229 = load i32, ptr %556, align 4, !tbaa !5
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = call i32 @s2n_print_stacktrace(ptr noundef %3230) #14
  %3232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3233 = trunc nuw i8 %3232 to i1
  br i1 %3233, label %3234, label %3238

3234:                                             ; preds = %3228
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = call i32 @fileno(ptr noundef %3235) #14
  %3237 = call i32 @isatty(i32 noundef %3236) #14
  %.not1349 = icmp eq i32 %3237, 0
  br i1 %.not1349, label %3238, label %3239

3238:                                             ; preds = %3234, %3228
  br label %3239

3239:                                             ; preds = %3234, %3238
  %.str.5.sink2489 = phi ptr [ @.str.5, %3238 ], [ @.str.2, %3234 ]
  store i32 %3229, ptr %556, align 4, !tbaa !5
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = load i32, ptr @test_count, align 4, !tbaa !5
  %3242 = load i32, ptr %502, align 4, !tbaa !5
  %3243 = call ptr @s2n_strerror(i32 noundef %3242, ptr noundef nonnull @.str.4) #14
  %3244 = load i32, ptr %502, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror_debug(i32 noundef %3244, ptr noundef nonnull @.str.4) #14
  %3246 = load i32, ptr %556, align 4, !tbaa !5
  %3247 = call ptr @strerror(i32 noundef %3246) #14
  %3248 = load i32, ptr %556, align 4, !tbaa !5
  %3249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3240, ptr noundef nonnull %.str.5.sink2489, i32 noundef %3241, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 431, ptr noundef %3243, ptr noundef %3245, ptr noundef %3247, i32 noundef %3248) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3250:                                             ; preds = %3223
  %3251 = load i32, ptr @test_count, align 4, !tbaa !5
  %3252 = add nsw i32 %3251, 1
  store i32 %3252, ptr @test_count, align 4, !tbaa !5
  %3253 = load i32, ptr %1051, align 8
  %3254 = and i32 %3253, 8
  %3255 = icmp eq i32 %3254, 0
  br i1 %3255, label %3278, label %3256

3256:                                             ; preds = %3250
  %3257 = load i32, ptr %556, align 4, !tbaa !5
  %3258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3259 = call i32 @s2n_print_stacktrace(ptr noundef %3258) #14
  %3260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3261 = trunc nuw i8 %3260 to i1
  br i1 %3261, label %3262, label %3266

3262:                                             ; preds = %3256
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @fileno(ptr noundef %3263) #14
  %3265 = call i32 @isatty(i32 noundef %3264) #14
  %.not1127 = icmp eq i32 %3265, 0
  br i1 %.not1127, label %3266, label %3267

3266:                                             ; preds = %3262, %3256
  br label %3267

3267:                                             ; preds = %3262, %3266
  %.str.5.sink2498 = phi ptr [ @.str.5, %3266 ], [ @.str.2, %3262 ]
  store i32 %3257, ptr %556, align 4, !tbaa !5
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = load i32, ptr @test_count, align 4, !tbaa !5
  %3270 = load i32, ptr %502, align 4, !tbaa !5
  %3271 = call ptr @s2n_strerror(i32 noundef %3270, ptr noundef nonnull @.str.4) #14
  %3272 = load i32, ptr %502, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror_debug(i32 noundef %3272, ptr noundef nonnull @.str.4) #14
  %3274 = load i32, ptr %556, align 4, !tbaa !5
  %3275 = call ptr @strerror(i32 noundef %3274) #14
  %3276 = load i32, ptr %556, align 4, !tbaa !5
  %3277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3268, ptr noundef nonnull %.str.5.sink2498, i32 noundef %3269, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 432, ptr noundef %3271, ptr noundef %3273, ptr noundef %3275, i32 noundef %3276) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3278:                                             ; preds = %3250
  %3279 = add nsw i32 %3251, 2
  store i32 %3279, ptr @test_count, align 4, !tbaa !5
  %3280 = load ptr, ptr %2032, align 8, !tbaa !48
  %3281 = load ptr, ptr %3280, align 8, !tbaa !49
  %3282 = icmp eq ptr %3281, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %3282, label %3305, label %3283

3283:                                             ; preds = %3278
  %3284 = load i32, ptr %556, align 4, !tbaa !5
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = call i32 @s2n_print_stacktrace(ptr noundef %3285) #14
  %3287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3288 = trunc nuw i8 %3287 to i1
  br i1 %3288, label %3289, label %3293

3289:                                             ; preds = %3283
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = call i32 @fileno(ptr noundef %3290) #14
  %3292 = call i32 @isatty(i32 noundef %3291) #14
  %.not1128 = icmp eq i32 %3292, 0
  br i1 %.not1128, label %3293, label %3294

3293:                                             ; preds = %3289, %3283
  br label %3294

3294:                                             ; preds = %3289, %3293
  %.str.5.sink2507 = phi ptr [ @.str.5, %3293 ], [ @.str.2, %3289 ]
  store i32 %3284, ptr %556, align 4, !tbaa !5
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = load i32, ptr @test_count, align 4, !tbaa !5
  %3297 = load i32, ptr %502, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror(i32 noundef %3297, ptr noundef nonnull @.str.4) #14
  %3299 = load i32, ptr %502, align 4, !tbaa !5
  %3300 = call ptr @s2n_strerror_debug(i32 noundef %3299, ptr noundef nonnull @.str.4) #14
  %3301 = load i32, ptr %556, align 4, !tbaa !5
  %3302 = call ptr @strerror(i32 noundef %3301) #14
  %3303 = load i32, ptr %556, align 4, !tbaa !5
  %3304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3295, ptr noundef nonnull %.str.5.sink2507, i32 noundef %3296, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 433, ptr noundef %3298, ptr noundef %3300, ptr noundef %3302, i32 noundef %3303) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3305:                                             ; preds = %3278
  %3306 = add nsw i32 %3251, 3
  store i32 %3306, ptr @test_count, align 4, !tbaa !5
  %3307 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %3308 = icmp eq i32 %3307, -1
  br i1 %3308, label %3309, label %3331

3309:                                             ; preds = %3305
  %3310 = load i32, ptr %556, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = call i32 @s2n_print_stacktrace(ptr noundef %3311) #14
  %3313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3314 = trunc nuw i8 %3313 to i1
  br i1 %3314, label %3315, label %3319

3315:                                             ; preds = %3309
  %3316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3317 = call i32 @fileno(ptr noundef %3316) #14
  %3318 = call i32 @isatty(i32 noundef %3317) #14
  %.not1348 = icmp eq i32 %3318, 0
  br i1 %.not1348, label %3319, label %3320

3319:                                             ; preds = %3315, %3309
  br label %3320

3320:                                             ; preds = %3315, %3319
  %.str.5.sink2516 = phi ptr [ @.str.5, %3319 ], [ @.str.2, %3315 ]
  store i32 %3310, ptr %556, align 4, !tbaa !5
  %3321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3322 = load i32, ptr @test_count, align 4, !tbaa !5
  %3323 = load i32, ptr %502, align 4, !tbaa !5
  %3324 = call ptr @s2n_strerror(i32 noundef %3323, ptr noundef nonnull @.str.4) #14
  %3325 = load i32, ptr %502, align 4, !tbaa !5
  %3326 = call ptr @s2n_strerror_debug(i32 noundef %3325, ptr noundef nonnull @.str.4) #14
  %3327 = load i32, ptr %556, align 4, !tbaa !5
  %3328 = call ptr @strerror(i32 noundef %3327) #14
  %3329 = load i32, ptr %556, align 4, !tbaa !5
  %3330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3321, ptr noundef nonnull %.str.5.sink2516, i32 noundef %3322, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %3324, ptr noundef %3326, ptr noundef %3328, i32 noundef %3329) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3331:                                             ; preds = %3305
  %3332 = load i8, ptr @s2n_rsa_with_rc4_128_md5, align 8
  %3333 = and i8 %3332, 1
  %.not1129 = icmp eq i8 %3333, 0
  %spec.store.select = select i1 %.not1129, ptr @s2n_rsa_with_3des_ede_cbc_sha, ptr @s2n_rsa_with_rc4_128_md5
  %3334 = load i32, ptr @test_count, align 4, !tbaa !5
  %3335 = add nsw i32 %3334, 1
  store i32 %3335, ptr @test_count, align 4, !tbaa !5
  %3336 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.72) #14
  %3337 = icmp eq i32 %3336, -1
  br i1 %3337, label %3338, label %3360

3338:                                             ; preds = %3331
  %3339 = load i32, ptr %556, align 4, !tbaa !5
  %3340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3341 = call i32 @s2n_print_stacktrace(ptr noundef %3340) #14
  %3342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3343 = trunc nuw i8 %3342 to i1
  br i1 %3343, label %3344, label %3348

3344:                                             ; preds = %3338
  %3345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3346 = call i32 @fileno(ptr noundef %3345) #14
  %3347 = call i32 @isatty(i32 noundef %3346) #14
  %.not1347 = icmp eq i32 %3347, 0
  br i1 %.not1347, label %3348, label %3349

3348:                                             ; preds = %3344, %3338
  br label %3349

3349:                                             ; preds = %3344, %3348
  %.str.5.sink2525 = phi ptr [ @.str.5, %3348 ], [ @.str.2, %3344 ]
  store i32 %3339, ptr %556, align 4, !tbaa !5
  %3350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = load i32, ptr %502, align 4, !tbaa !5
  %3353 = call ptr @s2n_strerror(i32 noundef %3352, ptr noundef nonnull @.str.4) #14
  %3354 = load i32, ptr %502, align 4, !tbaa !5
  %3355 = call ptr @s2n_strerror_debug(i32 noundef %3354, ptr noundef nonnull @.str.4) #14
  %3356 = load i32, ptr %556, align 4, !tbaa !5
  %3357 = call ptr @strerror(i32 noundef %3356) #14
  %3358 = load i32, ptr %556, align 4, !tbaa !5
  %3359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3350, ptr noundef nonnull %.str.5.sink2525, i32 noundef %3351, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 445, ptr noundef %3353, ptr noundef %3355, ptr noundef %3357, i32 noundef %3358) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3360:                                             ; preds = %3331
  %3361 = load ptr, ptr %17, align 8, !tbaa !9
  %3362 = getelementptr inbounds i8, ptr %3361, i64 8
  %3363 = load ptr, ptr %3362, align 8, !tbaa !54
  %3364 = load ptr, ptr %3363, align 8, !tbaa !9
  store ptr %3364, ptr %1974, align 8, !tbaa !56
  %3365 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %3365, ptr %1405, align 4, !tbaa !42
  %3366 = load i32, ptr @test_count, align 4, !tbaa !5
  %3367 = add nsw i32 %3366, 1
  store i32 %3367, ptr @test_count, align 4, !tbaa !5
  %3368 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %2556) #14
  %3369 = icmp eq i32 %3368, -1
  br i1 %3369, label %3370, label %3392

3370:                                             ; preds = %3360
  %3371 = load i32, ptr %556, align 4, !tbaa !5
  %3372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3373 = call i32 @s2n_print_stacktrace(ptr noundef %3372) #14
  %3374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3375 = trunc nuw i8 %3374 to i1
  br i1 %3375, label %3376, label %3380

3376:                                             ; preds = %3370
  %3377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3378 = call i32 @fileno(ptr noundef %3377) #14
  %3379 = call i32 @isatty(i32 noundef %3378) #14
  %.not1346 = icmp eq i32 %3379, 0
  br i1 %.not1346, label %3380, label %3381

3380:                                             ; preds = %3376, %3370
  br label %3381

3381:                                             ; preds = %3376, %3380
  %.str.5.sink2534 = phi ptr [ @.str.5, %3380 ], [ @.str.2, %3376 ]
  store i32 %3371, ptr %556, align 4, !tbaa !5
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = load i32, ptr @test_count, align 4, !tbaa !5
  %3384 = load i32, ptr %502, align 4, !tbaa !5
  %3385 = call ptr @s2n_strerror(i32 noundef %3384, ptr noundef nonnull @.str.4) #14
  %3386 = load i32, ptr %502, align 4, !tbaa !5
  %3387 = call ptr @s2n_strerror_debug(i32 noundef %3386, ptr noundef nonnull @.str.4) #14
  %3388 = load i32, ptr %556, align 4, !tbaa !5
  %3389 = call ptr @strerror(i32 noundef %3388) #14
  %3390 = load i32, ptr %556, align 4, !tbaa !5
  %3391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3382, ptr noundef nonnull %.str.5.sink2534, i32 noundef %3383, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %3385, ptr noundef %3387, ptr noundef %3389, i32 noundef %3390) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3392:                                             ; preds = %3360
  %3393 = load i32, ptr @test_count, align 4, !tbaa !5
  %3394 = add nsw i32 %3393, 1
  store i32 %3394, ptr @test_count, align 4, !tbaa !5
  %3395 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %11, i16 noundef zeroext 24) #14
  %3396 = icmp eq i32 %3395, -1
  br i1 %3396, label %3397, label %3419

3397:                                             ; preds = %3392
  %3398 = load i32, ptr %556, align 4, !tbaa !5
  %3399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3400 = call i32 @s2n_print_stacktrace(ptr noundef %3399) #14
  %3401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3402 = trunc nuw i8 %3401 to i1
  br i1 %3402, label %3403, label %3407

3403:                                             ; preds = %3397
  %3404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3405 = call i32 @fileno(ptr noundef %3404) #14
  %3406 = call i32 @isatty(i32 noundef %3405) #14
  %.not1345 = icmp eq i32 %3406, 0
  br i1 %.not1345, label %3407, label %3408

3407:                                             ; preds = %3403, %3397
  br label %3408

3408:                                             ; preds = %3403, %3407
  %.str.5.sink2543 = phi ptr [ @.str.5, %3407 ], [ @.str.2, %3403 ]
  store i32 %3398, ptr %556, align 4, !tbaa !5
  %3409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3410 = load i32, ptr @test_count, align 4, !tbaa !5
  %3411 = load i32, ptr %502, align 4, !tbaa !5
  %3412 = call ptr @s2n_strerror(i32 noundef %3411, ptr noundef nonnull @.str.4) #14
  %3413 = load i32, ptr %502, align 4, !tbaa !5
  %3414 = call ptr @s2n_strerror_debug(i32 noundef %3413, ptr noundef nonnull @.str.4) #14
  %3415 = load i32, ptr %556, align 4, !tbaa !5
  %3416 = call ptr @strerror(i32 noundef %3415) #14
  %3417 = load i32, ptr %556, align 4, !tbaa !5
  %3418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3409, ptr noundef nonnull %.str.5.sink2543, i32 noundef %3410, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 449, ptr noundef %3412, ptr noundef %3414, ptr noundef %3416, i32 noundef %3417) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3419:                                             ; preds = %3392
  %3420 = load i32, ptr @test_count, align 4, !tbaa !5
  %3421 = add nsw i32 %3420, 1
  store i32 %3421, ptr @test_count, align 4, !tbaa !5
  %3422 = load i32, ptr %1051, align 8
  %3423 = and i32 %3422, 8
  %3424 = icmp eq i32 %3423, 0
  br i1 %3424, label %3447, label %3425

3425:                                             ; preds = %3419
  %3426 = load i32, ptr %556, align 4, !tbaa !5
  %3427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3428 = call i32 @s2n_print_stacktrace(ptr noundef %3427) #14
  %3429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3430 = trunc nuw i8 %3429 to i1
  br i1 %3430, label %3431, label %3435

3431:                                             ; preds = %3425
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = call i32 @fileno(ptr noundef %3432) #14
  %3434 = call i32 @isatty(i32 noundef %3433) #14
  %.not1130 = icmp eq i32 %3434, 0
  br i1 %.not1130, label %3435, label %3436

3435:                                             ; preds = %3431, %3425
  br label %3436

3436:                                             ; preds = %3431, %3435
  %.str.5.sink2552 = phi ptr [ @.str.5, %3435 ], [ @.str.2, %3431 ]
  store i32 %3426, ptr %556, align 4, !tbaa !5
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = load i32, ptr @test_count, align 4, !tbaa !5
  %3439 = load i32, ptr %502, align 4, !tbaa !5
  %3440 = call ptr @s2n_strerror(i32 noundef %3439, ptr noundef nonnull @.str.4) #14
  %3441 = load i32, ptr %502, align 4, !tbaa !5
  %3442 = call ptr @s2n_strerror_debug(i32 noundef %3441, ptr noundef nonnull @.str.4) #14
  %3443 = load i32, ptr %556, align 4, !tbaa !5
  %3444 = call ptr @strerror(i32 noundef %3443) #14
  %3445 = load i32, ptr %556, align 4, !tbaa !5
  %3446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3437, ptr noundef nonnull %.str.5.sink2552, i32 noundef %3438, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 450, ptr noundef %3440, ptr noundef %3442, ptr noundef %3444, i32 noundef %3445) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3447:                                             ; preds = %3419
  %3448 = add nsw i32 %3420, 2
  store i32 %3448, ptr @test_count, align 4, !tbaa !5
  %3449 = load ptr, ptr %2032, align 8, !tbaa !48
  %3450 = load ptr, ptr %3449, align 8, !tbaa !49
  %3451 = icmp eq ptr %3450, %spec.store.select
  br i1 %3451, label %3474, label %3452

3452:                                             ; preds = %3447
  %3453 = load i32, ptr %556, align 4, !tbaa !5
  %3454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3455 = call i32 @s2n_print_stacktrace(ptr noundef %3454) #14
  %3456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3457 = trunc nuw i8 %3456 to i1
  br i1 %3457, label %3458, label %3462

3458:                                             ; preds = %3452
  %3459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3460 = call i32 @fileno(ptr noundef %3459) #14
  %3461 = call i32 @isatty(i32 noundef %3460) #14
  %.not1131 = icmp eq i32 %3461, 0
  br i1 %.not1131, label %3462, label %3463

3462:                                             ; preds = %3458, %3452
  br label %3463

3463:                                             ; preds = %3458, %3462
  %.str.5.sink2561 = phi ptr [ @.str.5, %3462 ], [ @.str.2, %3458 ]
  store i32 %3453, ptr %556, align 4, !tbaa !5
  %3464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3465 = load i32, ptr @test_count, align 4, !tbaa !5
  %3466 = load i32, ptr %502, align 4, !tbaa !5
  %3467 = call ptr @s2n_strerror(i32 noundef %3466, ptr noundef nonnull @.str.4) #14
  %3468 = load i32, ptr %502, align 4, !tbaa !5
  %3469 = call ptr @s2n_strerror_debug(i32 noundef %3468, ptr noundef nonnull @.str.4) #14
  %3470 = load i32, ptr %556, align 4, !tbaa !5
  %3471 = call ptr @strerror(i32 noundef %3470) #14
  %3472 = load i32, ptr %556, align 4, !tbaa !5
  %3473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3464, ptr noundef nonnull %.str.5.sink2561, i32 noundef %3465, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %3467, ptr noundef %3469, ptr noundef %3471, i32 noundef %3472) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3474:                                             ; preds = %3447
  %3475 = add nsw i32 %3420, 3
  store i32 %3475, ptr @test_count, align 4, !tbaa !5
  %3476 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %3477 = icmp eq i32 %3476, -1
  br i1 %3477, label %3478, label %3500

3478:                                             ; preds = %3474
  %3479 = load i32, ptr %556, align 4, !tbaa !5
  %3480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3481 = call i32 @s2n_print_stacktrace(ptr noundef %3480) #14
  %3482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3483 = trunc nuw i8 %3482 to i1
  br i1 %3483, label %3484, label %3488

3484:                                             ; preds = %3478
  %3485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3486 = call i32 @fileno(ptr noundef %3485) #14
  %3487 = call i32 @isatty(i32 noundef %3486) #14
  %.not1344 = icmp eq i32 %3487, 0
  br i1 %.not1344, label %3488, label %3489

3488:                                             ; preds = %3484, %3478
  br label %3489

3489:                                             ; preds = %3484, %3488
  %.str.5.sink2570 = phi ptr [ @.str.5, %3488 ], [ @.str.2, %3484 ]
  store i32 %3479, ptr %556, align 4, !tbaa !5
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = load i32, ptr @test_count, align 4, !tbaa !5
  %3492 = load i32, ptr %502, align 4, !tbaa !5
  %3493 = call ptr @s2n_strerror(i32 noundef %3492, ptr noundef nonnull @.str.4) #14
  %3494 = load i32, ptr %502, align 4, !tbaa !5
  %3495 = call ptr @s2n_strerror_debug(i32 noundef %3494, ptr noundef nonnull @.str.4) #14
  %3496 = load i32, ptr %556, align 4, !tbaa !5
  %3497 = call ptr @strerror(i32 noundef %3496) #14
  %3498 = load i32, ptr %556, align 4, !tbaa !5
  %3499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3490, ptr noundef nonnull %.str.5.sink2570, i32 noundef %3491, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %3493, ptr noundef %3495, ptr noundef %3497, i32 noundef %3498) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3500:                                             ; preds = %3474
  %3501 = load i32, ptr @test_count, align 4, !tbaa !5
  %3502 = add nsw i32 %3501, 1
  store i32 %3502, ptr @test_count, align 4, !tbaa !5
  %3503 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.72) #14
  %3504 = icmp eq i32 %3503, -1
  br i1 %3504, label %3505, label %3527

3505:                                             ; preds = %3500
  %3506 = load i32, ptr %556, align 4, !tbaa !5
  %3507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3508 = call i32 @s2n_print_stacktrace(ptr noundef %3507) #14
  %3509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3510 = trunc nuw i8 %3509 to i1
  br i1 %3510, label %3511, label %3515

3511:                                             ; preds = %3505
  %3512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3513 = call i32 @fileno(ptr noundef %3512) #14
  %3514 = call i32 @isatty(i32 noundef %3513) #14
  %.not1343 = icmp eq i32 %3514, 0
  br i1 %.not1343, label %3515, label %3516

3515:                                             ; preds = %3511, %3505
  br label %3516

3516:                                             ; preds = %3511, %3515
  %.str.5.sink2579 = phi ptr [ @.str.5, %3515 ], [ @.str.2, %3511 ]
  store i32 %3506, ptr %556, align 4, !tbaa !5
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = load i32, ptr @test_count, align 4, !tbaa !5
  %3519 = load i32, ptr %502, align 4, !tbaa !5
  %3520 = call ptr @s2n_strerror(i32 noundef %3519, ptr noundef nonnull @.str.4) #14
  %3521 = load i32, ptr %502, align 4, !tbaa !5
  %3522 = call ptr @s2n_strerror_debug(i32 noundef %3521, ptr noundef nonnull @.str.4) #14
  %3523 = load i32, ptr %556, align 4, !tbaa !5
  %3524 = call ptr @strerror(i32 noundef %3523) #14
  %3525 = load i32, ptr %556, align 4, !tbaa !5
  %3526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3517, ptr noundef nonnull %.str.5.sink2579, i32 noundef %3518, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 460, ptr noundef %3520, ptr noundef %3522, ptr noundef %3524, i32 noundef %3525) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3527:                                             ; preds = %3500
  %3528 = load ptr, ptr %17, align 8, !tbaa !9
  %3529 = getelementptr inbounds i8, ptr %3528, i64 8
  %3530 = load ptr, ptr %3529, align 8, !tbaa !54
  %3531 = load ptr, ptr %3530, align 8, !tbaa !9
  store ptr %3531, ptr %1974, align 8, !tbaa !56
  %3532 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %3532, ptr %1405, align 4, !tbaa !42
  %3533 = load i32, ptr @test_count, align 4, !tbaa !5
  %3534 = add nsw i32 %3533, 1
  store i32 %3534, ptr @test_count, align 4, !tbaa !5
  %3535 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %2556) #14
  %3536 = icmp eq i32 %3535, -1
  br i1 %3536, label %3537, label %3559

3537:                                             ; preds = %3527
  %3538 = load i32, ptr %556, align 4, !tbaa !5
  %3539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3540 = call i32 @s2n_print_stacktrace(ptr noundef %3539) #14
  %3541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3542 = trunc nuw i8 %3541 to i1
  br i1 %3542, label %3543, label %3547

3543:                                             ; preds = %3537
  %3544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3545 = call i32 @fileno(ptr noundef %3544) #14
  %3546 = call i32 @isatty(i32 noundef %3545) #14
  %.not1342 = icmp eq i32 %3546, 0
  br i1 %.not1342, label %3547, label %3548

3547:                                             ; preds = %3543, %3537
  br label %3548

3548:                                             ; preds = %3543, %3547
  %.str.5.sink2588 = phi ptr [ @.str.5, %3547 ], [ @.str.2, %3543 ]
  store i32 %3538, ptr %556, align 4, !tbaa !5
  %3549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3550 = load i32, ptr @test_count, align 4, !tbaa !5
  %3551 = load i32, ptr %502, align 4, !tbaa !5
  %3552 = call ptr @s2n_strerror(i32 noundef %3551, ptr noundef nonnull @.str.4) #14
  %3553 = load i32, ptr %502, align 4, !tbaa !5
  %3554 = call ptr @s2n_strerror_debug(i32 noundef %3553, ptr noundef nonnull @.str.4) #14
  %3555 = load i32, ptr %556, align 4, !tbaa !5
  %3556 = call ptr @strerror(i32 noundef %3555) #14
  %3557 = load i32, ptr %556, align 4, !tbaa !5
  %3558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3549, ptr noundef nonnull %.str.5.sink2588, i32 noundef %3550, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 463, ptr noundef %3552, ptr noundef %3554, ptr noundef %3556, i32 noundef %3557) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3559:                                             ; preds = %3527
  %3560 = load i32, ptr @test_count, align 4, !tbaa !5
  %3561 = add nsw i32 %3560, 1
  store i32 %3561, ptr @test_count, align 4, !tbaa !5
  %3562 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %15, i16 noundef zeroext 4) #14
  %3563 = icmp eq i32 %3562, -1
  br i1 %3563, label %3564, label %3586

3564:                                             ; preds = %3559
  %3565 = load i32, ptr %556, align 4, !tbaa !5
  %3566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3567 = call i32 @s2n_print_stacktrace(ptr noundef %3566) #14
  %3568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3569 = trunc nuw i8 %3568 to i1
  br i1 %3569, label %3570, label %3574

3570:                                             ; preds = %3564
  %3571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3572 = call i32 @fileno(ptr noundef %3571) #14
  %3573 = call i32 @isatty(i32 noundef %3572) #14
  %.not1341 = icmp eq i32 %3573, 0
  br i1 %.not1341, label %3574, label %3575

3574:                                             ; preds = %3570, %3564
  br label %3575

3575:                                             ; preds = %3570, %3574
  %.str.5.sink2597 = phi ptr [ @.str.5, %3574 ], [ @.str.2, %3570 ]
  store i32 %3565, ptr %556, align 4, !tbaa !5
  %3576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3577 = load i32, ptr @test_count, align 4, !tbaa !5
  %3578 = load i32, ptr %502, align 4, !tbaa !5
  %3579 = call ptr @s2n_strerror(i32 noundef %3578, ptr noundef nonnull @.str.4) #14
  %3580 = load i32, ptr %502, align 4, !tbaa !5
  %3581 = call ptr @s2n_strerror_debug(i32 noundef %3580, ptr noundef nonnull @.str.4) #14
  %3582 = load i32, ptr %556, align 4, !tbaa !5
  %3583 = call ptr @strerror(i32 noundef %3582) #14
  %3584 = load i32, ptr %556, align 4, !tbaa !5
  %3585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3576, ptr noundef nonnull %.str.5.sink2597, i32 noundef %3577, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 464, ptr noundef %3579, ptr noundef %3581, ptr noundef %3583, i32 noundef %3584) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3586:                                             ; preds = %3559
  %3587 = load i32, ptr @test_count, align 4, !tbaa !5
  %3588 = add nsw i32 %3587, 1
  store i32 %3588, ptr @test_count, align 4, !tbaa !5
  %3589 = load i32, ptr %1051, align 8
  %3590 = and i32 %3589, 8
  %3591 = icmp eq i32 %3590, 0
  br i1 %3591, label %3614, label %3592

3592:                                             ; preds = %3586
  %3593 = load i32, ptr %556, align 4, !tbaa !5
  %3594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3595 = call i32 @s2n_print_stacktrace(ptr noundef %3594) #14
  %3596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3597 = trunc nuw i8 %3596 to i1
  br i1 %3597, label %3598, label %3602

3598:                                             ; preds = %3592
  %3599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3600 = call i32 @fileno(ptr noundef %3599) #14
  %3601 = call i32 @isatty(i32 noundef %3600) #14
  %.not1132 = icmp eq i32 %3601, 0
  br i1 %.not1132, label %3602, label %3603

3602:                                             ; preds = %3598, %3592
  br label %3603

3603:                                             ; preds = %3598, %3602
  %.str.5.sink2606 = phi ptr [ @.str.5, %3602 ], [ @.str.2, %3598 ]
  store i32 %3593, ptr %556, align 4, !tbaa !5
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = load i32, ptr @test_count, align 4, !tbaa !5
  %3606 = load i32, ptr %502, align 4, !tbaa !5
  %3607 = call ptr @s2n_strerror(i32 noundef %3606, ptr noundef nonnull @.str.4) #14
  %3608 = load i32, ptr %502, align 4, !tbaa !5
  %3609 = call ptr @s2n_strerror_debug(i32 noundef %3608, ptr noundef nonnull @.str.4) #14
  %3610 = load i32, ptr %556, align 4, !tbaa !5
  %3611 = call ptr @strerror(i32 noundef %3610) #14
  %3612 = load i32, ptr %556, align 4, !tbaa !5
  %3613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3604, ptr noundef nonnull %.str.5.sink2606, i32 noundef %3605, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 465, ptr noundef %3607, ptr noundef %3609, ptr noundef %3611, i32 noundef %3612) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3614:                                             ; preds = %3586
  %3615 = add nsw i32 %3587, 2
  store i32 %3615, ptr @test_count, align 4, !tbaa !5
  %3616 = load ptr, ptr %2032, align 8, !tbaa !48
  %3617 = load ptr, ptr %3616, align 8, !tbaa !49
  %3618 = icmp eq ptr %3617, @s2n_ecdhe_ecdsa_with_aes_256_cbc_sha
  br i1 %3618, label %3641, label %3619

3619:                                             ; preds = %3614
  %3620 = load i32, ptr %556, align 4, !tbaa !5
  %3621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3622 = call i32 @s2n_print_stacktrace(ptr noundef %3621) #14
  %3623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3624 = trunc nuw i8 %3623 to i1
  br i1 %3624, label %3625, label %3629

3625:                                             ; preds = %3619
  %3626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3627 = call i32 @fileno(ptr noundef %3626) #14
  %3628 = call i32 @isatty(i32 noundef %3627) #14
  %.not1133 = icmp eq i32 %3628, 0
  br i1 %.not1133, label %3629, label %3630

3629:                                             ; preds = %3625, %3619
  br label %3630

3630:                                             ; preds = %3625, %3629
  %.str.5.sink2615 = phi ptr [ @.str.5, %3629 ], [ @.str.2, %3625 ]
  store i32 %3620, ptr %556, align 4, !tbaa !5
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = load i32, ptr @test_count, align 4, !tbaa !5
  %3633 = load i32, ptr %502, align 4, !tbaa !5
  %3634 = call ptr @s2n_strerror(i32 noundef %3633, ptr noundef nonnull @.str.4) #14
  %3635 = load i32, ptr %502, align 4, !tbaa !5
  %3636 = call ptr @s2n_strerror_debug(i32 noundef %3635, ptr noundef nonnull @.str.4) #14
  %3637 = load i32, ptr %556, align 4, !tbaa !5
  %3638 = call ptr @strerror(i32 noundef %3637) #14
  %3639 = load i32, ptr %556, align 4, !tbaa !5
  %3640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3631, ptr noundef nonnull %.str.5.sink2615, i32 noundef %3632, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 466, ptr noundef %3634, ptr noundef %3636, ptr noundef %3638, i32 noundef %3639) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3641:                                             ; preds = %3614
  %3642 = add nsw i32 %3587, 3
  store i32 %3642, ptr @test_count, align 4, !tbaa !5
  %3643 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %3644 = icmp eq i32 %3643, -1
  br i1 %3644, label %3645, label %3667

3645:                                             ; preds = %3641
  %3646 = load i32, ptr %556, align 4, !tbaa !5
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = call i32 @s2n_print_stacktrace(ptr noundef %3647) #14
  %3649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3650 = trunc nuw i8 %3649 to i1
  br i1 %3650, label %3651, label %3655

3651:                                             ; preds = %3645
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = call i32 @fileno(ptr noundef %3652) #14
  %3654 = call i32 @isatty(i32 noundef %3653) #14
  %.not1340 = icmp eq i32 %3654, 0
  br i1 %.not1340, label %3655, label %3656

3655:                                             ; preds = %3651, %3645
  br label %3656

3656:                                             ; preds = %3651, %3655
  %.str.5.sink2624 = phi ptr [ @.str.5, %3655 ], [ @.str.2, %3651 ]
  store i32 %3646, ptr %556, align 4, !tbaa !5
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = load i32, ptr @test_count, align 4, !tbaa !5
  %3659 = load i32, ptr %502, align 4, !tbaa !5
  %3660 = call ptr @s2n_strerror(i32 noundef %3659, ptr noundef nonnull @.str.4) #14
  %3661 = load i32, ptr %502, align 4, !tbaa !5
  %3662 = call ptr @s2n_strerror_debug(i32 noundef %3661, ptr noundef nonnull @.str.4) #14
  %3663 = load i32, ptr %556, align 4, !tbaa !5
  %3664 = call ptr @strerror(i32 noundef %3663) #14
  %3665 = load i32, ptr %556, align 4, !tbaa !5
  %3666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3657, ptr noundef nonnull %.str.5.sink2624, i32 noundef %3658, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 467, ptr noundef %3660, ptr noundef %3662, ptr noundef %3664, i32 noundef %3665) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3667:                                             ; preds = %3641
  %3668 = load i32, ptr @test_count, align 4, !tbaa !5
  %3669 = add nsw i32 %3668, 1
  store i32 %3669, ptr @test_count, align 4, !tbaa !5
  %3670 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.88) #14
  %3671 = icmp eq i32 %3670, -1
  br i1 %3671, label %3672, label %3694

3672:                                             ; preds = %3667
  %3673 = load i32, ptr %556, align 4, !tbaa !5
  %3674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3675 = call i32 @s2n_print_stacktrace(ptr noundef %3674) #14
  %3676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3677 = trunc nuw i8 %3676 to i1
  br i1 %3677, label %3678, label %3682

3678:                                             ; preds = %3672
  %3679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3680 = call i32 @fileno(ptr noundef %3679) #14
  %3681 = call i32 @isatty(i32 noundef %3680) #14
  %.not1339 = icmp eq i32 %3681, 0
  br i1 %.not1339, label %3682, label %3683

3682:                                             ; preds = %3678, %3672
  br label %3683

3683:                                             ; preds = %3678, %3682
  %.str.5.sink2633 = phi ptr [ @.str.5, %3682 ], [ @.str.2, %3678 ]
  store i32 %3673, ptr %556, align 4, !tbaa !5
  %3684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3685 = load i32, ptr @test_count, align 4, !tbaa !5
  %3686 = load i32, ptr %502, align 4, !tbaa !5
  %3687 = call ptr @s2n_strerror(i32 noundef %3686, ptr noundef nonnull @.str.4) #14
  %3688 = load i32, ptr %502, align 4, !tbaa !5
  %3689 = call ptr @s2n_strerror_debug(i32 noundef %3688, ptr noundef nonnull @.str.4) #14
  %3690 = load i32, ptr %556, align 4, !tbaa !5
  %3691 = call ptr @strerror(i32 noundef %3690) #14
  %3692 = load i32, ptr %556, align 4, !tbaa !5
  %3693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3684, ptr noundef nonnull %.str.5.sink2633, i32 noundef %3685, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 479, ptr noundef %3687, ptr noundef %3689, ptr noundef %3691, i32 noundef %3692) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3694:                                             ; preds = %3667
  store ptr null, ptr %1974, align 8, !tbaa !56
  %3695 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %3695, ptr %1405, align 4, !tbaa !42
  %3696 = load i32, ptr @test_count, align 4, !tbaa !5
  %3697 = add nsw i32 %3696, 1
  store i32 %3697, ptr @test_count, align 4, !tbaa !5
  %3698 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %2556) #14
  %3699 = icmp eq i32 %3698, -1
  br i1 %3699, label %3700, label %3722

3700:                                             ; preds = %3694
  %3701 = load i32, ptr %556, align 4, !tbaa !5
  %3702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3703 = call i32 @s2n_print_stacktrace(ptr noundef %3702) #14
  %3704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3705 = trunc nuw i8 %3704 to i1
  br i1 %3705, label %3706, label %3710

3706:                                             ; preds = %3700
  %3707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3708 = call i32 @fileno(ptr noundef %3707) #14
  %3709 = call i32 @isatty(i32 noundef %3708) #14
  %.not1338 = icmp eq i32 %3709, 0
  br i1 %.not1338, label %3710, label %3711

3710:                                             ; preds = %3706, %3700
  br label %3711

3711:                                             ; preds = %3706, %3710
  %.str.5.sink2642 = phi ptr [ @.str.5, %3710 ], [ @.str.2, %3706 ]
  store i32 %3701, ptr %556, align 4, !tbaa !5
  %3712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = load i32, ptr %502, align 4, !tbaa !5
  %3715 = call ptr @s2n_strerror(i32 noundef %3714, ptr noundef nonnull @.str.4) #14
  %3716 = load i32, ptr %502, align 4, !tbaa !5
  %3717 = call ptr @s2n_strerror_debug(i32 noundef %3716, ptr noundef nonnull @.str.4) #14
  %3718 = load i32, ptr %556, align 4, !tbaa !5
  %3719 = call ptr @strerror(i32 noundef %3718) #14
  %3720 = load i32, ptr %556, align 4, !tbaa !5
  %3721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3712, ptr noundef nonnull %.str.5.sink2642, i32 noundef %3713, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %3715, ptr noundef %3717, ptr noundef %3719, i32 noundef %3720) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3722:                                             ; preds = %3694
  %3723 = load i32, ptr @test_count, align 4, !tbaa !5
  %3724 = add nsw i32 %3723, 1
  store i32 %3724, ptr @test_count, align 4, !tbaa !5
  %3725 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %16, i16 noundef zeroext 6) #14
  %3726 = icmp eq i32 %3725, -1
  br i1 %3726, label %3727, label %3749

3727:                                             ; preds = %3722
  %3728 = load i32, ptr %556, align 4, !tbaa !5
  %3729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3730 = call i32 @s2n_print_stacktrace(ptr noundef %3729) #14
  %3731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3732 = trunc nuw i8 %3731 to i1
  br i1 %3732, label %3733, label %3737

3733:                                             ; preds = %3727
  %3734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3735 = call i32 @fileno(ptr noundef %3734) #14
  %3736 = call i32 @isatty(i32 noundef %3735) #14
  %.not1337 = icmp eq i32 %3736, 0
  br i1 %.not1337, label %3737, label %3738

3737:                                             ; preds = %3733, %3727
  br label %3738

3738:                                             ; preds = %3733, %3737
  %.str.5.sink2651 = phi ptr [ @.str.5, %3737 ], [ @.str.2, %3733 ]
  store i32 %3728, ptr %556, align 4, !tbaa !5
  %3739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3740 = load i32, ptr @test_count, align 4, !tbaa !5
  %3741 = load i32, ptr %502, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror(i32 noundef %3741, ptr noundef nonnull @.str.4) #14
  %3743 = load i32, ptr %502, align 4, !tbaa !5
  %3744 = call ptr @s2n_strerror_debug(i32 noundef %3743, ptr noundef nonnull @.str.4) #14
  %3745 = load i32, ptr %556, align 4, !tbaa !5
  %3746 = call ptr @strerror(i32 noundef %3745) #14
  %3747 = load i32, ptr %556, align 4, !tbaa !5
  %3748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3739, ptr noundef nonnull %.str.5.sink2651, i32 noundef %3740, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 484, ptr noundef %3742, ptr noundef %3744, ptr noundef %3746, i32 noundef %3747) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3749:                                             ; preds = %3722
  %3750 = load i32, ptr @test_count, align 4, !tbaa !5
  %3751 = add nsw i32 %3750, 1
  store i32 %3751, ptr @test_count, align 4, !tbaa !5
  %3752 = load i32, ptr %1051, align 8
  %3753 = and i32 %3752, 8
  %3754 = icmp eq i32 %3753, 0
  br i1 %3754, label %3777, label %3755

3755:                                             ; preds = %3749
  %3756 = load i32, ptr %556, align 4, !tbaa !5
  %3757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3758 = call i32 @s2n_print_stacktrace(ptr noundef %3757) #14
  %3759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3760 = trunc nuw i8 %3759 to i1
  br i1 %3760, label %3761, label %3765

3761:                                             ; preds = %3755
  %3762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3763 = call i32 @fileno(ptr noundef %3762) #14
  %3764 = call i32 @isatty(i32 noundef %3763) #14
  %.not1134 = icmp eq i32 %3764, 0
  br i1 %.not1134, label %3765, label %3766

3765:                                             ; preds = %3761, %3755
  br label %3766

3766:                                             ; preds = %3761, %3765
  %.str.5.sink2660 = phi ptr [ @.str.5, %3765 ], [ @.str.2, %3761 ]
  store i32 %3756, ptr %556, align 4, !tbaa !5
  %3767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3768 = load i32, ptr @test_count, align 4, !tbaa !5
  %3769 = load i32, ptr %502, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror(i32 noundef %3769, ptr noundef nonnull @.str.4) #14
  %3771 = load i32, ptr %502, align 4, !tbaa !5
  %3772 = call ptr @s2n_strerror_debug(i32 noundef %3771, ptr noundef nonnull @.str.4) #14
  %3773 = load i32, ptr %556, align 4, !tbaa !5
  %3774 = call ptr @strerror(i32 noundef %3773) #14
  %3775 = load i32, ptr %556, align 4, !tbaa !5
  %3776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3767, ptr noundef nonnull %.str.5.sink2660, i32 noundef %3768, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 485, ptr noundef %3770, ptr noundef %3772, ptr noundef %3774, i32 noundef %3775) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3777:                                             ; preds = %3749
  %3778 = add nsw i32 %3750, 2
  store i32 %3778, ptr @test_count, align 4, !tbaa !5
  %3779 = load ptr, ptr %2032, align 8, !tbaa !48
  %3780 = load ptr, ptr %3779, align 8, !tbaa !49
  %3781 = icmp eq ptr %3780, @s2n_rsa_with_aes_256_gcm_sha384
  br i1 %3781, label %3804, label %3782

3782:                                             ; preds = %3777
  %3783 = load i32, ptr %556, align 4, !tbaa !5
  %3784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3785 = call i32 @s2n_print_stacktrace(ptr noundef %3784) #14
  %3786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3787 = trunc nuw i8 %3786 to i1
  br i1 %3787, label %3788, label %3792

3788:                                             ; preds = %3782
  %3789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3790 = call i32 @fileno(ptr noundef %3789) #14
  %3791 = call i32 @isatty(i32 noundef %3790) #14
  %.not1135 = icmp eq i32 %3791, 0
  br i1 %.not1135, label %3792, label %3793

3792:                                             ; preds = %3788, %3782
  br label %3793

3793:                                             ; preds = %3788, %3792
  %.str.5.sink2669 = phi ptr [ @.str.5, %3792 ], [ @.str.2, %3788 ]
  store i32 %3783, ptr %556, align 4, !tbaa !5
  %3794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3795 = load i32, ptr @test_count, align 4, !tbaa !5
  %3796 = load i32, ptr %502, align 4, !tbaa !5
  %3797 = call ptr @s2n_strerror(i32 noundef %3796, ptr noundef nonnull @.str.4) #14
  %3798 = load i32, ptr %502, align 4, !tbaa !5
  %3799 = call ptr @s2n_strerror_debug(i32 noundef %3798, ptr noundef nonnull @.str.4) #14
  %3800 = load i32, ptr %556, align 4, !tbaa !5
  %3801 = call ptr @strerror(i32 noundef %3800) #14
  %3802 = load i32, ptr %556, align 4, !tbaa !5
  %3803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3794, ptr noundef nonnull %.str.5.sink2669, i32 noundef %3795, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 486, ptr noundef %3797, ptr noundef %3799, ptr noundef %3801, i32 noundef %3802) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3804:                                             ; preds = %3777
  %3805 = add nsw i32 %3750, 3
  store i32 %3805, ptr @test_count, align 4, !tbaa !5
  %3806 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %3807 = icmp eq i32 %3806, -1
  br i1 %3807, label %3808, label %3830

3808:                                             ; preds = %3804
  %3809 = load i32, ptr %556, align 4, !tbaa !5
  %3810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3811 = call i32 @s2n_print_stacktrace(ptr noundef %3810) #14
  %3812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3813 = trunc nuw i8 %3812 to i1
  br i1 %3813, label %3814, label %3818

3814:                                             ; preds = %3808
  %3815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3816 = call i32 @fileno(ptr noundef %3815) #14
  %3817 = call i32 @isatty(i32 noundef %3816) #14
  %.not1336 = icmp eq i32 %3817, 0
  br i1 %.not1336, label %3818, label %3819

3818:                                             ; preds = %3814, %3808
  br label %3819

3819:                                             ; preds = %3814, %3818
  %.str.5.sink2678 = phi ptr [ @.str.5, %3818 ], [ @.str.2, %3814 ]
  store i32 %3809, ptr %556, align 4, !tbaa !5
  %3820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3821 = load i32, ptr @test_count, align 4, !tbaa !5
  %3822 = load i32, ptr %502, align 4, !tbaa !5
  %3823 = call ptr @s2n_strerror(i32 noundef %3822, ptr noundef nonnull @.str.4) #14
  %3824 = load i32, ptr %502, align 4, !tbaa !5
  %3825 = call ptr @s2n_strerror_debug(i32 noundef %3824, ptr noundef nonnull @.str.4) #14
  %3826 = load i32, ptr %556, align 4, !tbaa !5
  %3827 = call ptr @strerror(i32 noundef %3826) #14
  %3828 = load i32, ptr %556, align 4, !tbaa !5
  %3829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3820, ptr noundef nonnull %.str.5.sink2678, i32 noundef %3821, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %3823, ptr noundef %3825, ptr noundef %3827, i32 noundef %3828) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3830:                                             ; preds = %3804
  %3831 = load i32, ptr @test_count, align 4, !tbaa !5
  %3832 = add nsw i32 %3831, 1
  store i32 %3832, ptr @test_count, align 4, !tbaa !5
  %3833 = call i32 @s2n_config_free(ptr noundef nonnull %2556) #14
  %3834 = icmp eq i32 %3833, -1
  br i1 %3834, label %3835, label %3857

3835:                                             ; preds = %3830
  %3836 = load i32, ptr %556, align 4, !tbaa !5
  %3837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3838 = call i32 @s2n_print_stacktrace(ptr noundef %3837) #14
  %3839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3840 = trunc nuw i8 %3839 to i1
  br i1 %3840, label %3841, label %3845

3841:                                             ; preds = %3835
  %3842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3843 = call i32 @fileno(ptr noundef %3842) #14
  %3844 = call i32 @isatty(i32 noundef %3843) #14
  %.not1335 = icmp eq i32 %3844, 0
  br i1 %.not1335, label %3845, label %3846

3845:                                             ; preds = %3841, %3835
  br label %3846

3846:                                             ; preds = %3841, %3845
  %.str.5.sink2687 = phi ptr [ @.str.5, %3845 ], [ @.str.2, %3841 ]
  store i32 %3836, ptr %556, align 4, !tbaa !5
  %3847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3848 = load i32, ptr @test_count, align 4, !tbaa !5
  %3849 = load i32, ptr %502, align 4, !tbaa !5
  %3850 = call ptr @s2n_strerror(i32 noundef %3849, ptr noundef nonnull @.str.4) #14
  %3851 = load i32, ptr %502, align 4, !tbaa !5
  %3852 = call ptr @s2n_strerror_debug(i32 noundef %3851, ptr noundef nonnull @.str.4) #14
  %3853 = load i32, ptr %556, align 4, !tbaa !5
  %3854 = call ptr @strerror(i32 noundef %3853) #14
  %3855 = load i32, ptr %556, align 4, !tbaa !5
  %3856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3847, ptr noundef nonnull %.str.5.sink2687, i32 noundef %3848, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 489, ptr noundef %3850, ptr noundef %3852, ptr noundef %3854, i32 noundef %3855) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3857:                                             ; preds = %3830
  %3858 = load i32, ptr @test_count, align 4, !tbaa !5
  %3859 = add nsw i32 %3858, 1
  store i32 %3859, ptr @test_count, align 4, !tbaa !5
  %3860 = call ptr @s2n_config_new() #14
  %3861 = icmp eq ptr %3860, null
  br i1 %3861, label %3862, label %3884

3862:                                             ; preds = %3857
  %3863 = load i32, ptr %556, align 4, !tbaa !5
  %3864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3865 = call i32 @s2n_print_stacktrace(ptr noundef %3864) #14
  %3866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3867 = trunc nuw i8 %3866 to i1
  br i1 %3867, label %3868, label %3872

3868:                                             ; preds = %3862
  %3869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3870 = call i32 @fileno(ptr noundef %3869) #14
  %3871 = call i32 @isatty(i32 noundef %3870) #14
  %.not1334 = icmp eq i32 %3871, 0
  br i1 %.not1334, label %3872, label %3873

3872:                                             ; preds = %3868, %3862
  br label %3873

3873:                                             ; preds = %3868, %3872
  %.str.5.sink2696 = phi ptr [ @.str.5, %3872 ], [ @.str.2, %3868 ]
  store i32 %3863, ptr %556, align 4, !tbaa !5
  %3874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3875 = load i32, ptr @test_count, align 4, !tbaa !5
  %3876 = load i32, ptr %502, align 4, !tbaa !5
  %3877 = call ptr @s2n_strerror(i32 noundef %3876, ptr noundef nonnull @.str.4) #14
  %3878 = load i32, ptr %502, align 4, !tbaa !5
  %3879 = call ptr @s2n_strerror_debug(i32 noundef %3878, ptr noundef nonnull @.str.4) #14
  %3880 = load i32, ptr %556, align 4, !tbaa !5
  %3881 = call ptr @strerror(i32 noundef %3880) #14
  %3882 = load i32, ptr %556, align 4, !tbaa !5
  %3883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3874, ptr noundef nonnull %.str.5.sink2696, i32 noundef %3875, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 491, ptr noundef %3877, ptr noundef %3879, ptr noundef %3881, i32 noundef %3882) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3884:                                             ; preds = %3857
  %3885 = load i32, ptr @test_count, align 4, !tbaa !5
  %3886 = add nsw i32 %3885, 1
  store i32 %3886, ptr @test_count, align 4, !tbaa !5
  %3887 = load ptr, ptr %9, align 8, !tbaa !9
  %3888 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %3860, ptr noundef %3887) #14
  %3889 = icmp eq i32 %3888, -1
  br i1 %3889, label %3890, label %3912

3890:                                             ; preds = %3884
  %3891 = load i32, ptr %556, align 4, !tbaa !5
  %3892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3893 = call i32 @s2n_print_stacktrace(ptr noundef %3892) #14
  %3894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3895 = trunc nuw i8 %3894 to i1
  br i1 %3895, label %3896, label %3900

3896:                                             ; preds = %3890
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = call i32 @fileno(ptr noundef %3897) #14
  %3899 = call i32 @isatty(i32 noundef %3898) #14
  %.not1333 = icmp eq i32 %3899, 0
  br i1 %.not1333, label %3900, label %3901

3900:                                             ; preds = %3896, %3890
  br label %3901

3901:                                             ; preds = %3896, %3900
  %.str.5.sink2705 = phi ptr [ @.str.5, %3900 ], [ @.str.2, %3896 ]
  store i32 %3891, ptr %556, align 4, !tbaa !5
  %3902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = load i32, ptr %502, align 4, !tbaa !5
  %3905 = call ptr @s2n_strerror(i32 noundef %3904, ptr noundef nonnull @.str.4) #14
  %3906 = load i32, ptr %502, align 4, !tbaa !5
  %3907 = call ptr @s2n_strerror_debug(i32 noundef %3906, ptr noundef nonnull @.str.4) #14
  %3908 = load i32, ptr %556, align 4, !tbaa !5
  %3909 = call ptr @strerror(i32 noundef %3908) #14
  %3910 = load i32, ptr %556, align 4, !tbaa !5
  %3911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3902, ptr noundef nonnull %.str.5.sink2705, i32 noundef %3903, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %3905, ptr noundef %3907, ptr noundef %3909, i32 noundef %3910) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3912:                                             ; preds = %3884
  %3913 = load i32, ptr @test_count, align 4, !tbaa !5
  %3914 = add nsw i32 %3913, 1
  store i32 %3914, ptr @test_count, align 4, !tbaa !5
  %3915 = load ptr, ptr %10, align 8, !tbaa !9
  %3916 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %3860, ptr noundef %3915) #14
  %3917 = icmp eq i32 %3916, -1
  br i1 %3917, label %3918, label %3940

3918:                                             ; preds = %3912
  %3919 = load i32, ptr %556, align 4, !tbaa !5
  %3920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3921 = call i32 @s2n_print_stacktrace(ptr noundef %3920) #14
  %3922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3923 = trunc nuw i8 %3922 to i1
  br i1 %3923, label %3924, label %3928

3924:                                             ; preds = %3918
  %3925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3926 = call i32 @fileno(ptr noundef %3925) #14
  %3927 = call i32 @isatty(i32 noundef %3926) #14
  %.not1332 = icmp eq i32 %3927, 0
  br i1 %.not1332, label %3928, label %3929

3928:                                             ; preds = %3924, %3918
  br label %3929

3929:                                             ; preds = %3924, %3928
  %.str.5.sink2714 = phi ptr [ @.str.5, %3928 ], [ @.str.2, %3924 ]
  store i32 %3919, ptr %556, align 4, !tbaa !5
  %3930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3931 = load i32, ptr @test_count, align 4, !tbaa !5
  %3932 = load i32, ptr %502, align 4, !tbaa !5
  %3933 = call ptr @s2n_strerror(i32 noundef %3932, ptr noundef nonnull @.str.4) #14
  %3934 = load i32, ptr %502, align 4, !tbaa !5
  %3935 = call ptr @s2n_strerror_debug(i32 noundef %3934, ptr noundef nonnull @.str.4) #14
  %3936 = load i32, ptr %556, align 4, !tbaa !5
  %3937 = call ptr @strerror(i32 noundef %3936) #14
  %3938 = load i32, ptr %556, align 4, !tbaa !5
  %3939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3930, ptr noundef nonnull %.str.5.sink2714, i32 noundef %3931, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 493, ptr noundef %3933, ptr noundef %3935, ptr noundef %3937, i32 noundef %3938) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3940:                                             ; preds = %3912
  %3941 = load i32, ptr @test_count, align 4, !tbaa !5
  %3942 = add nsw i32 %3941, 1
  store i32 %3942, ptr @test_count, align 4, !tbaa !5
  %3943 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef nonnull %3860, ptr noundef nonnull %9, i32 noundef 1) #14
  %3944 = icmp eq i32 %3943, -1
  br i1 %3944, label %3945, label %3967

3945:                                             ; preds = %3940
  %3946 = load i32, ptr %556, align 4, !tbaa !5
  %3947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3948 = call i32 @s2n_print_stacktrace(ptr noundef %3947) #14
  %3949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3950 = trunc nuw i8 %3949 to i1
  br i1 %3950, label %3951, label %3955

3951:                                             ; preds = %3945
  %3952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3953 = call i32 @fileno(ptr noundef %3952) #14
  %3954 = call i32 @isatty(i32 noundef %3953) #14
  %.not1331 = icmp eq i32 %3954, 0
  br i1 %.not1331, label %3955, label %3956

3955:                                             ; preds = %3951, %3945
  br label %3956

3956:                                             ; preds = %3951, %3955
  %.str.5.sink2723 = phi ptr [ @.str.5, %3955 ], [ @.str.2, %3951 ]
  store i32 %3946, ptr %556, align 4, !tbaa !5
  %3957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3958 = load i32, ptr @test_count, align 4, !tbaa !5
  %3959 = load i32, ptr %502, align 4, !tbaa !5
  %3960 = call ptr @s2n_strerror(i32 noundef %3959, ptr noundef nonnull @.str.4) #14
  %3961 = load i32, ptr %502, align 4, !tbaa !5
  %3962 = call ptr @s2n_strerror_debug(i32 noundef %3961, ptr noundef nonnull @.str.4) #14
  %3963 = load i32, ptr %556, align 4, !tbaa !5
  %3964 = call ptr @strerror(i32 noundef %3963) #14
  %3965 = load i32, ptr %556, align 4, !tbaa !5
  %3966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3957, ptr noundef nonnull %.str.5.sink2723, i32 noundef %3958, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 495, ptr noundef %3960, ptr noundef %3962, ptr noundef %3964, i32 noundef %3965) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3967:                                             ; preds = %3940
  %3968 = load i32, ptr @test_count, align 4, !tbaa !5
  %3969 = add nsw i32 %3968, 1
  store i32 %3969, ptr @test_count, align 4, !tbaa !5
  %3970 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %3860) #14
  %3971 = icmp eq i32 %3970, -1
  br i1 %3971, label %3972, label %3994

3972:                                             ; preds = %3967
  %3973 = load i32, ptr %556, align 4, !tbaa !5
  %3974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3975 = call i32 @s2n_print_stacktrace(ptr noundef %3974) #14
  %3976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3977 = trunc nuw i8 %3976 to i1
  br i1 %3977, label %3978, label %3982

3978:                                             ; preds = %3972
  %3979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3980 = call i32 @fileno(ptr noundef %3979) #14
  %3981 = call i32 @isatty(i32 noundef %3980) #14
  %.not1330 = icmp eq i32 %3981, 0
  br i1 %.not1330, label %3982, label %3983

3982:                                             ; preds = %3978, %3972
  br label %3983

3983:                                             ; preds = %3978, %3982
  %.str.5.sink2732 = phi ptr [ @.str.5, %3982 ], [ @.str.2, %3978 ]
  store i32 %3973, ptr %556, align 4, !tbaa !5
  %3984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3985 = load i32, ptr @test_count, align 4, !tbaa !5
  %3986 = load i32, ptr %502, align 4, !tbaa !5
  %3987 = call ptr @s2n_strerror(i32 noundef %3986, ptr noundef nonnull @.str.4) #14
  %3988 = load i32, ptr %502, align 4, !tbaa !5
  %3989 = call ptr @s2n_strerror_debug(i32 noundef %3988, ptr noundef nonnull @.str.4) #14
  %3990 = load i32, ptr %556, align 4, !tbaa !5
  %3991 = call ptr @strerror(i32 noundef %3990) #14
  %3992 = load i32, ptr %556, align 4, !tbaa !5
  %3993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3984, ptr noundef nonnull %.str.5.sink2732, i32 noundef %3985, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %3987, ptr noundef %3989, ptr noundef %3991, i32 noundef %3992) #16
  call void @exit(i32 noundef 1) #17
  unreachable

3994:                                             ; preds = %3967
  %3995 = load i32, ptr @test_count, align 4, !tbaa !5
  %3996 = add nsw i32 %3995, 1
  store i32 %3996, ptr @test_count, align 4, !tbaa !5
  %3997 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.72) #14
  %3998 = icmp eq i32 %3997, -1
  br i1 %3998, label %3999, label %4021

3999:                                             ; preds = %3994
  %4000 = load i32, ptr %556, align 4, !tbaa !5
  %4001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4002 = call i32 @s2n_print_stacktrace(ptr noundef %4001) #14
  %4003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4004 = trunc nuw i8 %4003 to i1
  br i1 %4004, label %4005, label %4009

4005:                                             ; preds = %3999
  %4006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4007 = call i32 @fileno(ptr noundef %4006) #14
  %4008 = call i32 @isatty(i32 noundef %4007) #14
  %.not1329 = icmp eq i32 %4008, 0
  br i1 %.not1329, label %4009, label %4010

4009:                                             ; preds = %4005, %3999
  br label %4010

4010:                                             ; preds = %4005, %4009
  %.str.5.sink2741 = phi ptr [ @.str.5, %4009 ], [ @.str.2, %4005 ]
  store i32 %4000, ptr %556, align 4, !tbaa !5
  %4011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4012 = load i32, ptr @test_count, align 4, !tbaa !5
  %4013 = load i32, ptr %502, align 4, !tbaa !5
  %4014 = call ptr @s2n_strerror(i32 noundef %4013, ptr noundef nonnull @.str.4) #14
  %4015 = load i32, ptr %502, align 4, !tbaa !5
  %4016 = call ptr @s2n_strerror_debug(i32 noundef %4015, ptr noundef nonnull @.str.4) #14
  %4017 = load i32, ptr %556, align 4, !tbaa !5
  %4018 = call ptr @strerror(i32 noundef %4017) #14
  %4019 = load i32, ptr %556, align 4, !tbaa !5
  %4020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4011, ptr noundef nonnull %.str.5.sink2741, i32 noundef %4012, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %4014, ptr noundef %4016, ptr noundef %4018, i32 noundef %4019) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4021:                                             ; preds = %3994
  %4022 = load ptr, ptr %17, align 8, !tbaa !9
  %4023 = getelementptr inbounds i8, ptr %4022, i64 8
  %4024 = load ptr, ptr %4023, align 8, !tbaa !54
  %4025 = load ptr, ptr %4024, align 8, !tbaa !9
  store ptr %4025, ptr %1974, align 8, !tbaa !56
  %4026 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %4026, ptr %1405, align 4, !tbaa !42
  %4027 = load i32, ptr @test_count, align 4, !tbaa !5
  %4028 = add nsw i32 %4027, 1
  store i32 %4028, ptr @test_count, align 4, !tbaa !5
  %4029 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %3860) #14
  %4030 = icmp eq i32 %4029, -1
  br i1 %4030, label %4031, label %4053

4031:                                             ; preds = %4021
  %4032 = load i32, ptr %556, align 4, !tbaa !5
  %4033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4034 = call i32 @s2n_print_stacktrace(ptr noundef %4033) #14
  %4035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4036 = trunc nuw i8 %4035 to i1
  br i1 %4036, label %4037, label %4041

4037:                                             ; preds = %4031
  %4038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4039 = call i32 @fileno(ptr noundef %4038) #14
  %4040 = call i32 @isatty(i32 noundef %4039) #14
  %.not1328 = icmp eq i32 %4040, 0
  br i1 %.not1328, label %4041, label %4042

4041:                                             ; preds = %4037, %4031
  br label %4042

4042:                                             ; preds = %4037, %4041
  %.str.5.sink2750 = phi ptr [ @.str.5, %4041 ], [ @.str.2, %4037 ]
  store i32 %4032, ptr %556, align 4, !tbaa !5
  %4043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4044 = load i32, ptr @test_count, align 4, !tbaa !5
  %4045 = load i32, ptr %502, align 4, !tbaa !5
  %4046 = call ptr @s2n_strerror(i32 noundef %4045, ptr noundef nonnull @.str.4) #14
  %4047 = load i32, ptr %502, align 4, !tbaa !5
  %4048 = call ptr @s2n_strerror_debug(i32 noundef %4047, ptr noundef nonnull @.str.4) #14
  %4049 = load i32, ptr %556, align 4, !tbaa !5
  %4050 = call ptr @strerror(i32 noundef %4049) #14
  %4051 = load i32, ptr %556, align 4, !tbaa !5
  %4052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4043, ptr noundef nonnull %.str.5.sink2750, i32 noundef %4044, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %4046, ptr noundef %4048, ptr noundef %4050, i32 noundef %4051) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4053:                                             ; preds = %4021
  %4054 = load i32, ptr @test_count, align 4, !tbaa !5
  %4055 = add nsw i32 %4054, 1
  store i32 %4055, ptr @test_count, align 4, !tbaa !5
  %4056 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %4057 = icmp eq i32 %4056, -1
  br i1 %4057, label %4058, label %4080

4058:                                             ; preds = %4053
  %4059 = load i32, ptr %556, align 4, !tbaa !5
  %4060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4061 = call i32 @s2n_print_stacktrace(ptr noundef %4060) #14
  %4062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4063 = trunc nuw i8 %4062 to i1
  br i1 %4063, label %4064, label %4068

4064:                                             ; preds = %4058
  %4065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4066 = call i32 @fileno(ptr noundef %4065) #14
  %4067 = call i32 @isatty(i32 noundef %4066) #14
  %.not1327 = icmp eq i32 %4067, 0
  br i1 %.not1327, label %4068, label %4069

4068:                                             ; preds = %4064, %4058
  br label %4069

4069:                                             ; preds = %4064, %4068
  %.str.5.sink2759 = phi ptr [ @.str.5, %4068 ], [ @.str.2, %4064 ]
  store i32 %4059, ptr %556, align 4, !tbaa !5
  %4070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4071 = load i32, ptr @test_count, align 4, !tbaa !5
  %4072 = load i32, ptr %502, align 4, !tbaa !5
  %4073 = call ptr @s2n_strerror(i32 noundef %4072, ptr noundef nonnull @.str.4) #14
  %4074 = load i32, ptr %502, align 4, !tbaa !5
  %4075 = call ptr @s2n_strerror_debug(i32 noundef %4074, ptr noundef nonnull @.str.4) #14
  %4076 = load i32, ptr %556, align 4, !tbaa !5
  %4077 = call ptr @strerror(i32 noundef %4076) #14
  %4078 = load i32, ptr %556, align 4, !tbaa !5
  %4079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4070, ptr noundef nonnull %.str.5.sink2759, i32 noundef %4071, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 506, ptr noundef %4073, ptr noundef %4075, ptr noundef %4077, i32 noundef %4078) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4080:                                             ; preds = %4053
  %4081 = load i32, ptr @test_count, align 4, !tbaa !5
  %4082 = add nsw i32 %4081, 1
  store i32 %4082, ptr @test_count, align 4, !tbaa !5
  %4083 = load i32, ptr %1051, align 8
  %4084 = and i32 %4083, 8
  %4085 = icmp eq i32 %4084, 0
  br i1 %4085, label %4108, label %4086

4086:                                             ; preds = %4080
  %4087 = load i32, ptr %556, align 4, !tbaa !5
  %4088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4089 = call i32 @s2n_print_stacktrace(ptr noundef %4088) #14
  %4090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4091 = trunc nuw i8 %4090 to i1
  br i1 %4091, label %4092, label %4096

4092:                                             ; preds = %4086
  %4093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4094 = call i32 @fileno(ptr noundef %4093) #14
  %4095 = call i32 @isatty(i32 noundef %4094) #14
  %.not1136 = icmp eq i32 %4095, 0
  br i1 %.not1136, label %4096, label %4097

4096:                                             ; preds = %4092, %4086
  br label %4097

4097:                                             ; preds = %4092, %4096
  %.str.5.sink2768 = phi ptr [ @.str.5, %4096 ], [ @.str.2, %4092 ]
  store i32 %4087, ptr %556, align 4, !tbaa !5
  %4098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4099 = load i32, ptr @test_count, align 4, !tbaa !5
  %4100 = load i32, ptr %502, align 4, !tbaa !5
  %4101 = call ptr @s2n_strerror(i32 noundef %4100, ptr noundef nonnull @.str.4) #14
  %4102 = load i32, ptr %502, align 4, !tbaa !5
  %4103 = call ptr @s2n_strerror_debug(i32 noundef %4102, ptr noundef nonnull @.str.4) #14
  %4104 = load i32, ptr %556, align 4, !tbaa !5
  %4105 = call ptr @strerror(i32 noundef %4104) #14
  %4106 = load i32, ptr %556, align 4, !tbaa !5
  %4107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4098, ptr noundef nonnull %.str.5.sink2768, i32 noundef %4099, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 507, ptr noundef %4101, ptr noundef %4103, ptr noundef %4105, i32 noundef %4106) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4108:                                             ; preds = %4080
  %4109 = add nsw i32 %4081, 2
  store i32 %4109, ptr @test_count, align 4, !tbaa !5
  %4110 = load ptr, ptr %2032, align 8, !tbaa !48
  %4111 = load ptr, ptr %4110, align 8, !tbaa !49
  %4112 = icmp eq ptr %4111, @s2n_ecdhe_rsa_with_aes_128_cbc_sha
  br i1 %4112, label %4135, label %4113

4113:                                             ; preds = %4108
  %4114 = load i32, ptr %556, align 4, !tbaa !5
  %4115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4116 = call i32 @s2n_print_stacktrace(ptr noundef %4115) #14
  %4117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4118 = trunc nuw i8 %4117 to i1
  br i1 %4118, label %4119, label %4123

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

4123:                                             ; preds = %4119, %4113
  br label %4124

4124:                                             ; preds = %4119, %4123
  %.str.5.sink2777 = phi ptr [ @.str.5, %4123 ], [ @.str.2, %4119 ]
  store i32 %4114, ptr %556, align 4, !tbaa !5
  %4125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4126 = load i32, ptr @test_count, align 4, !tbaa !5
  %4127 = load i32, ptr %502, align 4, !tbaa !5
  %4128 = call ptr @s2n_strerror(i32 noundef %4127, ptr noundef nonnull @.str.4) #14
  %4129 = load i32, ptr %502, align 4, !tbaa !5
  %4130 = call ptr @s2n_strerror_debug(i32 noundef %4129, ptr noundef nonnull @.str.4) #14
  %4131 = load i32, ptr %556, align 4, !tbaa !5
  %4132 = call ptr @strerror(i32 noundef %4131) #14
  %4133 = load i32, ptr %556, align 4, !tbaa !5
  %4134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4125, ptr noundef nonnull %.str.5.sink2777, i32 noundef %4126, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 508, ptr noundef %4128, ptr noundef %4130, ptr noundef %4132, i32 noundef %4133) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4135:                                             ; preds = %4108
  %4136 = add nsw i32 %4081, 3
  store i32 %4136, ptr @test_count, align 4, !tbaa !5
  %4137 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %4138 = icmp eq i32 %4137, -1
  br i1 %4138, label %4139, label %4161

4139:                                             ; preds = %4135
  %4140 = load i32, ptr %556, align 4, !tbaa !5
  %4141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4142 = call i32 @s2n_print_stacktrace(ptr noundef %4141) #14
  %4143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4144 = trunc nuw i8 %4143 to i1
  br i1 %4144, label %4145, label %4149

4145:                                             ; preds = %4139
  %4146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4147 = call i32 @fileno(ptr noundef %4146) #14
  %4148 = call i32 @isatty(i32 noundef %4147) #14
  %.not1326 = icmp eq i32 %4148, 0
  br i1 %.not1326, label %4149, label %4150

4149:                                             ; preds = %4145, %4139
  br label %4150

4150:                                             ; preds = %4145, %4149
  %.str.5.sink2786 = phi ptr [ @.str.5, %4149 ], [ @.str.2, %4145 ]
  store i32 %4140, ptr %556, align 4, !tbaa !5
  %4151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4152 = load i32, ptr @test_count, align 4, !tbaa !5
  %4153 = load i32, ptr %502, align 4, !tbaa !5
  %4154 = call ptr @s2n_strerror(i32 noundef %4153, ptr noundef nonnull @.str.4) #14
  %4155 = load i32, ptr %502, align 4, !tbaa !5
  %4156 = call ptr @s2n_strerror_debug(i32 noundef %4155, ptr noundef nonnull @.str.4) #14
  %4157 = load i32, ptr %556, align 4, !tbaa !5
  %4158 = call ptr @strerror(i32 noundef %4157) #14
  %4159 = load i32, ptr %556, align 4, !tbaa !5
  %4160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4151, ptr noundef nonnull %.str.5.sink2786, i32 noundef %4152, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 509, ptr noundef %4154, ptr noundef %4156, ptr noundef %4158, i32 noundef %4159) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4161:                                             ; preds = %4135
  %4162 = load i32, ptr @test_count, align 4, !tbaa !5
  %4163 = add nsw i32 %4162, 1
  store i32 %4163, ptr @test_count, align 4, !tbaa !5
  %4164 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef nonnull %3860, ptr noundef nonnull %10, i32 noundef 1) #14
  %4165 = icmp eq i32 %4164, -1
  br i1 %4165, label %4166, label %4188

4166:                                             ; preds = %4161
  %4167 = load i32, ptr %556, align 4, !tbaa !5
  %4168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4169 = call i32 @s2n_print_stacktrace(ptr noundef %4168) #14
  %4170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4171 = trunc nuw i8 %4170 to i1
  br i1 %4171, label %4172, label %4176

4172:                                             ; preds = %4166
  %4173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4174 = call i32 @fileno(ptr noundef %4173) #14
  %4175 = call i32 @isatty(i32 noundef %4174) #14
  %.not1325 = icmp eq i32 %4175, 0
  br i1 %.not1325, label %4176, label %4177

4176:                                             ; preds = %4172, %4166
  br label %4177

4177:                                             ; preds = %4172, %4176
  %.str.5.sink2795 = phi ptr [ @.str.5, %4176 ], [ @.str.2, %4172 ]
  store i32 %4167, ptr %556, align 4, !tbaa !5
  %4178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4179 = load i32, ptr @test_count, align 4, !tbaa !5
  %4180 = load i32, ptr %502, align 4, !tbaa !5
  %4181 = call ptr @s2n_strerror(i32 noundef %4180, ptr noundef nonnull @.str.4) #14
  %4182 = load i32, ptr %502, align 4, !tbaa !5
  %4183 = call ptr @s2n_strerror_debug(i32 noundef %4182, ptr noundef nonnull @.str.4) #14
  %4184 = load i32, ptr %556, align 4, !tbaa !5
  %4185 = call ptr @strerror(i32 noundef %4184) #14
  %4186 = load i32, ptr %556, align 4, !tbaa !5
  %4187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4178, ptr noundef nonnull %.str.5.sink2795, i32 noundef %4179, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 513, ptr noundef %4181, ptr noundef %4183, ptr noundef %4185, i32 noundef %4186) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4188:                                             ; preds = %4161
  %4189 = load i32, ptr @test_count, align 4, !tbaa !5
  %4190 = add nsw i32 %4189, 1
  store i32 %4190, ptr @test_count, align 4, !tbaa !5
  %4191 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %4192 = icmp eq i32 %4191, -1
  br i1 %4192, label %4193, label %4215

4193:                                             ; preds = %4188
  %4194 = load i32, ptr %556, align 4, !tbaa !5
  %4195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4196 = call i32 @s2n_print_stacktrace(ptr noundef %4195) #14
  %4197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4198 = trunc nuw i8 %4197 to i1
  br i1 %4198, label %4199, label %4203

4199:                                             ; preds = %4193
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4201 = call i32 @fileno(ptr noundef %4200) #14
  %4202 = call i32 @isatty(i32 noundef %4201) #14
  %.not1324 = icmp eq i32 %4202, 0
  br i1 %.not1324, label %4203, label %4204

4203:                                             ; preds = %4199, %4193
  br label %4204

4204:                                             ; preds = %4199, %4203
  %.str.5.sink2804 = phi ptr [ @.str.5, %4203 ], [ @.str.2, %4199 ]
  store i32 %4194, ptr %556, align 4, !tbaa !5
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4206 = load i32, ptr @test_count, align 4, !tbaa !5
  %4207 = load i32, ptr %502, align 4, !tbaa !5
  %4208 = call ptr @s2n_strerror(i32 noundef %4207, ptr noundef nonnull @.str.4) #14
  %4209 = load i32, ptr %502, align 4, !tbaa !5
  %4210 = call ptr @s2n_strerror_debug(i32 noundef %4209, ptr noundef nonnull @.str.4) #14
  %4211 = load i32, ptr %556, align 4, !tbaa !5
  %4212 = call ptr @strerror(i32 noundef %4211) #14
  %4213 = load i32, ptr %556, align 4, !tbaa !5
  %4214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4205, ptr noundef nonnull %.str.5.sink2804, i32 noundef %4206, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 519, ptr noundef %4208, ptr noundef %4210, ptr noundef %4212, i32 noundef %4213) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4215:                                             ; preds = %4188
  %4216 = load ptr, ptr %17, align 8, !tbaa !9
  %4217 = getelementptr inbounds i8, ptr %4216, i64 8
  %4218 = load ptr, ptr %4217, align 8, !tbaa !54
  %4219 = load ptr, ptr %4218, align 8, !tbaa !9
  store ptr %4219, ptr %1974, align 8, !tbaa !56
  %4220 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %4220, ptr %1405, align 4, !tbaa !42
  %4221 = load i32, ptr @test_count, align 4, !tbaa !5
  %4222 = add nsw i32 %4221, 1
  store i32 %4222, ptr @test_count, align 4, !tbaa !5
  %4223 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %3860) #14
  %4224 = icmp eq i32 %4223, -1
  br i1 %4224, label %4225, label %4247

4225:                                             ; preds = %4215
  %4226 = load i32, ptr %556, align 4, !tbaa !5
  %4227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4228 = call i32 @s2n_print_stacktrace(ptr noundef %4227) #14
  %4229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4230 = trunc nuw i8 %4229 to i1
  br i1 %4230, label %4231, label %4235

4231:                                             ; preds = %4225
  %4232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4233 = call i32 @fileno(ptr noundef %4232) #14
  %4234 = call i32 @isatty(i32 noundef %4233) #14
  %.not1323 = icmp eq i32 %4234, 0
  br i1 %.not1323, label %4235, label %4236

4235:                                             ; preds = %4231, %4225
  br label %4236

4236:                                             ; preds = %4231, %4235
  %.str.5.sink2813 = phi ptr [ @.str.5, %4235 ], [ @.str.2, %4231 ]
  store i32 %4226, ptr %556, align 4, !tbaa !5
  %4237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4238 = load i32, ptr @test_count, align 4, !tbaa !5
  %4239 = load i32, ptr %502, align 4, !tbaa !5
  %4240 = call ptr @s2n_strerror(i32 noundef %4239, ptr noundef nonnull @.str.4) #14
  %4241 = load i32, ptr %502, align 4, !tbaa !5
  %4242 = call ptr @s2n_strerror_debug(i32 noundef %4241, ptr noundef nonnull @.str.4) #14
  %4243 = load i32, ptr %556, align 4, !tbaa !5
  %4244 = call ptr @strerror(i32 noundef %4243) #14
  %4245 = load i32, ptr %556, align 4, !tbaa !5
  %4246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4237, ptr noundef nonnull %.str.5.sink2813, i32 noundef %4238, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 522, ptr noundef %4240, ptr noundef %4242, ptr noundef %4244, i32 noundef %4245) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4247:                                             ; preds = %4215
  %4248 = load i32, ptr @test_count, align 4, !tbaa !5
  %4249 = add nsw i32 %4248, 1
  store i32 %4249, ptr @test_count, align 4, !tbaa !5
  %4250 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %4251 = icmp eq i32 %4250, -1
  br i1 %4251, label %4252, label %4274

4252:                                             ; preds = %4247
  %4253 = load i32, ptr %556, align 4, !tbaa !5
  %4254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4255 = call i32 @s2n_print_stacktrace(ptr noundef %4254) #14
  %4256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4257 = trunc nuw i8 %4256 to i1
  br i1 %4257, label %4258, label %4262

4258:                                             ; preds = %4252
  %4259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4260 = call i32 @fileno(ptr noundef %4259) #14
  %4261 = call i32 @isatty(i32 noundef %4260) #14
  %.not1322 = icmp eq i32 %4261, 0
  br i1 %.not1322, label %4262, label %4263

4262:                                             ; preds = %4258, %4252
  br label %4263

4263:                                             ; preds = %4258, %4262
  %.str.5.sink2822 = phi ptr [ @.str.5, %4262 ], [ @.str.2, %4258 ]
  store i32 %4253, ptr %556, align 4, !tbaa !5
  %4264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4265 = load i32, ptr @test_count, align 4, !tbaa !5
  %4266 = load i32, ptr %502, align 4, !tbaa !5
  %4267 = call ptr @s2n_strerror(i32 noundef %4266, ptr noundef nonnull @.str.4) #14
  %4268 = load i32, ptr %502, align 4, !tbaa !5
  %4269 = call ptr @s2n_strerror_debug(i32 noundef %4268, ptr noundef nonnull @.str.4) #14
  %4270 = load i32, ptr %556, align 4, !tbaa !5
  %4271 = call ptr @strerror(i32 noundef %4270) #14
  %4272 = load i32, ptr %556, align 4, !tbaa !5
  %4273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4264, ptr noundef nonnull %.str.5.sink2822, i32 noundef %4265, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 523, ptr noundef %4267, ptr noundef %4269, ptr noundef %4271, i32 noundef %4272) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4274:                                             ; preds = %4247
  %4275 = load i32, ptr @test_count, align 4, !tbaa !5
  %4276 = add nsw i32 %4275, 1
  store i32 %4276, ptr @test_count, align 4, !tbaa !5
  %4277 = load i32, ptr %1051, align 8
  %4278 = and i32 %4277, 8
  %4279 = icmp eq i32 %4278, 0
  br i1 %4279, label %4302, label %4280

4280:                                             ; preds = %4274
  %4281 = load i32, ptr %556, align 4, !tbaa !5
  %4282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4283 = call i32 @s2n_print_stacktrace(ptr noundef %4282) #14
  %4284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4285 = trunc nuw i8 %4284 to i1
  br i1 %4285, label %4286, label %4290

4286:                                             ; preds = %4280
  %4287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4288 = call i32 @fileno(ptr noundef %4287) #14
  %4289 = call i32 @isatty(i32 noundef %4288) #14
  %.not1138 = icmp eq i32 %4289, 0
  br i1 %.not1138, label %4290, label %4291

4290:                                             ; preds = %4286, %4280
  br label %4291

4291:                                             ; preds = %4286, %4290
  %.str.5.sink2831 = phi ptr [ @.str.5, %4290 ], [ @.str.2, %4286 ]
  store i32 %4281, ptr %556, align 4, !tbaa !5
  %4292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4293 = load i32, ptr @test_count, align 4, !tbaa !5
  %4294 = load i32, ptr %502, align 4, !tbaa !5
  %4295 = call ptr @s2n_strerror(i32 noundef %4294, ptr noundef nonnull @.str.4) #14
  %4296 = load i32, ptr %502, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror_debug(i32 noundef %4296, ptr noundef nonnull @.str.4) #14
  %4298 = load i32, ptr %556, align 4, !tbaa !5
  %4299 = call ptr @strerror(i32 noundef %4298) #14
  %4300 = load i32, ptr %556, align 4, !tbaa !5
  %4301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4292, ptr noundef nonnull %.str.5.sink2831, i32 noundef %4293, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 524, ptr noundef %4295, ptr noundef %4297, ptr noundef %4299, i32 noundef %4300) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4302:                                             ; preds = %4274
  %4303 = add nsw i32 %4275, 2
  store i32 %4303, ptr @test_count, align 4, !tbaa !5
  %4304 = load ptr, ptr %2032, align 8, !tbaa !48
  %4305 = load ptr, ptr %4304, align 8, !tbaa !49
  %4306 = icmp eq ptr %4305, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %4306, label %4329, label %4307

4307:                                             ; preds = %4302
  %4308 = load i32, ptr %556, align 4, !tbaa !5
  %4309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4310 = call i32 @s2n_print_stacktrace(ptr noundef %4309) #14
  %4311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4312 = trunc nuw i8 %4311 to i1
  br i1 %4312, label %4313, label %4317

4313:                                             ; preds = %4307
  %4314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4315 = call i32 @fileno(ptr noundef %4314) #14
  %4316 = call i32 @isatty(i32 noundef %4315) #14
  %.not1139 = icmp eq i32 %4316, 0
  br i1 %.not1139, label %4317, label %4318

4317:                                             ; preds = %4313, %4307
  br label %4318

4318:                                             ; preds = %4313, %4317
  %.str.5.sink2840 = phi ptr [ @.str.5, %4317 ], [ @.str.2, %4313 ]
  store i32 %4308, ptr %556, align 4, !tbaa !5
  %4319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4320 = load i32, ptr @test_count, align 4, !tbaa !5
  %4321 = load i32, ptr %502, align 4, !tbaa !5
  %4322 = call ptr @s2n_strerror(i32 noundef %4321, ptr noundef nonnull @.str.4) #14
  %4323 = load i32, ptr %502, align 4, !tbaa !5
  %4324 = call ptr @s2n_strerror_debug(i32 noundef %4323, ptr noundef nonnull @.str.4) #14
  %4325 = load i32, ptr %556, align 4, !tbaa !5
  %4326 = call ptr @strerror(i32 noundef %4325) #14
  %4327 = load i32, ptr %556, align 4, !tbaa !5
  %4328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4319, ptr noundef nonnull %.str.5.sink2840, i32 noundef %4320, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 525, ptr noundef %4322, ptr noundef %4324, ptr noundef %4326, i32 noundef %4327) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4329:                                             ; preds = %4302
  %4330 = add nsw i32 %4275, 3
  store i32 %4330, ptr @test_count, align 4, !tbaa !5
  %4331 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %4332 = icmp eq i32 %4331, -1
  br i1 %4332, label %4333, label %4355

4333:                                             ; preds = %4329
  %4334 = load i32, ptr %556, align 4, !tbaa !5
  %4335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4336 = call i32 @s2n_print_stacktrace(ptr noundef %4335) #14
  %4337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4338 = trunc nuw i8 %4337 to i1
  br i1 %4338, label %4339, label %4343

4339:                                             ; preds = %4333
  %4340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4341 = call i32 @fileno(ptr noundef %4340) #14
  %4342 = call i32 @isatty(i32 noundef %4341) #14
  %.not1321 = icmp eq i32 %4342, 0
  br i1 %.not1321, label %4343, label %4344

4343:                                             ; preds = %4339, %4333
  br label %4344

4344:                                             ; preds = %4339, %4343
  %.str.5.sink2849 = phi ptr [ @.str.5, %4343 ], [ @.str.2, %4339 ]
  store i32 %4334, ptr %556, align 4, !tbaa !5
  %4345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4346 = load i32, ptr @test_count, align 4, !tbaa !5
  %4347 = load i32, ptr %502, align 4, !tbaa !5
  %4348 = call ptr @s2n_strerror(i32 noundef %4347, ptr noundef nonnull @.str.4) #14
  %4349 = load i32, ptr %502, align 4, !tbaa !5
  %4350 = call ptr @s2n_strerror_debug(i32 noundef %4349, ptr noundef nonnull @.str.4) #14
  %4351 = load i32, ptr %556, align 4, !tbaa !5
  %4352 = call ptr @strerror(i32 noundef %4351) #14
  %4353 = load i32, ptr %556, align 4, !tbaa !5
  %4354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4345, ptr noundef nonnull %.str.5.sink2849, i32 noundef %4346, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 526, ptr noundef %4348, ptr noundef %4350, ptr noundef %4352, i32 noundef %4353) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4355:                                             ; preds = %4329
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #14
  %4356 = load ptr, ptr %9, align 8, !tbaa !9
  store ptr %4356, ptr %18, align 16, !tbaa !9
  %4357 = getelementptr inbounds i8, ptr %18, i64 8
  %4358 = load ptr, ptr %10, align 8, !tbaa !9
  store ptr %4358, ptr %4357, align 8, !tbaa !9
  %4359 = load i32, ptr @test_count, align 4, !tbaa !5
  %4360 = add nsw i32 %4359, 1
  store i32 %4360, ptr @test_count, align 4, !tbaa !5
  %4361 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef nonnull %3860, ptr noundef nonnull %18, i32 noundef 2) #14
  %4362 = icmp eq i32 %4361, -1
  br i1 %4362, label %4363, label %4385

4363:                                             ; preds = %4355
  %4364 = load i32, ptr %556, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = call i32 @s2n_print_stacktrace(ptr noundef %4365) #14
  %4367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4368 = trunc nuw i8 %4367 to i1
  br i1 %4368, label %4369, label %4373

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

4373:                                             ; preds = %4369, %4363
  br label %4374

4374:                                             ; preds = %4369, %4373
  %.str.5.sink2858 = phi ptr [ @.str.5, %4373 ], [ @.str.2, %4369 ]
  store i32 %4364, ptr %556, align 4, !tbaa !5
  %4375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4376 = load i32, ptr @test_count, align 4, !tbaa !5
  %4377 = load i32, ptr %502, align 4, !tbaa !5
  %4378 = call ptr @s2n_strerror(i32 noundef %4377, ptr noundef nonnull @.str.4) #14
  %4379 = load i32, ptr %502, align 4, !tbaa !5
  %4380 = call ptr @s2n_strerror_debug(i32 noundef %4379, ptr noundef nonnull @.str.4) #14
  %4381 = load i32, ptr %556, align 4, !tbaa !5
  %4382 = call ptr @strerror(i32 noundef %4381) #14
  %4383 = load i32, ptr %556, align 4, !tbaa !5
  %4384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4375, ptr noundef nonnull %.str.5.sink2858, i32 noundef %4376, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 531, ptr noundef %4378, ptr noundef %4380, ptr noundef %4382, i32 noundef %4383) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4385:                                             ; preds = %4355
  %4386 = load i32, ptr @test_count, align 4, !tbaa !5
  %4387 = add nsw i32 %4386, 1
  store i32 %4387, ptr @test_count, align 4, !tbaa !5
  %4388 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.72) #14
  %4389 = icmp eq i32 %4388, -1
  br i1 %4389, label %4390, label %4412

4390:                                             ; preds = %4385
  %4391 = load i32, ptr %556, align 4, !tbaa !5
  %4392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4393 = call i32 @s2n_print_stacktrace(ptr noundef %4392) #14
  %4394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4395 = trunc nuw i8 %4394 to i1
  br i1 %4395, label %4396, label %4400

4396:                                             ; preds = %4390
  %4397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4398 = call i32 @fileno(ptr noundef %4397) #14
  %4399 = call i32 @isatty(i32 noundef %4398) #14
  %.not1319 = icmp eq i32 %4399, 0
  br i1 %.not1319, label %4400, label %4401

4400:                                             ; preds = %4396, %4390
  br label %4401

4401:                                             ; preds = %4396, %4400
  %.str.5.sink2867 = phi ptr [ @.str.5, %4400 ], [ @.str.2, %4396 ]
  store i32 %4391, ptr %556, align 4, !tbaa !5
  %4402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4403 = load i32, ptr @test_count, align 4, !tbaa !5
  %4404 = load i32, ptr %502, align 4, !tbaa !5
  %4405 = call ptr @s2n_strerror(i32 noundef %4404, ptr noundef nonnull @.str.4) #14
  %4406 = load i32, ptr %502, align 4, !tbaa !5
  %4407 = call ptr @s2n_strerror_debug(i32 noundef %4406, ptr noundef nonnull @.str.4) #14
  %4408 = load i32, ptr %556, align 4, !tbaa !5
  %4409 = call ptr @strerror(i32 noundef %4408) #14
  %4410 = load i32, ptr %556, align 4, !tbaa !5
  %4411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4402, ptr noundef nonnull %.str.5.sink2867, i32 noundef %4403, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %4405, ptr noundef %4407, ptr noundef %4409, i32 noundef %4410) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4412:                                             ; preds = %4385
  %4413 = load ptr, ptr %17, align 8, !tbaa !9
  %4414 = getelementptr inbounds i8, ptr %4413, i64 8
  %4415 = load ptr, ptr %4414, align 8, !tbaa !54
  %4416 = load ptr, ptr %4415, align 8, !tbaa !9
  store ptr %4416, ptr %1974, align 8, !tbaa !56
  %4417 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %4417, ptr %1405, align 4, !tbaa !42
  %4418 = load i32, ptr @test_count, align 4, !tbaa !5
  %4419 = add nsw i32 %4418, 1
  store i32 %4419, ptr @test_count, align 4, !tbaa !5
  %4420 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %3860) #14
  %4421 = icmp eq i32 %4420, -1
  br i1 %4421, label %4422, label %4444

4422:                                             ; preds = %4412
  %4423 = load i32, ptr %556, align 4, !tbaa !5
  %4424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4425 = call i32 @s2n_print_stacktrace(ptr noundef %4424) #14
  %4426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4427 = trunc nuw i8 %4426 to i1
  br i1 %4427, label %4428, label %4432

4428:                                             ; preds = %4422
  %4429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4430 = call i32 @fileno(ptr noundef %4429) #14
  %4431 = call i32 @isatty(i32 noundef %4430) #14
  %.not1318 = icmp eq i32 %4431, 0
  br i1 %.not1318, label %4432, label %4433

4432:                                             ; preds = %4428, %4422
  br label %4433

4433:                                             ; preds = %4428, %4432
  %.str.5.sink2876 = phi ptr [ @.str.5, %4432 ], [ @.str.2, %4428 ]
  store i32 %4423, ptr %556, align 4, !tbaa !5
  %4434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4435 = load i32, ptr @test_count, align 4, !tbaa !5
  %4436 = load i32, ptr %502, align 4, !tbaa !5
  %4437 = call ptr @s2n_strerror(i32 noundef %4436, ptr noundef nonnull @.str.4) #14
  %4438 = load i32, ptr %502, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror_debug(i32 noundef %4438, ptr noundef nonnull @.str.4) #14
  %4440 = load i32, ptr %556, align 4, !tbaa !5
  %4441 = call ptr @strerror(i32 noundef %4440) #14
  %4442 = load i32, ptr %556, align 4, !tbaa !5
  %4443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4434, ptr noundef nonnull %.str.5.sink2876, i32 noundef %4435, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 539, ptr noundef %4437, ptr noundef %4439, ptr noundef %4441, i32 noundef %4442) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4444:                                             ; preds = %4412
  %4445 = load i32, ptr @test_count, align 4, !tbaa !5
  %4446 = add nsw i32 %4445, 1
  store i32 %4446, ptr @test_count, align 4, !tbaa !5
  %4447 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %4448 = icmp eq i32 %4447, -1
  br i1 %4448, label %4449, label %4471

4449:                                             ; preds = %4444
  %4450 = load i32, ptr %556, align 4, !tbaa !5
  %4451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4452 = call i32 @s2n_print_stacktrace(ptr noundef %4451) #14
  %4453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4454 = trunc nuw i8 %4453 to i1
  br i1 %4454, label %4455, label %4459

4455:                                             ; preds = %4449
  %4456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4457 = call i32 @fileno(ptr noundef %4456) #14
  %4458 = call i32 @isatty(i32 noundef %4457) #14
  %.not1317 = icmp eq i32 %4458, 0
  br i1 %.not1317, label %4459, label %4460

4459:                                             ; preds = %4455, %4449
  br label %4460

4460:                                             ; preds = %4455, %4459
  %.str.5.sink2885 = phi ptr [ @.str.5, %4459 ], [ @.str.2, %4455 ]
  store i32 %4450, ptr %556, align 4, !tbaa !5
  %4461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4462 = load i32, ptr @test_count, align 4, !tbaa !5
  %4463 = load i32, ptr %502, align 4, !tbaa !5
  %4464 = call ptr @s2n_strerror(i32 noundef %4463, ptr noundef nonnull @.str.4) #14
  %4465 = load i32, ptr %502, align 4, !tbaa !5
  %4466 = call ptr @s2n_strerror_debug(i32 noundef %4465, ptr noundef nonnull @.str.4) #14
  %4467 = load i32, ptr %556, align 4, !tbaa !5
  %4468 = call ptr @strerror(i32 noundef %4467) #14
  %4469 = load i32, ptr %556, align 4, !tbaa !5
  %4470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4461, ptr noundef nonnull %.str.5.sink2885, i32 noundef %4462, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 540, ptr noundef %4464, ptr noundef %4466, ptr noundef %4468, i32 noundef %4469) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4471:                                             ; preds = %4444
  %4472 = load i32, ptr @test_count, align 4, !tbaa !5
  %4473 = add nsw i32 %4472, 1
  store i32 %4473, ptr @test_count, align 4, !tbaa !5
  %4474 = load i32, ptr %1051, align 8
  %4475 = and i32 %4474, 8
  %4476 = icmp eq i32 %4475, 0
  br i1 %4476, label %4499, label %4477

4477:                                             ; preds = %4471
  %4478 = load i32, ptr %556, align 4, !tbaa !5
  %4479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4480 = call i32 @s2n_print_stacktrace(ptr noundef %4479) #14
  %4481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4482 = trunc nuw i8 %4481 to i1
  br i1 %4482, label %4483, label %4487

4483:                                             ; preds = %4477
  %4484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4485 = call i32 @fileno(ptr noundef %4484) #14
  %4486 = call i32 @isatty(i32 noundef %4485) #14
  %.not1140 = icmp eq i32 %4486, 0
  br i1 %.not1140, label %4487, label %4488

4487:                                             ; preds = %4483, %4477
  br label %4488

4488:                                             ; preds = %4483, %4487
  %.str.5.sink2894 = phi ptr [ @.str.5, %4487 ], [ @.str.2, %4483 ]
  store i32 %4478, ptr %556, align 4, !tbaa !5
  %4489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4490 = load i32, ptr @test_count, align 4, !tbaa !5
  %4491 = load i32, ptr %502, align 4, !tbaa !5
  %4492 = call ptr @s2n_strerror(i32 noundef %4491, ptr noundef nonnull @.str.4) #14
  %4493 = load i32, ptr %502, align 4, !tbaa !5
  %4494 = call ptr @s2n_strerror_debug(i32 noundef %4493, ptr noundef nonnull @.str.4) #14
  %4495 = load i32, ptr %556, align 4, !tbaa !5
  %4496 = call ptr @strerror(i32 noundef %4495) #14
  %4497 = load i32, ptr %556, align 4, !tbaa !5
  %4498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4489, ptr noundef nonnull %.str.5.sink2894, i32 noundef %4490, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 541, ptr noundef %4492, ptr noundef %4494, ptr noundef %4496, i32 noundef %4497) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4499:                                             ; preds = %4471
  %4500 = add nsw i32 %4472, 2
  store i32 %4500, ptr @test_count, align 4, !tbaa !5
  %4501 = load ptr, ptr %2032, align 8, !tbaa !48
  %4502 = load ptr, ptr %4501, align 8, !tbaa !49
  %4503 = icmp eq ptr %4502, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %4503, label %4526, label %4504

4504:                                             ; preds = %4499
  %4505 = load i32, ptr %556, align 4, !tbaa !5
  %4506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4507 = call i32 @s2n_print_stacktrace(ptr noundef %4506) #14
  %4508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4509 = trunc nuw i8 %4508 to i1
  br i1 %4509, label %4510, label %4514

4510:                                             ; preds = %4504
  %4511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4512 = call i32 @fileno(ptr noundef %4511) #14
  %4513 = call i32 @isatty(i32 noundef %4512) #14
  %.not1141 = icmp eq i32 %4513, 0
  br i1 %.not1141, label %4514, label %4515

4514:                                             ; preds = %4510, %4504
  br label %4515

4515:                                             ; preds = %4510, %4514
  %.str.5.sink2903 = phi ptr [ @.str.5, %4514 ], [ @.str.2, %4510 ]
  store i32 %4505, ptr %556, align 4, !tbaa !5
  %4516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4517 = load i32, ptr @test_count, align 4, !tbaa !5
  %4518 = load i32, ptr %502, align 4, !tbaa !5
  %4519 = call ptr @s2n_strerror(i32 noundef %4518, ptr noundef nonnull @.str.4) #14
  %4520 = load i32, ptr %502, align 4, !tbaa !5
  %4521 = call ptr @s2n_strerror_debug(i32 noundef %4520, ptr noundef nonnull @.str.4) #14
  %4522 = load i32, ptr %556, align 4, !tbaa !5
  %4523 = call ptr @strerror(i32 noundef %4522) #14
  %4524 = load i32, ptr %556, align 4, !tbaa !5
  %4525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4516, ptr noundef nonnull %.str.5.sink2903, i32 noundef %4517, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 542, ptr noundef %4519, ptr noundef %4521, ptr noundef %4523, i32 noundef %4524) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4526:                                             ; preds = %4499
  %4527 = add nsw i32 %4472, 3
  store i32 %4527, ptr @test_count, align 4, !tbaa !5
  %4528 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %4529 = icmp eq i32 %4528, -1
  br i1 %4529, label %4530, label %4552

4530:                                             ; preds = %4526
  %4531 = load i32, ptr %556, align 4, !tbaa !5
  %4532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4533 = call i32 @s2n_print_stacktrace(ptr noundef %4532) #14
  %4534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4535 = trunc nuw i8 %4534 to i1
  br i1 %4535, label %4536, label %4540

4536:                                             ; preds = %4530
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = call i32 @fileno(ptr noundef %4537) #14
  %4539 = call i32 @isatty(i32 noundef %4538) #14
  %.not1316 = icmp eq i32 %4539, 0
  br i1 %.not1316, label %4540, label %4541

4540:                                             ; preds = %4536, %4530
  br label %4541

4541:                                             ; preds = %4536, %4540
  %.str.5.sink2912 = phi ptr [ @.str.5, %4540 ], [ @.str.2, %4536 ]
  store i32 %4531, ptr %556, align 4, !tbaa !5
  %4542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4543 = load i32, ptr @test_count, align 4, !tbaa !5
  %4544 = load i32, ptr %502, align 4, !tbaa !5
  %4545 = call ptr @s2n_strerror(i32 noundef %4544, ptr noundef nonnull @.str.4) #14
  %4546 = load i32, ptr %502, align 4, !tbaa !5
  %4547 = call ptr @s2n_strerror_debug(i32 noundef %4546, ptr noundef nonnull @.str.4) #14
  %4548 = load i32, ptr %556, align 4, !tbaa !5
  %4549 = call ptr @strerror(i32 noundef %4548) #14
  %4550 = load i32, ptr %556, align 4, !tbaa !5
  %4551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4542, ptr noundef nonnull %.str.5.sink2912, i32 noundef %4543, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 543, ptr noundef %4545, ptr noundef %4547, ptr noundef %4549, i32 noundef %4550) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4552:                                             ; preds = %4526
  %4553 = load i32, ptr @test_count, align 4, !tbaa !5
  %4554 = add nsw i32 %4553, 1
  store i32 %4554, ptr @test_count, align 4, !tbaa !5
  %4555 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef nonnull %3860, ptr noundef null, i32 noundef 0) #14
  %4556 = icmp eq i32 %4555, -1
  br i1 %4556, label %4579, label %4557

4557:                                             ; preds = %4552
  %4558 = load i32, ptr %556, align 4, !tbaa !5
  %4559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4560 = call i32 @s2n_print_stacktrace(ptr noundef %4559) #14
  %4561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4562 = trunc nuw i8 %4561 to i1
  br i1 %4562, label %4563, label %4567

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

4567:                                             ; preds = %4563, %4557
  br label %4568

4568:                                             ; preds = %4563, %4567
  %.str.5.sink2921 = phi ptr [ @.str.5, %4567 ], [ @.str.2, %4563 ]
  store i32 %4558, ptr %556, align 4, !tbaa !5
  %4569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4570 = load i32, ptr @test_count, align 4, !tbaa !5
  %4571 = load i32, ptr %502, align 4, !tbaa !5
  %4572 = call ptr @s2n_strerror(i32 noundef %4571, ptr noundef nonnull @.str.4) #14
  %4573 = load i32, ptr %502, align 4, !tbaa !5
  %4574 = call ptr @s2n_strerror_debug(i32 noundef %4573, ptr noundef nonnull @.str.4) #14
  %4575 = load i32, ptr %556, align 4, !tbaa !5
  %4576 = call ptr @strerror(i32 noundef %4575) #14
  %4577 = load i32, ptr %556, align 4, !tbaa !5
  %4578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4569, ptr noundef nonnull %.str.5.sink2921, i32 noundef %4570, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 547, ptr noundef %4572, ptr noundef %4574, ptr noundef %4576, i32 noundef %4577) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4579:                                             ; preds = %4552
  %4580 = load i32, ptr @test_count, align 4, !tbaa !5
  %4581 = add nsw i32 %4580, 1
  store i32 %4581, ptr @test_count, align 4, !tbaa !5
  %4582 = load i32, ptr %502, align 4, !tbaa !5
  %4583 = icmp eq i32 %4582, 402653193
  br i1 %4583, label %4606, label %4584

4584:                                             ; preds = %4579
  %4585 = load i32, ptr %556, align 4, !tbaa !5
  %4586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4587 = call i32 @s2n_print_stacktrace(ptr noundef %4586) #14
  %4588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4589 = trunc nuw i8 %4588 to i1
  br i1 %4589, label %4590, label %4594

4590:                                             ; preds = %4584
  %4591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4592 = call i32 @fileno(ptr noundef %4591) #14
  %4593 = call i32 @isatty(i32 noundef %4592) #14
  %.not1143 = icmp eq i32 %4593, 0
  br i1 %.not1143, label %4594, label %4595

4594:                                             ; preds = %4590, %4584
  br label %4595

4595:                                             ; preds = %4590, %4594
  %.str.5.sink2930 = phi ptr [ @.str.5, %4594 ], [ @.str.2, %4590 ]
  store i32 %4585, ptr %556, align 4, !tbaa !5
  %4596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4597 = load i32, ptr @test_count, align 4, !tbaa !5
  %4598 = load i32, ptr %502, align 4, !tbaa !5
  %4599 = call ptr @s2n_strerror(i32 noundef %4598, ptr noundef nonnull @.str.4) #14
  %4600 = load i32, ptr %502, align 4, !tbaa !5
  %4601 = call ptr @s2n_strerror_debug(i32 noundef %4600, ptr noundef nonnull @.str.4) #14
  %4602 = load i32, ptr %556, align 4, !tbaa !5
  %4603 = call ptr @strerror(i32 noundef %4602) #14
  %4604 = load i32, ptr %556, align 4, !tbaa !5
  %4605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4596, ptr noundef nonnull %.str.5.sink2930, i32 noundef %4597, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 547, ptr noundef %4599, ptr noundef %4601, ptr noundef %4603, i32 noundef %4604) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4606:                                             ; preds = %4579
  %4607 = add nsw i32 %4580, 2
  store i32 %4607, ptr @test_count, align 4, !tbaa !5
  %4608 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #14
  %4609 = icmp eq ptr %4608, null
  br i1 %4609, label %4610, label %4632

4610:                                             ; preds = %4606
  %4611 = load i32, ptr %556, align 4, !tbaa !5
  %4612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4613 = call i32 @s2n_print_stacktrace(ptr noundef %4612) #14
  %4614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4615 = trunc nuw i8 %4614 to i1
  br i1 %4615, label %4616, label %4620

4616:                                             ; preds = %4610
  %4617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4618 = call i32 @fileno(ptr noundef %4617) #14
  %4619 = call i32 @isatty(i32 noundef %4618) #14
  %.not1315 = icmp eq i32 %4619, 0
  br i1 %.not1315, label %4620, label %4621

4620:                                             ; preds = %4616, %4610
  br label %4621

4621:                                             ; preds = %4616, %4620
  %.str.5.sink2939 = phi ptr [ @.str.5, %4620 ], [ @.str.2, %4616 ]
  store i32 %4611, ptr %556, align 4, !tbaa !5
  %4622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4623 = load i32, ptr @test_count, align 4, !tbaa !5
  %4624 = load i32, ptr %502, align 4, !tbaa !5
  %4625 = call ptr @s2n_strerror(i32 noundef %4624, ptr noundef nonnull @.str.4) #14
  %4626 = load i32, ptr %502, align 4, !tbaa !5
  %4627 = call ptr @s2n_strerror_debug(i32 noundef %4626, ptr noundef nonnull @.str.4) #14
  %4628 = load i32, ptr %556, align 4, !tbaa !5
  %4629 = call ptr @strerror(i32 noundef %4628) #14
  %4630 = load i32, ptr %556, align 4, !tbaa !5
  %4631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4622, ptr noundef nonnull %.str.5.sink2939, i32 noundef %4623, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 547, ptr noundef %4625, ptr noundef %4627, ptr noundef %4629, i32 noundef %4630) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4632:                                             ; preds = %4606
  %4633 = load i32, ptr @test_count, align 4, !tbaa !5
  %4634 = add nsw i32 %4633, 1
  store i32 %4634, ptr @test_count, align 4, !tbaa !5
  %4635 = load i32, ptr %502, align 4, !tbaa !5
  %4636 = call ptr @s2n_strerror_name(i32 noundef %4635) #14
  %4637 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %4636, ptr noundef nonnull dereferenceable(1) @.str.96) #19
  %4638 = icmp eq i32 %4637, 0
  br i1 %4638, label %4661, label %4639

4639:                                             ; preds = %4632
  %4640 = load i32, ptr %556, align 4, !tbaa !5
  %4641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4642 = call i32 @s2n_print_stacktrace(ptr noundef %4641) #14
  %4643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4644 = trunc nuw i8 %4643 to i1
  br i1 %4644, label %4645, label %4649

4645:                                             ; preds = %4639
  %4646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4647 = call i32 @fileno(ptr noundef %4646) #14
  %4648 = call i32 @isatty(i32 noundef %4647) #14
  %.not1144 = icmp eq i32 %4648, 0
  br i1 %.not1144, label %4649, label %4650

4649:                                             ; preds = %4645, %4639
  br label %4650

4650:                                             ; preds = %4645, %4649
  %.str.5.sink2948 = phi ptr [ @.str.5, %4649 ], [ @.str.2, %4645 ]
  store i32 %4640, ptr %556, align 4, !tbaa !5
  %4651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4652 = load i32, ptr @test_count, align 4, !tbaa !5
  %4653 = load i32, ptr %502, align 4, !tbaa !5
  %4654 = call ptr @s2n_strerror(i32 noundef %4653, ptr noundef nonnull @.str.4) #14
  %4655 = load i32, ptr %502, align 4, !tbaa !5
  %4656 = call ptr @s2n_strerror_debug(i32 noundef %4655, ptr noundef nonnull @.str.4) #14
  %4657 = load i32, ptr %556, align 4, !tbaa !5
  %4658 = call ptr @strerror(i32 noundef %4657) #14
  %4659 = load i32, ptr %556, align 4, !tbaa !5
  %4660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4651, ptr noundef nonnull %.str.5.sink2948, i32 noundef %4652, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 548, ptr noundef %4654, ptr noundef %4656, ptr noundef %4658, i32 noundef %4659) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4661:                                             ; preds = %4632
  %4662 = load i32, ptr @test_count, align 4, !tbaa !5
  %4663 = add nsw i32 %4662, 1
  store i32 %4663, ptr @test_count, align 4, !tbaa !5
  %4664 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef nonnull %3860, ptr noundef nonnull %9, i32 noundef 0) #14
  %4665 = icmp eq i32 %4664, -1
  br i1 %4665, label %4688, label %4666

4666:                                             ; preds = %4661
  %4667 = load i32, ptr %556, align 4, !tbaa !5
  %4668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4669 = call i32 @s2n_print_stacktrace(ptr noundef %4668) #14
  %4670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4671 = trunc nuw i8 %4670 to i1
  br i1 %4671, label %4672, label %4676

4672:                                             ; preds = %4666
  %4673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4674 = call i32 @fileno(ptr noundef %4673) #14
  %4675 = call i32 @isatty(i32 noundef %4674) #14
  %.not1145 = icmp eq i32 %4675, 0
  br i1 %.not1145, label %4676, label %4677

4676:                                             ; preds = %4672, %4666
  br label %4677

4677:                                             ; preds = %4672, %4676
  %.str.5.sink2957 = phi ptr [ @.str.5, %4676 ], [ @.str.2, %4672 ]
  store i32 %4667, ptr %556, align 4, !tbaa !5
  %4678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4679 = load i32, ptr @test_count, align 4, !tbaa !5
  %4680 = load i32, ptr %502, align 4, !tbaa !5
  %4681 = call ptr @s2n_strerror(i32 noundef %4680, ptr noundef nonnull @.str.4) #14
  %4682 = load i32, ptr %502, align 4, !tbaa !5
  %4683 = call ptr @s2n_strerror_debug(i32 noundef %4682, ptr noundef nonnull @.str.4) #14
  %4684 = load i32, ptr %556, align 4, !tbaa !5
  %4685 = call ptr @strerror(i32 noundef %4684) #14
  %4686 = load i32, ptr %556, align 4, !tbaa !5
  %4687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4678, ptr noundef nonnull %.str.5.sink2957, i32 noundef %4679, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 550, ptr noundef %4681, ptr noundef %4683, ptr noundef %4685, i32 noundef %4686) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4688:                                             ; preds = %4661
  %4689 = load i32, ptr @test_count, align 4, !tbaa !5
  %4690 = add nsw i32 %4689, 1
  store i32 %4690, ptr @test_count, align 4, !tbaa !5
  %4691 = load i32, ptr %502, align 4, !tbaa !5
  %4692 = icmp eq i32 %4691, 469762064
  br i1 %4692, label %4715, label %4693

4693:                                             ; preds = %4688
  %4694 = load i32, ptr %556, align 4, !tbaa !5
  %4695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4696 = call i32 @s2n_print_stacktrace(ptr noundef %4695) #14
  %4697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4698 = trunc nuw i8 %4697 to i1
  br i1 %4698, label %4699, label %4703

4699:                                             ; preds = %4693
  %4700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4701 = call i32 @fileno(ptr noundef %4700) #14
  %4702 = call i32 @isatty(i32 noundef %4701) #14
  %.not1146 = icmp eq i32 %4702, 0
  br i1 %.not1146, label %4703, label %4704

4703:                                             ; preds = %4699, %4693
  br label %4704

4704:                                             ; preds = %4699, %4703
  %.str.5.sink2966 = phi ptr [ @.str.5, %4703 ], [ @.str.2, %4699 ]
  store i32 %4694, ptr %556, align 4, !tbaa !5
  %4705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4706 = load i32, ptr @test_count, align 4, !tbaa !5
  %4707 = load i32, ptr %502, align 4, !tbaa !5
  %4708 = call ptr @s2n_strerror(i32 noundef %4707, ptr noundef nonnull @.str.4) #14
  %4709 = load i32, ptr %502, align 4, !tbaa !5
  %4710 = call ptr @s2n_strerror_debug(i32 noundef %4709, ptr noundef nonnull @.str.4) #14
  %4711 = load i32, ptr %556, align 4, !tbaa !5
  %4712 = call ptr @strerror(i32 noundef %4711) #14
  %4713 = load i32, ptr %556, align 4, !tbaa !5
  %4714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4705, ptr noundef nonnull %.str.5.sink2966, i32 noundef %4706, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 550, ptr noundef %4708, ptr noundef %4710, ptr noundef %4712, i32 noundef %4713) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4715:                                             ; preds = %4688
  %4716 = add nsw i32 %4689, 2
  store i32 %4716, ptr @test_count, align 4, !tbaa !5
  %4717 = call ptr @s2n_strerror_debug(i32 noundef 469762064, ptr noundef nonnull @.str.4) #14
  %4718 = icmp eq ptr %4717, null
  br i1 %4718, label %4719, label %4741

4719:                                             ; preds = %4715
  %4720 = load i32, ptr %556, align 4, !tbaa !5
  %4721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4722 = call i32 @s2n_print_stacktrace(ptr noundef %4721) #14
  %4723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4724 = trunc nuw i8 %4723 to i1
  br i1 %4724, label %4725, label %4729

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

4729:                                             ; preds = %4725, %4719
  br label %4730

4730:                                             ; preds = %4725, %4729
  %.str.5.sink2975 = phi ptr [ @.str.5, %4729 ], [ @.str.2, %4725 ]
  store i32 %4720, ptr %556, align 4, !tbaa !5
  %4731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4732 = load i32, ptr @test_count, align 4, !tbaa !5
  %4733 = load i32, ptr %502, align 4, !tbaa !5
  %4734 = call ptr @s2n_strerror(i32 noundef %4733, ptr noundef nonnull @.str.4) #14
  %4735 = load i32, ptr %502, align 4, !tbaa !5
  %4736 = call ptr @s2n_strerror_debug(i32 noundef %4735, ptr noundef nonnull @.str.4) #14
  %4737 = load i32, ptr %556, align 4, !tbaa !5
  %4738 = call ptr @strerror(i32 noundef %4737) #14
  %4739 = load i32, ptr %556, align 4, !tbaa !5
  %4740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4731, ptr noundef nonnull %.str.5.sink2975, i32 noundef %4732, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 550, ptr noundef %4734, ptr noundef %4736, ptr noundef %4738, i32 noundef %4739) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4741:                                             ; preds = %4715
  %4742 = load i32, ptr @test_count, align 4, !tbaa !5
  %4743 = add nsw i32 %4742, 1
  store i32 %4743, ptr @test_count, align 4, !tbaa !5
  %4744 = load i32, ptr %502, align 4, !tbaa !5
  %4745 = call ptr @s2n_strerror_name(i32 noundef %4744) #14
  %4746 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %4745, ptr noundef nonnull dereferenceable(1) @.str.100) #19
  %4747 = icmp eq i32 %4746, 0
  br i1 %4747, label %4770, label %4748

4748:                                             ; preds = %4741
  %4749 = load i32, ptr %556, align 4, !tbaa !5
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = call i32 @s2n_print_stacktrace(ptr noundef %4750) #14
  %4752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4753 = trunc nuw i8 %4752 to i1
  br i1 %4753, label %4754, label %4758

4754:                                             ; preds = %4748
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = call i32 @fileno(ptr noundef %4755) #14
  %4757 = call i32 @isatty(i32 noundef %4756) #14
  %.not1147 = icmp eq i32 %4757, 0
  br i1 %.not1147, label %4758, label %4759

4758:                                             ; preds = %4754, %4748
  br label %4759

4759:                                             ; preds = %4754, %4758
  %.str.5.sink2984 = phi ptr [ @.str.5, %4758 ], [ @.str.2, %4754 ]
  store i32 %4749, ptr %556, align 4, !tbaa !5
  %4760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4761 = load i32, ptr @test_count, align 4, !tbaa !5
  %4762 = load i32, ptr %502, align 4, !tbaa !5
  %4763 = call ptr @s2n_strerror(i32 noundef %4762, ptr noundef nonnull @.str.4) #14
  %4764 = load i32, ptr %502, align 4, !tbaa !5
  %4765 = call ptr @s2n_strerror_debug(i32 noundef %4764, ptr noundef nonnull @.str.4) #14
  %4766 = load i32, ptr %556, align 4, !tbaa !5
  %4767 = call ptr @strerror(i32 noundef %4766) #14
  %4768 = load i32, ptr %556, align 4, !tbaa !5
  %4769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4760, ptr noundef nonnull %.str.5.sink2984, i32 noundef %4761, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 551, ptr noundef %4763, ptr noundef %4765, ptr noundef %4767, i32 noundef %4768) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4770:                                             ; preds = %4741
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #14
  %4771 = load ptr, ptr %9, align 8, !tbaa !9
  store ptr %4771, ptr %19, align 16, !tbaa !9
  %4772 = getelementptr inbounds i8, ptr %19, i64 8
  store ptr %4771, ptr %4772, align 8, !tbaa !9
  %4773 = load i32, ptr @test_count, align 4, !tbaa !5
  %4774 = add nsw i32 %4773, 1
  store i32 %4774, ptr @test_count, align 4, !tbaa !5
  %4775 = call i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef nonnull %3860, ptr noundef nonnull %19, i32 noundef 2) #14
  %4776 = icmp eq i32 %4775, -1
  br i1 %4776, label %4799, label %4777

4777:                                             ; preds = %4770
  %4778 = load i32, ptr %556, align 4, !tbaa !5
  %4779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4780 = call i32 @s2n_print_stacktrace(ptr noundef %4779) #14
  %4781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4782 = trunc nuw i8 %4781 to i1
  br i1 %4782, label %4783, label %4787

4783:                                             ; preds = %4777
  %4784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4785 = call i32 @fileno(ptr noundef %4784) #14
  %4786 = call i32 @isatty(i32 noundef %4785) #14
  %.not1148 = icmp eq i32 %4786, 0
  br i1 %.not1148, label %4787, label %4788

4787:                                             ; preds = %4783, %4777
  br label %4788

4788:                                             ; preds = %4783, %4787
  %.str.5.sink2993 = phi ptr [ @.str.5, %4787 ], [ @.str.2, %4783 ]
  store i32 %4778, ptr %556, align 4, !tbaa !5
  %4789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4790 = load i32, ptr @test_count, align 4, !tbaa !5
  %4791 = load i32, ptr %502, align 4, !tbaa !5
  %4792 = call ptr @s2n_strerror(i32 noundef %4791, ptr noundef nonnull @.str.4) #14
  %4793 = load i32, ptr %502, align 4, !tbaa !5
  %4794 = call ptr @s2n_strerror_debug(i32 noundef %4793, ptr noundef nonnull @.str.4) #14
  %4795 = load i32, ptr %556, align 4, !tbaa !5
  %4796 = call ptr @strerror(i32 noundef %4795) #14
  %4797 = load i32, ptr %556, align 4, !tbaa !5
  %4798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4789, ptr noundef nonnull %.str.5.sink2993, i32 noundef %4790, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 554, ptr noundef %4792, ptr noundef %4794, ptr noundef %4796, i32 noundef %4797) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4799:                                             ; preds = %4770
  %4800 = load i32, ptr @test_count, align 4, !tbaa !5
  %4801 = add nsw i32 %4800, 1
  store i32 %4801, ptr @test_count, align 4, !tbaa !5
  %4802 = load i32, ptr %502, align 4, !tbaa !5
  %4803 = icmp eq i32 %4802, 469762065
  br i1 %4803, label %4826, label %4804

4804:                                             ; preds = %4799
  %4805 = load i32, ptr %556, align 4, !tbaa !5
  %4806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4807 = call i32 @s2n_print_stacktrace(ptr noundef %4806) #14
  %4808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4809 = trunc nuw i8 %4808 to i1
  br i1 %4809, label %4810, label %4814

4810:                                             ; preds = %4804
  %4811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4812 = call i32 @fileno(ptr noundef %4811) #14
  %4813 = call i32 @isatty(i32 noundef %4812) #14
  %.not1149 = icmp eq i32 %4813, 0
  br i1 %.not1149, label %4814, label %4815

4814:                                             ; preds = %4810, %4804
  br label %4815

4815:                                             ; preds = %4810, %4814
  %.str.5.sink3002 = phi ptr [ @.str.5, %4814 ], [ @.str.2, %4810 ]
  store i32 %4805, ptr %556, align 4, !tbaa !5
  %4816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4817 = load i32, ptr @test_count, align 4, !tbaa !5
  %4818 = load i32, ptr %502, align 4, !tbaa !5
  %4819 = call ptr @s2n_strerror(i32 noundef %4818, ptr noundef nonnull @.str.4) #14
  %4820 = load i32, ptr %502, align 4, !tbaa !5
  %4821 = call ptr @s2n_strerror_debug(i32 noundef %4820, ptr noundef nonnull @.str.4) #14
  %4822 = load i32, ptr %556, align 4, !tbaa !5
  %4823 = call ptr @strerror(i32 noundef %4822) #14
  %4824 = load i32, ptr %556, align 4, !tbaa !5
  %4825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4816, ptr noundef nonnull %.str.5.sink3002, i32 noundef %4817, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 554, ptr noundef %4819, ptr noundef %4821, ptr noundef %4823, i32 noundef %4824) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4826:                                             ; preds = %4799
  %4827 = add nsw i32 %4800, 2
  store i32 %4827, ptr @test_count, align 4, !tbaa !5
  %4828 = call ptr @s2n_strerror_debug(i32 noundef 469762065, ptr noundef nonnull @.str.4) #14
  %4829 = icmp eq ptr %4828, null
  br i1 %4829, label %4830, label %4852

4830:                                             ; preds = %4826
  %4831 = load i32, ptr %556, align 4, !tbaa !5
  %4832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4833 = call i32 @s2n_print_stacktrace(ptr noundef %4832) #14
  %4834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4835 = trunc nuw i8 %4834 to i1
  br i1 %4835, label %4836, label %4840

4836:                                             ; preds = %4830
  %4837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4838 = call i32 @fileno(ptr noundef %4837) #14
  %4839 = call i32 @isatty(i32 noundef %4838) #14
  %.not1313 = icmp eq i32 %4839, 0
  br i1 %.not1313, label %4840, label %4841

4840:                                             ; preds = %4836, %4830
  br label %4841

4841:                                             ; preds = %4836, %4840
  %.str.5.sink3011 = phi ptr [ @.str.5, %4840 ], [ @.str.2, %4836 ]
  store i32 %4831, ptr %556, align 4, !tbaa !5
  %4842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4843 = load i32, ptr @test_count, align 4, !tbaa !5
  %4844 = load i32, ptr %502, align 4, !tbaa !5
  %4845 = call ptr @s2n_strerror(i32 noundef %4844, ptr noundef nonnull @.str.4) #14
  %4846 = load i32, ptr %502, align 4, !tbaa !5
  %4847 = call ptr @s2n_strerror_debug(i32 noundef %4846, ptr noundef nonnull @.str.4) #14
  %4848 = load i32, ptr %556, align 4, !tbaa !5
  %4849 = call ptr @strerror(i32 noundef %4848) #14
  %4850 = load i32, ptr %556, align 4, !tbaa !5
  %4851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4842, ptr noundef nonnull %.str.5.sink3011, i32 noundef %4843, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 554, ptr noundef %4845, ptr noundef %4847, ptr noundef %4849, i32 noundef %4850) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4852:                                             ; preds = %4826
  %4853 = load i32, ptr @test_count, align 4, !tbaa !5
  %4854 = add nsw i32 %4853, 1
  store i32 %4854, ptr @test_count, align 4, !tbaa !5
  %4855 = load i32, ptr %502, align 4, !tbaa !5
  %4856 = call ptr @s2n_strerror_name(i32 noundef %4855) #14
  %4857 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %4856, ptr noundef nonnull dereferenceable(1) @.str.104) #19
  %4858 = icmp eq i32 %4857, 0
  br i1 %4858, label %4881, label %4859

4859:                                             ; preds = %4852
  %4860 = load i32, ptr %556, align 4, !tbaa !5
  %4861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4862 = call i32 @s2n_print_stacktrace(ptr noundef %4861) #14
  %4863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4864 = trunc nuw i8 %4863 to i1
  br i1 %4864, label %4865, label %4869

4865:                                             ; preds = %4859
  %4866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4867 = call i32 @fileno(ptr noundef %4866) #14
  %4868 = call i32 @isatty(i32 noundef %4867) #14
  %.not1150 = icmp eq i32 %4868, 0
  br i1 %.not1150, label %4869, label %4870

4869:                                             ; preds = %4865, %4859
  br label %4870

4870:                                             ; preds = %4865, %4869
  %.str.5.sink3020 = phi ptr [ @.str.5, %4869 ], [ @.str.2, %4865 ]
  store i32 %4860, ptr %556, align 4, !tbaa !5
  %4871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4872 = load i32, ptr @test_count, align 4, !tbaa !5
  %4873 = load i32, ptr %502, align 4, !tbaa !5
  %4874 = call ptr @s2n_strerror(i32 noundef %4873, ptr noundef nonnull @.str.4) #14
  %4875 = load i32, ptr %502, align 4, !tbaa !5
  %4876 = call ptr @s2n_strerror_debug(i32 noundef %4875, ptr noundef nonnull @.str.4) #14
  %4877 = load i32, ptr %556, align 4, !tbaa !5
  %4878 = call ptr @strerror(i32 noundef %4877) #14
  %4879 = load i32, ptr %556, align 4, !tbaa !5
  %4880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4871, ptr noundef nonnull %.str.5.sink3020, i32 noundef %4872, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 555, ptr noundef %4874, ptr noundef %4876, ptr noundef %4878, i32 noundef %4879) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4881:                                             ; preds = %4852
  %4882 = load i32, ptr @test_count, align 4, !tbaa !5
  %4883 = add nsw i32 %4882, 1
  store i32 %4883, ptr @test_count, align 4, !tbaa !5
  %4884 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %4885 = icmp eq i32 %4884, -1
  br i1 %4885, label %4886, label %4908

4886:                                             ; preds = %4881
  %4887 = load i32, ptr %556, align 4, !tbaa !5
  %4888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4889 = call i32 @s2n_print_stacktrace(ptr noundef %4888) #14
  %4890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4891 = trunc nuw i8 %4890 to i1
  br i1 %4891, label %4892, label %4896

4892:                                             ; preds = %4886
  %4893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4894 = call i32 @fileno(ptr noundef %4893) #14
  %4895 = call i32 @isatty(i32 noundef %4894) #14
  %.not1312 = icmp eq i32 %4895, 0
  br i1 %.not1312, label %4896, label %4897

4896:                                             ; preds = %4892, %4886
  br label %4897

4897:                                             ; preds = %4892, %4896
  %.str.5.sink3029 = phi ptr [ @.str.5, %4896 ], [ @.str.2, %4892 ]
  store i32 %4887, ptr %556, align 4, !tbaa !5
  %4898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4899 = load i32, ptr @test_count, align 4, !tbaa !5
  %4900 = load i32, ptr %502, align 4, !tbaa !5
  %4901 = call ptr @s2n_strerror(i32 noundef %4900, ptr noundef nonnull @.str.4) #14
  %4902 = load i32, ptr %502, align 4, !tbaa !5
  %4903 = call ptr @s2n_strerror_debug(i32 noundef %4902, ptr noundef nonnull @.str.4) #14
  %4904 = load i32, ptr %556, align 4, !tbaa !5
  %4905 = call ptr @strerror(i32 noundef %4904) #14
  %4906 = load i32, ptr %556, align 4, !tbaa !5
  %4907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4898, ptr noundef nonnull %.str.5.sink3029, i32 noundef %4899, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 561, ptr noundef %4901, ptr noundef %4903, ptr noundef %4905, i32 noundef %4906) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4908:                                             ; preds = %4881
  %4909 = load ptr, ptr %17, align 8, !tbaa !9
  %4910 = getelementptr inbounds i8, ptr %4909, i64 8
  %4911 = load ptr, ptr %4910, align 8, !tbaa !54
  %4912 = load ptr, ptr %4911, align 8, !tbaa !9
  store ptr %4912, ptr %1974, align 8, !tbaa !56
  %4913 = load i8, ptr %1975, align 1, !tbaa !43
  store i8 %4913, ptr %1405, align 4, !tbaa !42
  %4914 = load i32, ptr @test_count, align 4, !tbaa !5
  %4915 = add nsw i32 %4914, 1
  store i32 %4915, ptr @test_count, align 4, !tbaa !5
  %4916 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1051, ptr noundef nonnull %3860) #14
  %4917 = icmp eq i32 %4916, -1
  br i1 %4917, label %4918, label %4940

4918:                                             ; preds = %4908
  %4919 = load i32, ptr %556, align 4, !tbaa !5
  %4920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4921 = call i32 @s2n_print_stacktrace(ptr noundef %4920) #14
  %4922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4923 = trunc nuw i8 %4922 to i1
  br i1 %4923, label %4924, label %4928

4924:                                             ; preds = %4918
  %4925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4926 = call i32 @fileno(ptr noundef %4925) #14
  %4927 = call i32 @isatty(i32 noundef %4926) #14
  %.not1311 = icmp eq i32 %4927, 0
  br i1 %.not1311, label %4928, label %4929

4928:                                             ; preds = %4924, %4918
  br label %4929

4929:                                             ; preds = %4924, %4928
  %.str.5.sink3038 = phi ptr [ @.str.5, %4928 ], [ @.str.2, %4924 ]
  store i32 %4919, ptr %556, align 4, !tbaa !5
  %4930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4931 = load i32, ptr @test_count, align 4, !tbaa !5
  %4932 = load i32, ptr %502, align 4, !tbaa !5
  %4933 = call ptr @s2n_strerror(i32 noundef %4932, ptr noundef nonnull @.str.4) #14
  %4934 = load i32, ptr %502, align 4, !tbaa !5
  %4935 = call ptr @s2n_strerror_debug(i32 noundef %4934, ptr noundef nonnull @.str.4) #14
  %4936 = load i32, ptr %556, align 4, !tbaa !5
  %4937 = call ptr @strerror(i32 noundef %4936) #14
  %4938 = load i32, ptr %556, align 4, !tbaa !5
  %4939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4930, ptr noundef nonnull %.str.5.sink3038, i32 noundef %4931, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 564, ptr noundef %4933, ptr noundef %4935, ptr noundef %4937, i32 noundef %4938) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4940:                                             ; preds = %4908
  %4941 = load i32, ptr @test_count, align 4, !tbaa !5
  %4942 = add nsw i32 %4941, 1
  store i32 %4942, ptr @test_count, align 4, !tbaa !5
  %4943 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %14, i16 noundef zeroext 2) #14
  %4944 = icmp eq i32 %4943, -1
  br i1 %4944, label %4945, label %4967

4945:                                             ; preds = %4940
  %4946 = load i32, ptr %556, align 4, !tbaa !5
  %4947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4948 = call i32 @s2n_print_stacktrace(ptr noundef %4947) #14
  %4949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4950 = trunc nuw i8 %4949 to i1
  br i1 %4950, label %4951, label %4955

4951:                                             ; preds = %4945
  %4952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4953 = call i32 @fileno(ptr noundef %4952) #14
  %4954 = call i32 @isatty(i32 noundef %4953) #14
  %.not1310 = icmp eq i32 %4954, 0
  br i1 %.not1310, label %4955, label %4956

4955:                                             ; preds = %4951, %4945
  br label %4956

4956:                                             ; preds = %4951, %4955
  %.str.5.sink3047 = phi ptr [ @.str.5, %4955 ], [ @.str.2, %4951 ]
  store i32 %4946, ptr %556, align 4, !tbaa !5
  %4957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4958 = load i32, ptr @test_count, align 4, !tbaa !5
  %4959 = load i32, ptr %502, align 4, !tbaa !5
  %4960 = call ptr @s2n_strerror(i32 noundef %4959, ptr noundef nonnull @.str.4) #14
  %4961 = load i32, ptr %502, align 4, !tbaa !5
  %4962 = call ptr @s2n_strerror_debug(i32 noundef %4961, ptr noundef nonnull @.str.4) #14
  %4963 = load i32, ptr %556, align 4, !tbaa !5
  %4964 = call ptr @strerror(i32 noundef %4963) #14
  %4965 = load i32, ptr %556, align 4, !tbaa !5
  %4966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4957, ptr noundef nonnull %.str.5.sink3047, i32 noundef %4958, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 565, ptr noundef %4960, ptr noundef %4962, ptr noundef %4964, i32 noundef %4965) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4967:                                             ; preds = %4940
  %4968 = load i32, ptr @test_count, align 4, !tbaa !5
  %4969 = add nsw i32 %4968, 1
  store i32 %4969, ptr @test_count, align 4, !tbaa !5
  %4970 = load i32, ptr %1051, align 8
  %4971 = and i32 %4970, 8
  %4972 = icmp eq i32 %4971, 0
  br i1 %4972, label %4995, label %4973

4973:                                             ; preds = %4967
  %4974 = load i32, ptr %556, align 4, !tbaa !5
  %4975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4976 = call i32 @s2n_print_stacktrace(ptr noundef %4975) #14
  %4977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4978 = trunc nuw i8 %4977 to i1
  br i1 %4978, label %4979, label %4983

4979:                                             ; preds = %4973
  %4980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4981 = call i32 @fileno(ptr noundef %4980) #14
  %4982 = call i32 @isatty(i32 noundef %4981) #14
  %.not1151 = icmp eq i32 %4982, 0
  br i1 %.not1151, label %4983, label %4984

4983:                                             ; preds = %4979, %4973
  br label %4984

4984:                                             ; preds = %4979, %4983
  %.str.5.sink3056 = phi ptr [ @.str.5, %4983 ], [ @.str.2, %4979 ]
  store i32 %4974, ptr %556, align 4, !tbaa !5
  %4985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4986 = load i32, ptr @test_count, align 4, !tbaa !5
  %4987 = load i32, ptr %502, align 4, !tbaa !5
  %4988 = call ptr @s2n_strerror(i32 noundef %4987, ptr noundef nonnull @.str.4) #14
  %4989 = load i32, ptr %502, align 4, !tbaa !5
  %4990 = call ptr @s2n_strerror_debug(i32 noundef %4989, ptr noundef nonnull @.str.4) #14
  %4991 = load i32, ptr %556, align 4, !tbaa !5
  %4992 = call ptr @strerror(i32 noundef %4991) #14
  %4993 = load i32, ptr %556, align 4, !tbaa !5
  %4994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4985, ptr noundef nonnull %.str.5.sink3056, i32 noundef %4986, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 566, ptr noundef %4988, ptr noundef %4990, ptr noundef %4992, i32 noundef %4993) #16
  call void @exit(i32 noundef 1) #17
  unreachable

4995:                                             ; preds = %4967
  %4996 = add nsw i32 %4968, 2
  store i32 %4996, ptr @test_count, align 4, !tbaa !5
  %4997 = load ptr, ptr %2032, align 8, !tbaa !48
  %4998 = load ptr, ptr %4997, align 8, !tbaa !49
  %4999 = icmp eq ptr %4998, @s2n_ecdhe_rsa_with_aes_128_cbc_sha
  br i1 %4999, label %5022, label %5000

5000:                                             ; preds = %4995
  %5001 = load i32, ptr %556, align 4, !tbaa !5
  %5002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5003 = call i32 @s2n_print_stacktrace(ptr noundef %5002) #14
  %5004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5005 = trunc nuw i8 %5004 to i1
  br i1 %5005, label %5006, label %5010

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

5010:                                             ; preds = %5006, %5000
  br label %5011

5011:                                             ; preds = %5006, %5010
  %.str.5.sink3065 = phi ptr [ @.str.5, %5010 ], [ @.str.2, %5006 ]
  store i32 %5001, ptr %556, align 4, !tbaa !5
  %5012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5013 = load i32, ptr @test_count, align 4, !tbaa !5
  %5014 = load i32, ptr %502, align 4, !tbaa !5
  %5015 = call ptr @s2n_strerror(i32 noundef %5014, ptr noundef nonnull @.str.4) #14
  %5016 = load i32, ptr %502, align 4, !tbaa !5
  %5017 = call ptr @s2n_strerror_debug(i32 noundef %5016, ptr noundef nonnull @.str.4) #14
  %5018 = load i32, ptr %556, align 4, !tbaa !5
  %5019 = call ptr @strerror(i32 noundef %5018) #14
  %5020 = load i32, ptr %556, align 4, !tbaa !5
  %5021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5012, ptr noundef nonnull %.str.5.sink3065, i32 noundef %5013, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 567, ptr noundef %5015, ptr noundef %5017, ptr noundef %5019, i32 noundef %5020) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5022:                                             ; preds = %4995
  %5023 = add nsw i32 %4968, 3
  store i32 %5023, ptr @test_count, align 4, !tbaa !5
  %5024 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %5025 = icmp eq i32 %5024, -1
  br i1 %5025, label %5026, label %5048

5026:                                             ; preds = %5022
  %5027 = load i32, ptr %556, align 4, !tbaa !5
  %5028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5029 = call i32 @s2n_print_stacktrace(ptr noundef %5028) #14
  %5030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5031 = trunc nuw i8 %5030 to i1
  br i1 %5031, label %5032, label %5036

5032:                                             ; preds = %5026
  %5033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5034 = call i32 @fileno(ptr noundef %5033) #14
  %5035 = call i32 @isatty(i32 noundef %5034) #14
  %.not1309 = icmp eq i32 %5035, 0
  br i1 %.not1309, label %5036, label %5037

5036:                                             ; preds = %5032, %5026
  br label %5037

5037:                                             ; preds = %5032, %5036
  %.str.5.sink3074 = phi ptr [ @.str.5, %5036 ], [ @.str.2, %5032 ]
  store i32 %5027, ptr %556, align 4, !tbaa !5
  %5038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5039 = load i32, ptr @test_count, align 4, !tbaa !5
  %5040 = load i32, ptr %502, align 4, !tbaa !5
  %5041 = call ptr @s2n_strerror(i32 noundef %5040, ptr noundef nonnull @.str.4) #14
  %5042 = load i32, ptr %502, align 4, !tbaa !5
  %5043 = call ptr @s2n_strerror_debug(i32 noundef %5042, ptr noundef nonnull @.str.4) #14
  %5044 = load i32, ptr %556, align 4, !tbaa !5
  %5045 = call ptr @strerror(i32 noundef %5044) #14
  %5046 = load i32, ptr %556, align 4, !tbaa !5
  %5047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5038, ptr noundef nonnull %.str.5.sink3074, i32 noundef %5039, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 568, ptr noundef %5041, ptr noundef %5043, ptr noundef %5045, i32 noundef %5046) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5048:                                             ; preds = %5022
  %5049 = load ptr, ptr getelementptr inbounds (i8, ptr @cipher_preferences_20170210, i64 8), align 8, !tbaa !57
  %5050 = load i16, ptr @cipher_preferences_20170210, align 8, !tbaa !59
  %5051 = zext i16 %5050 to i64
  %5052 = getelementptr ptr, ptr %5049, i64 %5051
  %5053 = getelementptr i8, ptr %5052, i64 -8
  %5054 = load ptr, ptr %5053, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #14
  store <4 x i8> <i8 19, i8 1, i8 19, i8 2>, ptr %20, align 4, !tbaa !60
  %5055 = getelementptr inbounds i8, ptr %20, i64 4
  store i8 19, ptr %5055, align 4, !tbaa !60
  %5056 = getelementptr inbounds i8, ptr %20, i64 5
  store i8 3, ptr %5056, align 1, !tbaa !60
  %5057 = getelementptr inbounds i8, ptr %20, i64 6
  %5058 = getelementptr inbounds i8, ptr %5054, i64 24
  %5059 = load i8, ptr %5058, align 8, !tbaa !60
  store i8 %5059, ptr %5057, align 2, !tbaa !60
  %5060 = getelementptr inbounds i8, ptr %20, i64 7
  %5061 = getelementptr inbounds i8, ptr %5054, i64 25
  %5062 = load i8, ptr %5061, align 1, !tbaa !60
  store i8 %5062, ptr %5060, align 1, !tbaa !60
  %5063 = load i32, ptr @test_count, align 4, !tbaa !5
  %5064 = add nsw i32 %5063, 1
  store i32 %5064, ptr @test_count, align 4, !tbaa !5
  %5065 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %5066 = icmp eq i32 %5065, -1
  br i1 %5066, label %5067, label %5089

5067:                                             ; preds = %5048
  %5068 = load i32, ptr %556, align 4, !tbaa !5
  %5069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5070 = call i32 @s2n_print_stacktrace(ptr noundef %5069) #14
  %5071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5072 = trunc nuw i8 %5071 to i1
  br i1 %5072, label %5073, label %5077

5073:                                             ; preds = %5067
  %5074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5075 = call i32 @fileno(ptr noundef %5074) #14
  %5076 = call i32 @isatty(i32 noundef %5075) #14
  %.not1308 = icmp eq i32 %5076, 0
  br i1 %.not1308, label %5077, label %5078

5077:                                             ; preds = %5073, %5067
  br label %5078

5078:                                             ; preds = %5073, %5077
  %.str.5.sink3083 = phi ptr [ @.str.5, %5077 ], [ @.str.2, %5073 ]
  store i32 %5068, ptr %556, align 4, !tbaa !5
  %5079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5080 = load i32, ptr @test_count, align 4, !tbaa !5
  %5081 = load i32, ptr %502, align 4, !tbaa !5
  %5082 = call ptr @s2n_strerror(i32 noundef %5081, ptr noundef nonnull @.str.4) #14
  %5083 = load i32, ptr %502, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror_debug(i32 noundef %5083, ptr noundef nonnull @.str.4) #14
  %5085 = load i32, ptr %556, align 4, !tbaa !5
  %5086 = call ptr @strerror(i32 noundef %5085) #14
  %5087 = load i32, ptr %556, align 4, !tbaa !5
  %5088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5079, ptr noundef nonnull %.str.5.sink3083, i32 noundef %5080, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 582, ptr noundef %5082, ptr noundef %5084, ptr noundef %5086, i32 noundef %5087) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5089:                                             ; preds = %5048
  %5090 = getelementptr inbounds i8, ptr %1051, i64 218
  store i8 34, ptr %5090, align 2, !tbaa !15
  store i8 33, ptr %1405, align 4, !tbaa !42
  %5091 = load i32, ptr @test_count, align 4, !tbaa !5
  %5092 = add nsw i32 %5091, 1
  store i32 %5092, ptr @test_count, align 4, !tbaa !5
  %5093 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %20, i16 noundef zeroext 4) #14
  %5094 = icmp eq i32 %5093, -1
  br i1 %5094, label %5095, label %5117

5095:                                             ; preds = %5089
  %5096 = load i32, ptr %556, align 4, !tbaa !5
  %5097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5098 = call i32 @s2n_print_stacktrace(ptr noundef %5097) #14
  %5099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5100 = trunc nuw i8 %5099 to i1
  br i1 %5100, label %5101, label %5105

5101:                                             ; preds = %5095
  %5102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5103 = call i32 @fileno(ptr noundef %5102) #14
  %5104 = call i32 @isatty(i32 noundef %5103) #14
  %.not1307 = icmp eq i32 %5104, 0
  br i1 %.not1307, label %5105, label %5106

5105:                                             ; preds = %5101, %5095
  br label %5106

5106:                                             ; preds = %5101, %5105
  %.str.5.sink3092 = phi ptr [ @.str.5, %5105 ], [ @.str.2, %5101 ]
  store i32 %5096, ptr %556, align 4, !tbaa !5
  %5107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5108 = load i32, ptr @test_count, align 4, !tbaa !5
  %5109 = load i32, ptr %502, align 4, !tbaa !5
  %5110 = call ptr @s2n_strerror(i32 noundef %5109, ptr noundef nonnull @.str.4) #14
  %5111 = load i32, ptr %502, align 4, !tbaa !5
  %5112 = call ptr @s2n_strerror_debug(i32 noundef %5111, ptr noundef nonnull @.str.4) #14
  %5113 = load i32, ptr %556, align 4, !tbaa !5
  %5114 = call ptr @strerror(i32 noundef %5113) #14
  %5115 = load i32, ptr %556, align 4, !tbaa !5
  %5116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5107, ptr noundef nonnull %.str.5.sink3092, i32 noundef %5108, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 585, ptr noundef %5110, ptr noundef %5112, ptr noundef %5114, i32 noundef %5115) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5117:                                             ; preds = %5089
  %5118 = load i32, ptr @test_count, align 4, !tbaa !5
  %5119 = add nsw i32 %5118, 1
  store i32 %5119, ptr @test_count, align 4, !tbaa !5
  %5120 = load ptr, ptr %2032, align 8, !tbaa !48
  %5121 = load ptr, ptr %5120, align 8, !tbaa !49
  %5122 = icmp eq ptr %5121, %5054
  br i1 %5122, label %5145, label %5123

5123:                                             ; preds = %5117
  %5124 = load i32, ptr %556, align 4, !tbaa !5
  %5125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5126 = call i32 @s2n_print_stacktrace(ptr noundef %5125) #14
  %5127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5128 = trunc nuw i8 %5127 to i1
  br i1 %5128, label %5129, label %5133

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

5133:                                             ; preds = %5129, %5123
  br label %5134

5134:                                             ; preds = %5129, %5133
  %.str.5.sink3101 = phi ptr [ @.str.5, %5133 ], [ @.str.2, %5129 ]
  store i32 %5124, ptr %556, align 4, !tbaa !5
  %5135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5136 = load i32, ptr @test_count, align 4, !tbaa !5
  %5137 = load i32, ptr %502, align 4, !tbaa !5
  %5138 = call ptr @s2n_strerror(i32 noundef %5137, ptr noundef nonnull @.str.4) #14
  %5139 = load i32, ptr %502, align 4, !tbaa !5
  %5140 = call ptr @s2n_strerror_debug(i32 noundef %5139, ptr noundef nonnull @.str.4) #14
  %5141 = load i32, ptr %556, align 4, !tbaa !5
  %5142 = call ptr @strerror(i32 noundef %5141) #14
  %5143 = load i32, ptr %556, align 4, !tbaa !5
  %5144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5135, ptr noundef nonnull %.str.5.sink3101, i32 noundef %5136, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 586, ptr noundef %5138, ptr noundef %5140, ptr noundef %5142, i32 noundef %5143) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5145:                                             ; preds = %5117
  %5146 = add nsw i32 %5118, 2
  store i32 %5146, ptr @test_count, align 4, !tbaa !5
  %5147 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %5148 = icmp eq i32 %5147, -1
  br i1 %5148, label %5149, label %5171

5149:                                             ; preds = %5145
  %5150 = load i32, ptr %556, align 4, !tbaa !5
  %5151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5152 = call i32 @s2n_print_stacktrace(ptr noundef %5151) #14
  %5153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5154 = trunc nuw i8 %5153 to i1
  br i1 %5154, label %5155, label %5159

5155:                                             ; preds = %5149
  %5156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5157 = call i32 @fileno(ptr noundef %5156) #14
  %5158 = call i32 @isatty(i32 noundef %5157) #14
  %.not1306 = icmp eq i32 %5158, 0
  br i1 %.not1306, label %5159, label %5160

5159:                                             ; preds = %5155, %5149
  br label %5160

5160:                                             ; preds = %5155, %5159
  %.str.5.sink3110 = phi ptr [ @.str.5, %5159 ], [ @.str.2, %5155 ]
  store i32 %5150, ptr %556, align 4, !tbaa !5
  %5161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5162 = load i32, ptr @test_count, align 4, !tbaa !5
  %5163 = load i32, ptr %502, align 4, !tbaa !5
  %5164 = call ptr @s2n_strerror(i32 noundef %5163, ptr noundef nonnull @.str.4) #14
  %5165 = load i32, ptr %502, align 4, !tbaa !5
  %5166 = call ptr @s2n_strerror_debug(i32 noundef %5165, ptr noundef nonnull @.str.4) #14
  %5167 = load i32, ptr %556, align 4, !tbaa !5
  %5168 = call ptr @strerror(i32 noundef %5167) #14
  %5169 = load i32, ptr %556, align 4, !tbaa !5
  %5170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5161, ptr noundef nonnull %.str.5.sink3110, i32 noundef %5162, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 587, ptr noundef %5164, ptr noundef %5166, ptr noundef %5168, i32 noundef %5169) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5171:                                             ; preds = %5145
  %5172 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #14
  br i1 %5172, label %.preheader.preheader, label %.loopexit

.preheader.preheader:                             ; preds = %5171
  %5173 = load i32, ptr @test_count, align 4, !tbaa !5
  %5174 = add nsw i32 %5173, 1
  store i32 %5174, ptr @test_count, align 4, !tbaa !5
  %5175 = load ptr, ptr @__const.main.test_cases, align 16, !tbaa !61
  %5176 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef %5175) #14
  %5177 = icmp eq i32 %5176, -1
  br i1 %5177, label %5220, label %5242

.preheader.1:                                     ; preds = %5298
  %5178 = load i32, ptr @test_count, align 4, !tbaa !5
  %5179 = add nsw i32 %5178, 1
  store i32 %5179, ptr @test_count, align 4, !tbaa !5
  %5180 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 16), align 16, !tbaa !61
  %5181 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef %5180) #14
  %5182 = icmp eq i32 %5181, -1
  br i1 %5182, label %5220, label %5183

5183:                                             ; preds = %.preheader.1
  store i8 34, ptr %5090, align 2, !tbaa !15
  store i8 34, ptr %1405, align 4, !tbaa !42
  store i8 34, ptr %1975, align 1, !tbaa !43
  %5184 = load i32, ptr @test_count, align 4, !tbaa !5
  %5185 = add nsw i32 %5184, 1
  store i32 %5185, ptr @test_count, align 4, !tbaa !5
  %5186 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %20, i16 noundef zeroext 4) #14
  %5187 = icmp eq i32 %5186, -1
  br i1 %5187, label %5247, label %5188

5188:                                             ; preds = %5183
  %5189 = load i32, ptr @test_count, align 4, !tbaa !5
  %5190 = add nsw i32 %5189, 1
  store i32 %5190, ptr @test_count, align 4, !tbaa !5
  %5191 = load ptr, ptr %2032, align 8, !tbaa !48
  %5192 = load ptr, ptr %5191, align 8, !tbaa !49
  %5193 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 24), align 8, !tbaa !63
  %5194 = icmp eq ptr %5192, %5193
  br i1 %5194, label %5195, label %5276

5195:                                             ; preds = %5188
  %5196 = add nsw i32 %5189, 2
  store i32 %5196, ptr @test_count, align 4, !tbaa !5
  %5197 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %5198 = icmp eq i32 %5197, -1
  br i1 %5198, label %5302, label %.preheader.2

.preheader.2:                                     ; preds = %5195
  %5199 = load i32, ptr @test_count, align 4, !tbaa !5
  %5200 = add nsw i32 %5199, 1
  store i32 %5200, ptr @test_count, align 4, !tbaa !5
  %5201 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 32), align 16, !tbaa !61
  %5202 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef %5201) #14
  %5203 = icmp eq i32 %5202, -1
  br i1 %5203, label %5220, label %5204

5204:                                             ; preds = %.preheader.2
  store i8 34, ptr %5090, align 2, !tbaa !15
  store i8 34, ptr %1405, align 4, !tbaa !42
  store i8 34, ptr %1975, align 1, !tbaa !43
  %5205 = load i32, ptr @test_count, align 4, !tbaa !5
  %5206 = add nsw i32 %5205, 1
  store i32 %5206, ptr @test_count, align 4, !tbaa !5
  %5207 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %20, i16 noundef zeroext 4) #14
  %5208 = icmp eq i32 %5207, -1
  br i1 %5208, label %5247, label %5209

5209:                                             ; preds = %5204
  %5210 = load i32, ptr @test_count, align 4, !tbaa !5
  %5211 = add nsw i32 %5210, 1
  store i32 %5211, ptr @test_count, align 4, !tbaa !5
  %5212 = load ptr, ptr %2032, align 8, !tbaa !48
  %5213 = load ptr, ptr %5212, align 8, !tbaa !49
  %5214 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 40), align 8, !tbaa !63
  %5215 = icmp eq ptr %5213, %5214
  br i1 %5215, label %5216, label %5276

5216:                                             ; preds = %5209
  %5217 = add nsw i32 %5210, 2
  store i32 %5217, ptr @test_count, align 4, !tbaa !5
  %5218 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %5219 = icmp eq i32 %5218, -1
  br i1 %5219, label %5302, label %.loopexit

5220:                                             ; preds = %.preheader.2, %.preheader.1, %.preheader.preheader
  %5221 = load i32, ptr %556, align 4, !tbaa !5
  %5222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5223 = call i32 @s2n_print_stacktrace(ptr noundef %5222) #14
  %5224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5225 = trunc nuw i8 %5224 to i1
  br i1 %5225, label %5226, label %5230

5226:                                             ; preds = %5220
  %5227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5228 = call i32 @fileno(ptr noundef %5227) #14
  %5229 = call i32 @isatty(i32 noundef %5228) #14
  %.not1305 = icmp eq i32 %5229, 0
  br i1 %.not1305, label %5230, label %5231

5230:                                             ; preds = %5226, %5220
  br label %5231

5231:                                             ; preds = %5226, %5230
  %.str.5.sink3119 = phi ptr [ @.str.5, %5230 ], [ @.str.2, %5226 ]
  store i32 %5221, ptr %556, align 4, !tbaa !5
  %5232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5233 = load i32, ptr @test_count, align 4, !tbaa !5
  %5234 = load i32, ptr %502, align 4, !tbaa !5
  %5235 = call ptr @s2n_strerror(i32 noundef %5234, ptr noundef nonnull @.str.4) #14
  %5236 = load i32, ptr %502, align 4, !tbaa !5
  %5237 = call ptr @s2n_strerror_debug(i32 noundef %5236, ptr noundef nonnull @.str.4) #14
  %5238 = load i32, ptr %556, align 4, !tbaa !5
  %5239 = call ptr @strerror(i32 noundef %5238) #14
  %5240 = load i32, ptr %556, align 4, !tbaa !5
  %5241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5232, ptr noundef nonnull %.str.5.sink3119, i32 noundef %5233, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.1, i32 noundef 604, ptr noundef %5235, ptr noundef %5237, ptr noundef %5239, i32 noundef %5240) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5242:                                             ; preds = %.preheader.preheader
  store i8 34, ptr %5090, align 2, !tbaa !15
  store i8 34, ptr %1405, align 4, !tbaa !42
  store i8 34, ptr %1975, align 1, !tbaa !43
  %5243 = load i32, ptr @test_count, align 4, !tbaa !5
  %5244 = add nsw i32 %5243, 1
  store i32 %5244, ptr @test_count, align 4, !tbaa !5
  %5245 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %20, i16 noundef zeroext 4) #14
  %5246 = icmp eq i32 %5245, -1
  br i1 %5246, label %5247, label %5269

5247:                                             ; preds = %5204, %5183, %5242
  %5248 = load i32, ptr %556, align 4, !tbaa !5
  %5249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5250 = call i32 @s2n_print_stacktrace(ptr noundef %5249) #14
  %5251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5252 = trunc nuw i8 %5251 to i1
  br i1 %5252, label %5253, label %5257

5253:                                             ; preds = %5247
  %5254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5255 = call i32 @fileno(ptr noundef %5254) #14
  %5256 = call i32 @isatty(i32 noundef %5255) #14
  %.not1304 = icmp eq i32 %5256, 0
  br i1 %.not1304, label %5257, label %5258

5257:                                             ; preds = %5253, %5247
  br label %5258

5258:                                             ; preds = %5253, %5257
  %.str.5.sink3128 = phi ptr [ @.str.5, %5257 ], [ @.str.2, %5253 ]
  store i32 %5248, ptr %556, align 4, !tbaa !5
  %5259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5260 = load i32, ptr @test_count, align 4, !tbaa !5
  %5261 = load i32, ptr %502, align 4, !tbaa !5
  %5262 = call ptr @s2n_strerror(i32 noundef %5261, ptr noundef nonnull @.str.4) #14
  %5263 = load i32, ptr %502, align 4, !tbaa !5
  %5264 = call ptr @s2n_strerror_debug(i32 noundef %5263, ptr noundef nonnull @.str.4) #14
  %5265 = load i32, ptr %556, align 4, !tbaa !5
  %5266 = call ptr @strerror(i32 noundef %5265) #14
  %5267 = load i32, ptr %556, align 4, !tbaa !5
  %5268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5259, ptr noundef nonnull %.str.5.sink3128, i32 noundef %5260, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 608, ptr noundef %5262, ptr noundef %5264, ptr noundef %5266, i32 noundef %5267) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5269:                                             ; preds = %5242
  %5270 = load i32, ptr @test_count, align 4, !tbaa !5
  %5271 = add nsw i32 %5270, 1
  store i32 %5271, ptr @test_count, align 4, !tbaa !5
  %5272 = load ptr, ptr %2032, align 8, !tbaa !48
  %5273 = load ptr, ptr %5272, align 8, !tbaa !49
  %5274 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 8), align 8, !tbaa !63
  %5275 = icmp eq ptr %5273, %5274
  br i1 %5275, label %5298, label %5276

5276:                                             ; preds = %5209, %5188, %5269
  %5277 = load i32, ptr %556, align 4, !tbaa !5
  %5278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5279 = call i32 @s2n_print_stacktrace(ptr noundef %5278) #14
  %5280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5281 = trunc nuw i8 %5280 to i1
  br i1 %5281, label %5282, label %5286

5282:                                             ; preds = %5276
  %5283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5284 = call i32 @fileno(ptr noundef %5283) #14
  %5285 = call i32 @isatty(i32 noundef %5284) #14
  %.not1302 = icmp eq i32 %5285, 0
  br i1 %.not1302, label %5286, label %5287

5286:                                             ; preds = %5282, %5276
  br label %5287

5287:                                             ; preds = %5282, %5286
  %.str.5.sink3137 = phi ptr [ @.str.5, %5286 ], [ @.str.2, %5282 ]
  store i32 %5277, ptr %556, align 4, !tbaa !5
  %5288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5289 = load i32, ptr @test_count, align 4, !tbaa !5
  %5290 = load i32, ptr %502, align 4, !tbaa !5
  %5291 = call ptr @s2n_strerror(i32 noundef %5290, ptr noundef nonnull @.str.4) #14
  %5292 = load i32, ptr %502, align 4, !tbaa !5
  %5293 = call ptr @s2n_strerror_debug(i32 noundef %5292, ptr noundef nonnull @.str.4) #14
  %5294 = load i32, ptr %556, align 4, !tbaa !5
  %5295 = call ptr @strerror(i32 noundef %5294) #14
  %5296 = load i32, ptr %556, align 4, !tbaa !5
  %5297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5288, ptr noundef nonnull %.str.5.sink3137, i32 noundef %5289, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 609, ptr noundef %5291, ptr noundef %5293, ptr noundef %5295, i32 noundef %5296) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5298:                                             ; preds = %5269
  %5299 = add nsw i32 %5270, 2
  store i32 %5299, ptr @test_count, align 4, !tbaa !5
  %5300 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %5301 = icmp eq i32 %5300, -1
  br i1 %5301, label %5302, label %.preheader.1

5302:                                             ; preds = %5216, %5195, %5298
  %5303 = load i32, ptr %556, align 4, !tbaa !5
  %5304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5305 = call i32 @s2n_print_stacktrace(ptr noundef %5304) #14
  %5306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5307 = trunc nuw i8 %5306 to i1
  br i1 %5307, label %5308, label %5312

5308:                                             ; preds = %5302
  %5309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5310 = call i32 @fileno(ptr noundef %5309) #14
  %5311 = call i32 @isatty(i32 noundef %5310) #14
  %.not1303 = icmp eq i32 %5311, 0
  br i1 %.not1303, label %5312, label %5313

5312:                                             ; preds = %5308, %5302
  br label %5313

5313:                                             ; preds = %5308, %5312
  %.str.5.sink3146 = phi ptr [ @.str.5, %5312 ], [ @.str.2, %5308 ]
  store i32 %5303, ptr %556, align 4, !tbaa !5
  %5314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5315 = load i32, ptr @test_count, align 4, !tbaa !5
  %5316 = load i32, ptr %502, align 4, !tbaa !5
  %5317 = call ptr @s2n_strerror(i32 noundef %5316, ptr noundef nonnull @.str.4) #14
  %5318 = load i32, ptr %502, align 4, !tbaa !5
  %5319 = call ptr @s2n_strerror_debug(i32 noundef %5318, ptr noundef nonnull @.str.4) #14
  %5320 = load i32, ptr %556, align 4, !tbaa !5
  %5321 = call ptr @strerror(i32 noundef %5320) #14
  %5322 = load i32, ptr %556, align 4, !tbaa !5
  %5323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5314, ptr noundef nonnull %.str.5.sink3146, i32 noundef %5315, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 610, ptr noundef %5317, ptr noundef %5319, ptr noundef %5321, i32 noundef %5322) #16
  call void @exit(i32 noundef 1) #17
  unreachable

.loopexit:                                        ; preds = %5216, %5171
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #14
  %5324 = load i64, ptr @__const.main.wire_ciphers2, align 1
  store i64 %5324, ptr %21, align 8
  %5325 = load i32, ptr @test_count, align 4, !tbaa !5
  %5326 = add nsw i32 %5325, 1
  store i32 %5326, ptr @test_count, align 4, !tbaa !5
  %5327 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %5328 = icmp eq i32 %5327, -1
  br i1 %5328, label %5329, label %5351

5329:                                             ; preds = %.loopexit
  %5330 = load i32, ptr %556, align 4, !tbaa !5
  %5331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5332 = call i32 @s2n_print_stacktrace(ptr noundef %5331) #14
  %5333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5334 = trunc nuw i8 %5333 to i1
  br i1 %5334, label %5335, label %5339

5335:                                             ; preds = %5329
  %5336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5337 = call i32 @fileno(ptr noundef %5336) #14
  %5338 = call i32 @isatty(i32 noundef %5337) #14
  %.not1301 = icmp eq i32 %5338, 0
  br i1 %.not1301, label %5339, label %5340

5339:                                             ; preds = %5335, %5329
  br label %5340

5340:                                             ; preds = %5335, %5339
  %.str.5.sink3155 = phi ptr [ @.str.5, %5339 ], [ @.str.2, %5335 ]
  store i32 %5330, ptr %556, align 4, !tbaa !5
  %5341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5342 = load i32, ptr @test_count, align 4, !tbaa !5
  %5343 = load i32, ptr %502, align 4, !tbaa !5
  %5344 = call ptr @s2n_strerror(i32 noundef %5343, ptr noundef nonnull @.str.4) #14
  %5345 = load i32, ptr %502, align 4, !tbaa !5
  %5346 = call ptr @s2n_strerror_debug(i32 noundef %5345, ptr noundef nonnull @.str.4) #14
  %5347 = load i32, ptr %556, align 4, !tbaa !5
  %5348 = call ptr @strerror(i32 noundef %5347) #14
  %5349 = load i32, ptr %556, align 4, !tbaa !5
  %5350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5341, ptr noundef nonnull %.str.5.sink3155, i32 noundef %5342, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 624, ptr noundef %5344, ptr noundef %5346, ptr noundef %5348, i32 noundef %5349) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5351:                                             ; preds = %.loopexit
  store i8 34, ptr %5090, align 2, !tbaa !15
  store i8 34, ptr %1405, align 4, !tbaa !42
  store i8 34, ptr %1975, align 1, !tbaa !43
  %5352 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_chacha20_poly1305, i64 56), align 8, !tbaa !64
  %5353 = call zeroext i1 %5352() #14
  %5354 = load i32, ptr @test_count, align 4, !tbaa !5
  %5355 = add nsw i32 %5354, 1
  store i32 %5355, ptr @test_count, align 4, !tbaa !5
  %5356 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %21, i16 noundef zeroext 4) #14
  %5357 = icmp eq i32 %5356, -1
  br i1 %5353, label %5358, label %5409

5358:                                             ; preds = %5351
  br i1 %5357, label %5359, label %5381

5359:                                             ; preds = %5358
  %5360 = load i32, ptr %556, align 4, !tbaa !5
  %5361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5362 = call i32 @s2n_print_stacktrace(ptr noundef %5361) #14
  %5363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5364 = trunc nuw i8 %5363 to i1
  br i1 %5364, label %5365, label %5369

5365:                                             ; preds = %5359
  %5366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5367 = call i32 @fileno(ptr noundef %5366) #14
  %5368 = call i32 @isatty(i32 noundef %5367) #14
  %.not1300 = icmp eq i32 %5368, 0
  br i1 %.not1300, label %5369, label %5370

5369:                                             ; preds = %5365, %5359
  br label %5370

5370:                                             ; preds = %5365, %5369
  %.str.5.sink3164 = phi ptr [ @.str.5, %5369 ], [ @.str.2, %5365 ]
  store i32 %5360, ptr %556, align 4, !tbaa !5
  %5371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5372 = load i32, ptr @test_count, align 4, !tbaa !5
  %5373 = load i32, ptr %502, align 4, !tbaa !5
  %5374 = call ptr @s2n_strerror(i32 noundef %5373, ptr noundef nonnull @.str.4) #14
  %5375 = load i32, ptr %502, align 4, !tbaa !5
  %5376 = call ptr @s2n_strerror_debug(i32 noundef %5375, ptr noundef nonnull @.str.4) #14
  %5377 = load i32, ptr %556, align 4, !tbaa !5
  %5378 = call ptr @strerror(i32 noundef %5377) #14
  %5379 = load i32, ptr %556, align 4, !tbaa !5
  %5380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5371, ptr noundef nonnull %.str.5.sink3164, i32 noundef %5372, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 630, ptr noundef %5374, ptr noundef %5376, ptr noundef %5378, i32 noundef %5379) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5381:                                             ; preds = %5358
  %5382 = load i32, ptr @test_count, align 4, !tbaa !5
  %5383 = add nsw i32 %5382, 1
  store i32 %5383, ptr @test_count, align 4, !tbaa !5
  %5384 = load ptr, ptr %2032, align 8, !tbaa !48
  %5385 = load ptr, ptr %5384, align 8, !tbaa !49
  %5386 = icmp eq ptr %5385, @s2n_tls13_chacha20_poly1305_sha256
  br i1 %5386, label %5486, label %5387

5387:                                             ; preds = %5381
  %5388 = load i32, ptr %556, align 4, !tbaa !5
  %5389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5390 = call i32 @s2n_print_stacktrace(ptr noundef %5389) #14
  %5391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5392 = trunc nuw i8 %5391 to i1
  br i1 %5392, label %5393, label %5397

5393:                                             ; preds = %5387
  %5394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5395 = call i32 @fileno(ptr noundef %5394) #14
  %5396 = call i32 @isatty(i32 noundef %5395) #14
  %.not1157 = icmp eq i32 %5396, 0
  br i1 %.not1157, label %5397, label %5398

5397:                                             ; preds = %5393, %5387
  br label %5398

5398:                                             ; preds = %5393, %5397
  %.str.5.sink3173 = phi ptr [ @.str.5, %5397 ], [ @.str.2, %5393 ]
  store i32 %5388, ptr %556, align 4, !tbaa !5
  %5399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5400 = load i32, ptr @test_count, align 4, !tbaa !5
  %5401 = load i32, ptr %502, align 4, !tbaa !5
  %5402 = call ptr @s2n_strerror(i32 noundef %5401, ptr noundef nonnull @.str.4) #14
  %5403 = load i32, ptr %502, align 4, !tbaa !5
  %5404 = call ptr @s2n_strerror_debug(i32 noundef %5403, ptr noundef nonnull @.str.4) #14
  %5405 = load i32, ptr %556, align 4, !tbaa !5
  %5406 = call ptr @strerror(i32 noundef %5405) #14
  %5407 = load i32, ptr %556, align 4, !tbaa !5
  %5408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5399, ptr noundef nonnull %.str.5.sink3173, i32 noundef %5400, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 631, ptr noundef %5402, ptr noundef %5404, ptr noundef %5406, i32 noundef %5407) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5409:                                             ; preds = %5351
  br i1 %5357, label %5432, label %5410

5410:                                             ; preds = %5409
  %5411 = load i32, ptr %556, align 4, !tbaa !5
  %5412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5413 = call i32 @s2n_print_stacktrace(ptr noundef %5412) #14
  %5414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5415 = trunc nuw i8 %5414 to i1
  br i1 %5415, label %5416, label %5420

5416:                                             ; preds = %5410
  %5417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5418 = call i32 @fileno(ptr noundef %5417) #14
  %5419 = call i32 @isatty(i32 noundef %5418) #14
  %.not1154 = icmp eq i32 %5419, 0
  br i1 %.not1154, label %5420, label %5421

5420:                                             ; preds = %5416, %5410
  br label %5421

5421:                                             ; preds = %5416, %5420
  %.str.5.sink3182 = phi ptr [ @.str.5, %5420 ], [ @.str.2, %5416 ]
  store i32 %5411, ptr %556, align 4, !tbaa !5
  %5422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5423 = load i32, ptr @test_count, align 4, !tbaa !5
  %5424 = load i32, ptr %502, align 4, !tbaa !5
  %5425 = call ptr @s2n_strerror(i32 noundef %5424, ptr noundef nonnull @.str.4) #14
  %5426 = load i32, ptr %502, align 4, !tbaa !5
  %5427 = call ptr @s2n_strerror_debug(i32 noundef %5426, ptr noundef nonnull @.str.4) #14
  %5428 = load i32, ptr %556, align 4, !tbaa !5
  %5429 = call ptr @strerror(i32 noundef %5428) #14
  %5430 = load i32, ptr %556, align 4, !tbaa !5
  %5431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5422, ptr noundef nonnull %.str.5.sink3182, i32 noundef %5423, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.1, i32 noundef 633, ptr noundef %5425, ptr noundef %5427, ptr noundef %5429, i32 noundef %5430) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5432:                                             ; preds = %5409
  %5433 = load i32, ptr @test_count, align 4, !tbaa !5
  %5434 = add nsw i32 %5433, 1
  store i32 %5434, ptr @test_count, align 4, !tbaa !5
  %5435 = load i32, ptr %502, align 4, !tbaa !5
  %5436 = icmp eq i32 %5435, 0
  br i1 %5436, label %5437, label %5459

5437:                                             ; preds = %5432
  %5438 = load i32, ptr %556, align 4, !tbaa !5
  %5439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5440 = call i32 @s2n_print_stacktrace(ptr noundef %5439) #14
  %5441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5442 = trunc nuw i8 %5441 to i1
  br i1 %5442, label %5443, label %5447

5443:                                             ; preds = %5437
  %5444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5445 = call i32 @fileno(ptr noundef %5444) #14
  %5446 = call i32 @isatty(i32 noundef %5445) #14
  %.not1156 = icmp eq i32 %5446, 0
  br i1 %.not1156, label %5447, label %5448

5447:                                             ; preds = %5443, %5437
  br label %5448

5448:                                             ; preds = %5443, %5447
  %.str.5.sink3191 = phi ptr [ @.str.5, %5447 ], [ @.str.2, %5443 ]
  store i32 %5438, ptr %556, align 4, !tbaa !5
  %5449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5450 = load i32, ptr @test_count, align 4, !tbaa !5
  %5451 = load i32, ptr %502, align 4, !tbaa !5
  %5452 = call ptr @s2n_strerror(i32 noundef %5451, ptr noundef nonnull @.str.4) #14
  %5453 = load i32, ptr %502, align 4, !tbaa !5
  %5454 = call ptr @s2n_strerror_debug(i32 noundef %5453, ptr noundef nonnull @.str.4) #14
  %5455 = load i32, ptr %556, align 4, !tbaa !5
  %5456 = call ptr @strerror(i32 noundef %5455) #14
  %5457 = load i32, ptr %556, align 4, !tbaa !5
  %5458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5449, ptr noundef nonnull %.str.5.sink3191, i32 noundef %5450, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 633, ptr noundef %5452, ptr noundef %5454, ptr noundef %5456, i32 noundef %5457) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5459:                                             ; preds = %5432
  %5460 = add nsw i32 %5433, 2
  store i32 %5460, ptr @test_count, align 4, !tbaa !5
  %5461 = call ptr @s2n_strerror_debug(i32 noundef %5435, ptr noundef nonnull @.str.4) #14
  %5462 = icmp eq ptr %5461, null
  br i1 %5462, label %5463, label %5485

5463:                                             ; preds = %5459
  %5464 = load i32, ptr %556, align 4, !tbaa !5
  %5465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5466 = call i32 @s2n_print_stacktrace(ptr noundef %5465) #14
  %5467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5468 = trunc nuw i8 %5467 to i1
  br i1 %5468, label %5469, label %5473

5469:                                             ; preds = %5463
  %5470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5471 = call i32 @fileno(ptr noundef %5470) #14
  %5472 = call i32 @isatty(i32 noundef %5471) #14
  %.not1155 = icmp eq i32 %5472, 0
  br i1 %.not1155, label %5473, label %5474

5473:                                             ; preds = %5469, %5463
  br label %5474

5474:                                             ; preds = %5469, %5473
  %.str.5.sink3200 = phi ptr [ @.str.5, %5473 ], [ @.str.2, %5469 ]
  store i32 %5464, ptr %556, align 4, !tbaa !5
  %5475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5476 = load i32, ptr @test_count, align 4, !tbaa !5
  %5477 = load i32, ptr %502, align 4, !tbaa !5
  %5478 = call ptr @s2n_strerror(i32 noundef %5477, ptr noundef nonnull @.str.4) #14
  %5479 = load i32, ptr %502, align 4, !tbaa !5
  %5480 = call ptr @s2n_strerror_debug(i32 noundef %5479, ptr noundef nonnull @.str.4) #14
  %5481 = load i32, ptr %556, align 4, !tbaa !5
  %5482 = call ptr @strerror(i32 noundef %5481) #14
  %5483 = load i32, ptr %556, align 4, !tbaa !5
  %5484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5475, ptr noundef nonnull %.str.5.sink3200, i32 noundef %5476, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 633, ptr noundef %5478, ptr noundef %5480, ptr noundef %5482, i32 noundef %5483) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5485:                                             ; preds = %5459
  store i32 0, ptr %502, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  store i32 0, ptr %556, align 4, !tbaa !5
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br label %5486

5486:                                             ; preds = %5485, %5381
  %5487 = phi i32 [ %.pre, %5485 ], [ %5383, %5381 ]
  %5488 = add nsw i32 %5487, 1
  store i32 %5488, ptr @test_count, align 4, !tbaa !5
  %5489 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %5490 = icmp eq i32 %5489, -1
  br i1 %5490, label %5491, label %5513

5491:                                             ; preds = %5486
  %5492 = load i32, ptr %556, align 4, !tbaa !5
  %5493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5494 = call i32 @s2n_print_stacktrace(ptr noundef %5493) #14
  %5495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5496 = trunc nuw i8 %5495 to i1
  br i1 %5496, label %5497, label %5501

5497:                                             ; preds = %5491
  %5498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5499 = call i32 @fileno(ptr noundef %5498) #14
  %5500 = call i32 @isatty(i32 noundef %5499) #14
  %.not1299 = icmp eq i32 %5500, 0
  br i1 %.not1299, label %5501, label %5502

5501:                                             ; preds = %5497, %5491
  br label %5502

5502:                                             ; preds = %5497, %5501
  %.str.5.sink3209 = phi ptr [ @.str.5, %5501 ], [ @.str.2, %5497 ]
  store i32 %5492, ptr %556, align 4, !tbaa !5
  %5503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5504 = load i32, ptr @test_count, align 4, !tbaa !5
  %5505 = load i32, ptr %502, align 4, !tbaa !5
  %5506 = call ptr @s2n_strerror(i32 noundef %5505, ptr noundef nonnull @.str.4) #14
  %5507 = load i32, ptr %502, align 4, !tbaa !5
  %5508 = call ptr @s2n_strerror_debug(i32 noundef %5507, ptr noundef nonnull @.str.4) #14
  %5509 = load i32, ptr %556, align 4, !tbaa !5
  %5510 = call ptr @strerror(i32 noundef %5509) #14
  %5511 = load i32, ptr %556, align 4, !tbaa !5
  %5512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5503, ptr noundef nonnull %.str.5.sink3209, i32 noundef %5504, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 635, ptr noundef %5506, ptr noundef %5508, ptr noundef %5510, i32 noundef %5511) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5513:                                             ; preds = %5486
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #14
  %5514 = load i32, ptr @__const.main.test_wire_ciphers, align 1
  store i32 %5514, ptr %22, align 4
  %5515 = load i32, ptr @test_count, align 4, !tbaa !5
  %5516 = add nsw i32 %5515, 1
  store i32 %5516, ptr @test_count, align 4, !tbaa !5
  %5517 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %5518 = icmp eq i32 %5517, -1
  br i1 %5518, label %5519, label %5541

5519:                                             ; preds = %5513
  %5520 = load i32, ptr %556, align 4, !tbaa !5
  %5521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5522 = call i32 @s2n_print_stacktrace(ptr noundef %5521) #14
  %5523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5524 = trunc nuw i8 %5523 to i1
  br i1 %5524, label %5525, label %5529

5525:                                             ; preds = %5519
  %5526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5527 = call i32 @fileno(ptr noundef %5526) #14
  %5528 = call i32 @isatty(i32 noundef %5527) #14
  %.not1298 = icmp eq i32 %5528, 0
  br i1 %.not1298, label %5529, label %5530

5529:                                             ; preds = %5525, %5519
  br label %5530

5530:                                             ; preds = %5525, %5529
  %.str.5.sink3218 = phi ptr [ @.str.5, %5529 ], [ @.str.2, %5525 ]
  store i32 %5520, ptr %556, align 4, !tbaa !5
  %5531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5532 = load i32, ptr @test_count, align 4, !tbaa !5
  %5533 = load i32, ptr %502, align 4, !tbaa !5
  %5534 = call ptr @s2n_strerror(i32 noundef %5533, ptr noundef nonnull @.str.4) #14
  %5535 = load i32, ptr %502, align 4, !tbaa !5
  %5536 = call ptr @s2n_strerror_debug(i32 noundef %5535, ptr noundef nonnull @.str.4) #14
  %5537 = load i32, ptr %556, align 4, !tbaa !5
  %5538 = call ptr @strerror(i32 noundef %5537) #14
  %5539 = load i32, ptr %556, align 4, !tbaa !5
  %5540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5531, ptr noundef nonnull %.str.5.sink3218, i32 noundef %5532, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 646, ptr noundef %5534, ptr noundef %5536, ptr noundef %5538, i32 noundef %5539) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5541:                                             ; preds = %5513
  store i8 33, ptr %1405, align 4, !tbaa !42
  %5542 = load ptr, ptr @s2n_all_supported_curves_list, align 8, !tbaa !9
  store ptr %5542, ptr %1974, align 8, !tbaa !56
  %5543 = load i32, ptr @test_count, align 4, !tbaa !5
  %5544 = add nsw i32 %5543, 1
  store i32 %5544, ptr @test_count, align 4, !tbaa !5
  %5545 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %22, i16 noundef zeroext 2) #14
  %5546 = icmp eq i32 %5545, -1
  br i1 %5546, label %5547, label %5569

5547:                                             ; preds = %5541
  %5548 = load i32, ptr %556, align 4, !tbaa !5
  %5549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5550 = call i32 @s2n_print_stacktrace(ptr noundef %5549) #14
  %5551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5552 = trunc nuw i8 %5551 to i1
  br i1 %5552, label %5553, label %5557

5553:                                             ; preds = %5547
  %5554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5555 = call i32 @fileno(ptr noundef %5554) #14
  %5556 = call i32 @isatty(i32 noundef %5555) #14
  %.not1297 = icmp eq i32 %5556, 0
  br i1 %.not1297, label %5557, label %5558

5557:                                             ; preds = %5553, %5547
  br label %5558

5558:                                             ; preds = %5553, %5557
  %.str.5.sink3227 = phi ptr [ @.str.5, %5557 ], [ @.str.2, %5553 ]
  store i32 %5548, ptr %556, align 4, !tbaa !5
  %5559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5560 = load i32, ptr @test_count, align 4, !tbaa !5
  %5561 = load i32, ptr %502, align 4, !tbaa !5
  %5562 = call ptr @s2n_strerror(i32 noundef %5561, ptr noundef nonnull @.str.4) #14
  %5563 = load i32, ptr %502, align 4, !tbaa !5
  %5564 = call ptr @s2n_strerror_debug(i32 noundef %5563, ptr noundef nonnull @.str.4) #14
  %5565 = load i32, ptr %556, align 4, !tbaa !5
  %5566 = call ptr @strerror(i32 noundef %5565) #14
  %5567 = load i32, ptr %556, align 4, !tbaa !5
  %5568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5559, ptr noundef nonnull %.str.5.sink3227, i32 noundef %5560, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.1, i32 noundef 650, ptr noundef %5562, ptr noundef %5564, ptr noundef %5566, i32 noundef %5567) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5569:                                             ; preds = %5541
  %5570 = load i32, ptr @test_count, align 4, !tbaa !5
  %5571 = add nsw i32 %5570, 1
  store i32 %5571, ptr @test_count, align 4, !tbaa !5
  %5572 = load ptr, ptr %2032, align 8, !tbaa !48
  %5573 = load ptr, ptr %5572, align 8, !tbaa !49
  %5574 = icmp eq ptr %5573, @s2n_ecdhe_rsa_with_aes_128_gcm_sha256
  br i1 %5574, label %5597, label %5575

5575:                                             ; preds = %5569
  %5576 = load i32, ptr %556, align 4, !tbaa !5
  %5577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5578 = call i32 @s2n_print_stacktrace(ptr noundef %5577) #14
  %5579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5580 = trunc nuw i8 %5579 to i1
  br i1 %5580, label %5581, label %5585

5581:                                             ; preds = %5575
  %5582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5583 = call i32 @fileno(ptr noundef %5582) #14
  %5584 = call i32 @isatty(i32 noundef %5583) #14
  %.not1158 = icmp eq i32 %5584, 0
  br i1 %.not1158, label %5585, label %5586

5585:                                             ; preds = %5581, %5575
  br label %5586

5586:                                             ; preds = %5581, %5585
  %.str.5.sink3236 = phi ptr [ @.str.5, %5585 ], [ @.str.2, %5581 ]
  store i32 %5576, ptr %556, align 4, !tbaa !5
  %5587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5588 = load i32, ptr @test_count, align 4, !tbaa !5
  %5589 = load i32, ptr %502, align 4, !tbaa !5
  %5590 = call ptr @s2n_strerror(i32 noundef %5589, ptr noundef nonnull @.str.4) #14
  %5591 = load i32, ptr %502, align 4, !tbaa !5
  %5592 = call ptr @s2n_strerror_debug(i32 noundef %5591, ptr noundef nonnull @.str.4) #14
  %5593 = load i32, ptr %556, align 4, !tbaa !5
  %5594 = call ptr @strerror(i32 noundef %5593) #14
  %5595 = load i32, ptr %556, align 4, !tbaa !5
  %5596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5587, ptr noundef nonnull %.str.5.sink3236, i32 noundef %5588, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 651, ptr noundef %5590, ptr noundef %5592, ptr noundef %5594, i32 noundef %5595) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5597:                                             ; preds = %5569
  %5598 = add nsw i32 %5570, 2
  store i32 %5598, ptr @test_count, align 4, !tbaa !5
  %5599 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %5600 = icmp eq i32 %5599, -1
  br i1 %5600, label %5601, label %5623

5601:                                             ; preds = %5597
  %5602 = load i32, ptr %556, align 4, !tbaa !5
  %5603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5604 = call i32 @s2n_print_stacktrace(ptr noundef %5603) #14
  %5605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5606 = trunc nuw i8 %5605 to i1
  br i1 %5606, label %5607, label %5611

5607:                                             ; preds = %5601
  %5608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5609 = call i32 @fileno(ptr noundef %5608) #14
  %5610 = call i32 @isatty(i32 noundef %5609) #14
  %.not1296 = icmp eq i32 %5610, 0
  br i1 %.not1296, label %5611, label %5612

5611:                                             ; preds = %5607, %5601
  br label %5612

5612:                                             ; preds = %5607, %5611
  %.str.5.sink3245 = phi ptr [ @.str.5, %5611 ], [ @.str.2, %5607 ]
  store i32 %5602, ptr %556, align 4, !tbaa !5
  %5613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5614 = load i32, ptr @test_count, align 4, !tbaa !5
  %5615 = load i32, ptr %502, align 4, !tbaa !5
  %5616 = call ptr @s2n_strerror(i32 noundef %5615, ptr noundef nonnull @.str.4) #14
  %5617 = load i32, ptr %502, align 4, !tbaa !5
  %5618 = call ptr @s2n_strerror_debug(i32 noundef %5617, ptr noundef nonnull @.str.4) #14
  %5619 = load i32, ptr %556, align 4, !tbaa !5
  %5620 = call ptr @strerror(i32 noundef %5619) #14
  %5621 = load i32, ptr %556, align 4, !tbaa !5
  %5622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5613, ptr noundef nonnull %.str.5.sink3245, i32 noundef %5614, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 652, ptr noundef %5616, ptr noundef %5618, ptr noundef %5620, i32 noundef %5621) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5623:                                             ; preds = %5597
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #14
  %5624 = load i32, ptr @test_count, align 4, !tbaa !5
  %5625 = add nsw i32 %5624, 1
  store i32 %5625, ptr @test_count, align 4, !tbaa !5
  %5626 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %5627 = icmp eq i32 %5626, -1
  br i1 %5627, label %5628, label %5650

5628:                                             ; preds = %5623
  %5629 = load i32, ptr %556, align 4, !tbaa !5
  %5630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5631 = call i32 @s2n_print_stacktrace(ptr noundef %5630) #14
  %5632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5633 = trunc nuw i8 %5632 to i1
  br i1 %5633, label %5634, label %5638

5634:                                             ; preds = %5628
  %5635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5636 = call i32 @fileno(ptr noundef %5635) #14
  %5637 = call i32 @isatty(i32 noundef %5636) #14
  %.not1295 = icmp eq i32 %5637, 0
  br i1 %.not1295, label %5638, label %5639

5638:                                             ; preds = %5634, %5628
  br label %5639

5639:                                             ; preds = %5634, %5638
  %.str.5.sink3254 = phi ptr [ @.str.5, %5638 ], [ @.str.2, %5634 ]
  store i32 %5629, ptr %556, align 4, !tbaa !5
  %5640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5641 = load i32, ptr @test_count, align 4, !tbaa !5
  %5642 = load i32, ptr %502, align 4, !tbaa !5
  %5643 = call ptr @s2n_strerror(i32 noundef %5642, ptr noundef nonnull @.str.4) #14
  %5644 = load i32, ptr %502, align 4, !tbaa !5
  %5645 = call ptr @s2n_strerror_debug(i32 noundef %5644, ptr noundef nonnull @.str.4) #14
  %5646 = load i32, ptr %556, align 4, !tbaa !5
  %5647 = call ptr @strerror(i32 noundef %5646) #14
  %5648 = load i32, ptr %556, align 4, !tbaa !5
  %5649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5640, ptr noundef nonnull %.str.5.sink3254, i32 noundef %5641, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 661, ptr noundef %5643, ptr noundef %5645, ptr noundef %5647, i32 noundef %5648) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5650:                                             ; preds = %5623
  store ptr %5542, ptr %1974, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %23) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %23, ptr noundef nonnull align 1 dereferenceable(6) @__const.main.test_wire_ciphers.115, i64 6, i1 false)
  store i8 31, ptr %1405, align 4, !tbaa !42
  %5651 = load i32, ptr @test_count, align 4, !tbaa !5
  %5652 = add nsw i32 %5651, 1
  store i32 %5652, ptr @test_count, align 4, !tbaa !5
  %5653 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %23, i16 noundef zeroext 3) #14
  %5654 = icmp eq i32 %5653, -1
  br i1 %5654, label %5655, label %5677

5655:                                             ; preds = %5650
  %5656 = load i32, ptr %556, align 4, !tbaa !5
  %5657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5658 = call i32 @s2n_print_stacktrace(ptr noundef %5657) #14
  %5659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5660 = trunc nuw i8 %5659 to i1
  br i1 %5660, label %5661, label %5665

5661:                                             ; preds = %5655
  %5662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5663 = call i32 @fileno(ptr noundef %5662) #14
  %5664 = call i32 @isatty(i32 noundef %5663) #14
  %.not1294 = icmp eq i32 %5664, 0
  br i1 %.not1294, label %5665, label %5666

5665:                                             ; preds = %5661, %5655
  br label %5666

5666:                                             ; preds = %5661, %5665
  %.str.5.sink3263 = phi ptr [ @.str.5, %5665 ], [ @.str.2, %5661 ]
  store i32 %5656, ptr %556, align 4, !tbaa !5
  %5667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5668 = load i32, ptr @test_count, align 4, !tbaa !5
  %5669 = load i32, ptr %502, align 4, !tbaa !5
  %5670 = call ptr @s2n_strerror(i32 noundef %5669, ptr noundef nonnull @.str.4) #14
  %5671 = load i32, ptr %502, align 4, !tbaa !5
  %5672 = call ptr @s2n_strerror_debug(i32 noundef %5671, ptr noundef nonnull @.str.4) #14
  %5673 = load i32, ptr %556, align 4, !tbaa !5
  %5674 = call ptr @strerror(i32 noundef %5673) #14
  %5675 = load i32, ptr %556, align 4, !tbaa !5
  %5676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5667, ptr noundef nonnull %.str.5.sink3263, i32 noundef %5668, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 673, ptr noundef %5670, ptr noundef %5672, ptr noundef %5674, i32 noundef %5675) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5677:                                             ; preds = %5650
  %5678 = load i32, ptr @test_count, align 4, !tbaa !5
  %5679 = add nsw i32 %5678, 1
  store i32 %5679, ptr @test_count, align 4, !tbaa !5
  %5680 = load ptr, ptr %2032, align 8, !tbaa !48
  %5681 = load ptr, ptr %5680, align 8, !tbaa !49
  %5682 = icmp eq ptr %5681, @s2n_ecdhe_rsa_with_aes_128_cbc_sha
  br i1 %5682, label %5705, label %5683

5683:                                             ; preds = %5677
  %5684 = load i32, ptr %556, align 4, !tbaa !5
  %5685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5686 = call i32 @s2n_print_stacktrace(ptr noundef %5685) #14
  %5687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5688 = trunc nuw i8 %5687 to i1
  br i1 %5688, label %5689, label %5693

5689:                                             ; preds = %5683
  %5690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5691 = call i32 @fileno(ptr noundef %5690) #14
  %5692 = call i32 @isatty(i32 noundef %5691) #14
  %.not1159 = icmp eq i32 %5692, 0
  br i1 %.not1159, label %5693, label %5694

5693:                                             ; preds = %5689, %5683
  br label %5694

5694:                                             ; preds = %5689, %5693
  %.str.5.sink3272 = phi ptr [ @.str.5, %5693 ], [ @.str.2, %5689 ]
  store i32 %5684, ptr %556, align 4, !tbaa !5
  %5695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5696 = load i32, ptr @test_count, align 4, !tbaa !5
  %5697 = load i32, ptr %502, align 4, !tbaa !5
  %5698 = call ptr @s2n_strerror(i32 noundef %5697, ptr noundef nonnull @.str.4) #14
  %5699 = load i32, ptr %502, align 4, !tbaa !5
  %5700 = call ptr @s2n_strerror_debug(i32 noundef %5699, ptr noundef nonnull @.str.4) #14
  %5701 = load i32, ptr %556, align 4, !tbaa !5
  %5702 = call ptr @strerror(i32 noundef %5701) #14
  %5703 = load i32, ptr %556, align 4, !tbaa !5
  %5704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5695, ptr noundef nonnull %.str.5.sink3272, i32 noundef %5696, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.1, i32 noundef 674, ptr noundef %5698, ptr noundef %5700, ptr noundef %5702, i32 noundef %5703) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5705:                                             ; preds = %5677
  %5706 = add nsw i32 %5678, 2
  store i32 %5706, ptr @test_count, align 4, !tbaa !5
  %5707 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %23, i16 noundef zeroext 2) #14
  %5708 = icmp eq i32 %5707, -1
  br i1 %5708, label %5709, label %5731

5709:                                             ; preds = %5705
  %5710 = load i32, ptr %556, align 4, !tbaa !5
  %5711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5712 = call i32 @s2n_print_stacktrace(ptr noundef %5711) #14
  %5713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5714 = trunc nuw i8 %5713 to i1
  br i1 %5714, label %5715, label %5719

5715:                                             ; preds = %5709
  %5716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5717 = call i32 @fileno(ptr noundef %5716) #14
  %5718 = call i32 @isatty(i32 noundef %5717) #14
  %.not1293 = icmp eq i32 %5718, 0
  br i1 %.not1293, label %5719, label %5720

5719:                                             ; preds = %5715, %5709
  br label %5720

5720:                                             ; preds = %5715, %5719
  %.str.5.sink3281 = phi ptr [ @.str.5, %5719 ], [ @.str.2, %5715 ]
  store i32 %5710, ptr %556, align 4, !tbaa !5
  %5721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5722 = load i32, ptr @test_count, align 4, !tbaa !5
  %5723 = load i32, ptr %502, align 4, !tbaa !5
  %5724 = call ptr @s2n_strerror(i32 noundef %5723, ptr noundef nonnull @.str.4) #14
  %5725 = load i32, ptr %502, align 4, !tbaa !5
  %5726 = call ptr @s2n_strerror_debug(i32 noundef %5725, ptr noundef nonnull @.str.4) #14
  %5727 = load i32, ptr %556, align 4, !tbaa !5
  %5728 = call ptr @strerror(i32 noundef %5727) #14
  %5729 = load i32, ptr %556, align 4, !tbaa !5
  %5730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5721, ptr noundef nonnull %.str.5.sink3281, i32 noundef %5722, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 677, ptr noundef %5724, ptr noundef %5726, ptr noundef %5728, i32 noundef %5729) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5731:                                             ; preds = %5705
  %5732 = load i32, ptr @test_count, align 4, !tbaa !5
  %5733 = add nsw i32 %5732, 1
  store i32 %5733, ptr @test_count, align 4, !tbaa !5
  %5734 = load ptr, ptr %2032, align 8, !tbaa !48
  %5735 = load ptr, ptr %5734, align 8, !tbaa !49
  %5736 = icmp eq ptr %5735, @s2n_ecdhe_rsa_with_aes_128_gcm_sha256
  br i1 %5736, label %5759, label %5737

5737:                                             ; preds = %5731
  %5738 = load i32, ptr %556, align 4, !tbaa !5
  %5739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5740 = call i32 @s2n_print_stacktrace(ptr noundef %5739) #14
  %5741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5742 = trunc nuw i8 %5741 to i1
  br i1 %5742, label %5743, label %5747

5743:                                             ; preds = %5737
  %5744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5745 = call i32 @fileno(ptr noundef %5744) #14
  %5746 = call i32 @isatty(i32 noundef %5745) #14
  %.not1160 = icmp eq i32 %5746, 0
  br i1 %.not1160, label %5747, label %5748

5747:                                             ; preds = %5743, %5737
  br label %5748

5748:                                             ; preds = %5743, %5747
  %.str.5.sink3290 = phi ptr [ @.str.5, %5747 ], [ @.str.2, %5743 ]
  store i32 %5738, ptr %556, align 4, !tbaa !5
  %5749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5750 = load i32, ptr @test_count, align 4, !tbaa !5
  %5751 = load i32, ptr %502, align 4, !tbaa !5
  %5752 = call ptr @s2n_strerror(i32 noundef %5751, ptr noundef nonnull @.str.4) #14
  %5753 = load i32, ptr %502, align 4, !tbaa !5
  %5754 = call ptr @s2n_strerror_debug(i32 noundef %5753, ptr noundef nonnull @.str.4) #14
  %5755 = load i32, ptr %556, align 4, !tbaa !5
  %5756 = call ptr @strerror(i32 noundef %5755) #14
  %5757 = load i32, ptr %556, align 4, !tbaa !5
  %5758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5749, ptr noundef nonnull %.str.5.sink3290, i32 noundef %5750, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 678, ptr noundef %5752, ptr noundef %5754, ptr noundef %5756, i32 noundef %5757) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5759:                                             ; preds = %5731
  %5760 = add nsw i32 %5732, 2
  store i32 %5760, ptr @test_count, align 4, !tbaa !5
  %5761 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %5762 = icmp eq i32 %5761, -1
  br i1 %5762, label %5763, label %5785

5763:                                             ; preds = %5759
  %5764 = load i32, ptr %556, align 4, !tbaa !5
  %5765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5766 = call i32 @s2n_print_stacktrace(ptr noundef %5765) #14
  %5767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5768 = trunc nuw i8 %5767 to i1
  br i1 %5768, label %5769, label %5773

5769:                                             ; preds = %5763
  %5770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5771 = call i32 @fileno(ptr noundef %5770) #14
  %5772 = call i32 @isatty(i32 noundef %5771) #14
  %.not1292 = icmp eq i32 %5772, 0
  br i1 %.not1292, label %5773, label %5774

5773:                                             ; preds = %5769, %5763
  br label %5774

5774:                                             ; preds = %5769, %5773
  %.str.5.sink3299 = phi ptr [ @.str.5, %5773 ], [ @.str.2, %5769 ]
  store i32 %5764, ptr %556, align 4, !tbaa !5
  %5775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5776 = load i32, ptr @test_count, align 4, !tbaa !5
  %5777 = load i32, ptr %502, align 4, !tbaa !5
  %5778 = call ptr @s2n_strerror(i32 noundef %5777, ptr noundef nonnull @.str.4) #14
  %5779 = load i32, ptr %502, align 4, !tbaa !5
  %5780 = call ptr @s2n_strerror_debug(i32 noundef %5779, ptr noundef nonnull @.str.4) #14
  %5781 = load i32, ptr %556, align 4, !tbaa !5
  %5782 = call ptr @strerror(i32 noundef %5781) #14
  %5783 = load i32, ptr %556, align 4, !tbaa !5
  %5784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5775, ptr noundef nonnull %.str.5.sink3299, i32 noundef %5776, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 680, ptr noundef %5778, ptr noundef %5780, ptr noundef %5782, i32 noundef %5783) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5785:                                             ; preds = %5759
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %23) #14
  %5786 = load i32, ptr @test_count, align 4, !tbaa !5
  %5787 = add nsw i32 %5786, 1
  store i32 %5787, ptr @test_count, align 4, !tbaa !5
  %5788 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %5789 = icmp eq i32 %5788, -1
  br i1 %5789, label %5790, label %5812

5790:                                             ; preds = %5785
  %5791 = load i32, ptr %556, align 4, !tbaa !5
  %5792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5793 = call i32 @s2n_print_stacktrace(ptr noundef %5792) #14
  %5794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5795 = trunc nuw i8 %5794 to i1
  br i1 %5795, label %5796, label %5800

5796:                                             ; preds = %5790
  %5797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5798 = call i32 @fileno(ptr noundef %5797) #14
  %5799 = call i32 @isatty(i32 noundef %5798) #14
  %.not1291 = icmp eq i32 %5799, 0
  br i1 %.not1291, label %5800, label %5801

5800:                                             ; preds = %5796, %5790
  br label %5801

5801:                                             ; preds = %5796, %5800
  %.str.5.sink3308 = phi ptr [ @.str.5, %5800 ], [ @.str.2, %5796 ]
  store i32 %5791, ptr %556, align 4, !tbaa !5
  %5802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5803 = load i32, ptr @test_count, align 4, !tbaa !5
  %5804 = load i32, ptr %502, align 4, !tbaa !5
  %5805 = call ptr @s2n_strerror(i32 noundef %5804, ptr noundef nonnull @.str.4) #14
  %5806 = load i32, ptr %502, align 4, !tbaa !5
  %5807 = call ptr @s2n_strerror_debug(i32 noundef %5806, ptr noundef nonnull @.str.4) #14
  %5808 = load i32, ptr %556, align 4, !tbaa !5
  %5809 = call ptr @strerror(i32 noundef %5808) #14
  %5810 = load i32, ptr %556, align 4, !tbaa !5
  %5811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5802, ptr noundef nonnull %.str.5.sink3308, i32 noundef %5803, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 685, ptr noundef %5805, ptr noundef %5807, ptr noundef %5809, i32 noundef %5810) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5812:                                             ; preds = %5785
  store ptr %5542, ptr %1974, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #14
  %5813 = load i32, ptr @__const.main.test_wire_ciphers.119, align 1
  store i32 %5813, ptr %24, align 4
  store i8 33, ptr %1405, align 4, !tbaa !42
  %5814 = load i32, ptr @test_count, align 4, !tbaa !5
  %5815 = add nsw i32 %5814, 1
  store i32 %5815, ptr @test_count, align 4, !tbaa !5
  %5816 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %24, i16 noundef zeroext 2) #14
  %5817 = icmp eq i32 %5816, -1
  br i1 %5817, label %5818, label %5840

5818:                                             ; preds = %5812
  %5819 = load i32, ptr %556, align 4, !tbaa !5
  %5820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5821 = call i32 @s2n_print_stacktrace(ptr noundef %5820) #14
  %5822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5823 = trunc nuw i8 %5822 to i1
  br i1 %5823, label %5824, label %5828

5824:                                             ; preds = %5818
  %5825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5826 = call i32 @fileno(ptr noundef %5825) #14
  %5827 = call i32 @isatty(i32 noundef %5826) #14
  %.not1290 = icmp eq i32 %5827, 0
  br i1 %.not1290, label %5828, label %5829

5828:                                             ; preds = %5824, %5818
  br label %5829

5829:                                             ; preds = %5824, %5828
  %.str.5.sink3317 = phi ptr [ @.str.5, %5828 ], [ @.str.2, %5824 ]
  store i32 %5819, ptr %556, align 4, !tbaa !5
  %5830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5831 = load i32, ptr @test_count, align 4, !tbaa !5
  %5832 = load i32, ptr %502, align 4, !tbaa !5
  %5833 = call ptr @s2n_strerror(i32 noundef %5832, ptr noundef nonnull @.str.4) #14
  %5834 = load i32, ptr %502, align 4, !tbaa !5
  %5835 = call ptr @s2n_strerror_debug(i32 noundef %5834, ptr noundef nonnull @.str.4) #14
  %5836 = load i32, ptr %556, align 4, !tbaa !5
  %5837 = call ptr @strerror(i32 noundef %5836) #14
  %5838 = load i32, ptr %556, align 4, !tbaa !5
  %5839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5830, ptr noundef nonnull %.str.5.sink3317, i32 noundef %5831, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 696, ptr noundef %5833, ptr noundef %5835, ptr noundef %5837, i32 noundef %5838) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5840:                                             ; preds = %5812
  %5841 = load i32, ptr @test_count, align 4, !tbaa !5
  %5842 = add nsw i32 %5841, 1
  store i32 %5842, ptr @test_count, align 4, !tbaa !5
  %5843 = load ptr, ptr %2032, align 8, !tbaa !48
  %5844 = load ptr, ptr %5843, align 8, !tbaa !49
  %5845 = icmp eq ptr %5844, @s2n_ecdhe_rsa_with_aes_128_gcm_sha256
  br i1 %5845, label %5868, label %5846

5846:                                             ; preds = %5840
  %5847 = load i32, ptr %556, align 4, !tbaa !5
  %5848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5849 = call i32 @s2n_print_stacktrace(ptr noundef %5848) #14
  %5850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5851 = trunc nuw i8 %5850 to i1
  br i1 %5851, label %5852, label %5856

5852:                                             ; preds = %5846
  %5853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5854 = call i32 @fileno(ptr noundef %5853) #14
  %5855 = call i32 @isatty(i32 noundef %5854) #14
  %.not1161 = icmp eq i32 %5855, 0
  br i1 %.not1161, label %5856, label %5857

5856:                                             ; preds = %5852, %5846
  br label %5857

5857:                                             ; preds = %5852, %5856
  %.str.5.sink3326 = phi ptr [ @.str.5, %5856 ], [ @.str.2, %5852 ]
  store i32 %5847, ptr %556, align 4, !tbaa !5
  %5858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5859 = load i32, ptr @test_count, align 4, !tbaa !5
  %5860 = load i32, ptr %502, align 4, !tbaa !5
  %5861 = call ptr @s2n_strerror(i32 noundef %5860, ptr noundef nonnull @.str.4) #14
  %5862 = load i32, ptr %502, align 4, !tbaa !5
  %5863 = call ptr @s2n_strerror_debug(i32 noundef %5862, ptr noundef nonnull @.str.4) #14
  %5864 = load i32, ptr %556, align 4, !tbaa !5
  %5865 = call ptr @strerror(i32 noundef %5864) #14
  %5866 = load i32, ptr %556, align 4, !tbaa !5
  %5867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5858, ptr noundef nonnull %.str.5.sink3326, i32 noundef %5859, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 697, ptr noundef %5861, ptr noundef %5863, ptr noundef %5865, i32 noundef %5866) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5868:                                             ; preds = %5840
  %5869 = add nsw i32 %5841, 2
  store i32 %5869, ptr @test_count, align 4, !tbaa !5
  %5870 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %24, i16 noundef zeroext 1) #14
  %5871 = icmp eq i32 %5870, -1
  br i1 %5871, label %5894, label %5872

5872:                                             ; preds = %5868
  %5873 = load i32, ptr %556, align 4, !tbaa !5
  %5874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5875 = call i32 @s2n_print_stacktrace(ptr noundef %5874) #14
  %5876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5877 = trunc nuw i8 %5876 to i1
  br i1 %5877, label %5878, label %5882

5878:                                             ; preds = %5872
  %5879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5880 = call i32 @fileno(ptr noundef %5879) #14
  %5881 = call i32 @isatty(i32 noundef %5880) #14
  %.not1162 = icmp eq i32 %5881, 0
  br i1 %.not1162, label %5882, label %5883

5882:                                             ; preds = %5878, %5872
  br label %5883

5883:                                             ; preds = %5878, %5882
  %.str.5.sink3335 = phi ptr [ @.str.5, %5882 ], [ @.str.2, %5878 ]
  store i32 %5873, ptr %556, align 4, !tbaa !5
  %5884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5885 = load i32, ptr @test_count, align 4, !tbaa !5
  %5886 = load i32, ptr %502, align 4, !tbaa !5
  %5887 = call ptr @s2n_strerror(i32 noundef %5886, ptr noundef nonnull @.str.4) #14
  %5888 = load i32, ptr %502, align 4, !tbaa !5
  %5889 = call ptr @s2n_strerror_debug(i32 noundef %5888, ptr noundef nonnull @.str.4) #14
  %5890 = load i32, ptr %556, align 4, !tbaa !5
  %5891 = call ptr @strerror(i32 noundef %5890) #14
  %5892 = load i32, ptr %556, align 4, !tbaa !5
  %5893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5884, ptr noundef nonnull %.str.5.sink3335, i32 noundef %5885, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.1, i32 noundef 702, ptr noundef %5887, ptr noundef %5889, ptr noundef %5891, i32 noundef %5892) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5894:                                             ; preds = %5868
  %5895 = load i32, ptr @test_count, align 4, !tbaa !5
  %5896 = add nsw i32 %5895, 1
  store i32 %5896, ptr @test_count, align 4, !tbaa !5
  %5897 = load i32, ptr %502, align 4, !tbaa !5
  %5898 = icmp eq i32 %5897, 335544334
  br i1 %5898, label %5921, label %5899

5899:                                             ; preds = %5894
  %5900 = load i32, ptr %556, align 4, !tbaa !5
  %5901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5902 = call i32 @s2n_print_stacktrace(ptr noundef %5901) #14
  %5903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5904 = trunc nuw i8 %5903 to i1
  br i1 %5904, label %5905, label %5909

5905:                                             ; preds = %5899
  %5906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5907 = call i32 @fileno(ptr noundef %5906) #14
  %5908 = call i32 @isatty(i32 noundef %5907) #14
  %.not1163 = icmp eq i32 %5908, 0
  br i1 %.not1163, label %5909, label %5910

5909:                                             ; preds = %5905, %5899
  br label %5910

5910:                                             ; preds = %5905, %5909
  %.str.5.sink3344 = phi ptr [ @.str.5, %5909 ], [ @.str.2, %5905 ]
  store i32 %5900, ptr %556, align 4, !tbaa !5
  %5911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5912 = load i32, ptr @test_count, align 4, !tbaa !5
  %5913 = load i32, ptr %502, align 4, !tbaa !5
  %5914 = call ptr @s2n_strerror(i32 noundef %5913, ptr noundef nonnull @.str.4) #14
  %5915 = load i32, ptr %502, align 4, !tbaa !5
  %5916 = call ptr @s2n_strerror_debug(i32 noundef %5915, ptr noundef nonnull @.str.4) #14
  %5917 = load i32, ptr %556, align 4, !tbaa !5
  %5918 = call ptr @strerror(i32 noundef %5917) #14
  %5919 = load i32, ptr %556, align 4, !tbaa !5
  %5920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5911, ptr noundef nonnull %.str.5.sink3344, i32 noundef %5912, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 702, ptr noundef %5914, ptr noundef %5916, ptr noundef %5918, i32 noundef %5919) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5921:                                             ; preds = %5894
  %5922 = add nsw i32 %5895, 2
  store i32 %5922, ptr @test_count, align 4, !tbaa !5
  %5923 = call ptr @s2n_strerror_debug(i32 noundef 335544334, ptr noundef nonnull @.str.4) #14
  %5924 = icmp eq ptr %5923, null
  br i1 %5924, label %5925, label %5947

5925:                                             ; preds = %5921
  %5926 = load i32, ptr %556, align 4, !tbaa !5
  %5927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5928 = call i32 @s2n_print_stacktrace(ptr noundef %5927) #14
  %5929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5930 = trunc nuw i8 %5929 to i1
  br i1 %5930, label %5931, label %5935

5931:                                             ; preds = %5925
  %5932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5933 = call i32 @fileno(ptr noundef %5932) #14
  %5934 = call i32 @isatty(i32 noundef %5933) #14
  %.not1289 = icmp eq i32 %5934, 0
  br i1 %.not1289, label %5935, label %5936

5935:                                             ; preds = %5931, %5925
  br label %5936

5936:                                             ; preds = %5931, %5935
  %.str.5.sink3353 = phi ptr [ @.str.5, %5935 ], [ @.str.2, %5931 ]
  store i32 %5926, ptr %556, align 4, !tbaa !5
  %5937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5938 = load i32, ptr @test_count, align 4, !tbaa !5
  %5939 = load i32, ptr %502, align 4, !tbaa !5
  %5940 = call ptr @s2n_strerror(i32 noundef %5939, ptr noundef nonnull @.str.4) #14
  %5941 = load i32, ptr %502, align 4, !tbaa !5
  %5942 = call ptr @s2n_strerror_debug(i32 noundef %5941, ptr noundef nonnull @.str.4) #14
  %5943 = load i32, ptr %556, align 4, !tbaa !5
  %5944 = call ptr @strerror(i32 noundef %5943) #14
  %5945 = load i32, ptr %556, align 4, !tbaa !5
  %5946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5937, ptr noundef nonnull %.str.5.sink3353, i32 noundef %5938, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 702, ptr noundef %5940, ptr noundef %5942, ptr noundef %5944, i32 noundef %5945) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5947:                                             ; preds = %5921
  store i32 0, ptr %502, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  store i32 0, ptr %556, align 4, !tbaa !5
  %5948 = load i32, ptr @test_count, align 4, !tbaa !5
  %5949 = add nsw i32 %5948, 1
  store i32 %5949, ptr @test_count, align 4, !tbaa !5
  %5950 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %5951 = icmp eq i32 %5950, -1
  br i1 %5951, label %5952, label %5974

5952:                                             ; preds = %5947
  %5953 = load i32, ptr %556, align 4, !tbaa !5
  %5954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5955 = call i32 @s2n_print_stacktrace(ptr noundef %5954) #14
  %5956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5957 = trunc nuw i8 %5956 to i1
  br i1 %5957, label %5958, label %5962

5958:                                             ; preds = %5952
  %5959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5960 = call i32 @fileno(ptr noundef %5959) #14
  %5961 = call i32 @isatty(i32 noundef %5960) #14
  %.not1288 = icmp eq i32 %5961, 0
  br i1 %.not1288, label %5962, label %5963

5962:                                             ; preds = %5958, %5952
  br label %5963

5963:                                             ; preds = %5958, %5962
  %.str.5.sink3362 = phi ptr [ @.str.5, %5962 ], [ @.str.2, %5958 ]
  store i32 %5953, ptr %556, align 4, !tbaa !5
  %5964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5965 = load i32, ptr @test_count, align 4, !tbaa !5
  %5966 = load i32, ptr %502, align 4, !tbaa !5
  %5967 = call ptr @s2n_strerror(i32 noundef %5966, ptr noundef nonnull @.str.4) #14
  %5968 = load i32, ptr %502, align 4, !tbaa !5
  %5969 = call ptr @s2n_strerror_debug(i32 noundef %5968, ptr noundef nonnull @.str.4) #14
  %5970 = load i32, ptr %556, align 4, !tbaa !5
  %5971 = call ptr @strerror(i32 noundef %5970) #14
  %5972 = load i32, ptr %556, align 4, !tbaa !5
  %5973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5964, ptr noundef nonnull %.str.5.sink3362, i32 noundef %5965, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 704, ptr noundef %5967, ptr noundef %5969, ptr noundef %5971, i32 noundef %5972) #16
  call void @exit(i32 noundef 1) #17
  unreachable

5974:                                             ; preds = %5947
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #14
  %5975 = load i32, ptr @test_count, align 4, !tbaa !5
  %5976 = add nsw i32 %5975, 1
  store i32 %5976, ptr @test_count, align 4, !tbaa !5
  %5977 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  %5978 = icmp eq i32 %5977, -1
  br i1 %5978, label %5979, label %6001

5979:                                             ; preds = %5974
  %5980 = load i32, ptr %556, align 4, !tbaa !5
  %5981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5982 = call i32 @s2n_print_stacktrace(ptr noundef %5981) #14
  %5983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5984 = trunc nuw i8 %5983 to i1
  br i1 %5984, label %5985, label %5989

5985:                                             ; preds = %5979
  %5986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5987 = call i32 @fileno(ptr noundef %5986) #14
  %5988 = call i32 @isatty(i32 noundef %5987) #14
  %.not1287 = icmp eq i32 %5988, 0
  br i1 %.not1287, label %5989, label %5990

5989:                                             ; preds = %5985, %5979
  br label %5990

5990:                                             ; preds = %5985, %5989
  %.str.5.sink3371 = phi ptr [ @.str.5, %5989 ], [ @.str.2, %5985 ]
  store i32 %5980, ptr %556, align 4, !tbaa !5
  %5991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5992 = load i32, ptr @test_count, align 4, !tbaa !5
  %5993 = load i32, ptr %502, align 4, !tbaa !5
  %5994 = call ptr @s2n_strerror(i32 noundef %5993, ptr noundef nonnull @.str.4) #14
  %5995 = load i32, ptr %502, align 4, !tbaa !5
  %5996 = call ptr @s2n_strerror_debug(i32 noundef %5995, ptr noundef nonnull @.str.4) #14
  %5997 = load i32, ptr %556, align 4, !tbaa !5
  %5998 = call ptr @strerror(i32 noundef %5997) #14
  %5999 = load i32, ptr %556, align 4, !tbaa !5
  %6000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5991, ptr noundef nonnull %.str.5.sink3371, i32 noundef %5992, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 709, ptr noundef %5994, ptr noundef %5996, ptr noundef %5998, i32 noundef %5999) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6001:                                             ; preds = %5974
  store ptr %5542, ptr %1974, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #14
  %6002 = load i32, ptr @__const.main.test_wire_ciphers.121, align 1
  store i32 %6002, ptr %25, align 4
  store i8 34, ptr %1405, align 4, !tbaa !42
  %6003 = load i32, ptr @test_count, align 4, !tbaa !5
  %6004 = add nsw i32 %6003, 1
  store i32 %6004, ptr @test_count, align 4, !tbaa !5
  %6005 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %25, i16 noundef zeroext 2) #14
  %6006 = icmp eq i32 %6005, -1
  br i1 %6006, label %6007, label %6029

6007:                                             ; preds = %6001
  %6008 = load i32, ptr %556, align 4, !tbaa !5
  %6009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6010 = call i32 @s2n_print_stacktrace(ptr noundef %6009) #14
  %6011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6012 = trunc nuw i8 %6011 to i1
  br i1 %6012, label %6013, label %6017

6013:                                             ; preds = %6007
  %6014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6015 = call i32 @fileno(ptr noundef %6014) #14
  %6016 = call i32 @isatty(i32 noundef %6015) #14
  %.not1286 = icmp eq i32 %6016, 0
  br i1 %.not1286, label %6017, label %6018

6017:                                             ; preds = %6013, %6007
  br label %6018

6018:                                             ; preds = %6013, %6017
  %.str.5.sink3380 = phi ptr [ @.str.5, %6017 ], [ @.str.2, %6013 ]
  store i32 %6008, ptr %556, align 4, !tbaa !5
  %6019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6020 = load i32, ptr @test_count, align 4, !tbaa !5
  %6021 = load i32, ptr %502, align 4, !tbaa !5
  %6022 = call ptr @s2n_strerror(i32 noundef %6021, ptr noundef nonnull @.str.4) #14
  %6023 = load i32, ptr %502, align 4, !tbaa !5
  %6024 = call ptr @s2n_strerror_debug(i32 noundef %6023, ptr noundef nonnull @.str.4) #14
  %6025 = load i32, ptr %556, align 4, !tbaa !5
  %6026 = call ptr @strerror(i32 noundef %6025) #14
  %6027 = load i32, ptr %556, align 4, !tbaa !5
  %6028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6019, ptr noundef nonnull %.str.5.sink3380, i32 noundef %6020, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 720, ptr noundef %6022, ptr noundef %6024, ptr noundef %6026, i32 noundef %6027) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6029:                                             ; preds = %6001
  %6030 = load i32, ptr @test_count, align 4, !tbaa !5
  %6031 = add nsw i32 %6030, 1
  store i32 %6031, ptr @test_count, align 4, !tbaa !5
  %6032 = load ptr, ptr %2032, align 8, !tbaa !48
  %6033 = load ptr, ptr %6032, align 8, !tbaa !49
  %6034 = icmp eq ptr %6033, @s2n_tls13_aes_128_gcm_sha256
  br i1 %6034, label %6057, label %6035

6035:                                             ; preds = %6029
  %6036 = load i32, ptr %556, align 4, !tbaa !5
  %6037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6038 = call i32 @s2n_print_stacktrace(ptr noundef %6037) #14
  %6039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6040 = trunc nuw i8 %6039 to i1
  br i1 %6040, label %6041, label %6045

6041:                                             ; preds = %6035
  %6042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6043 = call i32 @fileno(ptr noundef %6042) #14
  %6044 = call i32 @isatty(i32 noundef %6043) #14
  %.not1164 = icmp eq i32 %6044, 0
  br i1 %.not1164, label %6045, label %6046

6045:                                             ; preds = %6041, %6035
  br label %6046

6046:                                             ; preds = %6041, %6045
  %.str.5.sink3389 = phi ptr [ @.str.5, %6045 ], [ @.str.2, %6041 ]
  store i32 %6036, ptr %556, align 4, !tbaa !5
  %6047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6048 = load i32, ptr @test_count, align 4, !tbaa !5
  %6049 = load i32, ptr %502, align 4, !tbaa !5
  %6050 = call ptr @s2n_strerror(i32 noundef %6049, ptr noundef nonnull @.str.4) #14
  %6051 = load i32, ptr %502, align 4, !tbaa !5
  %6052 = call ptr @s2n_strerror_debug(i32 noundef %6051, ptr noundef nonnull @.str.4) #14
  %6053 = load i32, ptr %556, align 4, !tbaa !5
  %6054 = call ptr @strerror(i32 noundef %6053) #14
  %6055 = load i32, ptr %556, align 4, !tbaa !5
  %6056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6047, ptr noundef nonnull %.str.5.sink3389, i32 noundef %6048, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 721, ptr noundef %6050, ptr noundef %6052, ptr noundef %6054, i32 noundef %6055) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6057:                                             ; preds = %6029
  %6058 = add nsw i32 %6030, 2
  store i32 %6058, ptr @test_count, align 4, !tbaa !5
  %6059 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %25, i16 noundef zeroext 1) #14
  %6060 = icmp eq i32 %6059, -1
  br i1 %6060, label %6083, label %6061

6061:                                             ; preds = %6057
  %6062 = load i32, ptr %556, align 4, !tbaa !5
  %6063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6064 = call i32 @s2n_print_stacktrace(ptr noundef %6063) #14
  %6065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6066 = trunc nuw i8 %6065 to i1
  br i1 %6066, label %6067, label %6071

6067:                                             ; preds = %6061
  %6068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6069 = call i32 @fileno(ptr noundef %6068) #14
  %6070 = call i32 @isatty(i32 noundef %6069) #14
  %.not1165 = icmp eq i32 %6070, 0
  br i1 %.not1165, label %6071, label %6072

6071:                                             ; preds = %6067, %6061
  br label %6072

6072:                                             ; preds = %6067, %6071
  %.str.5.sink3398 = phi ptr [ @.str.5, %6071 ], [ @.str.2, %6067 ]
  store i32 %6062, ptr %556, align 4, !tbaa !5
  %6073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6074 = load i32, ptr @test_count, align 4, !tbaa !5
  %6075 = load i32, ptr %502, align 4, !tbaa !5
  %6076 = call ptr @s2n_strerror(i32 noundef %6075, ptr noundef nonnull @.str.4) #14
  %6077 = load i32, ptr %502, align 4, !tbaa !5
  %6078 = call ptr @s2n_strerror_debug(i32 noundef %6077, ptr noundef nonnull @.str.4) #14
  %6079 = load i32, ptr %556, align 4, !tbaa !5
  %6080 = call ptr @strerror(i32 noundef %6079) #14
  %6081 = load i32, ptr %556, align 4, !tbaa !5
  %6082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6073, ptr noundef nonnull %.str.5.sink3398, i32 noundef %6074, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.1, i32 noundef 726, ptr noundef %6076, ptr noundef %6078, ptr noundef %6080, i32 noundef %6081) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6083:                                             ; preds = %6057
  %6084 = load i32, ptr @test_count, align 4, !tbaa !5
  %6085 = add nsw i32 %6084, 1
  store i32 %6085, ptr @test_count, align 4, !tbaa !5
  %6086 = load i32, ptr %502, align 4, !tbaa !5
  %6087 = icmp eq i32 %6086, 335544334
  br i1 %6087, label %6110, label %6088

6088:                                             ; preds = %6083
  %6089 = load i32, ptr %556, align 4, !tbaa !5
  %6090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6091 = call i32 @s2n_print_stacktrace(ptr noundef %6090) #14
  %6092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6093 = trunc nuw i8 %6092 to i1
  br i1 %6093, label %6094, label %6098

6094:                                             ; preds = %6088
  %6095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6096 = call i32 @fileno(ptr noundef %6095) #14
  %6097 = call i32 @isatty(i32 noundef %6096) #14
  %.not1166 = icmp eq i32 %6097, 0
  br i1 %.not1166, label %6098, label %6099

6098:                                             ; preds = %6094, %6088
  br label %6099

6099:                                             ; preds = %6094, %6098
  %.str.5.sink3407 = phi ptr [ @.str.5, %6098 ], [ @.str.2, %6094 ]
  store i32 %6089, ptr %556, align 4, !tbaa !5
  %6100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6101 = load i32, ptr @test_count, align 4, !tbaa !5
  %6102 = load i32, ptr %502, align 4, !tbaa !5
  %6103 = call ptr @s2n_strerror(i32 noundef %6102, ptr noundef nonnull @.str.4) #14
  %6104 = load i32, ptr %502, align 4, !tbaa !5
  %6105 = call ptr @s2n_strerror_debug(i32 noundef %6104, ptr noundef nonnull @.str.4) #14
  %6106 = load i32, ptr %556, align 4, !tbaa !5
  %6107 = call ptr @strerror(i32 noundef %6106) #14
  %6108 = load i32, ptr %556, align 4, !tbaa !5
  %6109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6100, ptr noundef nonnull %.str.5.sink3407, i32 noundef %6101, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 726, ptr noundef %6103, ptr noundef %6105, ptr noundef %6107, i32 noundef %6108) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6110:                                             ; preds = %6083
  %6111 = add nsw i32 %6084, 2
  store i32 %6111, ptr @test_count, align 4, !tbaa !5
  %6112 = call ptr @s2n_strerror_debug(i32 noundef 335544334, ptr noundef nonnull @.str.4) #14
  %6113 = icmp eq ptr %6112, null
  br i1 %6113, label %6114, label %6136

6114:                                             ; preds = %6110
  %6115 = load i32, ptr %556, align 4, !tbaa !5
  %6116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6117 = call i32 @s2n_print_stacktrace(ptr noundef %6116) #14
  %6118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6119 = trunc nuw i8 %6118 to i1
  br i1 %6119, label %6120, label %6124

6120:                                             ; preds = %6114
  %6121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6122 = call i32 @fileno(ptr noundef %6121) #14
  %6123 = call i32 @isatty(i32 noundef %6122) #14
  %.not1285 = icmp eq i32 %6123, 0
  br i1 %.not1285, label %6124, label %6125

6124:                                             ; preds = %6120, %6114
  br label %6125

6125:                                             ; preds = %6120, %6124
  %.str.5.sink3416 = phi ptr [ @.str.5, %6124 ], [ @.str.2, %6120 ]
  store i32 %6115, ptr %556, align 4, !tbaa !5
  %6126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6127 = load i32, ptr @test_count, align 4, !tbaa !5
  %6128 = load i32, ptr %502, align 4, !tbaa !5
  %6129 = call ptr @s2n_strerror(i32 noundef %6128, ptr noundef nonnull @.str.4) #14
  %6130 = load i32, ptr %502, align 4, !tbaa !5
  %6131 = call ptr @s2n_strerror_debug(i32 noundef %6130, ptr noundef nonnull @.str.4) #14
  %6132 = load i32, ptr %556, align 4, !tbaa !5
  %6133 = call ptr @strerror(i32 noundef %6132) #14
  %6134 = load i32, ptr %556, align 4, !tbaa !5
  %6135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6126, ptr noundef nonnull %.str.5.sink3416, i32 noundef %6127, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 726, ptr noundef %6129, ptr noundef %6131, ptr noundef %6133, i32 noundef %6134) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6136:                                             ; preds = %6110
  store i32 0, ptr %502, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  store i32 0, ptr %556, align 4, !tbaa !5
  %6137 = load i32, ptr @test_count, align 4, !tbaa !5
  %6138 = add nsw i32 %6137, 1
  store i32 %6138, ptr @test_count, align 4, !tbaa !5
  %6139 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %6140 = icmp eq i32 %6139, -1
  br i1 %6140, label %6141, label %6163

6141:                                             ; preds = %6136
  %6142 = load i32, ptr %556, align 4, !tbaa !5
  %6143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6144 = call i32 @s2n_print_stacktrace(ptr noundef %6143) #14
  %6145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6146 = trunc nuw i8 %6145 to i1
  br i1 %6146, label %6147, label %6151

6147:                                             ; preds = %6141
  %6148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6149 = call i32 @fileno(ptr noundef %6148) #14
  %6150 = call i32 @isatty(i32 noundef %6149) #14
  %.not1284 = icmp eq i32 %6150, 0
  br i1 %.not1284, label %6151, label %6152

6151:                                             ; preds = %6147, %6141
  br label %6152

6152:                                             ; preds = %6147, %6151
  %.str.5.sink3425 = phi ptr [ @.str.5, %6151 ], [ @.str.2, %6147 ]
  store i32 %6142, ptr %556, align 4, !tbaa !5
  %6153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6154 = load i32, ptr @test_count, align 4, !tbaa !5
  %6155 = load i32, ptr %502, align 4, !tbaa !5
  %6156 = call ptr @s2n_strerror(i32 noundef %6155, ptr noundef nonnull @.str.4) #14
  %6157 = load i32, ptr %502, align 4, !tbaa !5
  %6158 = call ptr @s2n_strerror_debug(i32 noundef %6157, ptr noundef nonnull @.str.4) #14
  %6159 = load i32, ptr %556, align 4, !tbaa !5
  %6160 = call ptr @strerror(i32 noundef %6159) #14
  %6161 = load i32, ptr %556, align 4, !tbaa !5
  %6162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6153, ptr noundef nonnull %.str.5.sink3425, i32 noundef %6154, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 728, ptr noundef %6156, ptr noundef %6158, ptr noundef %6160, i32 noundef %6161) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6163:                                             ; preds = %6136
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #14
  %6164 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  store ptr %5542, ptr %1974, align 8, !tbaa !56
  store i8 34, ptr %1405, align 4, !tbaa !42
  %6165 = load i32, ptr @test_count, align 4, !tbaa !5
  %6166 = add nsw i32 %6165, 1
  store i32 %6166, ptr @test_count, align 4, !tbaa !5
  %6167 = call i32 @s2n_conn_set_chosen_psk(ptr noundef nonnull %1051)
  %6168 = call zeroext i1 @s2n_result_is_ok(i32 %6167)
  br i1 %6168, label %6191, label %6169

6169:                                             ; preds = %6163
  %6170 = load i32, ptr %556, align 4, !tbaa !5
  %6171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6172 = call i32 @s2n_print_stacktrace(ptr noundef %6171) #14
  %6173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6174 = trunc nuw i8 %6173 to i1
  br i1 %6174, label %6175, label %6179

6175:                                             ; preds = %6169
  %6176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6177 = call i32 @fileno(ptr noundef %6176) #14
  %6178 = call i32 @isatty(i32 noundef %6177) #14
  %.not1167 = icmp eq i32 %6178, 0
  br i1 %.not1167, label %6179, label %6180

6179:                                             ; preds = %6175, %6169
  br label %6180

6180:                                             ; preds = %6175, %6179
  %.str.5.sink3434 = phi ptr [ @.str.5, %6179 ], [ @.str.2, %6175 ]
  store i32 %6170, ptr %556, align 4, !tbaa !5
  %6181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6182 = load i32, ptr @test_count, align 4, !tbaa !5
  %6183 = load i32, ptr %502, align 4, !tbaa !5
  %6184 = call ptr @s2n_strerror(i32 noundef %6183, ptr noundef nonnull @.str.4) #14
  %6185 = load i32, ptr %502, align 4, !tbaa !5
  %6186 = call ptr @s2n_strerror_debug(i32 noundef %6185, ptr noundef nonnull @.str.4) #14
  %6187 = load i32, ptr %556, align 4, !tbaa !5
  %6188 = call ptr @strerror(i32 noundef %6187) #14
  %6189 = load i32, ptr %556, align 4, !tbaa !5
  %6190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6181, ptr noundef nonnull %.str.5.sink3434, i32 noundef %6182, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 746, ptr noundef %6184, ptr noundef %6186, ptr noundef %6188, i32 noundef %6189) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6191:                                             ; preds = %6163
  %6192 = getelementptr inbounds i8, ptr %1051, i64 1736
  %6193 = load ptr, ptr %6192, align 8, !tbaa !44
  %6194 = getelementptr inbounds i8, ptr %6193, i64 56
  store i32 4, ptr %6194, align 8, !tbaa !45
  %6195 = load i32, ptr @test_count, align 4, !tbaa !5
  %6196 = add nsw i32 %6195, 1
  store i32 %6196, ptr @test_count, align 4, !tbaa !5
  %6197 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %20, i16 noundef zeroext 4) #14
  %6198 = icmp eq i32 %6197, -1
  br i1 %6198, label %6199, label %6221

6199:                                             ; preds = %6191
  %6200 = load i32, ptr %556, align 4, !tbaa !5
  %6201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6202 = call i32 @s2n_print_stacktrace(ptr noundef %6201) #14
  %6203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6204 = trunc nuw i8 %6203 to i1
  br i1 %6204, label %6205, label %6209

6205:                                             ; preds = %6199
  %6206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6207 = call i32 @fileno(ptr noundef %6206) #14
  %6208 = call i32 @isatty(i32 noundef %6207) #14
  %.not1283 = icmp eq i32 %6208, 0
  br i1 %.not1283, label %6209, label %6210

6209:                                             ; preds = %6205, %6199
  br label %6210

6210:                                             ; preds = %6205, %6209
  %.str.5.sink3443 = phi ptr [ @.str.5, %6209 ], [ @.str.2, %6205 ]
  store i32 %6200, ptr %556, align 4, !tbaa !5
  %6211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6212 = load i32, ptr @test_count, align 4, !tbaa !5
  %6213 = load i32, ptr %502, align 4, !tbaa !5
  %6214 = call ptr @s2n_strerror(i32 noundef %6213, ptr noundef nonnull @.str.4) #14
  %6215 = load i32, ptr %502, align 4, !tbaa !5
  %6216 = call ptr @s2n_strerror_debug(i32 noundef %6215, ptr noundef nonnull @.str.4) #14
  %6217 = load i32, ptr %556, align 4, !tbaa !5
  %6218 = call ptr @strerror(i32 noundef %6217) #14
  %6219 = load i32, ptr %556, align 4, !tbaa !5
  %6220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6211, ptr noundef nonnull %.str.5.sink3443, i32 noundef %6212, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 749, ptr noundef %6214, ptr noundef %6216, ptr noundef %6218, i32 noundef %6219) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6221:                                             ; preds = %6191
  %6222 = load i32, ptr @test_count, align 4, !tbaa !5
  %6223 = add nsw i32 %6222, 1
  store i32 %6223, ptr @test_count, align 4, !tbaa !5
  %6224 = load ptr, ptr %2032, align 8, !tbaa !48
  %6225 = load ptr, ptr %6224, align 8, !tbaa !49
  %6226 = getelementptr inbounds i8, ptr %6225, i64 96
  %6227 = load i32, ptr %6226, align 8, !tbaa !66
  %6228 = load ptr, ptr %6192, align 8, !tbaa !44
  %6229 = getelementptr inbounds i8, ptr %6228, i64 56
  %6230 = load i32, ptr %6229, align 8, !tbaa !45
  %6231 = icmp eq i32 %6227, %6230
  br i1 %6231, label %6254, label %6232

6232:                                             ; preds = %6221
  %6233 = load i32, ptr %556, align 4, !tbaa !5
  %6234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6235 = call i32 @s2n_print_stacktrace(ptr noundef %6234) #14
  %6236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6237 = trunc nuw i8 %6236 to i1
  br i1 %6237, label %6238, label %6242

6238:                                             ; preds = %6232
  %6239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6240 = call i32 @fileno(ptr noundef %6239) #14
  %6241 = call i32 @isatty(i32 noundef %6240) #14
  %.not1168 = icmp eq i32 %6241, 0
  br i1 %.not1168, label %6242, label %6243

6242:                                             ; preds = %6238, %6232
  br label %6243

6243:                                             ; preds = %6238, %6242
  %.str.5.sink3452 = phi ptr [ @.str.5, %6242 ], [ @.str.2, %6238 ]
  store i32 %6233, ptr %556, align 4, !tbaa !5
  %6244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6245 = load i32, ptr @test_count, align 4, !tbaa !5
  %6246 = load i32, ptr %502, align 4, !tbaa !5
  %6247 = call ptr @s2n_strerror(i32 noundef %6246, ptr noundef nonnull @.str.4) #14
  %6248 = load i32, ptr %502, align 4, !tbaa !5
  %6249 = call ptr @s2n_strerror_debug(i32 noundef %6248, ptr noundef nonnull @.str.4) #14
  %6250 = load i32, ptr %556, align 4, !tbaa !5
  %6251 = call ptr @strerror(i32 noundef %6250) #14
  %6252 = load i32, ptr %556, align 4, !tbaa !5
  %6253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6244, ptr noundef nonnull %.str.5.sink3452, i32 noundef %6245, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.1, i32 noundef 750, ptr noundef %6247, ptr noundef %6249, ptr noundef %6251, i32 noundef %6252) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6254:                                             ; preds = %6221
  store i32 5, ptr %6229, align 8, !tbaa !45
  %6255 = add nsw i32 %6222, 2
  store i32 %6255, ptr @test_count, align 4, !tbaa !5
  %6256 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %20, i16 noundef zeroext 4) #14
  %6257 = icmp eq i32 %6256, -1
  br i1 %6257, label %6258, label %6280

6258:                                             ; preds = %6254
  %6259 = load i32, ptr %556, align 4, !tbaa !5
  %6260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6261 = call i32 @s2n_print_stacktrace(ptr noundef %6260) #14
  %6262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6263 = trunc nuw i8 %6262 to i1
  br i1 %6263, label %6264, label %6268

6264:                                             ; preds = %6258
  %6265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6266 = call i32 @fileno(ptr noundef %6265) #14
  %6267 = call i32 @isatty(i32 noundef %6266) #14
  %.not1282 = icmp eq i32 %6267, 0
  br i1 %.not1282, label %6268, label %6269

6268:                                             ; preds = %6264, %6258
  br label %6269

6269:                                             ; preds = %6264, %6268
  %.str.5.sink3461 = phi ptr [ @.str.5, %6268 ], [ @.str.2, %6264 ]
  store i32 %6259, ptr %556, align 4, !tbaa !5
  %6270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6271 = load i32, ptr @test_count, align 4, !tbaa !5
  %6272 = load i32, ptr %502, align 4, !tbaa !5
  %6273 = call ptr @s2n_strerror(i32 noundef %6272, ptr noundef nonnull @.str.4) #14
  %6274 = load i32, ptr %502, align 4, !tbaa !5
  %6275 = call ptr @s2n_strerror_debug(i32 noundef %6274, ptr noundef nonnull @.str.4) #14
  %6276 = load i32, ptr %556, align 4, !tbaa !5
  %6277 = call ptr @strerror(i32 noundef %6276) #14
  %6278 = load i32, ptr %556, align 4, !tbaa !5
  %6279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6270, ptr noundef nonnull %.str.5.sink3461, i32 noundef %6271, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 753, ptr noundef %6273, ptr noundef %6275, ptr noundef %6277, i32 noundef %6278) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6280:                                             ; preds = %6254
  %6281 = load i32, ptr @test_count, align 4, !tbaa !5
  %6282 = add nsw i32 %6281, 1
  store i32 %6282, ptr @test_count, align 4, !tbaa !5
  %6283 = load ptr, ptr %2032, align 8, !tbaa !48
  %6284 = load ptr, ptr %6283, align 8, !tbaa !49
  %6285 = getelementptr inbounds i8, ptr %6284, i64 96
  %6286 = load i32, ptr %6285, align 8, !tbaa !66
  %6287 = load ptr, ptr %6192, align 8, !tbaa !44
  %6288 = getelementptr inbounds i8, ptr %6287, i64 56
  %6289 = load i32, ptr %6288, align 8, !tbaa !45
  %6290 = icmp eq i32 %6286, %6289
  br i1 %6290, label %6313, label %6291

6291:                                             ; preds = %6280
  %6292 = load i32, ptr %556, align 4, !tbaa !5
  %6293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6294 = call i32 @s2n_print_stacktrace(ptr noundef %6293) #14
  %6295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6296 = trunc nuw i8 %6295 to i1
  br i1 %6296, label %6297, label %6301

6297:                                             ; preds = %6291
  %6298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6299 = call i32 @fileno(ptr noundef %6298) #14
  %6300 = call i32 @isatty(i32 noundef %6299) #14
  %.not1169 = icmp eq i32 %6300, 0
  br i1 %.not1169, label %6301, label %6302

6301:                                             ; preds = %6297, %6291
  br label %6302

6302:                                             ; preds = %6297, %6301
  %.str.5.sink3470 = phi ptr [ @.str.5, %6301 ], [ @.str.2, %6297 ]
  store i32 %6292, ptr %556, align 4, !tbaa !5
  %6303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6304 = load i32, ptr @test_count, align 4, !tbaa !5
  %6305 = load i32, ptr %502, align 4, !tbaa !5
  %6306 = call ptr @s2n_strerror(i32 noundef %6305, ptr noundef nonnull @.str.4) #14
  %6307 = load i32, ptr %502, align 4, !tbaa !5
  %6308 = call ptr @s2n_strerror_debug(i32 noundef %6307, ptr noundef nonnull @.str.4) #14
  %6309 = load i32, ptr %556, align 4, !tbaa !5
  %6310 = call ptr @strerror(i32 noundef %6309) #14
  %6311 = load i32, ptr %556, align 4, !tbaa !5
  %6312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6303, ptr noundef nonnull %.str.5.sink3470, i32 noundef %6304, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.1, i32 noundef 754, ptr noundef %6306, ptr noundef %6308, ptr noundef %6310, i32 noundef %6311) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6313:                                             ; preds = %6280
  %6314 = add nsw i32 %6281, 2
  store i32 %6314, ptr @test_count, align 4, !tbaa !5
  %6315 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %6316 = icmp eq i32 %6315, -1
  br i1 %6316, label %6317, label %6339

6317:                                             ; preds = %6313
  %6318 = load i32, ptr %556, align 4, !tbaa !5
  %6319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6320 = call i32 @s2n_print_stacktrace(ptr noundef %6319) #14
  %6321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6322 = trunc nuw i8 %6321 to i1
  br i1 %6322, label %6323, label %6327

6323:                                             ; preds = %6317
  %6324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6325 = call i32 @fileno(ptr noundef %6324) #14
  %6326 = call i32 @isatty(i32 noundef %6325) #14
  %.not1281 = icmp eq i32 %6326, 0
  br i1 %.not1281, label %6327, label %6328

6327:                                             ; preds = %6323, %6317
  br label %6328

6328:                                             ; preds = %6323, %6327
  %.str.5.sink3479 = phi ptr [ @.str.5, %6327 ], [ @.str.2, %6323 ]
  store i32 %6318, ptr %556, align 4, !tbaa !5
  %6329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6330 = load i32, ptr @test_count, align 4, !tbaa !5
  %6331 = load i32, ptr %502, align 4, !tbaa !5
  %6332 = call ptr @s2n_strerror(i32 noundef %6331, ptr noundef nonnull @.str.4) #14
  %6333 = load i32, ptr %502, align 4, !tbaa !5
  %6334 = call ptr @s2n_strerror_debug(i32 noundef %6333, ptr noundef nonnull @.str.4) #14
  %6335 = load i32, ptr %556, align 4, !tbaa !5
  %6336 = call ptr @strerror(i32 noundef %6335) #14
  %6337 = load i32, ptr %556, align 4, !tbaa !5
  %6338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6329, ptr noundef nonnull %.str.5.sink3479, i32 noundef %6330, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 756, ptr noundef %6332, ptr noundef %6334, ptr noundef %6336, i32 noundef %6337) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6339:                                             ; preds = %6313
  %6340 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.53) #14
  store ptr %5542, ptr %1974, align 8, !tbaa !56
  store i8 34, ptr %1405, align 4, !tbaa !42
  %6341 = load i32, ptr @test_count, align 4, !tbaa !5
  %6342 = add nsw i32 %6341, 1
  store i32 %6342, ptr @test_count, align 4, !tbaa !5
  %6343 = call i32 @s2n_conn_set_chosen_psk(ptr noundef nonnull %1051)
  %6344 = call zeroext i1 @s2n_result_is_ok(i32 %6343)
  br i1 %6344, label %6367, label %6345

6345:                                             ; preds = %6339
  %6346 = load i32, ptr %556, align 4, !tbaa !5
  %6347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6348 = call i32 @s2n_print_stacktrace(ptr noundef %6347) #14
  %6349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6350 = trunc nuw i8 %6349 to i1
  br i1 %6350, label %6351, label %6355

6351:                                             ; preds = %6345
  %6352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6353 = call i32 @fileno(ptr noundef %6352) #14
  %6354 = call i32 @isatty(i32 noundef %6353) #14
  %.not1170 = icmp eq i32 %6354, 0
  br i1 %.not1170, label %6355, label %6356

6355:                                             ; preds = %6351, %6345
  br label %6356

6356:                                             ; preds = %6351, %6355
  %.str.5.sink3488 = phi ptr [ @.str.5, %6355 ], [ @.str.2, %6351 ]
  store i32 %6346, ptr %556, align 4, !tbaa !5
  %6357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6358 = load i32, ptr @test_count, align 4, !tbaa !5
  %6359 = load i32, ptr %502, align 4, !tbaa !5
  %6360 = call ptr @s2n_strerror(i32 noundef %6359, ptr noundef nonnull @.str.4) #14
  %6361 = load i32, ptr %502, align 4, !tbaa !5
  %6362 = call ptr @s2n_strerror_debug(i32 noundef %6361, ptr noundef nonnull @.str.4) #14
  %6363 = load i32, ptr %556, align 4, !tbaa !5
  %6364 = call ptr @strerror(i32 noundef %6363) #14
  %6365 = load i32, ptr %556, align 4, !tbaa !5
  %6366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6357, ptr noundef nonnull %.str.5.sink3488, i32 noundef %6358, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 766, ptr noundef %6360, ptr noundef %6362, ptr noundef %6364, i32 noundef %6365) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6367:                                             ; preds = %6339
  %6368 = load ptr, ptr %6192, align 8, !tbaa !44
  %6369 = getelementptr inbounds i8, ptr %6368, i64 56
  store i32 2, ptr %6369, align 8, !tbaa !45
  %6370 = load i32, ptr @test_count, align 4, !tbaa !5
  %6371 = add nsw i32 %6370, 1
  store i32 %6371, ptr @test_count, align 4, !tbaa !5
  %6372 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %20, i16 noundef zeroext 4) #14
  %6373 = icmp eq i32 %6372, -1
  br i1 %6373, label %6396, label %6374

6374:                                             ; preds = %6367
  %6375 = load i32, ptr %556, align 4, !tbaa !5
  %6376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6377 = call i32 @s2n_print_stacktrace(ptr noundef %6376) #14
  %6378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6379 = trunc nuw i8 %6378 to i1
  br i1 %6379, label %6380, label %6384

6380:                                             ; preds = %6374
  %6381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6382 = call i32 @fileno(ptr noundef %6381) #14
  %6383 = call i32 @isatty(i32 noundef %6382) #14
  %.not1171 = icmp eq i32 %6383, 0
  br i1 %.not1171, label %6384, label %6385

6384:                                             ; preds = %6380, %6374
  br label %6385

6385:                                             ; preds = %6380, %6384
  %.str.5.sink3497 = phi ptr [ @.str.5, %6384 ], [ @.str.2, %6380 ]
  store i32 %6375, ptr %556, align 4, !tbaa !5
  %6386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6387 = load i32, ptr @test_count, align 4, !tbaa !5
  %6388 = load i32, ptr %502, align 4, !tbaa !5
  %6389 = call ptr @s2n_strerror(i32 noundef %6388, ptr noundef nonnull @.str.4) #14
  %6390 = load i32, ptr %502, align 4, !tbaa !5
  %6391 = call ptr @s2n_strerror_debug(i32 noundef %6390, ptr noundef nonnull @.str.4) #14
  %6392 = load i32, ptr %556, align 4, !tbaa !5
  %6393 = call ptr @strerror(i32 noundef %6392) #14
  %6394 = load i32, ptr %556, align 4, !tbaa !5
  %6395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6386, ptr noundef nonnull %.str.5.sink3497, i32 noundef %6387, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.1, i32 noundef 770, ptr noundef %6389, ptr noundef %6391, ptr noundef %6393, i32 noundef %6394) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6396:                                             ; preds = %6367
  %6397 = load i32, ptr @test_count, align 4, !tbaa !5
  %6398 = add nsw i32 %6397, 1
  store i32 %6398, ptr @test_count, align 4, !tbaa !5
  %6399 = load i32, ptr %502, align 4, !tbaa !5
  %6400 = icmp eq i32 %6399, 335544334
  br i1 %6400, label %6423, label %6401

6401:                                             ; preds = %6396
  %6402 = load i32, ptr %556, align 4, !tbaa !5
  %6403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6404 = call i32 @s2n_print_stacktrace(ptr noundef %6403) #14
  %6405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6406 = trunc nuw i8 %6405 to i1
  br i1 %6406, label %6407, label %6411

6407:                                             ; preds = %6401
  %6408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6409 = call i32 @fileno(ptr noundef %6408) #14
  %6410 = call i32 @isatty(i32 noundef %6409) #14
  %.not1172 = icmp eq i32 %6410, 0
  br i1 %.not1172, label %6411, label %6412

6411:                                             ; preds = %6407, %6401
  br label %6412

6412:                                             ; preds = %6407, %6411
  %.str.5.sink3506 = phi ptr [ @.str.5, %6411 ], [ @.str.2, %6407 ]
  store i32 %6402, ptr %556, align 4, !tbaa !5
  %6413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6414 = load i32, ptr @test_count, align 4, !tbaa !5
  %6415 = load i32, ptr %502, align 4, !tbaa !5
  %6416 = call ptr @s2n_strerror(i32 noundef %6415, ptr noundef nonnull @.str.4) #14
  %6417 = load i32, ptr %502, align 4, !tbaa !5
  %6418 = call ptr @s2n_strerror_debug(i32 noundef %6417, ptr noundef nonnull @.str.4) #14
  %6419 = load i32, ptr %556, align 4, !tbaa !5
  %6420 = call ptr @strerror(i32 noundef %6419) #14
  %6421 = load i32, ptr %556, align 4, !tbaa !5
  %6422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6413, ptr noundef nonnull %.str.5.sink3506, i32 noundef %6414, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 770, ptr noundef %6416, ptr noundef %6418, ptr noundef %6420, i32 noundef %6421) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6423:                                             ; preds = %6396
  %6424 = add nsw i32 %6397, 2
  store i32 %6424, ptr @test_count, align 4, !tbaa !5
  %6425 = call ptr @s2n_strerror_debug(i32 noundef 335544334, ptr noundef nonnull @.str.4) #14
  %6426 = icmp eq ptr %6425, null
  br i1 %6426, label %6427, label %6449

6427:                                             ; preds = %6423
  %6428 = load i32, ptr %556, align 4, !tbaa !5
  %6429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6430 = call i32 @s2n_print_stacktrace(ptr noundef %6429) #14
  %6431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6432 = trunc nuw i8 %6431 to i1
  br i1 %6432, label %6433, label %6437

6433:                                             ; preds = %6427
  %6434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6435 = call i32 @fileno(ptr noundef %6434) #14
  %6436 = call i32 @isatty(i32 noundef %6435) #14
  %.not1280 = icmp eq i32 %6436, 0
  br i1 %.not1280, label %6437, label %6438

6437:                                             ; preds = %6433, %6427
  br label %6438

6438:                                             ; preds = %6433, %6437
  %.str.5.sink3515 = phi ptr [ @.str.5, %6437 ], [ @.str.2, %6433 ]
  store i32 %6428, ptr %556, align 4, !tbaa !5
  %6439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6440 = load i32, ptr @test_count, align 4, !tbaa !5
  %6441 = load i32, ptr %502, align 4, !tbaa !5
  %6442 = call ptr @s2n_strerror(i32 noundef %6441, ptr noundef nonnull @.str.4) #14
  %6443 = load i32, ptr %502, align 4, !tbaa !5
  %6444 = call ptr @s2n_strerror_debug(i32 noundef %6443, ptr noundef nonnull @.str.4) #14
  %6445 = load i32, ptr %556, align 4, !tbaa !5
  %6446 = call ptr @strerror(i32 noundef %6445) #14
  %6447 = load i32, ptr %556, align 4, !tbaa !5
  %6448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6439, ptr noundef nonnull %.str.5.sink3515, i32 noundef %6440, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 770, ptr noundef %6442, ptr noundef %6444, ptr noundef %6446, i32 noundef %6447) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6449:                                             ; preds = %6423
  store i32 0, ptr %502, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  store i32 0, ptr %556, align 4, !tbaa !5
  %6450 = load i32, ptr @test_count, align 4, !tbaa !5
  %6451 = add nsw i32 %6450, 1
  store i32 %6451, ptr @test_count, align 4, !tbaa !5
  %6452 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %6453 = icmp eq i32 %6452, -1
  br i1 %6453, label %6454, label %6476

6454:                                             ; preds = %6449
  %6455 = load i32, ptr %556, align 4, !tbaa !5
  %6456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6457 = call i32 @s2n_print_stacktrace(ptr noundef %6456) #14
  %6458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6459 = trunc nuw i8 %6458 to i1
  br i1 %6459, label %6460, label %6464

6460:                                             ; preds = %6454
  %6461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6462 = call i32 @fileno(ptr noundef %6461) #14
  %6463 = call i32 @isatty(i32 noundef %6462) #14
  %.not1279 = icmp eq i32 %6463, 0
  br i1 %.not1279, label %6464, label %6465

6464:                                             ; preds = %6460, %6454
  br label %6465

6465:                                             ; preds = %6460, %6464
  %.str.5.sink3524 = phi ptr [ @.str.5, %6464 ], [ @.str.2, %6460 ]
  store i32 %6455, ptr %556, align 4, !tbaa !5
  %6466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6467 = load i32, ptr @test_count, align 4, !tbaa !5
  %6468 = load i32, ptr %502, align 4, !tbaa !5
  %6469 = call ptr @s2n_strerror(i32 noundef %6468, ptr noundef nonnull @.str.4) #14
  %6470 = load i32, ptr %502, align 4, !tbaa !5
  %6471 = call ptr @s2n_strerror_debug(i32 noundef %6470, ptr noundef nonnull @.str.4) #14
  %6472 = load i32, ptr %556, align 4, !tbaa !5
  %6473 = call ptr @strerror(i32 noundef %6472) #14
  %6474 = load i32, ptr %556, align 4, !tbaa !5
  %6475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6466, ptr noundef nonnull %.str.5.sink3524, i32 noundef %6467, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 772, ptr noundef %6469, ptr noundef %6471, ptr noundef %6473, i32 noundef %6474) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6476:                                             ; preds = %6449
  %6477 = load i32, ptr @test_count, align 4, !tbaa !5
  %6478 = add nsw i32 %6477, 1
  store i32 %6478, ptr @test_count, align 4, !tbaa !5
  %6479 = call i32 (...) @s2n_enable_tls13_in_test() #14
  %6480 = icmp eq i32 %6479, -1
  br i1 %6480, label %6481, label %6503

6481:                                             ; preds = %6476
  %6482 = load i32, ptr %556, align 4, !tbaa !5
  %6483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6484 = call i32 @s2n_print_stacktrace(ptr noundef %6483) #14
  %6485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6486 = trunc nuw i8 %6485 to i1
  br i1 %6486, label %6487, label %6491

6487:                                             ; preds = %6481
  %6488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6489 = call i32 @fileno(ptr noundef %6488) #14
  %6490 = call i32 @isatty(i32 noundef %6489) #14
  %.not1278 = icmp eq i32 %6490, 0
  br i1 %.not1278, label %6491, label %6492

6491:                                             ; preds = %6487, %6481
  br label %6492

6492:                                             ; preds = %6487, %6491
  %.str.5.sink3533 = phi ptr [ @.str.5, %6491 ], [ @.str.2, %6487 ]
  store i32 %6482, ptr %556, align 4, !tbaa !5
  %6493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6494 = load i32, ptr @test_count, align 4, !tbaa !5
  %6495 = load i32, ptr %502, align 4, !tbaa !5
  %6496 = call ptr @s2n_strerror(i32 noundef %6495, ptr noundef nonnull @.str.4) #14
  %6497 = load i32, ptr %502, align 4, !tbaa !5
  %6498 = call ptr @s2n_strerror_debug(i32 noundef %6497, ptr noundef nonnull @.str.4) #14
  %6499 = load i32, ptr %556, align 4, !tbaa !5
  %6500 = call ptr @strerror(i32 noundef %6499) #14
  %6501 = load i32, ptr %556, align 4, !tbaa !5
  %6502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6493, ptr noundef nonnull %.str.5.sink3533, i32 noundef %6494, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.1, i32 noundef 778, ptr noundef %6496, ptr noundef %6498, ptr noundef %6500, i32 noundef %6501) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6503:                                             ; preds = %6476
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %26) #14
  %6504 = load i16, ptr @__const.main.invalid_cipher_pref, align 1
  store i16 %6504, ptr %26, align 2
  %6505 = load i32, ptr @test_count, align 4, !tbaa !5
  %6506 = add nsw i32 %6505, 1
  store i32 %6506, ptr @test_count, align 4, !tbaa !5
  %6507 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1051, ptr noundef nonnull @.str.18) #14
  %6508 = icmp eq i32 %6507, -1
  br i1 %6508, label %6509, label %6531

6509:                                             ; preds = %6503
  %6510 = load i32, ptr %556, align 4, !tbaa !5
  %6511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6512 = call i32 @s2n_print_stacktrace(ptr noundef %6511) #14
  %6513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6514 = trunc nuw i8 %6513 to i1
  br i1 %6514, label %6515, label %6519

6515:                                             ; preds = %6509
  %6516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6517 = call i32 @fileno(ptr noundef %6516) #14
  %6518 = call i32 @isatty(i32 noundef %6517) #14
  %.not1277 = icmp eq i32 %6518, 0
  br i1 %.not1277, label %6519, label %6520

6519:                                             ; preds = %6515, %6509
  br label %6520

6520:                                             ; preds = %6515, %6519
  %.str.5.sink3542 = phi ptr [ @.str.5, %6519 ], [ @.str.2, %6515 ]
  store i32 %6510, ptr %556, align 4, !tbaa !5
  %6521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6522 = load i32, ptr @test_count, align 4, !tbaa !5
  %6523 = load i32, ptr %502, align 4, !tbaa !5
  %6524 = call ptr @s2n_strerror(i32 noundef %6523, ptr noundef nonnull @.str.4) #14
  %6525 = load i32, ptr %502, align 4, !tbaa !5
  %6526 = call ptr @s2n_strerror_debug(i32 noundef %6525, ptr noundef nonnull @.str.4) #14
  %6527 = load i32, ptr %556, align 4, !tbaa !5
  %6528 = call ptr @strerror(i32 noundef %6527) #14
  %6529 = load i32, ptr %556, align 4, !tbaa !5
  %6530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6521, ptr noundef nonnull %.str.5.sink3542, i32 noundef %6522, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 784, ptr noundef %6524, ptr noundef %6526, ptr noundef %6528, i32 noundef %6529) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6531:                                             ; preds = %6503
  store i8 34, ptr %5090, align 2, !tbaa !15
  store i8 34, ptr %1405, align 4, !tbaa !42
  %6532 = load i32, ptr @test_count, align 4, !tbaa !5
  %6533 = add nsw i32 %6532, 1
  store i32 %6533, ptr @test_count, align 4, !tbaa !5
  %6534 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %1051, ptr noundef nonnull %26, i16 noundef zeroext 1) #14
  %6535 = icmp eq i32 %6534, -1
  br i1 %6535, label %6558, label %6536

6536:                                             ; preds = %6531
  %6537 = load i32, ptr %556, align 4, !tbaa !5
  %6538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6539 = call i32 @s2n_print_stacktrace(ptr noundef %6538) #14
  %6540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6541 = trunc nuw i8 %6540 to i1
  br i1 %6541, label %6542, label %6546

6542:                                             ; preds = %6536
  %6543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6544 = call i32 @fileno(ptr noundef %6543) #14
  %6545 = call i32 @isatty(i32 noundef %6544) #14
  %.not1173 = icmp eq i32 %6545, 0
  br i1 %.not1173, label %6546, label %6547

6546:                                             ; preds = %6542, %6536
  br label %6547

6547:                                             ; preds = %6542, %6546
  %.str.5.sink3551 = phi ptr [ @.str.5, %6546 ], [ @.str.2, %6542 ]
  store i32 %6537, ptr %556, align 4, !tbaa !5
  %6548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6549 = load i32, ptr @test_count, align 4, !tbaa !5
  %6550 = load i32, ptr %502, align 4, !tbaa !5
  %6551 = call ptr @s2n_strerror(i32 noundef %6550, ptr noundef nonnull @.str.4) #14
  %6552 = load i32, ptr %502, align 4, !tbaa !5
  %6553 = call ptr @s2n_strerror_debug(i32 noundef %6552, ptr noundef nonnull @.str.4) #14
  %6554 = load i32, ptr %556, align 4, !tbaa !5
  %6555 = call ptr @strerror(i32 noundef %6554) #14
  %6556 = load i32, ptr %556, align 4, !tbaa !5
  %6557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6548, ptr noundef nonnull %.str.5.sink3551, i32 noundef %6549, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.1, i32 noundef 787, ptr noundef %6551, ptr noundef %6553, ptr noundef %6555, i32 noundef %6556) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6558:                                             ; preds = %6531
  %6559 = load i32, ptr @test_count, align 4, !tbaa !5
  %6560 = add nsw i32 %6559, 1
  store i32 %6560, ptr @test_count, align 4, !tbaa !5
  %6561 = load i32, ptr %502, align 4, !tbaa !5
  %6562 = icmp eq i32 %6561, 335544334
  br i1 %6562, label %6585, label %6563

6563:                                             ; preds = %6558
  %6564 = load i32, ptr %556, align 4, !tbaa !5
  %6565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6566 = call i32 @s2n_print_stacktrace(ptr noundef %6565) #14
  %6567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6568 = trunc nuw i8 %6567 to i1
  br i1 %6568, label %6569, label %6573

6569:                                             ; preds = %6563
  %6570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6571 = call i32 @fileno(ptr noundef %6570) #14
  %6572 = call i32 @isatty(i32 noundef %6571) #14
  %.not1174 = icmp eq i32 %6572, 0
  br i1 %.not1174, label %6573, label %6574

6573:                                             ; preds = %6569, %6563
  br label %6574

6574:                                             ; preds = %6569, %6573
  %.str.5.sink3560 = phi ptr [ @.str.5, %6573 ], [ @.str.2, %6569 ]
  store i32 %6564, ptr %556, align 4, !tbaa !5
  %6575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6576 = load i32, ptr @test_count, align 4, !tbaa !5
  %6577 = load i32, ptr %502, align 4, !tbaa !5
  %6578 = call ptr @s2n_strerror(i32 noundef %6577, ptr noundef nonnull @.str.4) #14
  %6579 = load i32, ptr %502, align 4, !tbaa !5
  %6580 = call ptr @s2n_strerror_debug(i32 noundef %6579, ptr noundef nonnull @.str.4) #14
  %6581 = load i32, ptr %556, align 4, !tbaa !5
  %6582 = call ptr @strerror(i32 noundef %6581) #14
  %6583 = load i32, ptr %556, align 4, !tbaa !5
  %6584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6575, ptr noundef nonnull %.str.5.sink3560, i32 noundef %6576, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 787, ptr noundef %6578, ptr noundef %6580, ptr noundef %6582, i32 noundef %6583) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6585:                                             ; preds = %6558
  %6586 = add nsw i32 %6559, 2
  store i32 %6586, ptr @test_count, align 4, !tbaa !5
  %6587 = call ptr @s2n_strerror_debug(i32 noundef 335544334, ptr noundef nonnull @.str.4) #14
  %6588 = icmp eq ptr %6587, null
  br i1 %6588, label %6589, label %6611

6589:                                             ; preds = %6585
  %6590 = load i32, ptr %556, align 4, !tbaa !5
  %6591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6592 = call i32 @s2n_print_stacktrace(ptr noundef %6591) #14
  %6593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6594 = trunc nuw i8 %6593 to i1
  br i1 %6594, label %6595, label %6599

6595:                                             ; preds = %6589
  %6596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6597 = call i32 @fileno(ptr noundef %6596) #14
  %6598 = call i32 @isatty(i32 noundef %6597) #14
  %.not1276 = icmp eq i32 %6598, 0
  br i1 %.not1276, label %6599, label %6600

6599:                                             ; preds = %6595, %6589
  br label %6600

6600:                                             ; preds = %6595, %6599
  %.str.5.sink3569 = phi ptr [ @.str.5, %6599 ], [ @.str.2, %6595 ]
  store i32 %6590, ptr %556, align 4, !tbaa !5
  %6601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6602 = load i32, ptr @test_count, align 4, !tbaa !5
  %6603 = load i32, ptr %502, align 4, !tbaa !5
  %6604 = call ptr @s2n_strerror(i32 noundef %6603, ptr noundef nonnull @.str.4) #14
  %6605 = load i32, ptr %502, align 4, !tbaa !5
  %6606 = call ptr @s2n_strerror_debug(i32 noundef %6605, ptr noundef nonnull @.str.4) #14
  %6607 = load i32, ptr %556, align 4, !tbaa !5
  %6608 = call ptr @strerror(i32 noundef %6607) #14
  %6609 = load i32, ptr %556, align 4, !tbaa !5
  %6610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6601, ptr noundef nonnull %.str.5.sink3569, i32 noundef %6602, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 787, ptr noundef %6604, ptr noundef %6606, ptr noundef %6608, i32 noundef %6609) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6611:                                             ; preds = %6585
  store i32 0, ptr %502, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  store i32 0, ptr %556, align 4, !tbaa !5
  %6612 = load i32, ptr @test_count, align 4, !tbaa !5
  %6613 = add nsw i32 %6612, 1
  store i32 %6613, ptr @test_count, align 4, !tbaa !5
  %6614 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1051) #14
  %6615 = icmp eq i32 %6614, -1
  br i1 %6615, label %6616, label %6638

6616:                                             ; preds = %6611
  %6617 = load i32, ptr %556, align 4, !tbaa !5
  %6618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6619 = call i32 @s2n_print_stacktrace(ptr noundef %6618) #14
  %6620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6621 = trunc nuw i8 %6620 to i1
  br i1 %6621, label %6622, label %6626

6622:                                             ; preds = %6616
  %6623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6624 = call i32 @fileno(ptr noundef %6623) #14
  %6625 = call i32 @isatty(i32 noundef %6624) #14
  %.not1275 = icmp eq i32 %6625, 0
  br i1 %.not1275, label %6626, label %6627

6626:                                             ; preds = %6622, %6616
  br label %6627

6627:                                             ; preds = %6622, %6626
  %.str.5.sink3578 = phi ptr [ @.str.5, %6626 ], [ @.str.2, %6622 ]
  store i32 %6617, ptr %556, align 4, !tbaa !5
  %6628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6629 = load i32, ptr @test_count, align 4, !tbaa !5
  %6630 = load i32, ptr %502, align 4, !tbaa !5
  %6631 = call ptr @s2n_strerror(i32 noundef %6630, ptr noundef nonnull @.str.4) #14
  %6632 = load i32, ptr %502, align 4, !tbaa !5
  %6633 = call ptr @s2n_strerror_debug(i32 noundef %6632, ptr noundef nonnull @.str.4) #14
  %6634 = load i32, ptr %556, align 4, !tbaa !5
  %6635 = call ptr @strerror(i32 noundef %6634) #14
  %6636 = load i32, ptr %556, align 4, !tbaa !5
  %6637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6628, ptr noundef nonnull %.str.5.sink3578, i32 noundef %6629, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 788, ptr noundef %6631, ptr noundef %6633, ptr noundef %6635, i32 noundef %6636) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6638:                                             ; preds = %6611
  %6639 = load i32, ptr @test_count, align 4, !tbaa !5
  %6640 = add nsw i32 %6639, 1
  store i32 %6640, ptr @test_count, align 4, !tbaa !5
  %6641 = call i32 (...) @s2n_disable_tls13_in_test() #14
  %6642 = icmp eq i32 %6641, -1
  br i1 %6642, label %6643, label %6665

6643:                                             ; preds = %6638
  %6644 = load i32, ptr %556, align 4, !tbaa !5
  %6645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6646 = call i32 @s2n_print_stacktrace(ptr noundef %6645) #14
  %6647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6648 = trunc nuw i8 %6647 to i1
  br i1 %6648, label %6649, label %6653

6649:                                             ; preds = %6643
  %6650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6651 = call i32 @fileno(ptr noundef %6650) #14
  %6652 = call i32 @isatty(i32 noundef %6651) #14
  %.not1274 = icmp eq i32 %6652, 0
  br i1 %.not1274, label %6653, label %6654

6653:                                             ; preds = %6649, %6643
  br label %6654

6654:                                             ; preds = %6649, %6653
  %.str.5.sink3587 = phi ptr [ @.str.5, %6653 ], [ @.str.2, %6649 ]
  store i32 %6644, ptr %556, align 4, !tbaa !5
  %6655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6656 = load i32, ptr @test_count, align 4, !tbaa !5
  %6657 = load i32, ptr %502, align 4, !tbaa !5
  %6658 = call ptr @s2n_strerror(i32 noundef %6657, ptr noundef nonnull @.str.4) #14
  %6659 = load i32, ptr %502, align 4, !tbaa !5
  %6660 = call ptr @s2n_strerror_debug(i32 noundef %6659, ptr noundef nonnull @.str.4) #14
  %6661 = load i32, ptr %556, align 4, !tbaa !5
  %6662 = call ptr @strerror(i32 noundef %6661) #14
  %6663 = load i32, ptr %556, align 4, !tbaa !5
  %6664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6655, ptr noundef nonnull %.str.5.sink3587, i32 noundef %6656, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 789, ptr noundef %6658, ptr noundef %6660, ptr noundef %6662, i32 noundef %6663) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6665:                                             ; preds = %6638
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %26) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #14
  %6666 = call ptr @s2n_config_new() #14
  store ptr %6666, ptr %27, align 8, !tbaa !9
  %6667 = load i32, ptr @test_count, align 4, !tbaa !5
  %6668 = add nsw i32 %6667, 1
  store i32 %6668, ptr @test_count, align 4, !tbaa !5
  %6669 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %6666, ptr noundef nonnull @.str.53) #14
  %6670 = icmp eq i32 %6669, -1
  br i1 %6670, label %6671, label %6693

6671:                                             ; preds = %6665
  %6672 = load i32, ptr %556, align 4, !tbaa !5
  %6673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6674 = call i32 @s2n_print_stacktrace(ptr noundef %6673) #14
  %6675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6676 = trunc nuw i8 %6675 to i1
  br i1 %6676, label %6677, label %6681

6677:                                             ; preds = %6671
  %6678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6679 = call i32 @fileno(ptr noundef %6678) #14
  %6680 = call i32 @isatty(i32 noundef %6679) #14
  %.not1273 = icmp eq i32 %6680, 0
  br i1 %.not1273, label %6681, label %6682

6681:                                             ; preds = %6677, %6671
  br label %6682

6682:                                             ; preds = %6677, %6681
  %.str.5.sink3596 = phi ptr [ @.str.5, %6681 ], [ @.str.2, %6677 ]
  store i32 %6672, ptr %556, align 4, !tbaa !5
  %6683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6684 = load i32, ptr @test_count, align 4, !tbaa !5
  %6685 = load i32, ptr %502, align 4, !tbaa !5
  %6686 = call ptr @s2n_strerror(i32 noundef %6685, ptr noundef nonnull @.str.4) #14
  %6687 = load i32, ptr %502, align 4, !tbaa !5
  %6688 = call ptr @s2n_strerror_debug(i32 noundef %6687, ptr noundef nonnull @.str.4) #14
  %6689 = load i32, ptr %556, align 4, !tbaa !5
  %6690 = call ptr @strerror(i32 noundef %6689) #14
  %6691 = load i32, ptr %556, align 4, !tbaa !5
  %6692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6683, ptr noundef nonnull %.str.5.sink3596, i32 noundef %6684, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.1, i32 noundef 796, ptr noundef %6686, ptr noundef %6688, ptr noundef %6690, i32 noundef %6691) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6693:                                             ; preds = %6665
  %6694 = load i32, ptr @test_count, align 4, !tbaa !5
  %6695 = add nsw i32 %6694, 1
  store i32 %6695, ptr @test_count, align 4, !tbaa !5
  %6696 = load ptr, ptr %27, align 8, !tbaa !9
  %6697 = load ptr, ptr %9, align 8, !tbaa !9
  %6698 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %6696, ptr noundef %6697) #14
  %6699 = icmp eq i32 %6698, -1
  br i1 %6699, label %6700, label %6722

6700:                                             ; preds = %6693
  %6701 = load i32, ptr %556, align 4, !tbaa !5
  %6702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6703 = call i32 @s2n_print_stacktrace(ptr noundef %6702) #14
  %6704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6705 = trunc nuw i8 %6704 to i1
  br i1 %6705, label %6706, label %6710

6706:                                             ; preds = %6700
  %6707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6708 = call i32 @fileno(ptr noundef %6707) #14
  %6709 = call i32 @isatty(i32 noundef %6708) #14
  %.not1272 = icmp eq i32 %6709, 0
  br i1 %.not1272, label %6710, label %6711

6710:                                             ; preds = %6706, %6700
  br label %6711

6711:                                             ; preds = %6706, %6710
  %.str.5.sink3605 = phi ptr [ @.str.5, %6710 ], [ @.str.2, %6706 ]
  store i32 %6701, ptr %556, align 4, !tbaa !5
  %6712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6713 = load i32, ptr @test_count, align 4, !tbaa !5
  %6714 = load i32, ptr %502, align 4, !tbaa !5
  %6715 = call ptr @s2n_strerror(i32 noundef %6714, ptr noundef nonnull @.str.4) #14
  %6716 = load i32, ptr %502, align 4, !tbaa !5
  %6717 = call ptr @s2n_strerror_debug(i32 noundef %6716, ptr noundef nonnull @.str.4) #14
  %6718 = load i32, ptr %556, align 4, !tbaa !5
  %6719 = call ptr @strerror(i32 noundef %6718) #14
  %6720 = load i32, ptr %556, align 4, !tbaa !5
  %6721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6712, ptr noundef nonnull %.str.5.sink3605, i32 noundef %6713, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.1, i32 noundef 797, ptr noundef %6715, ptr noundef %6717, ptr noundef %6719, i32 noundef %6720) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6722:                                             ; preds = %6693
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #14
  %6723 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %6723, ptr %28, align 8, !tbaa !9
  %6724 = load i32, ptr @test_count, align 4, !tbaa !5
  %6725 = add nsw i32 %6724, 1
  store i32 %6725, ptr @test_count, align 4, !tbaa !5
  %6726 = icmp eq ptr %6723, null
  br i1 %6726, label %6727, label %6749

6727:                                             ; preds = %6722
  %6728 = load i32, ptr %556, align 4, !tbaa !5
  %6729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6730 = call i32 @s2n_print_stacktrace(ptr noundef %6729) #14
  %6731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6732 = trunc nuw i8 %6731 to i1
  br i1 %6732, label %6733, label %6737

6733:                                             ; preds = %6727
  %6734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6735 = call i32 @fileno(ptr noundef %6734) #14
  %6736 = call i32 @isatty(i32 noundef %6735) #14
  %.not1271 = icmp eq i32 %6736, 0
  br i1 %.not1271, label %6737, label %6738

6737:                                             ; preds = %6733, %6727
  br label %6738

6738:                                             ; preds = %6733, %6737
  %.str.5.sink3614 = phi ptr [ @.str.5, %6737 ], [ @.str.2, %6733 ]
  store i32 %6728, ptr %556, align 4, !tbaa !5
  %6739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6740 = load i32, ptr @test_count, align 4, !tbaa !5
  %6741 = load i32, ptr %502, align 4, !tbaa !5
  %6742 = call ptr @s2n_strerror(i32 noundef %6741, ptr noundef nonnull @.str.4) #14
  %6743 = load i32, ptr %502, align 4, !tbaa !5
  %6744 = call ptr @s2n_strerror_debug(i32 noundef %6743, ptr noundef nonnull @.str.4) #14
  %6745 = load i32, ptr %556, align 4, !tbaa !5
  %6746 = call ptr @strerror(i32 noundef %6745) #14
  %6747 = load i32, ptr %556, align 4, !tbaa !5
  %6748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6739, ptr noundef nonnull %.str.5.sink3614, i32 noundef %6740, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.1, i32 noundef 801, ptr noundef %6742, ptr noundef %6744, ptr noundef %6746, i32 noundef %6747) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6749:                                             ; preds = %6722
  %6750 = add nsw i32 %6724, 2
  store i32 %6750, ptr @test_count, align 4, !tbaa !5
  %6751 = load ptr, ptr %27, align 8, !tbaa !9
  %6752 = call i32 @s2n_connection_set_config(ptr noundef nonnull %6723, ptr noundef %6751) #14
  %6753 = icmp eq i32 %6752, -1
  br i1 %6753, label %6754, label %6776

6754:                                             ; preds = %6749
  %6755 = load i32, ptr %556, align 4, !tbaa !5
  %6756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6757 = call i32 @s2n_print_stacktrace(ptr noundef %6756) #14
  %6758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6759 = trunc nuw i8 %6758 to i1
  br i1 %6759, label %6760, label %6764

6760:                                             ; preds = %6754
  %6761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6762 = call i32 @fileno(ptr noundef %6761) #14
  %6763 = call i32 @isatty(i32 noundef %6762) #14
  %.not1270 = icmp eq i32 %6763, 0
  br i1 %.not1270, label %6764, label %6765

6764:                                             ; preds = %6760, %6754
  br label %6765

6765:                                             ; preds = %6760, %6764
  %.str.5.sink3623 = phi ptr [ @.str.5, %6764 ], [ @.str.2, %6760 ]
  store i32 %6755, ptr %556, align 4, !tbaa !5
  %6766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6767 = load i32, ptr @test_count, align 4, !tbaa !5
  %6768 = load i32, ptr %502, align 4, !tbaa !5
  %6769 = call ptr @s2n_strerror(i32 noundef %6768, ptr noundef nonnull @.str.4) #14
  %6770 = load i32, ptr %502, align 4, !tbaa !5
  %6771 = call ptr @s2n_strerror_debug(i32 noundef %6770, ptr noundef nonnull @.str.4) #14
  %6772 = load i32, ptr %556, align 4, !tbaa !5
  %6773 = call ptr @strerror(i32 noundef %6772) #14
  %6774 = load i32, ptr %556, align 4, !tbaa !5
  %6775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6766, ptr noundef nonnull %.str.5.sink3623, i32 noundef %6767, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.1, i32 noundef 802, ptr noundef %6769, ptr noundef %6771, ptr noundef %6773, i32 noundef %6774) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6776:                                             ; preds = %6749
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %29) #14
  %6777 = load i16, ptr @__const.main.wire, align 1
  store i16 %6777, ptr %29, align 2
  %6778 = load i32, ptr @test_count, align 4, !tbaa !5
  %6779 = add nsw i32 %6778, 1
  store i32 %6779, ptr @test_count, align 4, !tbaa !5
  %6780 = load ptr, ptr %28, align 8, !tbaa !9
  %6781 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %6780, ptr noundef nonnull %29, i16 noundef zeroext 1) #14
  %6782 = icmp eq i32 %6781, -1
  br i1 %6782, label %6805, label %6783

6783:                                             ; preds = %6776
  %6784 = load i32, ptr %556, align 4, !tbaa !5
  %6785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6786 = call i32 @s2n_print_stacktrace(ptr noundef %6785) #14
  %6787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6788 = trunc nuw i8 %6787 to i1
  br i1 %6788, label %6789, label %6793

6789:                                             ; preds = %6783
  %6790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6791 = call i32 @fileno(ptr noundef %6790) #14
  %6792 = call i32 @isatty(i32 noundef %6791) #14
  %.not1175 = icmp eq i32 %6792, 0
  br i1 %.not1175, label %6793, label %6794

6793:                                             ; preds = %6789, %6783
  br label %6794

6794:                                             ; preds = %6789, %6793
  %.str.5.sink3632 = phi ptr [ @.str.5, %6793 ], [ @.str.2, %6789 ]
  store i32 %6784, ptr %556, align 4, !tbaa !5
  %6795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6796 = load i32, ptr @test_count, align 4, !tbaa !5
  %6797 = load i32, ptr %502, align 4, !tbaa !5
  %6798 = call ptr @s2n_strerror(i32 noundef %6797, ptr noundef nonnull @.str.4) #14
  %6799 = load i32, ptr %502, align 4, !tbaa !5
  %6800 = call ptr @s2n_strerror_debug(i32 noundef %6799, ptr noundef nonnull @.str.4) #14
  %6801 = load i32, ptr %556, align 4, !tbaa !5
  %6802 = call ptr @strerror(i32 noundef %6801) #14
  %6803 = load i32, ptr %556, align 4, !tbaa !5
  %6804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6795, ptr noundef nonnull %.str.5.sink3632, i32 noundef %6796, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.1, i32 noundef 809, ptr noundef %6798, ptr noundef %6800, ptr noundef %6802, i32 noundef %6803) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6805:                                             ; preds = %6776
  %6806 = load i32, ptr @test_count, align 4, !tbaa !5
  %6807 = add nsw i32 %6806, 1
  store i32 %6807, ptr @test_count, align 4, !tbaa !5
  %6808 = load i32, ptr %502, align 4, !tbaa !5
  %6809 = icmp eq i32 %6808, 335544334
  br i1 %6809, label %6832, label %6810

6810:                                             ; preds = %6805
  %6811 = load i32, ptr %556, align 4, !tbaa !5
  %6812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6813 = call i32 @s2n_print_stacktrace(ptr noundef %6812) #14
  %6814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6815 = trunc nuw i8 %6814 to i1
  br i1 %6815, label %6816, label %6820

6816:                                             ; preds = %6810
  %6817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6818 = call i32 @fileno(ptr noundef %6817) #14
  %6819 = call i32 @isatty(i32 noundef %6818) #14
  %.not1176 = icmp eq i32 %6819, 0
  br i1 %.not1176, label %6820, label %6821

6820:                                             ; preds = %6816, %6810
  br label %6821

6821:                                             ; preds = %6816, %6820
  %.str.5.sink3641 = phi ptr [ @.str.5, %6820 ], [ @.str.2, %6816 ]
  store i32 %6811, ptr %556, align 4, !tbaa !5
  %6822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6823 = load i32, ptr @test_count, align 4, !tbaa !5
  %6824 = load i32, ptr %502, align 4, !tbaa !5
  %6825 = call ptr @s2n_strerror(i32 noundef %6824, ptr noundef nonnull @.str.4) #14
  %6826 = load i32, ptr %502, align 4, !tbaa !5
  %6827 = call ptr @s2n_strerror_debug(i32 noundef %6826, ptr noundef nonnull @.str.4) #14
  %6828 = load i32, ptr %556, align 4, !tbaa !5
  %6829 = call ptr @strerror(i32 noundef %6828) #14
  %6830 = load i32, ptr %556, align 4, !tbaa !5
  %6831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6822, ptr noundef nonnull %.str.5.sink3641, i32 noundef %6823, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 809, ptr noundef %6825, ptr noundef %6827, ptr noundef %6829, i32 noundef %6830) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6832:                                             ; preds = %6805
  %6833 = add nsw i32 %6806, 2
  store i32 %6833, ptr @test_count, align 4, !tbaa !5
  %6834 = call ptr @s2n_strerror_debug(i32 noundef 335544334, ptr noundef nonnull @.str.4) #14
  %6835 = icmp eq ptr %6834, null
  br i1 %6835, label %6836, label %6858

6836:                                             ; preds = %6832
  %6837 = load i32, ptr %556, align 4, !tbaa !5
  %6838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6839 = call i32 @s2n_print_stacktrace(ptr noundef %6838) #14
  %6840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6841 = trunc nuw i8 %6840 to i1
  br i1 %6841, label %6842, label %6846

6842:                                             ; preds = %6836
  %6843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6844 = call i32 @fileno(ptr noundef %6843) #14
  %6845 = call i32 @isatty(i32 noundef %6844) #14
  %.not1269 = icmp eq i32 %6845, 0
  br i1 %.not1269, label %6846, label %6847

6846:                                             ; preds = %6842, %6836
  br label %6847

6847:                                             ; preds = %6842, %6846
  %.str.5.sink3650 = phi ptr [ @.str.5, %6846 ], [ @.str.2, %6842 ]
  store i32 %6837, ptr %556, align 4, !tbaa !5
  %6848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6849 = load i32, ptr @test_count, align 4, !tbaa !5
  %6850 = load i32, ptr %502, align 4, !tbaa !5
  %6851 = call ptr @s2n_strerror(i32 noundef %6850, ptr noundef nonnull @.str.4) #14
  %6852 = load i32, ptr %502, align 4, !tbaa !5
  %6853 = call ptr @s2n_strerror_debug(i32 noundef %6852, ptr noundef nonnull @.str.4) #14
  %6854 = load i32, ptr %556, align 4, !tbaa !5
  %6855 = call ptr @strerror(i32 noundef %6854) #14
  %6856 = load i32, ptr %556, align 4, !tbaa !5
  %6857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6848, ptr noundef nonnull %.str.5.sink3650, i32 noundef %6849, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 809, ptr noundef %6851, ptr noundef %6853, ptr noundef %6855, i32 noundef %6856) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6858:                                             ; preds = %6832
  store i32 0, ptr %502, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #14
  store i32 0, ptr %556, align 4, !tbaa !5
  %6859 = load i32, ptr @test_count, align 4, !tbaa !5
  %6860 = add nsw i32 %6859, 1
  store i32 %6860, ptr @test_count, align 4, !tbaa !5
  %6861 = load ptr, ptr %27, align 8, !tbaa !9
  %6862 = call i32 @s2n_config_add_dhparams(ptr noundef %6861, ptr noundef nonnull %3) #14
  %6863 = icmp eq i32 %6862, -1
  br i1 %6863, label %6864, label %6886

6864:                                             ; preds = %6858
  %6865 = load i32, ptr %556, align 4, !tbaa !5
  %6866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6867 = call i32 @s2n_print_stacktrace(ptr noundef %6866) #14
  %6868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6869 = trunc nuw i8 %6868 to i1
  br i1 %6869, label %6870, label %6874

6870:                                             ; preds = %6864
  %6871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6872 = call i32 @fileno(ptr noundef %6871) #14
  %6873 = call i32 @isatty(i32 noundef %6872) #14
  %.not1268 = icmp eq i32 %6873, 0
  br i1 %.not1268, label %6874, label %6875

6874:                                             ; preds = %6870, %6864
  br label %6875

6875:                                             ; preds = %6870, %6874
  %.str.5.sink3659 = phi ptr [ @.str.5, %6874 ], [ @.str.2, %6870 ]
  store i32 %6865, ptr %556, align 4, !tbaa !5
  %6876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6877 = load i32, ptr @test_count, align 4, !tbaa !5
  %6878 = load i32, ptr %502, align 4, !tbaa !5
  %6879 = call ptr @s2n_strerror(i32 noundef %6878, ptr noundef nonnull @.str.4) #14
  %6880 = load i32, ptr %502, align 4, !tbaa !5
  %6881 = call ptr @s2n_strerror_debug(i32 noundef %6880, ptr noundef nonnull @.str.4) #14
  %6882 = load i32, ptr %556, align 4, !tbaa !5
  %6883 = call ptr @strerror(i32 noundef %6882) #14
  %6884 = load i32, ptr %556, align 4, !tbaa !5
  %6885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6876, ptr noundef nonnull %.str.5.sink3659, i32 noundef %6877, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.1, i32 noundef 812, ptr noundef %6879, ptr noundef %6881, ptr noundef %6883, i32 noundef %6884) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6886:                                             ; preds = %6858
  %6887 = load i32, ptr @test_count, align 4, !tbaa !5
  %6888 = add nsw i32 %6887, 1
  store i32 %6888, ptr @test_count, align 4, !tbaa !5
  %6889 = load ptr, ptr %28, align 8, !tbaa !9
  %6890 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %6889, ptr noundef nonnull %29, i16 noundef zeroext 1) #14
  %6891 = icmp eq i32 %6890, -1
  br i1 %6891, label %6892, label %6914

6892:                                             ; preds = %6886
  %6893 = load i32, ptr %556, align 4, !tbaa !5
  %6894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6895 = call i32 @s2n_print_stacktrace(ptr noundef %6894) #14
  %6896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6897 = trunc nuw i8 %6896 to i1
  br i1 %6897, label %6898, label %6902

6898:                                             ; preds = %6892
  %6899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6900 = call i32 @fileno(ptr noundef %6899) #14
  %6901 = call i32 @isatty(i32 noundef %6900) #14
  %.not1267 = icmp eq i32 %6901, 0
  br i1 %.not1267, label %6902, label %6903

6902:                                             ; preds = %6898, %6892
  br label %6903

6903:                                             ; preds = %6898, %6902
  %.str.5.sink3668 = phi ptr [ @.str.5, %6902 ], [ @.str.2, %6898 ]
  store i32 %6893, ptr %556, align 4, !tbaa !5
  %6904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6905 = load i32, ptr @test_count, align 4, !tbaa !5
  %6906 = load i32, ptr %502, align 4, !tbaa !5
  %6907 = call ptr @s2n_strerror(i32 noundef %6906, ptr noundef nonnull @.str.4) #14
  %6908 = load i32, ptr %502, align 4, !tbaa !5
  %6909 = call ptr @s2n_strerror_debug(i32 noundef %6908, ptr noundef nonnull @.str.4) #14
  %6910 = load i32, ptr %556, align 4, !tbaa !5
  %6911 = call ptr @strerror(i32 noundef %6910) #14
  %6912 = load i32, ptr %556, align 4, !tbaa !5
  %6913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6904, ptr noundef nonnull %.str.5.sink3668, i32 noundef %6905, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.1, i32 noundef 813, ptr noundef %6907, ptr noundef %6909, ptr noundef %6911, i32 noundef %6912) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6914:                                             ; preds = %6886
  %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 %28, align 8, !tbaa !9
  %6918 = getelementptr inbounds i8, ptr %6917, i64 232
  %6919 = load ptr, ptr %6918, align 8, !tbaa !48
  %6920 = load ptr, ptr %6919, align 8, !tbaa !49
  %6921 = icmp eq ptr %6920, @s2n_dhe_rsa_with_aes_128_gcm_sha256
  br i1 %6921, label %6944, label %6922

6922:                                             ; preds = %6914
  %6923 = load i32, ptr %556, align 4, !tbaa !5
  %6924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6925 = call i32 @s2n_print_stacktrace(ptr noundef %6924) #14
  %6926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6927 = trunc nuw i8 %6926 to i1
  br i1 %6927, label %6928, label %6932

6928:                                             ; preds = %6922
  %6929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6930 = call i32 @fileno(ptr noundef %6929) #14
  %6931 = call i32 @isatty(i32 noundef %6930) #14
  %.not1177 = icmp eq i32 %6931, 0
  br i1 %.not1177, label %6932, label %6933

6932:                                             ; preds = %6928, %6922
  br label %6933

6933:                                             ; preds = %6928, %6932
  %.str.5.sink3677 = phi ptr [ @.str.5, %6932 ], [ @.str.2, %6928 ]
  store i32 %6923, ptr %556, align 4, !tbaa !5
  %6934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6935 = load i32, ptr @test_count, align 4, !tbaa !5
  %6936 = load i32, ptr %502, align 4, !tbaa !5
  %6937 = call ptr @s2n_strerror(i32 noundef %6936, ptr noundef nonnull @.str.4) #14
  %6938 = load i32, ptr %502, align 4, !tbaa !5
  %6939 = call ptr @s2n_strerror_debug(i32 noundef %6938, ptr noundef nonnull @.str.4) #14
  %6940 = load i32, ptr %556, align 4, !tbaa !5
  %6941 = call ptr @strerror(i32 noundef %6940) #14
  %6942 = load i32, ptr %556, align 4, !tbaa !5
  %6943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6934, ptr noundef nonnull %.str.5.sink3677, i32 noundef %6935, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.1, i32 noundef 814, ptr noundef %6937, ptr noundef %6939, ptr noundef %6941, i32 noundef %6942) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6944:                                             ; preds = %6914
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %29) #14
  %6945 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #14
  %6946 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %27) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #14
  %6947 = load i32, ptr @test_count, align 4, !tbaa !5
  %6948 = add nsw i32 %6947, 1
  store i32 %6948, ptr @test_count, align 4, !tbaa !5
  %6949 = call i32 @s2n_config_free(ptr noundef nonnull %3860) #14
  %6950 = icmp eq i32 %6949, -1
  br i1 %6950, label %6951, label %6973

6951:                                             ; preds = %6944
  %6952 = load i32, ptr %556, align 4, !tbaa !5
  %6953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6954 = call i32 @s2n_print_stacktrace(ptr noundef %6953) #14
  %6955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6956 = trunc nuw i8 %6955 to i1
  br i1 %6956, label %6957, label %6961

6957:                                             ; preds = %6951
  %6958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6959 = call i32 @fileno(ptr noundef %6958) #14
  %6960 = call i32 @isatty(i32 noundef %6959) #14
  %.not1266 = icmp eq i32 %6960, 0
  br i1 %.not1266, label %6961, label %6962

6961:                                             ; preds = %6957, %6951
  br label %6962

6962:                                             ; preds = %6957, %6961
  %.str.5.sink3686 = phi ptr [ @.str.5, %6961 ], [ @.str.2, %6957 ]
  store i32 %6952, ptr %556, align 4, !tbaa !5
  %6963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6964 = load i32, ptr @test_count, align 4, !tbaa !5
  %6965 = load i32, ptr %502, align 4, !tbaa !5
  %6966 = call ptr @s2n_strerror(i32 noundef %6965, ptr noundef nonnull @.str.4) #14
  %6967 = load i32, ptr %502, align 4, !tbaa !5
  %6968 = call ptr @s2n_strerror_debug(i32 noundef %6967, ptr noundef nonnull @.str.4) #14
  %6969 = load i32, ptr %556, align 4, !tbaa !5
  %6970 = call ptr @strerror(i32 noundef %6969) #14
  %6971 = load i32, ptr %556, align 4, !tbaa !5
  %6972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6963, ptr noundef nonnull %.str.5.sink3686, i32 noundef %6964, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 817, ptr noundef %6966, ptr noundef %6968, ptr noundef %6970, i32 noundef %6971) #16
  call void @exit(i32 noundef 1) #17
  unreachable

6973:                                             ; preds = %6944
  %6974 = load i32, ptr @test_count, align 4, !tbaa !5
  %6975 = add nsw i32 %6974, 1
  store i32 %6975, ptr @test_count, align 4, !tbaa !5
  %6976 = load ptr, ptr %9, align 8, !tbaa !9
  %6977 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %6976) #14
  %6978 = icmp eq i32 %6977, -1
  br i1 %6978, label %6979, label %7001

6979:                                             ; preds = %6973
  %6980 = load i32, ptr %556, align 4, !tbaa !5
  %6981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6982 = call i32 @s2n_print_stacktrace(ptr noundef %6981) #14
  %6983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6984 = trunc nuw i8 %6983 to i1
  br i1 %6984, label %6985, label %6989

6985:                                             ; preds = %6979
  %6986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6987 = call i32 @fileno(ptr noundef %6986) #14
  %6988 = call i32 @isatty(i32 noundef %6987) #14
  %.not1265 = icmp eq i32 %6988, 0
  br i1 %.not1265, label %6989, label %6990

6989:                                             ; preds = %6985, %6979
  br label %6990

6990:                                             ; preds = %6985, %6989
  %.str.5.sink3695 = phi ptr [ @.str.5, %6989 ], [ @.str.2, %6985 ]
  store i32 %6980, ptr %556, align 4, !tbaa !5
  %6991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6992 = load i32, ptr @test_count, align 4, !tbaa !5
  %6993 = load i32, ptr %502, align 4, !tbaa !5
  %6994 = call ptr @s2n_strerror(i32 noundef %6993, ptr noundef nonnull @.str.4) #14
  %6995 = load i32, ptr %502, align 4, !tbaa !5
  %6996 = call ptr @s2n_strerror_debug(i32 noundef %6995, ptr noundef nonnull @.str.4) #14
  %6997 = load i32, ptr %556, align 4, !tbaa !5
  %6998 = call ptr @strerror(i32 noundef %6997) #14
  %6999 = load i32, ptr %556, align 4, !tbaa !5
  %7000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6991, ptr noundef nonnull %.str.5.sink3695, i32 noundef %6992, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 818, ptr noundef %6994, ptr noundef %6996, ptr noundef %6998, i32 noundef %6999) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7001:                                             ; preds = %6973
  %7002 = load i32, ptr @test_count, align 4, !tbaa !5
  %7003 = add nsw i32 %7002, 1
  store i32 %7003, ptr @test_count, align 4, !tbaa !5
  %7004 = load ptr, ptr %10, align 8, !tbaa !9
  %7005 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %7004) #14
  %7006 = icmp eq i32 %7005, -1
  br i1 %7006, label %7007, label %7029

7007:                                             ; preds = %7001
  %7008 = load i32, ptr %556, align 4, !tbaa !5
  %7009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7010 = call i32 @s2n_print_stacktrace(ptr noundef %7009) #14
  %7011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7012 = trunc nuw i8 %7011 to i1
  br i1 %7012, label %7013, label %7017

7013:                                             ; preds = %7007
  %7014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7015 = call i32 @fileno(ptr noundef %7014) #14
  %7016 = call i32 @isatty(i32 noundef %7015) #14
  %.not1264 = icmp eq i32 %7016, 0
  br i1 %.not1264, label %7017, label %7018

7017:                                             ; preds = %7013, %7007
  br label %7018

7018:                                             ; preds = %7013, %7017
  %.str.5.sink3704 = phi ptr [ @.str.5, %7017 ], [ @.str.2, %7013 ]
  store i32 %7008, ptr %556, align 4, !tbaa !5
  %7019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7020 = load i32, ptr @test_count, align 4, !tbaa !5
  %7021 = load i32, ptr %502, align 4, !tbaa !5
  %7022 = call ptr @s2n_strerror(i32 noundef %7021, ptr noundef nonnull @.str.4) #14
  %7023 = load i32, ptr %502, align 4, !tbaa !5
  %7024 = call ptr @s2n_strerror_debug(i32 noundef %7023, ptr noundef nonnull @.str.4) #14
  %7025 = load i32, ptr %556, align 4, !tbaa !5
  %7026 = call ptr @strerror(i32 noundef %7025) #14
  %7027 = load i32, ptr %556, align 4, !tbaa !5
  %7028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7019, ptr noundef nonnull %.str.5.sink3704, i32 noundef %7020, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 819, ptr noundef %7022, ptr noundef %7024, ptr noundef %7026, i32 noundef %7027) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7029:                                             ; preds = %7001
  call void @free(ptr noundef nonnull %999) #14
  call void @free(ptr noundef nonnull %1025) #14
  call void @free(ptr noundef nonnull %947) #14
  call void @free(ptr noundef nonnull %973) #14
  %7030 = load i32, ptr @test_count, align 4, !tbaa !5
  %7031 = add nsw i32 %7030, 1
  store i32 %7031, ptr @test_count, align 4, !tbaa !5
  %7032 = call i32 @s2n_connection_free(ptr noundef nonnull %1051) #14
  %7033 = icmp eq i32 %7032, -1
  br i1 %7033, label %7034, label %7056

7034:                                             ; preds = %7029
  %7035 = load i32, ptr %556, align 4, !tbaa !5
  %7036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7037 = call i32 @s2n_print_stacktrace(ptr noundef %7036) #14
  %7038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7039 = trunc nuw i8 %7038 to i1
  br i1 %7039, label %7040, label %7044

7040:                                             ; preds = %7034
  %7041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7042 = call i32 @fileno(ptr noundef %7041) #14
  %7043 = call i32 @isatty(i32 noundef %7042) #14
  %.not1263 = icmp eq i32 %7043, 0
  br i1 %.not1263, label %7044, label %7045

7044:                                             ; preds = %7040, %7034
  br label %7045

7045:                                             ; preds = %7040, %7044
  %.str.5.sink3713 = phi ptr [ @.str.5, %7044 ], [ @.str.2, %7040 ]
  store i32 %7035, ptr %556, align 4, !tbaa !5
  %7046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7047 = load i32, ptr @test_count, align 4, !tbaa !5
  %7048 = load i32, ptr %502, align 4, !tbaa !5
  %7049 = call ptr @s2n_strerror(i32 noundef %7048, ptr noundef nonnull @.str.4) #14
  %7050 = load i32, ptr %502, align 4, !tbaa !5
  %7051 = call ptr @s2n_strerror_debug(i32 noundef %7050, ptr noundef nonnull @.str.4) #14
  %7052 = load i32, ptr %556, align 4, !tbaa !5
  %7053 = call ptr @strerror(i32 noundef %7052) #14
  %7054 = load i32, ptr %556, align 4, !tbaa !5
  %7055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7046, ptr noundef nonnull %.str.5.sink3713, i32 noundef %7047, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 824, ptr noundef %7049, ptr noundef %7051, ptr noundef %7053, i32 noundef %7054) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7056:                                             ; preds = %7029
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %16) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %30) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %30, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %31) #14
  store i8 20, ptr %31, align 8, !tbaa !68
  %7057 = getelementptr inbounds i8, ptr %31, i64 8
  store ptr %30, ptr %7057, align 8, !tbaa !70
  %7058 = getelementptr inbounds i8, ptr %31, i64 16
  store ptr @kem_preferences_null, ptr %7058, align 8, !tbaa !71
  %7059 = getelementptr inbounds i8, ptr %31, i64 24
  store ptr @s2n_signature_preferences_20201021, ptr %7059, align 8, !tbaa !72
  %7060 = getelementptr inbounds i8, ptr %31, i64 32
  store ptr null, ptr %7060, align 8, !tbaa !73
  %7061 = getelementptr inbounds i8, ptr %31, i64 40
  store ptr @s2n_ecc_preferences_test_all, ptr %7061, align 8, !tbaa !74
  %7062 = getelementptr inbounds i8, ptr %31, i64 48
  store ptr null, ptr %7062, align 8, !tbaa !75
  %7063 = getelementptr inbounds i8, ptr %31, i64 56
  store i8 0, ptr %7063, align 8, !tbaa !76
  %7064 = getelementptr inbounds i8, ptr %31, i64 57
  store i16 0, ptr %7064, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #14
  %7065 = call ptr @s2n_config_new() #14
  store ptr %7065, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #14
  store ptr null, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #14
  store ptr null, ptr %34, align 8, !tbaa !9
  %7066 = load i32, ptr @test_count, align 4, !tbaa !5
  %7067 = add nsw i32 %7066, 1
  store i32 %7067, ptr @test_count, align 4, !tbaa !5
  %7068 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %33, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.13) #14
  %7069 = icmp eq i32 %7068, -1
  br i1 %7069, label %7070, label %7092

7070:                                             ; preds = %7056
  %7071 = load i32, ptr %556, align 4, !tbaa !5
  %7072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7073 = call i32 @s2n_print_stacktrace(ptr noundef %7072) #14
  %7074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7075 = trunc nuw i8 %7074 to i1
  br i1 %7075, label %7076, label %7080

7076:                                             ; preds = %7070
  %7077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7078 = call i32 @fileno(ptr noundef %7077) #14
  %7079 = call i32 @isatty(i32 noundef %7078) #14
  %.not1262 = icmp eq i32 %7079, 0
  br i1 %.not1262, label %7080, label %7081

7080:                                             ; preds = %7076, %7070
  br label %7081

7081:                                             ; preds = %7076, %7080
  %.str.5.sink3722 = phi ptr [ @.str.5, %7080 ], [ @.str.2, %7076 ]
  store i32 %7071, ptr %556, align 4, !tbaa !5
  %7082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7083 = load i32, ptr @test_count, align 4, !tbaa !5
  %7084 = load i32, ptr %502, align 4, !tbaa !5
  %7085 = call ptr @s2n_strerror(i32 noundef %7084, ptr noundef nonnull @.str.4) #14
  %7086 = load i32, ptr %502, align 4, !tbaa !5
  %7087 = call ptr @s2n_strerror_debug(i32 noundef %7086, ptr noundef nonnull @.str.4) #14
  %7088 = load i32, ptr %556, align 4, !tbaa !5
  %7089 = call ptr @strerror(i32 noundef %7088) #14
  %7090 = load i32, ptr %556, align 4, !tbaa !5
  %7091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7082, ptr noundef nonnull %.str.5.sink3722, i32 noundef %7083, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 844, ptr noundef %7085, ptr noundef %7087, ptr noundef %7089, i32 noundef %7090) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7092:                                             ; preds = %7056
  %7093 = load i32, ptr @test_count, align 4, !tbaa !5
  %7094 = add nsw i32 %7093, 1
  store i32 %7094, ptr @test_count, align 4, !tbaa !5
  %7095 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %34, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.47) #14
  %7096 = icmp eq i32 %7095, -1
  br i1 %7096, label %7097, label %7119

7097:                                             ; preds = %7092
  %7098 = load i32, ptr %556, align 4, !tbaa !5
  %7099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7100 = call i32 @s2n_print_stacktrace(ptr noundef %7099) #14
  %7101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7102 = trunc nuw i8 %7101 to i1
  br i1 %7102, label %7103, label %7107

7103:                                             ; preds = %7097
  %7104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7105 = call i32 @fileno(ptr noundef %7104) #14
  %7106 = call i32 @isatty(i32 noundef %7105) #14
  %.not1261 = icmp eq i32 %7106, 0
  br i1 %.not1261, label %7107, label %7108

7107:                                             ; preds = %7103, %7097
  br label %7108

7108:                                             ; preds = %7103, %7107
  %.str.5.sink3731 = phi ptr [ @.str.5, %7107 ], [ @.str.2, %7103 ]
  store i32 %7098, ptr %556, align 4, !tbaa !5
  %7109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7110 = load i32, ptr @test_count, align 4, !tbaa !5
  %7111 = load i32, ptr %502, align 4, !tbaa !5
  %7112 = call ptr @s2n_strerror(i32 noundef %7111, ptr noundef nonnull @.str.4) #14
  %7113 = load i32, ptr %502, align 4, !tbaa !5
  %7114 = call ptr @s2n_strerror_debug(i32 noundef %7113, ptr noundef nonnull @.str.4) #14
  %7115 = load i32, ptr %556, align 4, !tbaa !5
  %7116 = call ptr @strerror(i32 noundef %7115) #14
  %7117 = load i32, ptr %556, align 4, !tbaa !5
  %7118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7109, ptr noundef nonnull %.str.5.sink3731, i32 noundef %7110, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 846, ptr noundef %7112, ptr noundef %7114, ptr noundef %7116, i32 noundef %7117) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7119:                                             ; preds = %7092
  %7120 = load i32, ptr @test_count, align 4, !tbaa !5
  %7121 = add nsw i32 %7120, 1
  store i32 %7121, ptr @test_count, align 4, !tbaa !5
  %7122 = load ptr, ptr %33, align 8, !tbaa !9
  %7123 = icmp eq ptr %7122, null
  br i1 %7123, label %7124, label %7146

7124:                                             ; preds = %7119
  %7125 = load i32, ptr %556, align 4, !tbaa !5
  %7126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7127 = call i32 @s2n_print_stacktrace(ptr noundef %7126) #14
  %7128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7129 = trunc nuw i8 %7128 to i1
  br i1 %7129, label %7130, label %7134

7130:                                             ; preds = %7124
  %7131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7132 = call i32 @fileno(ptr noundef %7131) #14
  %7133 = call i32 @isatty(i32 noundef %7132) #14
  %.not1260 = icmp eq i32 %7133, 0
  br i1 %.not1260, label %7134, label %7135

7134:                                             ; preds = %7130, %7124
  br label %7135

7135:                                             ; preds = %7130, %7134
  %.str.5.sink3740 = phi ptr [ @.str.5, %7134 ], [ @.str.2, %7130 ]
  store i32 %7125, ptr %556, align 4, !tbaa !5
  %7136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7137 = load i32, ptr @test_count, align 4, !tbaa !5
  %7138 = load i32, ptr %502, align 4, !tbaa !5
  %7139 = call ptr @s2n_strerror(i32 noundef %7138, ptr noundef nonnull @.str.4) #14
  %7140 = load i32, ptr %502, align 4, !tbaa !5
  %7141 = call ptr @s2n_strerror_debug(i32 noundef %7140, ptr noundef nonnull @.str.4) #14
  %7142 = load i32, ptr %556, align 4, !tbaa !5
  %7143 = call ptr @strerror(i32 noundef %7142) #14
  %7144 = load i32, ptr %556, align 4, !tbaa !5
  %7145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7136, ptr noundef nonnull %.str.5.sink3740, i32 noundef %7137, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.1, i32 noundef 848, ptr noundef %7139, ptr noundef %7141, ptr noundef %7143, i32 noundef %7144) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7146:                                             ; preds = %7119
  %7147 = add nsw i32 %7120, 2
  store i32 %7147, ptr @test_count, align 4, !tbaa !5
  %7148 = load ptr, ptr %34, align 8, !tbaa !9
  %7149 = icmp eq ptr %7148, null
  br i1 %7149, label %7150, label %7172

7150:                                             ; preds = %7146
  %7151 = load i32, ptr %556, align 4, !tbaa !5
  %7152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7153 = call i32 @s2n_print_stacktrace(ptr noundef %7152) #14
  %7154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7155 = trunc nuw i8 %7154 to i1
  br i1 %7155, label %7156, label %7160

7156:                                             ; preds = %7150
  %7157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7158 = call i32 @fileno(ptr noundef %7157) #14
  %7159 = call i32 @isatty(i32 noundef %7158) #14
  %.not1259 = icmp eq i32 %7159, 0
  br i1 %.not1259, label %7160, label %7161

7160:                                             ; preds = %7156, %7150
  br label %7161

7161:                                             ; preds = %7156, %7160
  %.str.5.sink3749 = phi ptr [ @.str.5, %7160 ], [ @.str.2, %7156 ]
  store i32 %7151, ptr %556, align 4, !tbaa !5
  %7162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7163 = load i32, ptr @test_count, align 4, !tbaa !5
  %7164 = load i32, ptr %502, align 4, !tbaa !5
  %7165 = call ptr @s2n_strerror(i32 noundef %7164, ptr noundef nonnull @.str.4) #14
  %7166 = load i32, ptr %502, align 4, !tbaa !5
  %7167 = call ptr @s2n_strerror_debug(i32 noundef %7166, ptr noundef nonnull @.str.4) #14
  %7168 = load i32, ptr %556, align 4, !tbaa !5
  %7169 = call ptr @strerror(i32 noundef %7168) #14
  %7170 = load i32, ptr %556, align 4, !tbaa !5
  %7171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7162, ptr noundef nonnull %.str.5.sink3749, i32 noundef %7163, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.1, i32 noundef 849, ptr noundef %7165, ptr noundef %7167, ptr noundef %7169, i32 noundef %7170) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7172:                                             ; preds = %7146
  %7173 = add nsw i32 %7120, 3
  store i32 %7173, ptr @test_count, align 4, !tbaa !5
  %7174 = icmp eq ptr %7065, null
  br i1 %7174, label %7175, label %7197

7175:                                             ; preds = %7172
  %7176 = load i32, ptr %556, align 4, !tbaa !5
  %7177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7178 = call i32 @s2n_print_stacktrace(ptr noundef %7177) #14
  %7179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7180 = trunc nuw i8 %7179 to i1
  br i1 %7180, label %7181, label %7185

7181:                                             ; preds = %7175
  %7182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7183 = call i32 @fileno(ptr noundef %7182) #14
  %7184 = call i32 @isatty(i32 noundef %7183) #14
  %.not1258 = icmp eq i32 %7184, 0
  br i1 %.not1258, label %7185, label %7186

7185:                                             ; preds = %7181, %7175
  br label %7186

7186:                                             ; preds = %7181, %7185
  %.str.5.sink3758 = phi ptr [ @.str.5, %7185 ], [ @.str.2, %7181 ]
  store i32 %7176, ptr %556, align 4, !tbaa !5
  %7187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7188 = load i32, ptr @test_count, align 4, !tbaa !5
  %7189 = load i32, ptr %502, align 4, !tbaa !5
  %7190 = call ptr @s2n_strerror(i32 noundef %7189, ptr noundef nonnull @.str.4) #14
  %7191 = load i32, ptr %502, align 4, !tbaa !5
  %7192 = call ptr @s2n_strerror_debug(i32 noundef %7191, ptr noundef nonnull @.str.4) #14
  %7193 = load i32, ptr %556, align 4, !tbaa !5
  %7194 = call ptr @strerror(i32 noundef %7193) #14
  %7195 = load i32, ptr %556, align 4, !tbaa !5
  %7196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7187, ptr noundef nonnull %.str.5.sink3758, i32 noundef %7188, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.1, i32 noundef 850, ptr noundef %7190, ptr noundef %7192, ptr noundef %7194, i32 noundef %7195) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7197:                                             ; preds = %7172
  %7198 = add nsw i32 %7120, 4
  store i32 %7198, ptr @test_count, align 4, !tbaa !5
  %7199 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %7065, ptr noundef nonnull %7122) #14
  %7200 = icmp eq i32 %7199, -1
  br i1 %7200, label %7201, label %7223

7201:                                             ; preds = %7197
  %7202 = load i32, ptr %556, align 4, !tbaa !5
  %7203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7204 = call i32 @s2n_print_stacktrace(ptr noundef %7203) #14
  %7205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7206 = trunc nuw i8 %7205 to i1
  br i1 %7206, label %7207, label %7211

7207:                                             ; preds = %7201
  %7208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7209 = call i32 @fileno(ptr noundef %7208) #14
  %7210 = call i32 @isatty(i32 noundef %7209) #14
  %.not1257 = icmp eq i32 %7210, 0
  br i1 %.not1257, label %7211, label %7212

7211:                                             ; preds = %7207, %7201
  br label %7212

7212:                                             ; preds = %7207, %7211
  %.str.5.sink3767 = phi ptr [ @.str.5, %7211 ], [ @.str.2, %7207 ]
  store i32 %7202, ptr %556, align 4, !tbaa !5
  %7213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7214 = load i32, ptr @test_count, align 4, !tbaa !5
  %7215 = load i32, ptr %502, align 4, !tbaa !5
  %7216 = call ptr @s2n_strerror(i32 noundef %7215, ptr noundef nonnull @.str.4) #14
  %7217 = load i32, ptr %502, align 4, !tbaa !5
  %7218 = call ptr @s2n_strerror_debug(i32 noundef %7217, ptr noundef nonnull @.str.4) #14
  %7219 = load i32, ptr %556, align 4, !tbaa !5
  %7220 = call ptr @strerror(i32 noundef %7219) #14
  %7221 = load i32, ptr %556, align 4, !tbaa !5
  %7222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7213, ptr noundef nonnull %.str.5.sink3767, i32 noundef %7214, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 851, ptr noundef %7216, ptr noundef %7218, ptr noundef %7220, i32 noundef %7221) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7223:                                             ; preds = %7197
  %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 %34, align 8, !tbaa !9
  %7227 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %7065, ptr noundef %7226) #14
  %7228 = icmp eq i32 %7227, -1
  br i1 %7228, label %7229, label %7251

7229:                                             ; preds = %7223
  %7230 = load i32, ptr %556, align 4, !tbaa !5
  %7231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7232 = call i32 @s2n_print_stacktrace(ptr noundef %7231) #14
  %7233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7234 = trunc nuw i8 %7233 to i1
  br i1 %7234, label %7235, label %7239

7235:                                             ; preds = %7229
  %7236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7237 = call i32 @fileno(ptr noundef %7236) #14
  %7238 = call i32 @isatty(i32 noundef %7237) #14
  %.not1256 = icmp eq i32 %7238, 0
  br i1 %.not1256, label %7239, label %7240

7239:                                             ; preds = %7235, %7229
  br label %7240

7240:                                             ; preds = %7235, %7239
  %.str.5.sink3776 = phi ptr [ @.str.5, %7239 ], [ @.str.2, %7235 ]
  store i32 %7230, ptr %556, align 4, !tbaa !5
  %7241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7242 = load i32, ptr @test_count, align 4, !tbaa !5
  %7243 = load i32, ptr %502, align 4, !tbaa !5
  %7244 = call ptr @s2n_strerror(i32 noundef %7243, ptr noundef nonnull @.str.4) #14
  %7245 = load i32, ptr %502, align 4, !tbaa !5
  %7246 = call ptr @s2n_strerror_debug(i32 noundef %7245, ptr noundef nonnull @.str.4) #14
  %7247 = load i32, ptr %556, align 4, !tbaa !5
  %7248 = call ptr @strerror(i32 noundef %7247) #14
  %7249 = load i32, ptr %556, align 4, !tbaa !5
  %7250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7241, ptr noundef nonnull %.str.5.sink3776, i32 noundef %7242, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 852, ptr noundef %7244, ptr noundef %7246, ptr noundef %7248, i32 noundef %7249) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7251:                                             ; preds = %7223
  %7252 = load i32, ptr @test_count, align 4, !tbaa !5
  %7253 = add nsw i32 %7252, 1
  store i32 %7253, ptr @test_count, align 4, !tbaa !5
  %7254 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %7065, ptr noundef nonnull @.str.53) #14
  %7255 = icmp eq i32 %7254, -1
  br i1 %7255, label %7256, label %7278

7256:                                             ; preds = %7251
  %7257 = load i32, ptr %556, align 4, !tbaa !5
  %7258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7259 = call i32 @s2n_print_stacktrace(ptr noundef %7258) #14
  %7260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7261 = trunc nuw i8 %7260 to i1
  br i1 %7261, label %7262, label %7266

7262:                                             ; preds = %7256
  %7263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7264 = call i32 @fileno(ptr noundef %7263) #14
  %7265 = call i32 @isatty(i32 noundef %7264) #14
  %.not1255 = icmp eq i32 %7265, 0
  br i1 %.not1255, label %7266, label %7267

7266:                                             ; preds = %7262, %7256
  br label %7267

7267:                                             ; preds = %7262, %7266
  %.str.5.sink3785 = phi ptr [ @.str.5, %7266 ], [ @.str.2, %7262 ]
  store i32 %7257, ptr %556, align 4, !tbaa !5
  %7268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7269 = load i32, ptr @test_count, align 4, !tbaa !5
  %7270 = load i32, ptr %502, align 4, !tbaa !5
  %7271 = call ptr @s2n_strerror(i32 noundef %7270, ptr noundef nonnull @.str.4) #14
  %7272 = load i32, ptr %502, align 4, !tbaa !5
  %7273 = call ptr @s2n_strerror_debug(i32 noundef %7272, ptr noundef nonnull @.str.4) #14
  %7274 = load i32, ptr %556, align 4, !tbaa !5
  %7275 = call ptr @strerror(i32 noundef %7274) #14
  %7276 = load i32, ptr %556, align 4, !tbaa !5
  %7277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7268, ptr noundef nonnull %.str.5.sink3785, i32 noundef %7269, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 853, ptr noundef %7271, ptr noundef %7273, ptr noundef %7275, i32 noundef %7276) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7278:                                             ; preds = %7251
  %7279 = call zeroext i1 %5352() #14
  br i1 %7279, label %7280, label %9123

7280:                                             ; preds = %7278
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  %7281 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %7281, ptr %35, align 8, !tbaa !9
  %7282 = load i32, ptr @test_count, align 4, !tbaa !5
  %7283 = add nsw i32 %7282, 1
  store i32 %7283, ptr @test_count, align 4, !tbaa !5
  %7284 = icmp eq ptr %7281, null
  br i1 %7284, label %7285, label %7307

7285:                                             ; preds = %7280
  %7286 = load i32, ptr %556, align 4, !tbaa !5
  %7287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7288 = call i32 @s2n_print_stacktrace(ptr noundef %7287) #14
  %7289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7290 = trunc nuw i8 %7289 to i1
  br i1 %7290, label %7291, label %7295

7291:                                             ; preds = %7285
  %7292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7293 = call i32 @fileno(ptr noundef %7292) #14
  %7294 = call i32 @isatty(i32 noundef %7293) #14
  %.not1254 = icmp eq i32 %7294, 0
  br i1 %.not1254, label %7295, label %7296

7295:                                             ; preds = %7291, %7285
  br label %7296

7296:                                             ; preds = %7291, %7295
  %.str.5.sink3794 = phi ptr [ @.str.5, %7295 ], [ @.str.2, %7291 ]
  store i32 %7286, ptr %556, align 4, !tbaa !5
  %7297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7298 = load i32, ptr @test_count, align 4, !tbaa !5
  %7299 = load i32, ptr %502, align 4, !tbaa !5
  %7300 = call ptr @s2n_strerror(i32 noundef %7299, ptr noundef nonnull @.str.4) #14
  %7301 = load i32, ptr %502, align 4, !tbaa !5
  %7302 = call ptr @s2n_strerror_debug(i32 noundef %7301, ptr noundef nonnull @.str.4) #14
  %7303 = load i32, ptr %556, align 4, !tbaa !5
  %7304 = call ptr @strerror(i32 noundef %7303) #14
  %7305 = load i32, ptr %556, align 4, !tbaa !5
  %7306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7297, ptr noundef nonnull %.str.5.sink3794, i32 noundef %7298, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 859, ptr noundef %7300, ptr noundef %7302, ptr noundef %7304, i32 noundef %7305) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7307:                                             ; preds = %7280
  %7308 = getelementptr inbounds i8, ptr %7281, i64 16
  store ptr %31, ptr %7308, align 8, !tbaa !77
  %7309 = getelementptr inbounds i8, ptr %7281, i64 656
  store ptr %5542, ptr %7309, align 8, !tbaa !56
  %7310 = add nsw i32 %7282, 2
  store i32 %7310, ptr @test_count, align 4, !tbaa !5
  %7311 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %7281, i8 noundef zeroext 33) #14
  %7312 = icmp eq i32 %7311, -1
  br i1 %7312, label %7313, label %7335

7313:                                             ; preds = %7307
  %7314 = load i32, ptr %556, align 4, !tbaa !5
  %7315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7316 = call i32 @s2n_print_stacktrace(ptr noundef %7315) #14
  %7317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7318 = trunc nuw i8 %7317 to i1
  br i1 %7318, label %7319, label %7323

7319:                                             ; preds = %7313
  %7320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7321 = call i32 @fileno(ptr noundef %7320) #14
  %7322 = call i32 @isatty(i32 noundef %7321) #14
  %.not1253 = icmp eq i32 %7322, 0
  br i1 %.not1253, label %7323, label %7324

7323:                                             ; preds = %7319, %7313
  br label %7324

7324:                                             ; preds = %7319, %7323
  %.str.5.sink3803 = phi ptr [ @.str.5, %7323 ], [ @.str.2, %7319 ]
  store i32 %7314, ptr %556, align 4, !tbaa !5
  %7325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7326 = load i32, ptr @test_count, align 4, !tbaa !5
  %7327 = load i32, ptr %502, align 4, !tbaa !5
  %7328 = call ptr @s2n_strerror(i32 noundef %7327, ptr noundef nonnull @.str.4) #14
  %7329 = load i32, ptr %502, align 4, !tbaa !5
  %7330 = call ptr @s2n_strerror_debug(i32 noundef %7329, ptr noundef nonnull @.str.4) #14
  %7331 = load i32, ptr %556, align 4, !tbaa !5
  %7332 = call ptr @strerror(i32 noundef %7331) #14
  %7333 = load i32, ptr %556, align 4, !tbaa !5
  %7334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7325, ptr noundef nonnull %.str.5.sink3803, i32 noundef %7326, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 862, ptr noundef %7328, ptr noundef %7330, ptr noundef %7332, i32 noundef %7333) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7335:                                             ; preds = %7307
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #14
  %7336 = call ptr @s2n_config_new() #14
  store ptr %7336, ptr %36, align 8, !tbaa !9
  %7337 = load i32, ptr @test_count, align 4, !tbaa !5
  %7338 = add nsw i32 %7337, 1
  store i32 %7338, ptr @test_count, align 4, !tbaa !5
  %7339 = icmp eq ptr %7336, null
  br i1 %7339, label %7340, label %7362

7340:                                             ; preds = %7335
  %7341 = load i32, ptr %556, align 4, !tbaa !5
  %7342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7343 = call i32 @s2n_print_stacktrace(ptr noundef %7342) #14
  %7344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7345 = trunc nuw i8 %7344 to i1
  br i1 %7345, label %7346, label %7350

7346:                                             ; preds = %7340
  %7347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7348 = call i32 @fileno(ptr noundef %7347) #14
  %7349 = call i32 @isatty(i32 noundef %7348) #14
  %.not1252 = icmp eq i32 %7349, 0
  br i1 %.not1252, label %7350, label %7351

7350:                                             ; preds = %7346, %7340
  br label %7351

7351:                                             ; preds = %7346, %7350
  %.str.5.sink3812 = phi ptr [ @.str.5, %7350 ], [ @.str.2, %7346 ]
  store i32 %7341, ptr %556, align 4, !tbaa !5
  %7352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7353 = load i32, ptr @test_count, align 4, !tbaa !5
  %7354 = load i32, ptr %502, align 4, !tbaa !5
  %7355 = call ptr @s2n_strerror(i32 noundef %7354, ptr noundef nonnull @.str.4) #14
  %7356 = load i32, ptr %502, align 4, !tbaa !5
  %7357 = call ptr @s2n_strerror_debug(i32 noundef %7356, ptr noundef nonnull @.str.4) #14
  %7358 = load i32, ptr %556, align 4, !tbaa !5
  %7359 = call ptr @strerror(i32 noundef %7358) #14
  %7360 = load i32, ptr %556, align 4, !tbaa !5
  %7361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7352, ptr noundef nonnull %.str.5.sink3812, i32 noundef %7353, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.1, i32 noundef 864, ptr noundef %7355, ptr noundef %7357, ptr noundef %7359, i32 noundef %7360) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7362:                                             ; preds = %7335
  %7363 = add nsw i32 %7337, 2
  store i32 %7363, ptr @test_count, align 4, !tbaa !5
  %7364 = load ptr, ptr %33, align 8, !tbaa !9
  %7365 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %7336, ptr noundef %7364) #14
  %7366 = icmp eq i32 %7365, -1
  br i1 %7366, label %7367, label %7389

7367:                                             ; preds = %7362
  %7368 = load i32, ptr %556, align 4, !tbaa !5
  %7369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7370 = call i32 @s2n_print_stacktrace(ptr noundef %7369) #14
  %7371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7372 = trunc nuw i8 %7371 to i1
  br i1 %7372, label %7373, label %7377

7373:                                             ; preds = %7367
  %7374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7375 = call i32 @fileno(ptr noundef %7374) #14
  %7376 = call i32 @isatty(i32 noundef %7375) #14
  %.not1251 = icmp eq i32 %7376, 0
  br i1 %.not1251, label %7377, label %7378

7377:                                             ; preds = %7373, %7367
  br label %7378

7378:                                             ; preds = %7373, %7377
  %.str.5.sink3821 = phi ptr [ @.str.5, %7377 ], [ @.str.2, %7373 ]
  store i32 %7368, ptr %556, align 4, !tbaa !5
  %7379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7380 = load i32, ptr @test_count, align 4, !tbaa !5
  %7381 = load i32, ptr %502, align 4, !tbaa !5
  %7382 = call ptr @s2n_strerror(i32 noundef %7381, ptr noundef nonnull @.str.4) #14
  %7383 = load i32, ptr %502, align 4, !tbaa !5
  %7384 = call ptr @s2n_strerror_debug(i32 noundef %7383, ptr noundef nonnull @.str.4) #14
  %7385 = load i32, ptr %556, align 4, !tbaa !5
  %7386 = call ptr @strerror(i32 noundef %7385) #14
  %7387 = load i32, ptr %556, align 4, !tbaa !5
  %7388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7379, ptr noundef nonnull %.str.5.sink3821, i32 noundef %7380, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.1, i32 noundef 865, ptr noundef %7382, ptr noundef %7384, ptr noundef %7386, i32 noundef %7387) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7389:                                             ; preds = %7362
  %7390 = load i32, ptr @test_count, align 4, !tbaa !5
  %7391 = add nsw i32 %7390, 1
  store i32 %7391, ptr @test_count, align 4, !tbaa !5
  %7392 = load ptr, ptr %35, align 8, !tbaa !9
  %7393 = load ptr, ptr %36, align 8, !tbaa !9
  %7394 = call i32 @s2n_connection_set_config(ptr noundef %7392, ptr noundef %7393) #14
  %7395 = icmp eq i32 %7394, -1
  br i1 %7395, label %7396, label %7418

7396:                                             ; preds = %7389
  %7397 = load i32, ptr %556, align 4, !tbaa !5
  %7398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7399 = call i32 @s2n_print_stacktrace(ptr noundef %7398) #14
  %7400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7401 = trunc nuw i8 %7400 to i1
  br i1 %7401, label %7402, label %7406

7402:                                             ; preds = %7396
  %7403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7404 = call i32 @fileno(ptr noundef %7403) #14
  %7405 = call i32 @isatty(i32 noundef %7404) #14
  %.not1250 = icmp eq i32 %7405, 0
  br i1 %.not1250, label %7406, label %7407

7406:                                             ; preds = %7402, %7396
  br label %7407

7407:                                             ; preds = %7402, %7406
  %.str.5.sink3830 = phi ptr [ @.str.5, %7406 ], [ @.str.2, %7402 ]
  store i32 %7397, ptr %556, align 4, !tbaa !5
  %7408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7409 = load i32, ptr @test_count, align 4, !tbaa !5
  %7410 = load i32, ptr %502, align 4, !tbaa !5
  %7411 = call ptr @s2n_strerror(i32 noundef %7410, ptr noundef nonnull @.str.4) #14
  %7412 = load i32, ptr %502, align 4, !tbaa !5
  %7413 = call ptr @s2n_strerror_debug(i32 noundef %7412, ptr noundef nonnull @.str.4) #14
  %7414 = load i32, ptr %556, align 4, !tbaa !5
  %7415 = call ptr @strerror(i32 noundef %7414) #14
  %7416 = load i32, ptr %556, align 4, !tbaa !5
  %7417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7408, ptr noundef nonnull %.str.5.sink3830, i32 noundef %7409, ptr noundef nonnull @.str.145, ptr noundef nonnull @.str.1, i32 noundef 867, ptr noundef %7411, ptr noundef %7413, ptr noundef %7415, i32 noundef %7416) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7418:                                             ; preds = %7389
  store i16 3, ptr %30, align 8, !tbaa !78
  %.sroa.2217.0..sroa_idx = getelementptr inbounds i8, ptr %30, i64 8
  store ptr @main.test_cipher_suite_list, ptr %.sroa.2217.0..sroa_idx, align 8, !tbaa !9
  %.sroa.3218.0..sroa_idx = getelementptr inbounds i8, ptr %30, i64 16
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %37) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %37, ptr noundef nonnull align 1 dereferenceable(6) @__const.main.wire.146, i64 6, i1 false)
  store i8 1, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %7419 = load i32, ptr @test_count, align 4, !tbaa !5
  %7420 = add nsw i32 %7419, 1
  store i32 %7420, ptr @test_count, align 4, !tbaa !5
  %7421 = load ptr, ptr %35, align 8, !tbaa !9
  %7422 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %7421, ptr noundef nonnull %37, i16 noundef zeroext 3) #14
  %7423 = icmp eq i32 %7422, -1
  br i1 %7423, label %7424, label %7446

7424:                                             ; preds = %7418
  %7425 = load i32, ptr %556, align 4, !tbaa !5
  %7426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7427 = call i32 @s2n_print_stacktrace(ptr noundef %7426) #14
  %7428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7429 = trunc nuw i8 %7428 to i1
  br i1 %7429, label %7430, label %7434

7430:                                             ; preds = %7424
  %7431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7432 = call i32 @fileno(ptr noundef %7431) #14
  %7433 = call i32 @isatty(i32 noundef %7432) #14
  %.not1249 = icmp eq i32 %7433, 0
  br i1 %.not1249, label %7434, label %7435

7434:                                             ; preds = %7430, %7424
  br label %7435

7435:                                             ; preds = %7430, %7434
  %.str.5.sink3839 = phi ptr [ @.str.5, %7434 ], [ @.str.2, %7430 ]
  store i32 %7425, ptr %556, align 4, !tbaa !5
  %7436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7437 = load i32, ptr @test_count, align 4, !tbaa !5
  %7438 = load i32, ptr %502, align 4, !tbaa !5
  %7439 = call ptr @s2n_strerror(i32 noundef %7438, ptr noundef nonnull @.str.4) #14
  %7440 = load i32, ptr %502, align 4, !tbaa !5
  %7441 = call ptr @s2n_strerror_debug(i32 noundef %7440, ptr noundef nonnull @.str.4) #14
  %7442 = load i32, ptr %556, align 4, !tbaa !5
  %7443 = call ptr @strerror(i32 noundef %7442) #14
  %7444 = load i32, ptr %556, align 4, !tbaa !5
  %7445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7436, ptr noundef nonnull %.str.5.sink3839, i32 noundef %7437, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 896, ptr noundef %7439, ptr noundef %7441, ptr noundef %7443, i32 noundef %7444) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7446:                                             ; preds = %7418
  %7447 = load i32, ptr @test_count, align 4, !tbaa !5
  %7448 = add nsw i32 %7447, 1
  store i32 %7448, ptr @test_count, align 4, !tbaa !5
  %7449 = load ptr, ptr %35, align 8, !tbaa !9
  %7450 = getelementptr inbounds i8, ptr %7449, i64 232
  %7451 = load ptr, ptr %7450, align 8, !tbaa !48
  %7452 = load ptr, ptr %7451, align 8, !tbaa !49
  %7453 = icmp eq ptr %7452, @s2n_ecdhe_rsa_with_chacha20_poly1305_sha256
  br i1 %7453, label %7476, label %7454

7454:                                             ; preds = %7446
  %7455 = load i32, ptr %556, align 4, !tbaa !5
  %7456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7457 = call i32 @s2n_print_stacktrace(ptr noundef %7456) #14
  %7458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7459 = trunc nuw i8 %7458 to i1
  br i1 %7459, label %7460, label %7464

7460:                                             ; preds = %7454
  %7461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7462 = call i32 @fileno(ptr noundef %7461) #14
  %7463 = call i32 @isatty(i32 noundef %7462) #14
  %.not1178 = icmp eq i32 %7463, 0
  br i1 %.not1178, label %7464, label %7465

7464:                                             ; preds = %7460, %7454
  br label %7465

7465:                                             ; preds = %7460, %7464
  %.str.5.sink3848 = phi ptr [ @.str.5, %7464 ], [ @.str.2, %7460 ]
  store i32 %7455, ptr %556, align 4, !tbaa !5
  %7466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7467 = load i32, ptr @test_count, align 4, !tbaa !5
  %7468 = load i32, ptr %502, align 4, !tbaa !5
  %7469 = call ptr @s2n_strerror(i32 noundef %7468, ptr noundef nonnull @.str.4) #14
  %7470 = load i32, ptr %502, align 4, !tbaa !5
  %7471 = call ptr @s2n_strerror_debug(i32 noundef %7470, ptr noundef nonnull @.str.4) #14
  %7472 = load i32, ptr %556, align 4, !tbaa !5
  %7473 = call ptr @strerror(i32 noundef %7472) #14
  %7474 = load i32, ptr %556, align 4, !tbaa !5
  %7475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7466, ptr noundef nonnull %.str.5.sink3848, i32 noundef %7467, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 897, ptr noundef %7469, ptr noundef %7471, ptr noundef %7473, i32 noundef %7474) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7476:                                             ; preds = %7446
  store i8 0, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %7477 = add nsw i32 %7447, 2
  store i32 %7477, ptr @test_count, align 4, !tbaa !5
  %7478 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %7449, ptr noundef nonnull %37, i16 noundef zeroext 3) #14
  %7479 = icmp eq i32 %7478, -1
  br i1 %7479, label %7480, label %7502

7480:                                             ; preds = %7476
  %7481 = load i32, ptr %556, align 4, !tbaa !5
  %7482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7483 = call i32 @s2n_print_stacktrace(ptr noundef %7482) #14
  %7484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7485 = trunc nuw i8 %7484 to i1
  br i1 %7485, label %7486, label %7490

7486:                                             ; preds = %7480
  %7487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7488 = call i32 @fileno(ptr noundef %7487) #14
  %7489 = call i32 @isatty(i32 noundef %7488) #14
  %.not1248 = icmp eq i32 %7489, 0
  br i1 %.not1248, label %7490, label %7491

7490:                                             ; preds = %7486, %7480
  br label %7491

7491:                                             ; preds = %7486, %7490
  %.str.5.sink3857 = phi ptr [ @.str.5, %7490 ], [ @.str.2, %7486 ]
  store i32 %7481, ptr %556, align 4, !tbaa !5
  %7492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7493 = load i32, ptr @test_count, align 4, !tbaa !5
  %7494 = load i32, ptr %502, align 4, !tbaa !5
  %7495 = call ptr @s2n_strerror(i32 noundef %7494, ptr noundef nonnull @.str.4) #14
  %7496 = load i32, ptr %502, align 4, !tbaa !5
  %7497 = call ptr @s2n_strerror_debug(i32 noundef %7496, ptr noundef nonnull @.str.4) #14
  %7498 = load i32, ptr %556, align 4, !tbaa !5
  %7499 = call ptr @strerror(i32 noundef %7498) #14
  %7500 = load i32, ptr %556, align 4, !tbaa !5
  %7501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7492, ptr noundef nonnull %.str.5.sink3857, i32 noundef %7493, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 902, ptr noundef %7495, ptr noundef %7497, ptr noundef %7499, i32 noundef %7500) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7502:                                             ; preds = %7476
  %7503 = load i32, ptr @test_count, align 4, !tbaa !5
  %7504 = add nsw i32 %7503, 1
  store i32 %7504, ptr @test_count, align 4, !tbaa !5
  %7505 = load ptr, ptr %35, align 8, !tbaa !9
  %7506 = getelementptr inbounds i8, ptr %7505, i64 232
  %7507 = load ptr, ptr %7506, align 8, !tbaa !48
  %7508 = load ptr, ptr %7507, align 8, !tbaa !49
  %7509 = icmp eq ptr %7508, @s2n_ecdhe_rsa_with_aes_256_gcm_sha384
  br i1 %7509, label %7532, label %7510

7510:                                             ; preds = %7502
  %7511 = load i32, ptr %556, align 4, !tbaa !5
  %7512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7513 = call i32 @s2n_print_stacktrace(ptr noundef %7512) #14
  %7514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7515 = trunc nuw i8 %7514 to i1
  br i1 %7515, label %7516, label %7520

7516:                                             ; preds = %7510
  %7517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7518 = call i32 @fileno(ptr noundef %7517) #14
  %7519 = call i32 @isatty(i32 noundef %7518) #14
  %.not1179 = icmp eq i32 %7519, 0
  br i1 %.not1179, label %7520, label %7521

7520:                                             ; preds = %7516, %7510
  br label %7521

7521:                                             ; preds = %7516, %7520
  %.str.5.sink3866 = phi ptr [ @.str.5, %7520 ], [ @.str.2, %7516 ]
  store i32 %7511, ptr %556, align 4, !tbaa !5
  %7522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7523 = load i32, ptr @test_count, align 4, !tbaa !5
  %7524 = load i32, ptr %502, align 4, !tbaa !5
  %7525 = call ptr @s2n_strerror(i32 noundef %7524, ptr noundef nonnull @.str.4) #14
  %7526 = load i32, ptr %502, align 4, !tbaa !5
  %7527 = call ptr @s2n_strerror_debug(i32 noundef %7526, ptr noundef nonnull @.str.4) #14
  %7528 = load i32, ptr %556, align 4, !tbaa !5
  %7529 = call ptr @strerror(i32 noundef %7528) #14
  %7530 = load i32, ptr %556, align 4, !tbaa !5
  %7531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7522, ptr noundef nonnull %.str.5.sink3866, i32 noundef %7523, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.1, i32 noundef 903, ptr noundef %7525, ptr noundef %7527, ptr noundef %7529, i32 noundef %7530) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7532:                                             ; preds = %7502
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %37) #14
  %7533 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %36) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #14
  %7534 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %35) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #14
  %7535 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %7535, ptr %38, align 8, !tbaa !9
  %7536 = load i32, ptr @test_count, align 4, !tbaa !5
  %7537 = add nsw i32 %7536, 1
  store i32 %7537, ptr @test_count, align 4, !tbaa !5
  %7538 = icmp eq ptr %7535, null
  br i1 %7538, label %7539, label %7561

7539:                                             ; preds = %7532
  %7540 = load i32, ptr %556, align 4, !tbaa !5
  %7541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7542 = call i32 @s2n_print_stacktrace(ptr noundef %7541) #14
  %7543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7544 = trunc nuw i8 %7543 to i1
  br i1 %7544, label %7545, label %7549

7545:                                             ; preds = %7539
  %7546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7547 = call i32 @fileno(ptr noundef %7546) #14
  %7548 = call i32 @isatty(i32 noundef %7547) #14
  %.not1247 = icmp eq i32 %7548, 0
  br i1 %.not1247, label %7549, label %7550

7549:                                             ; preds = %7545, %7539
  br label %7550

7550:                                             ; preds = %7545, %7549
  %.str.5.sink3875 = phi ptr [ @.str.5, %7549 ], [ @.str.2, %7545 ]
  store i32 %7540, ptr %556, align 4, !tbaa !5
  %7551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7552 = load i32, ptr @test_count, align 4, !tbaa !5
  %7553 = load i32, ptr %502, align 4, !tbaa !5
  %7554 = call ptr @s2n_strerror(i32 noundef %7553, ptr noundef nonnull @.str.4) #14
  %7555 = load i32, ptr %502, align 4, !tbaa !5
  %7556 = call ptr @s2n_strerror_debug(i32 noundef %7555, ptr noundef nonnull @.str.4) #14
  %7557 = load i32, ptr %556, align 4, !tbaa !5
  %7558 = call ptr @strerror(i32 noundef %7557) #14
  %7559 = load i32, ptr %556, align 4, !tbaa !5
  %7560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7551, ptr noundef nonnull %.str.5.sink3875, i32 noundef %7552, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 909, ptr noundef %7554, ptr noundef %7556, ptr noundef %7558, i32 noundef %7559) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7561:                                             ; preds = %7532
  %7562 = getelementptr inbounds i8, ptr %7535, i64 16
  store ptr %31, ptr %7562, align 8, !tbaa !77
  %7563 = getelementptr inbounds i8, ptr %7535, i64 656
  store ptr %5542, ptr %7563, align 8, !tbaa !56
  %7564 = add nsw i32 %7536, 2
  store i32 %7564, ptr @test_count, align 4, !tbaa !5
  %7565 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %7535, i8 noundef zeroext 33) #14
  %7566 = icmp eq i32 %7565, -1
  br i1 %7566, label %7567, label %7589

7567:                                             ; preds = %7561
  %7568 = load i32, ptr %556, align 4, !tbaa !5
  %7569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7570 = call i32 @s2n_print_stacktrace(ptr noundef %7569) #14
  %7571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7572 = trunc nuw i8 %7571 to i1
  br i1 %7572, label %7573, label %7577

7573:                                             ; preds = %7567
  %7574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7575 = call i32 @fileno(ptr noundef %7574) #14
  %7576 = call i32 @isatty(i32 noundef %7575) #14
  %.not1246 = icmp eq i32 %7576, 0
  br i1 %.not1246, label %7577, label %7578

7577:                                             ; preds = %7573, %7567
  br label %7578

7578:                                             ; preds = %7573, %7577
  %.str.5.sink3884 = phi ptr [ @.str.5, %7577 ], [ @.str.2, %7573 ]
  store i32 %7568, ptr %556, align 4, !tbaa !5
  %7579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7580 = load i32, ptr @test_count, align 4, !tbaa !5
  %7581 = load i32, ptr %502, align 4, !tbaa !5
  %7582 = call ptr @s2n_strerror(i32 noundef %7581, ptr noundef nonnull @.str.4) #14
  %7583 = load i32, ptr %502, align 4, !tbaa !5
  %7584 = call ptr @s2n_strerror_debug(i32 noundef %7583, ptr noundef nonnull @.str.4) #14
  %7585 = load i32, ptr %556, align 4, !tbaa !5
  %7586 = call ptr @strerror(i32 noundef %7585) #14
  %7587 = load i32, ptr %556, align 4, !tbaa !5
  %7588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7579, ptr noundef nonnull %.str.5.sink3884, i32 noundef %7580, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 912, ptr noundef %7582, ptr noundef %7584, ptr noundef %7586, i32 noundef %7587) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7589:                                             ; preds = %7561
  %7590 = load i32, ptr @test_count, align 4, !tbaa !5
  %7591 = add nsw i32 %7590, 1
  store i32 %7591, ptr @test_count, align 4, !tbaa !5
  %7592 = load ptr, ptr %38, align 8, !tbaa !9
  %7593 = call i32 @s2n_connection_set_config(ptr noundef %7592, ptr noundef nonnull %7065) #14
  %7594 = icmp eq i32 %7593, -1
  br i1 %7594, label %7595, label %7617

7595:                                             ; preds = %7589
  %7596 = load i32, ptr %556, align 4, !tbaa !5
  %7597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7598 = call i32 @s2n_print_stacktrace(ptr noundef %7597) #14
  %7599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7600 = trunc nuw i8 %7599 to i1
  br i1 %7600, label %7601, label %7605

7601:                                             ; preds = %7595
  %7602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7603 = call i32 @fileno(ptr noundef %7602) #14
  %7604 = call i32 @isatty(i32 noundef %7603) #14
  %.not1245 = icmp eq i32 %7604, 0
  br i1 %.not1245, label %7605, label %7606

7605:                                             ; preds = %7601, %7595
  br label %7606

7606:                                             ; preds = %7601, %7605
  %.str.5.sink3893 = phi ptr [ @.str.5, %7605 ], [ @.str.2, %7601 ]
  store i32 %7596, ptr %556, align 4, !tbaa !5
  %7607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7608 = load i32, ptr @test_count, align 4, !tbaa !5
  %7609 = load i32, ptr %502, align 4, !tbaa !5
  %7610 = call ptr @s2n_strerror(i32 noundef %7609, ptr noundef nonnull @.str.4) #14
  %7611 = load i32, ptr %502, align 4, !tbaa !5
  %7612 = call ptr @s2n_strerror_debug(i32 noundef %7611, ptr noundef nonnull @.str.4) #14
  %7613 = load i32, ptr %556, align 4, !tbaa !5
  %7614 = call ptr @strerror(i32 noundef %7613) #14
  %7615 = load i32, ptr %556, align 4, !tbaa !5
  %7616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7607, ptr noundef nonnull %.str.5.sink3893, i32 noundef %7608, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 913, ptr noundef %7610, ptr noundef %7612, ptr noundef %7614, i32 noundef %7615) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7617:                                             ; preds = %7589
  store i16 3, ptr %30, align 8, !tbaa !78
  store ptr @main.test_cipher_suite_list.151, ptr %.sroa.2217.0..sroa_idx, align 8, !tbaa !9
  store i8 1, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %39) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %39, ptr noundef nonnull align 1 dereferenceable(6) @__const.main.wire.152, i64 6, i1 false)
  %7618 = load i32, ptr @test_count, align 4, !tbaa !5
  %7619 = add nsw i32 %7618, 1
  store i32 %7619, ptr @test_count, align 4, !tbaa !5
  %7620 = load ptr, ptr %38, align 8, !tbaa !9
  %7621 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %7620, ptr noundef nonnull %39, i16 noundef zeroext 3) #14
  %7622 = icmp eq i32 %7621, -1
  br i1 %7622, label %7623, label %7645

7623:                                             ; preds = %7617
  %7624 = load i32, ptr %556, align 4, !tbaa !5
  %7625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7626 = call i32 @s2n_print_stacktrace(ptr noundef %7625) #14
  %7627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7628 = trunc nuw i8 %7627 to i1
  br i1 %7628, label %7629, label %7633

7629:                                             ; preds = %7623
  %7630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7631 = call i32 @fileno(ptr noundef %7630) #14
  %7632 = call i32 @isatty(i32 noundef %7631) #14
  %.not1244 = icmp eq i32 %7632, 0
  br i1 %.not1244, label %7633, label %7634

7633:                                             ; preds = %7629, %7623
  br label %7634

7634:                                             ; preds = %7629, %7633
  %.str.5.sink3902 = phi ptr [ @.str.5, %7633 ], [ @.str.2, %7629 ]
  store i32 %7624, ptr %556, align 4, !tbaa !5
  %7635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7636 = load i32, ptr @test_count, align 4, !tbaa !5
  %7637 = load i32, ptr %502, align 4, !tbaa !5
  %7638 = call ptr @s2n_strerror(i32 noundef %7637, ptr noundef nonnull @.str.4) #14
  %7639 = load i32, ptr %502, align 4, !tbaa !5
  %7640 = call ptr @s2n_strerror_debug(i32 noundef %7639, ptr noundef nonnull @.str.4) #14
  %7641 = load i32, ptr %556, align 4, !tbaa !5
  %7642 = call ptr @strerror(i32 noundef %7641) #14
  %7643 = load i32, ptr %556, align 4, !tbaa !5
  %7644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7635, ptr noundef nonnull %.str.5.sink3902, i32 noundef %7636, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 941, ptr noundef %7638, ptr noundef %7640, ptr noundef %7642, i32 noundef %7643) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7645:                                             ; preds = %7617
  %7646 = load i32, ptr @test_count, align 4, !tbaa !5
  %7647 = add nsw i32 %7646, 1
  store i32 %7647, ptr @test_count, align 4, !tbaa !5
  %7648 = load ptr, ptr %38, align 8, !tbaa !9
  %7649 = getelementptr inbounds i8, ptr %7648, i64 232
  %7650 = load ptr, ptr %7649, align 8, !tbaa !48
  %7651 = load ptr, ptr %7650, align 8, !tbaa !49
  %7652 = icmp eq ptr %7651, @s2n_ecdhe_ecdsa_with_chacha20_poly1305_sha256
  br i1 %7652, label %7675, label %7653

7653:                                             ; preds = %7645
  %7654 = load i32, ptr %556, align 4, !tbaa !5
  %7655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7656 = call i32 @s2n_print_stacktrace(ptr noundef %7655) #14
  %7657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7658 = trunc nuw i8 %7657 to i1
  br i1 %7658, label %7659, label %7663

7659:                                             ; preds = %7653
  %7660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7661 = call i32 @fileno(ptr noundef %7660) #14
  %7662 = call i32 @isatty(i32 noundef %7661) #14
  %.not1180 = icmp eq i32 %7662, 0
  br i1 %.not1180, label %7663, label %7664

7663:                                             ; preds = %7659, %7653
  br label %7664

7664:                                             ; preds = %7659, %7663
  %.str.5.sink3911 = phi ptr [ @.str.5, %7663 ], [ @.str.2, %7659 ]
  store i32 %7654, ptr %556, align 4, !tbaa !5
  %7665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7666 = load i32, ptr @test_count, align 4, !tbaa !5
  %7667 = load i32, ptr %502, align 4, !tbaa !5
  %7668 = call ptr @s2n_strerror(i32 noundef %7667, ptr noundef nonnull @.str.4) #14
  %7669 = load i32, ptr %502, align 4, !tbaa !5
  %7670 = call ptr @s2n_strerror_debug(i32 noundef %7669, ptr noundef nonnull @.str.4) #14
  %7671 = load i32, ptr %556, align 4, !tbaa !5
  %7672 = call ptr @strerror(i32 noundef %7671) #14
  %7673 = load i32, ptr %556, align 4, !tbaa !5
  %7674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7665, ptr noundef nonnull %.str.5.sink3911, i32 noundef %7666, ptr noundef nonnull @.str.153, ptr noundef nonnull @.str.1, i32 noundef 942, ptr noundef %7668, ptr noundef %7670, ptr noundef %7672, i32 noundef %7673) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7675:                                             ; preds = %7645
  store i8 0, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %7676 = add nsw i32 %7646, 2
  store i32 %7676, ptr @test_count, align 4, !tbaa !5
  %7677 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %7648, ptr noundef nonnull %39, i16 noundef zeroext 3) #14
  %7678 = icmp eq i32 %7677, -1
  br i1 %7678, label %7679, label %7701

7679:                                             ; preds = %7675
  %7680 = load i32, ptr %556, align 4, !tbaa !5
  %7681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7682 = call i32 @s2n_print_stacktrace(ptr noundef %7681) #14
  %7683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7684 = trunc nuw i8 %7683 to i1
  br i1 %7684, label %7685, label %7689

7685:                                             ; preds = %7679
  %7686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7687 = call i32 @fileno(ptr noundef %7686) #14
  %7688 = call i32 @isatty(i32 noundef %7687) #14
  %.not1243 = icmp eq i32 %7688, 0
  br i1 %.not1243, label %7689, label %7690

7689:                                             ; preds = %7685, %7679
  br label %7690

7690:                                             ; preds = %7685, %7689
  %.str.5.sink3920 = phi ptr [ @.str.5, %7689 ], [ @.str.2, %7685 ]
  store i32 %7680, ptr %556, align 4, !tbaa !5
  %7691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7692 = load i32, ptr @test_count, align 4, !tbaa !5
  %7693 = load i32, ptr %502, align 4, !tbaa !5
  %7694 = call ptr @s2n_strerror(i32 noundef %7693, ptr noundef nonnull @.str.4) #14
  %7695 = load i32, ptr %502, align 4, !tbaa !5
  %7696 = call ptr @s2n_strerror_debug(i32 noundef %7695, ptr noundef nonnull @.str.4) #14
  %7697 = load i32, ptr %556, align 4, !tbaa !5
  %7698 = call ptr @strerror(i32 noundef %7697) #14
  %7699 = load i32, ptr %556, align 4, !tbaa !5
  %7700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7691, ptr noundef nonnull %.str.5.sink3920, i32 noundef %7692, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 946, ptr noundef %7694, ptr noundef %7696, ptr noundef %7698, i32 noundef %7699) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7701:                                             ; preds = %7675
  %7702 = load i32, ptr @test_count, align 4, !tbaa !5
  %7703 = add nsw i32 %7702, 1
  store i32 %7703, ptr @test_count, align 4, !tbaa !5
  %7704 = load ptr, ptr %38, align 8, !tbaa !9
  %7705 = getelementptr inbounds i8, ptr %7704, i64 232
  %7706 = load ptr, ptr %7705, align 8, !tbaa !48
  %7707 = load ptr, ptr %7706, align 8, !tbaa !49
  %7708 = icmp eq ptr %7707, @s2n_ecdhe_rsa_with_aes_256_cbc_sha384
  br i1 %7708, label %7731, label %7709

7709:                                             ; preds = %7701
  %7710 = load i32, ptr %556, align 4, !tbaa !5
  %7711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7712 = call i32 @s2n_print_stacktrace(ptr noundef %7711) #14
  %7713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7714 = trunc nuw i8 %7713 to i1
  br i1 %7714, label %7715, label %7719

7715:                                             ; preds = %7709
  %7716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7717 = call i32 @fileno(ptr noundef %7716) #14
  %7718 = call i32 @isatty(i32 noundef %7717) #14
  %.not1181 = icmp eq i32 %7718, 0
  br i1 %.not1181, label %7719, label %7720

7719:                                             ; preds = %7715, %7709
  br label %7720

7720:                                             ; preds = %7715, %7719
  %.str.5.sink3929 = phi ptr [ @.str.5, %7719 ], [ @.str.2, %7715 ]
  store i32 %7710, ptr %556, align 4, !tbaa !5
  %7721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7722 = load i32, ptr @test_count, align 4, !tbaa !5
  %7723 = load i32, ptr %502, align 4, !tbaa !5
  %7724 = call ptr @s2n_strerror(i32 noundef %7723, ptr noundef nonnull @.str.4) #14
  %7725 = load i32, ptr %502, align 4, !tbaa !5
  %7726 = call ptr @s2n_strerror_debug(i32 noundef %7725, ptr noundef nonnull @.str.4) #14
  %7727 = load i32, ptr %556, align 4, !tbaa !5
  %7728 = call ptr @strerror(i32 noundef %7727) #14
  %7729 = load i32, ptr %556, align 4, !tbaa !5
  %7730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7721, ptr noundef nonnull %.str.5.sink3929, i32 noundef %7722, ptr noundef nonnull @.str.154, ptr noundef nonnull @.str.1, i32 noundef 947, ptr noundef %7724, ptr noundef %7726, ptr noundef %7728, i32 noundef %7729) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7731:                                             ; preds = %7701
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %39) #14
  %7732 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %38) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #14
  %7733 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %7733, ptr %40, align 8, !tbaa !9
  %7734 = load i32, ptr @test_count, align 4, !tbaa !5
  %7735 = add nsw i32 %7734, 1
  store i32 %7735, ptr @test_count, align 4, !tbaa !5
  %7736 = icmp eq ptr %7733, null
  br i1 %7736, label %7737, label %7759

7737:                                             ; preds = %7731
  %7738 = load i32, ptr %556, align 4, !tbaa !5
  %7739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7740 = call i32 @s2n_print_stacktrace(ptr noundef %7739) #14
  %7741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7742 = trunc nuw i8 %7741 to i1
  br i1 %7742, label %7743, label %7747

7743:                                             ; preds = %7737
  %7744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7745 = call i32 @fileno(ptr noundef %7744) #14
  %7746 = call i32 @isatty(i32 noundef %7745) #14
  %.not1242 = icmp eq i32 %7746, 0
  br i1 %.not1242, label %7747, label %7748

7747:                                             ; preds = %7743, %7737
  br label %7748

7748:                                             ; preds = %7743, %7747
  %.str.5.sink3938 = phi ptr [ @.str.5, %7747 ], [ @.str.2, %7743 ]
  store i32 %7738, ptr %556, align 4, !tbaa !5
  %7749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7750 = load i32, ptr @test_count, align 4, !tbaa !5
  %7751 = load i32, ptr %502, align 4, !tbaa !5
  %7752 = call ptr @s2n_strerror(i32 noundef %7751, ptr noundef nonnull @.str.4) #14
  %7753 = load i32, ptr %502, align 4, !tbaa !5
  %7754 = call ptr @s2n_strerror_debug(i32 noundef %7753, ptr noundef nonnull @.str.4) #14
  %7755 = load i32, ptr %556, align 4, !tbaa !5
  %7756 = call ptr @strerror(i32 noundef %7755) #14
  %7757 = load i32, ptr %556, align 4, !tbaa !5
  %7758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7749, ptr noundef nonnull %.str.5.sink3938, i32 noundef %7750, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 953, ptr noundef %7752, ptr noundef %7754, ptr noundef %7756, i32 noundef %7757) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7759:                                             ; preds = %7731
  %7760 = getelementptr inbounds i8, ptr %7733, i64 16
  store ptr %31, ptr %7760, align 8, !tbaa !77
  %7761 = getelementptr inbounds i8, ptr %7733, i64 656
  store ptr %5542, ptr %7761, align 8, !tbaa !56
  %7762 = add nsw i32 %7734, 2
  store i32 %7762, ptr @test_count, align 4, !tbaa !5
  %7763 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %7733, i8 noundef zeroext 33) #14
  %7764 = icmp eq i32 %7763, -1
  br i1 %7764, label %7765, label %7787

7765:                                             ; preds = %7759
  %7766 = load i32, ptr %556, align 4, !tbaa !5
  %7767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7768 = call i32 @s2n_print_stacktrace(ptr noundef %7767) #14
  %7769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7770 = trunc nuw i8 %7769 to i1
  br i1 %7770, label %7771, label %7775

7771:                                             ; preds = %7765
  %7772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7773 = call i32 @fileno(ptr noundef %7772) #14
  %7774 = call i32 @isatty(i32 noundef %7773) #14
  %.not1241 = icmp eq i32 %7774, 0
  br i1 %.not1241, label %7775, label %7776

7775:                                             ; preds = %7771, %7765
  br label %7776

7776:                                             ; preds = %7771, %7775
  %.str.5.sink3947 = phi ptr [ @.str.5, %7775 ], [ @.str.2, %7771 ]
  store i32 %7766, ptr %556, align 4, !tbaa !5
  %7777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7778 = load i32, ptr @test_count, align 4, !tbaa !5
  %7779 = load i32, ptr %502, align 4, !tbaa !5
  %7780 = call ptr @s2n_strerror(i32 noundef %7779, ptr noundef nonnull @.str.4) #14
  %7781 = load i32, ptr %502, align 4, !tbaa !5
  %7782 = call ptr @s2n_strerror_debug(i32 noundef %7781, ptr noundef nonnull @.str.4) #14
  %7783 = load i32, ptr %556, align 4, !tbaa !5
  %7784 = call ptr @strerror(i32 noundef %7783) #14
  %7785 = load i32, ptr %556, align 4, !tbaa !5
  %7786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7777, ptr noundef nonnull %.str.5.sink3947, i32 noundef %7778, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 956, ptr noundef %7780, ptr noundef %7782, ptr noundef %7784, i32 noundef %7785) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7787:                                             ; preds = %7759
  %7788 = load i32, ptr @test_count, align 4, !tbaa !5
  %7789 = add nsw i32 %7788, 1
  store i32 %7789, ptr @test_count, align 4, !tbaa !5
  %7790 = load ptr, ptr %40, align 8, !tbaa !9
  %7791 = call i32 @s2n_connection_set_config(ptr noundef %7790, ptr noundef nonnull %7065) #14
  %7792 = icmp eq i32 %7791, -1
  br i1 %7792, label %7793, label %7815

7793:                                             ; preds = %7787
  %7794 = load i32, ptr %556, align 4, !tbaa !5
  %7795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7796 = call i32 @s2n_print_stacktrace(ptr noundef %7795) #14
  %7797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7798 = trunc nuw i8 %7797 to i1
  br i1 %7798, label %7799, label %7803

7799:                                             ; preds = %7793
  %7800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7801 = call i32 @fileno(ptr noundef %7800) #14
  %7802 = call i32 @isatty(i32 noundef %7801) #14
  %.not1240 = icmp eq i32 %7802, 0
  br i1 %.not1240, label %7803, label %7804

7803:                                             ; preds = %7799, %7793
  br label %7804

7804:                                             ; preds = %7799, %7803
  %.str.5.sink3956 = phi ptr [ @.str.5, %7803 ], [ @.str.2, %7799 ]
  store i32 %7794, ptr %556, align 4, !tbaa !5
  %7805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7806 = load i32, ptr @test_count, align 4, !tbaa !5
  %7807 = load i32, ptr %502, align 4, !tbaa !5
  %7808 = call ptr @s2n_strerror(i32 noundef %7807, ptr noundef nonnull @.str.4) #14
  %7809 = load i32, ptr %502, align 4, !tbaa !5
  %7810 = call ptr @s2n_strerror_debug(i32 noundef %7809, ptr noundef nonnull @.str.4) #14
  %7811 = load i32, ptr %556, align 4, !tbaa !5
  %7812 = call ptr @strerror(i32 noundef %7811) #14
  %7813 = load i32, ptr %556, align 4, !tbaa !5
  %7814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7805, ptr noundef nonnull %.str.5.sink3956, i32 noundef %7806, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 957, ptr noundef %7808, ptr noundef %7810, ptr noundef %7812, i32 noundef %7813) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7815:                                             ; preds = %7787
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #14
  %7816 = load i32, ptr @__const.main.wire.156, align 1
  store i32 %7816, ptr %41, align 4
  store i16 3, ptr %30, align 8, !tbaa !78
  store ptr @main.test_cipher_suite_list.155, ptr %.sroa.2217.0..sroa_idx, align 8, !tbaa !9
  store i8 1, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %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 %40, align 8, !tbaa !9
  %7820 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %7819, ptr noundef nonnull %41, i16 noundef zeroext 2) #14
  %7821 = icmp eq i32 %7820, -1
  br i1 %7821, label %7822, label %7844

7822:                                             ; preds = %7815
  %7823 = load i32, ptr %556, align 4, !tbaa !5
  %7824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7825 = call i32 @s2n_print_stacktrace(ptr noundef %7824) #14
  %7826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7827 = trunc nuw i8 %7826 to i1
  br i1 %7827, label %7828, label %7832

7828:                                             ; preds = %7822
  %7829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7830 = call i32 @fileno(ptr noundef %7829) #14
  %7831 = call i32 @isatty(i32 noundef %7830) #14
  %.not1239 = icmp eq i32 %7831, 0
  br i1 %.not1239, label %7832, label %7833

7832:                                             ; preds = %7828, %7822
  br label %7833

7833:                                             ; preds = %7828, %7832
  %.str.5.sink3965 = phi ptr [ @.str.5, %7832 ], [ @.str.2, %7828 ]
  store i32 %7823, ptr %556, align 4, !tbaa !5
  %7834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7835 = load i32, ptr @test_count, align 4, !tbaa !5
  %7836 = load i32, ptr %502, align 4, !tbaa !5
  %7837 = call ptr @s2n_strerror(i32 noundef %7836, ptr noundef nonnull @.str.4) #14
  %7838 = load i32, ptr %502, align 4, !tbaa !5
  %7839 = call ptr @s2n_strerror_debug(i32 noundef %7838, ptr noundef nonnull @.str.4) #14
  %7840 = load i32, ptr %556, align 4, !tbaa !5
  %7841 = call ptr @strerror(i32 noundef %7840) #14
  %7842 = load i32, ptr %556, align 4, !tbaa !5
  %7843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7834, ptr noundef nonnull %.str.5.sink3965, i32 noundef %7835, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 984, ptr noundef %7837, ptr noundef %7839, ptr noundef %7841, i32 noundef %7842) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7844:                                             ; preds = %7815
  %7845 = load i32, ptr @test_count, align 4, !tbaa !5
  %7846 = add nsw i32 %7845, 1
  store i32 %7846, ptr @test_count, align 4, !tbaa !5
  %7847 = load ptr, ptr %40, align 8, !tbaa !9
  %7848 = getelementptr inbounds i8, ptr %7847, i64 232
  %7849 = load ptr, ptr %7848, align 8, !tbaa !48
  %7850 = load ptr, ptr %7849, align 8, !tbaa !49
  %7851 = icmp eq ptr %7850, @s2n_ecdhe_rsa_with_chacha20_poly1305_sha256
  br i1 %7851, label %7874, label %7852

7852:                                             ; preds = %7844
  %7853 = load i32, ptr %556, align 4, !tbaa !5
  %7854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7855 = call i32 @s2n_print_stacktrace(ptr noundef %7854) #14
  %7856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7857 = trunc nuw i8 %7856 to i1
  br i1 %7857, label %7858, label %7862

7858:                                             ; preds = %7852
  %7859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7860 = call i32 @fileno(ptr noundef %7859) #14
  %7861 = call i32 @isatty(i32 noundef %7860) #14
  %.not1182 = icmp eq i32 %7861, 0
  br i1 %.not1182, label %7862, label %7863

7862:                                             ; preds = %7858, %7852
  br label %7863

7863:                                             ; preds = %7858, %7862
  %.str.5.sink3974 = phi ptr [ @.str.5, %7862 ], [ @.str.2, %7858 ]
  store i32 %7853, ptr %556, align 4, !tbaa !5
  %7864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7865 = load i32, ptr @test_count, align 4, !tbaa !5
  %7866 = load i32, ptr %502, align 4, !tbaa !5
  %7867 = call ptr @s2n_strerror(i32 noundef %7866, ptr noundef nonnull @.str.4) #14
  %7868 = load i32, ptr %502, align 4, !tbaa !5
  %7869 = call ptr @s2n_strerror_debug(i32 noundef %7868, ptr noundef nonnull @.str.4) #14
  %7870 = load i32, ptr %556, align 4, !tbaa !5
  %7871 = call ptr @strerror(i32 noundef %7870) #14
  %7872 = load i32, ptr %556, align 4, !tbaa !5
  %7873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7864, ptr noundef nonnull %.str.5.sink3974, i32 noundef %7865, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 985, ptr noundef %7867, ptr noundef %7869, ptr noundef %7871, i32 noundef %7872) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7874:                                             ; preds = %7844
  store i8 0, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %7875 = add nsw i32 %7845, 2
  store i32 %7875, ptr @test_count, align 4, !tbaa !5
  %7876 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %7847, ptr noundef nonnull %41, i16 noundef zeroext 2) #14
  %7877 = icmp eq i32 %7876, -1
  br i1 %7877, label %7878, label %7900

7878:                                             ; preds = %7874
  %7879 = load i32, ptr %556, align 4, !tbaa !5
  %7880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7881 = call i32 @s2n_print_stacktrace(ptr noundef %7880) #14
  %7882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7883 = trunc nuw i8 %7882 to i1
  br i1 %7883, label %7884, label %7888

7884:                                             ; preds = %7878
  %7885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7886 = call i32 @fileno(ptr noundef %7885) #14
  %7887 = call i32 @isatty(i32 noundef %7886) #14
  %.not1238 = icmp eq i32 %7887, 0
  br i1 %.not1238, label %7888, label %7889

7888:                                             ; preds = %7884, %7878
  br label %7889

7889:                                             ; preds = %7884, %7888
  %.str.5.sink3983 = phi ptr [ @.str.5, %7888 ], [ @.str.2, %7884 ]
  store i32 %7879, ptr %556, align 4, !tbaa !5
  %7890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7891 = load i32, ptr @test_count, align 4, !tbaa !5
  %7892 = load i32, ptr %502, align 4, !tbaa !5
  %7893 = call ptr @s2n_strerror(i32 noundef %7892, ptr noundef nonnull @.str.4) #14
  %7894 = load i32, ptr %502, align 4, !tbaa !5
  %7895 = call ptr @s2n_strerror_debug(i32 noundef %7894, ptr noundef nonnull @.str.4) #14
  %7896 = load i32, ptr %556, align 4, !tbaa !5
  %7897 = call ptr @strerror(i32 noundef %7896) #14
  %7898 = load i32, ptr %556, align 4, !tbaa !5
  %7899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7890, ptr noundef nonnull %.str.5.sink3983, i32 noundef %7891, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 990, ptr noundef %7893, ptr noundef %7895, ptr noundef %7897, i32 noundef %7898) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7900:                                             ; preds = %7874
  %7901 = load i32, ptr @test_count, align 4, !tbaa !5
  %7902 = add nsw i32 %7901, 1
  store i32 %7902, ptr @test_count, align 4, !tbaa !5
  %7903 = load ptr, ptr %40, align 8, !tbaa !9
  %7904 = getelementptr inbounds i8, ptr %7903, i64 232
  %7905 = load ptr, ptr %7904, align 8, !tbaa !48
  %7906 = load ptr, ptr %7905, align 8, !tbaa !49
  %7907 = icmp eq ptr %7906, @s2n_ecdhe_ecdsa_with_aes_128_gcm_sha256
  br i1 %7907, label %7930, label %7908

7908:                                             ; preds = %7900
  %7909 = load i32, ptr %556, align 4, !tbaa !5
  %7910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7911 = call i32 @s2n_print_stacktrace(ptr noundef %7910) #14
  %7912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7913 = trunc nuw i8 %7912 to i1
  br i1 %7913, label %7914, label %7918

7914:                                             ; preds = %7908
  %7915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7916 = call i32 @fileno(ptr noundef %7915) #14
  %7917 = call i32 @isatty(i32 noundef %7916) #14
  %.not1183 = icmp eq i32 %7917, 0
  br i1 %.not1183, label %7918, label %7919

7918:                                             ; preds = %7914, %7908
  br label %7919

7919:                                             ; preds = %7914, %7918
  %.str.5.sink3992 = phi ptr [ @.str.5, %7918 ], [ @.str.2, %7914 ]
  store i32 %7909, ptr %556, align 4, !tbaa !5
  %7920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7921 = load i32, ptr @test_count, align 4, !tbaa !5
  %7922 = load i32, ptr %502, align 4, !tbaa !5
  %7923 = call ptr @s2n_strerror(i32 noundef %7922, ptr noundef nonnull @.str.4) #14
  %7924 = load i32, ptr %502, align 4, !tbaa !5
  %7925 = call ptr @s2n_strerror_debug(i32 noundef %7924, ptr noundef nonnull @.str.4) #14
  %7926 = load i32, ptr %556, align 4, !tbaa !5
  %7927 = call ptr @strerror(i32 noundef %7926) #14
  %7928 = load i32, ptr %556, align 4, !tbaa !5
  %7929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7920, ptr noundef nonnull %.str.5.sink3992, i32 noundef %7921, ptr noundef nonnull @.str.157, ptr noundef nonnull @.str.1, i32 noundef 991, ptr noundef %7923, ptr noundef %7925, ptr noundef %7927, i32 noundef %7928) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7930:                                             ; preds = %7900
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #14
  %7931 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %40) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #14
  %7932 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %7932, ptr %42, align 8, !tbaa !9
  %7933 = load i32, ptr @test_count, align 4, !tbaa !5
  %7934 = add nsw i32 %7933, 1
  store i32 %7934, ptr @test_count, align 4, !tbaa !5
  %7935 = icmp eq ptr %7932, null
  br i1 %7935, label %7936, label %7958

7936:                                             ; preds = %7930
  %7937 = load i32, ptr %556, align 4, !tbaa !5
  %7938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7939 = call i32 @s2n_print_stacktrace(ptr noundef %7938) #14
  %7940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7941 = trunc nuw i8 %7940 to i1
  br i1 %7941, label %7942, label %7946

7942:                                             ; preds = %7936
  %7943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7944 = call i32 @fileno(ptr noundef %7943) #14
  %7945 = call i32 @isatty(i32 noundef %7944) #14
  %.not1237 = icmp eq i32 %7945, 0
  br i1 %.not1237, label %7946, label %7947

7946:                                             ; preds = %7942, %7936
  br label %7947

7947:                                             ; preds = %7942, %7946
  %.str.5.sink4001 = phi ptr [ @.str.5, %7946 ], [ @.str.2, %7942 ]
  store i32 %7937, ptr %556, align 4, !tbaa !5
  %7948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7949 = load i32, ptr @test_count, align 4, !tbaa !5
  %7950 = load i32, ptr %502, align 4, !tbaa !5
  %7951 = call ptr @s2n_strerror(i32 noundef %7950, ptr noundef nonnull @.str.4) #14
  %7952 = load i32, ptr %502, align 4, !tbaa !5
  %7953 = call ptr @s2n_strerror_debug(i32 noundef %7952, ptr noundef nonnull @.str.4) #14
  %7954 = load i32, ptr %556, align 4, !tbaa !5
  %7955 = call ptr @strerror(i32 noundef %7954) #14
  %7956 = load i32, ptr %556, align 4, !tbaa !5
  %7957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7948, ptr noundef nonnull %.str.5.sink4001, i32 noundef %7949, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 997, ptr noundef %7951, ptr noundef %7953, ptr noundef %7955, i32 noundef %7956) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7958:                                             ; preds = %7930
  %7959 = getelementptr inbounds i8, ptr %7932, i64 16
  store ptr %31, ptr %7959, align 8, !tbaa !77
  %7960 = getelementptr inbounds i8, ptr %7932, i64 656
  store ptr %5542, ptr %7960, align 8, !tbaa !56
  %7961 = add nsw i32 %7933, 2
  store i32 %7961, ptr @test_count, align 4, !tbaa !5
  %7962 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %7932, i8 noundef zeroext 33) #14
  %7963 = icmp eq i32 %7962, -1
  br i1 %7963, label %7964, label %7986

7964:                                             ; preds = %7958
  %7965 = load i32, ptr %556, align 4, !tbaa !5
  %7966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7967 = call i32 @s2n_print_stacktrace(ptr noundef %7966) #14
  %7968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7969 = trunc nuw i8 %7968 to i1
  br i1 %7969, label %7970, label %7974

7970:                                             ; preds = %7964
  %7971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7972 = call i32 @fileno(ptr noundef %7971) #14
  %7973 = call i32 @isatty(i32 noundef %7972) #14
  %.not1236 = icmp eq i32 %7973, 0
  br i1 %.not1236, label %7974, label %7975

7974:                                             ; preds = %7970, %7964
  br label %7975

7975:                                             ; preds = %7970, %7974
  %.str.5.sink4010 = phi ptr [ @.str.5, %7974 ], [ @.str.2, %7970 ]
  store i32 %7965, ptr %556, align 4, !tbaa !5
  %7976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7977 = load i32, ptr @test_count, align 4, !tbaa !5
  %7978 = load i32, ptr %502, align 4, !tbaa !5
  %7979 = call ptr @s2n_strerror(i32 noundef %7978, ptr noundef nonnull @.str.4) #14
  %7980 = load i32, ptr %502, align 4, !tbaa !5
  %7981 = call ptr @s2n_strerror_debug(i32 noundef %7980, ptr noundef nonnull @.str.4) #14
  %7982 = load i32, ptr %556, align 4, !tbaa !5
  %7983 = call ptr @strerror(i32 noundef %7982) #14
  %7984 = load i32, ptr %556, align 4, !tbaa !5
  %7985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7976, ptr noundef nonnull %.str.5.sink4010, i32 noundef %7977, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 1000, ptr noundef %7979, ptr noundef %7981, ptr noundef %7983, i32 noundef %7984) #16
  call void @exit(i32 noundef 1) #17
  unreachable

7986:                                             ; preds = %7958
  %7987 = load i32, ptr @test_count, align 4, !tbaa !5
  %7988 = add nsw i32 %7987, 1
  store i32 %7988, ptr @test_count, align 4, !tbaa !5
  %7989 = load ptr, ptr %42, align 8, !tbaa !9
  %7990 = call i32 @s2n_connection_set_config(ptr noundef %7989, ptr noundef nonnull %7065) #14
  %7991 = icmp eq i32 %7990, -1
  br i1 %7991, label %7992, label %8014

7992:                                             ; preds = %7986
  %7993 = load i32, ptr %556, align 4, !tbaa !5
  %7994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7995 = call i32 @s2n_print_stacktrace(ptr noundef %7994) #14
  %7996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7997 = trunc nuw i8 %7996 to i1
  br i1 %7997, label %7998, label %8002

7998:                                             ; preds = %7992
  %7999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8000 = call i32 @fileno(ptr noundef %7999) #14
  %8001 = call i32 @isatty(i32 noundef %8000) #14
  %.not1235 = icmp eq i32 %8001, 0
  br i1 %.not1235, label %8002, label %8003

8002:                                             ; preds = %7998, %7992
  br label %8003

8003:                                             ; preds = %7998, %8002
  %.str.5.sink4019 = phi ptr [ @.str.5, %8002 ], [ @.str.2, %7998 ]
  store i32 %7993, ptr %556, align 4, !tbaa !5
  %8004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8005 = load i32, ptr @test_count, align 4, !tbaa !5
  %8006 = load i32, ptr %502, align 4, !tbaa !5
  %8007 = call ptr @s2n_strerror(i32 noundef %8006, ptr noundef nonnull @.str.4) #14
  %8008 = load i32, ptr %502, align 4, !tbaa !5
  %8009 = call ptr @s2n_strerror_debug(i32 noundef %8008, ptr noundef nonnull @.str.4) #14
  %8010 = load i32, ptr %556, align 4, !tbaa !5
  %8011 = call ptr @strerror(i32 noundef %8010) #14
  %8012 = load i32, ptr %556, align 4, !tbaa !5
  %8013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8004, ptr noundef nonnull %.str.5.sink4019, i32 noundef %8005, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 1001, ptr noundef %8007, ptr noundef %8009, ptr noundef %8011, i32 noundef %8012) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8014:                                             ; preds = %7986
  store i16 3, ptr %30, align 8, !tbaa !78
  store ptr @main.test_cipher_suite_list.158, ptr %.sroa.2217.0..sroa_idx, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %43) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %43, ptr noundef nonnull align 1 dereferenceable(6) @__const.main.wire.159, i64 6, i1 false)
  store i8 1, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %8015 = load i32, ptr @test_count, align 4, !tbaa !5
  %8016 = add nsw i32 %8015, 1
  store i32 %8016, ptr @test_count, align 4, !tbaa !5
  %8017 = load ptr, ptr %42, align 8, !tbaa !9
  %8018 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %8017, ptr noundef nonnull %43, i16 noundef zeroext 3) #14
  %8019 = icmp eq i32 %8018, -1
  br i1 %8019, label %8020, label %8042

8020:                                             ; preds = %8014
  %8021 = load i32, ptr %556, align 4, !tbaa !5
  %8022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8023 = call i32 @s2n_print_stacktrace(ptr noundef %8022) #14
  %8024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8025 = trunc nuw i8 %8024 to i1
  br i1 %8025, label %8026, label %8030

8026:                                             ; preds = %8020
  %8027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8028 = call i32 @fileno(ptr noundef %8027) #14
  %8029 = call i32 @isatty(i32 noundef %8028) #14
  %.not1234 = icmp eq i32 %8029, 0
  br i1 %.not1234, label %8030, label %8031

8030:                                             ; preds = %8026, %8020
  br label %8031

8031:                                             ; preds = %8026, %8030
  %.str.5.sink4028 = phi ptr [ @.str.5, %8030 ], [ @.str.2, %8026 ]
  store i32 %8021, ptr %556, align 4, !tbaa !5
  %8032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8033 = load i32, ptr @test_count, align 4, !tbaa !5
  %8034 = load i32, ptr %502, align 4, !tbaa !5
  %8035 = call ptr @s2n_strerror(i32 noundef %8034, ptr noundef nonnull @.str.4) #14
  %8036 = load i32, ptr %502, align 4, !tbaa !5
  %8037 = call ptr @s2n_strerror_debug(i32 noundef %8036, ptr noundef nonnull @.str.4) #14
  %8038 = load i32, ptr %556, align 4, !tbaa !5
  %8039 = call ptr @strerror(i32 noundef %8038) #14
  %8040 = load i32, ptr %556, align 4, !tbaa !5
  %8041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8032, ptr noundef nonnull %.str.5.sink4028, i32 noundef %8033, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 1030, ptr noundef %8035, ptr noundef %8037, ptr noundef %8039, i32 noundef %8040) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8042:                                             ; preds = %8014
  %8043 = load i32, ptr @test_count, align 4, !tbaa !5
  %8044 = add nsw i32 %8043, 1
  store i32 %8044, ptr @test_count, align 4, !tbaa !5
  %8045 = load ptr, ptr %42, align 8, !tbaa !9
  %8046 = getelementptr inbounds i8, ptr %8045, i64 232
  %8047 = load ptr, ptr %8046, align 8, !tbaa !48
  %8048 = load ptr, ptr %8047, align 8, !tbaa !49
  %8049 = icmp eq ptr %8048, @s2n_ecdhe_rsa_with_chacha20_poly1305_sha256
  br i1 %8049, label %8072, label %8050

8050:                                             ; preds = %8042
  %8051 = load i32, ptr %556, align 4, !tbaa !5
  %8052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8053 = call i32 @s2n_print_stacktrace(ptr noundef %8052) #14
  %8054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8055 = trunc nuw i8 %8054 to i1
  br i1 %8055, label %8056, label %8060

8056:                                             ; preds = %8050
  %8057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8058 = call i32 @fileno(ptr noundef %8057) #14
  %8059 = call i32 @isatty(i32 noundef %8058) #14
  %.not1184 = icmp eq i32 %8059, 0
  br i1 %.not1184, label %8060, label %8061

8060:                                             ; preds = %8056, %8050
  br label %8061

8061:                                             ; preds = %8056, %8060
  %.str.5.sink4037 = phi ptr [ @.str.5, %8060 ], [ @.str.2, %8056 ]
  store i32 %8051, ptr %556, align 4, !tbaa !5
  %8062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8063 = load i32, ptr @test_count, align 4, !tbaa !5
  %8064 = load i32, ptr %502, align 4, !tbaa !5
  %8065 = call ptr @s2n_strerror(i32 noundef %8064, ptr noundef nonnull @.str.4) #14
  %8066 = load i32, ptr %502, align 4, !tbaa !5
  %8067 = call ptr @s2n_strerror_debug(i32 noundef %8066, ptr noundef nonnull @.str.4) #14
  %8068 = load i32, ptr %556, align 4, !tbaa !5
  %8069 = call ptr @strerror(i32 noundef %8068) #14
  %8070 = load i32, ptr %556, align 4, !tbaa !5
  %8071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8062, ptr noundef nonnull %.str.5.sink4037, i32 noundef %8063, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 1031, ptr noundef %8065, ptr noundef %8067, ptr noundef %8069, i32 noundef %8070) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8072:                                             ; preds = %8042
  store i8 0, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %8073 = add nsw i32 %8043, 2
  store i32 %8073, ptr @test_count, align 4, !tbaa !5
  %8074 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %8045, ptr noundef nonnull %43, i16 noundef zeroext 3) #14
  %8075 = icmp eq i32 %8074, -1
  br i1 %8075, label %8076, label %8098

8076:                                             ; preds = %8072
  %8077 = load i32, ptr %556, align 4, !tbaa !5
  %8078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8079 = call i32 @s2n_print_stacktrace(ptr noundef %8078) #14
  %8080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8081 = trunc nuw i8 %8080 to i1
  br i1 %8081, label %8082, label %8086

8082:                                             ; preds = %8076
  %8083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8084 = call i32 @fileno(ptr noundef %8083) #14
  %8085 = call i32 @isatty(i32 noundef %8084) #14
  %.not1233 = icmp eq i32 %8085, 0
  br i1 %.not1233, label %8086, label %8087

8086:                                             ; preds = %8082, %8076
  br label %8087

8087:                                             ; preds = %8082, %8086
  %.str.5.sink4046 = phi ptr [ @.str.5, %8086 ], [ @.str.2, %8082 ]
  store i32 %8077, ptr %556, align 4, !tbaa !5
  %8088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8089 = load i32, ptr @test_count, align 4, !tbaa !5
  %8090 = load i32, ptr %502, align 4, !tbaa !5
  %8091 = call ptr @s2n_strerror(i32 noundef %8090, ptr noundef nonnull @.str.4) #14
  %8092 = load i32, ptr %502, align 4, !tbaa !5
  %8093 = call ptr @s2n_strerror_debug(i32 noundef %8092, ptr noundef nonnull @.str.4) #14
  %8094 = load i32, ptr %556, align 4, !tbaa !5
  %8095 = call ptr @strerror(i32 noundef %8094) #14
  %8096 = load i32, ptr %556, align 4, !tbaa !5
  %8097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8088, ptr noundef nonnull %.str.5.sink4046, i32 noundef %8089, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 1036, ptr noundef %8091, ptr noundef %8093, ptr noundef %8095, i32 noundef %8096) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8098:                                             ; preds = %8072
  %8099 = load i32, ptr @test_count, align 4, !tbaa !5
  %8100 = add nsw i32 %8099, 1
  store i32 %8100, ptr @test_count, align 4, !tbaa !5
  %8101 = load ptr, ptr %42, align 8, !tbaa !9
  %8102 = getelementptr inbounds i8, ptr %8101, i64 232
  %8103 = load ptr, ptr %8102, align 8, !tbaa !48
  %8104 = load ptr, ptr %8103, align 8, !tbaa !49
  %8105 = icmp eq ptr %8104, @s2n_ecdhe_rsa_with_aes_256_cbc_sha384
  br i1 %8105, label %8128, label %8106

8106:                                             ; preds = %8098
  %8107 = load i32, ptr %556, align 4, !tbaa !5
  %8108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8109 = call i32 @s2n_print_stacktrace(ptr noundef %8108) #14
  %8110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8111 = trunc nuw i8 %8110 to i1
  br i1 %8111, label %8112, label %8116

8112:                                             ; preds = %8106
  %8113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8114 = call i32 @fileno(ptr noundef %8113) #14
  %8115 = call i32 @isatty(i32 noundef %8114) #14
  %.not1185 = icmp eq i32 %8115, 0
  br i1 %.not1185, label %8116, label %8117

8116:                                             ; preds = %8112, %8106
  br label %8117

8117:                                             ; preds = %8112, %8116
  %.str.5.sink4055 = phi ptr [ @.str.5, %8116 ], [ @.str.2, %8112 ]
  store i32 %8107, ptr %556, align 4, !tbaa !5
  %8118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8119 = load i32, ptr @test_count, align 4, !tbaa !5
  %8120 = load i32, ptr %502, align 4, !tbaa !5
  %8121 = call ptr @s2n_strerror(i32 noundef %8120, ptr noundef nonnull @.str.4) #14
  %8122 = load i32, ptr %502, align 4, !tbaa !5
  %8123 = call ptr @s2n_strerror_debug(i32 noundef %8122, ptr noundef nonnull @.str.4) #14
  %8124 = load i32, ptr %556, align 4, !tbaa !5
  %8125 = call ptr @strerror(i32 noundef %8124) #14
  %8126 = load i32, ptr %556, align 4, !tbaa !5
  %8127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8118, ptr noundef nonnull %.str.5.sink4055, i32 noundef %8119, ptr noundef nonnull @.str.154, ptr noundef nonnull @.str.1, i32 noundef 1037, ptr noundef %8121, ptr noundef %8123, ptr noundef %8125, i32 noundef %8126) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8128:                                             ; preds = %8098
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %43) #14
  %8129 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %42) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #14
  %8130 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %8130, ptr %44, align 8, !tbaa !9
  %8131 = load i32, ptr @test_count, align 4, !tbaa !5
  %8132 = add nsw i32 %8131, 1
  store i32 %8132, ptr @test_count, align 4, !tbaa !5
  %8133 = icmp eq ptr %8130, null
  br i1 %8133, label %8134, label %8156

8134:                                             ; preds = %8128
  %8135 = load i32, ptr %556, align 4, !tbaa !5
  %8136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8137 = call i32 @s2n_print_stacktrace(ptr noundef %8136) #14
  %8138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8139 = trunc nuw i8 %8138 to i1
  br i1 %8139, label %8140, label %8144

8140:                                             ; preds = %8134
  %8141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8142 = call i32 @fileno(ptr noundef %8141) #14
  %8143 = call i32 @isatty(i32 noundef %8142) #14
  %.not1232 = icmp eq i32 %8143, 0
  br i1 %.not1232, label %8144, label %8145

8144:                                             ; preds = %8140, %8134
  br label %8145

8145:                                             ; preds = %8140, %8144
  %.str.5.sink4064 = phi ptr [ @.str.5, %8144 ], [ @.str.2, %8140 ]
  store i32 %8135, ptr %556, align 4, !tbaa !5
  %8146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8147 = load i32, ptr @test_count, align 4, !tbaa !5
  %8148 = load i32, ptr %502, align 4, !tbaa !5
  %8149 = call ptr @s2n_strerror(i32 noundef %8148, ptr noundef nonnull @.str.4) #14
  %8150 = load i32, ptr %502, align 4, !tbaa !5
  %8151 = call ptr @s2n_strerror_debug(i32 noundef %8150, ptr noundef nonnull @.str.4) #14
  %8152 = load i32, ptr %556, align 4, !tbaa !5
  %8153 = call ptr @strerror(i32 noundef %8152) #14
  %8154 = load i32, ptr %556, align 4, !tbaa !5
  %8155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8146, ptr noundef nonnull %.str.5.sink4064, i32 noundef %8147, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 1043, ptr noundef %8149, ptr noundef %8151, ptr noundef %8153, i32 noundef %8154) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8156:                                             ; preds = %8128
  %8157 = getelementptr inbounds i8, ptr %8130, i64 16
  store ptr %31, ptr %8157, align 8, !tbaa !77
  %8158 = getelementptr inbounds i8, ptr %8130, i64 656
  store ptr %5542, ptr %8158, align 8, !tbaa !56
  %8159 = add nsw i32 %8131, 2
  store i32 %8159, ptr @test_count, align 4, !tbaa !5
  %8160 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %8130, i8 noundef zeroext 33) #14
  %8161 = icmp eq i32 %8160, -1
  br i1 %8161, label %8162, label %8184

8162:                                             ; preds = %8156
  %8163 = load i32, ptr %556, align 4, !tbaa !5
  %8164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8165 = call i32 @s2n_print_stacktrace(ptr noundef %8164) #14
  %8166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8167 = trunc nuw i8 %8166 to i1
  br i1 %8167, label %8168, label %8172

8168:                                             ; preds = %8162
  %8169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8170 = call i32 @fileno(ptr noundef %8169) #14
  %8171 = call i32 @isatty(i32 noundef %8170) #14
  %.not1231 = icmp eq i32 %8171, 0
  br i1 %.not1231, label %8172, label %8173

8172:                                             ; preds = %8168, %8162
  br label %8173

8173:                                             ; preds = %8168, %8172
  %.str.5.sink4073 = phi ptr [ @.str.5, %8172 ], [ @.str.2, %8168 ]
  store i32 %8163, ptr %556, align 4, !tbaa !5
  %8174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8175 = load i32, ptr @test_count, align 4, !tbaa !5
  %8176 = load i32, ptr %502, align 4, !tbaa !5
  %8177 = call ptr @s2n_strerror(i32 noundef %8176, ptr noundef nonnull @.str.4) #14
  %8178 = load i32, ptr %502, align 4, !tbaa !5
  %8179 = call ptr @s2n_strerror_debug(i32 noundef %8178, ptr noundef nonnull @.str.4) #14
  %8180 = load i32, ptr %556, align 4, !tbaa !5
  %8181 = call ptr @strerror(i32 noundef %8180) #14
  %8182 = load i32, ptr %556, align 4, !tbaa !5
  %8183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8174, ptr noundef nonnull %.str.5.sink4073, i32 noundef %8175, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 1047, ptr noundef %8177, ptr noundef %8179, ptr noundef %8181, i32 noundef %8182) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8184:                                             ; preds = %8156
  %8185 = load i32, ptr @test_count, align 4, !tbaa !5
  %8186 = add nsw i32 %8185, 1
  store i32 %8186, ptr @test_count, align 4, !tbaa !5
  %8187 = load ptr, ptr %44, align 8, !tbaa !9
  %8188 = call i32 @s2n_connection_set_config(ptr noundef %8187, ptr noundef nonnull %7065) #14
  %8189 = icmp eq i32 %8188, -1
  br i1 %8189, label %8190, label %8212

8190:                                             ; preds = %8184
  %8191 = load i32, ptr %556, align 4, !tbaa !5
  %8192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8193 = call i32 @s2n_print_stacktrace(ptr noundef %8192) #14
  %8194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8195 = trunc nuw i8 %8194 to i1
  br i1 %8195, label %8196, label %8200

8196:                                             ; preds = %8190
  %8197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8198 = call i32 @fileno(ptr noundef %8197) #14
  %8199 = call i32 @isatty(i32 noundef %8198) #14
  %.not1230 = icmp eq i32 %8199, 0
  br i1 %.not1230, label %8200, label %8201

8200:                                             ; preds = %8196, %8190
  br label %8201

8201:                                             ; preds = %8196, %8200
  %.str.5.sink4082 = phi ptr [ @.str.5, %8200 ], [ @.str.2, %8196 ]
  store i32 %8191, ptr %556, align 4, !tbaa !5
  %8202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8203 = load i32, ptr @test_count, align 4, !tbaa !5
  %8204 = load i32, ptr %502, align 4, !tbaa !5
  %8205 = call ptr @s2n_strerror(i32 noundef %8204, ptr noundef nonnull @.str.4) #14
  %8206 = load i32, ptr %502, align 4, !tbaa !5
  %8207 = call ptr @s2n_strerror_debug(i32 noundef %8206, ptr noundef nonnull @.str.4) #14
  %8208 = load i32, ptr %556, align 4, !tbaa !5
  %8209 = call ptr @strerror(i32 noundef %8208) #14
  %8210 = load i32, ptr %556, align 4, !tbaa !5
  %8211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8202, ptr noundef nonnull %.str.5.sink4082, i32 noundef %8203, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 1049, ptr noundef %8205, ptr noundef %8207, ptr noundef %8209, i32 noundef %8210) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8212:                                             ; preds = %8184
  store i16 2, ptr %30, align 8, !tbaa !78
  store ptr @main.test_cipher_suite_list.160, ptr %.sroa.2217.0..sroa_idx, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #14
  %8213 = load i32, ptr @__const.main.wire.161, align 1
  store i32 %8213, ptr %45, align 4
  store i8 1, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %8214 = load i32, ptr @test_count, align 4, !tbaa !5
  %8215 = add nsw i32 %8214, 1
  store i32 %8215, ptr @test_count, align 4, !tbaa !5
  %8216 = load ptr, ptr %44, align 8, !tbaa !9
  %8217 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %8216, ptr noundef nonnull %45, i16 noundef zeroext 2) #14
  %8218 = icmp eq i32 %8217, -1
  br i1 %8218, label %8219, label %8241

8219:                                             ; preds = %8212
  %8220 = load i32, ptr %556, align 4, !tbaa !5
  %8221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8222 = call i32 @s2n_print_stacktrace(ptr noundef %8221) #14
  %8223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8224 = trunc nuw i8 %8223 to i1
  br i1 %8224, label %8225, label %8229

8225:                                             ; preds = %8219
  %8226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8227 = call i32 @fileno(ptr noundef %8226) #14
  %8228 = call i32 @isatty(i32 noundef %8227) #14
  %.not1229 = icmp eq i32 %8228, 0
  br i1 %.not1229, label %8229, label %8230

8229:                                             ; preds = %8225, %8219
  br label %8230

8230:                                             ; preds = %8225, %8229
  %.str.5.sink4091 = phi ptr [ @.str.5, %8229 ], [ @.str.2, %8225 ]
  store i32 %8220, ptr %556, align 4, !tbaa !5
  %8231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8232 = load i32, ptr @test_count, align 4, !tbaa !5
  %8233 = load i32, ptr %502, align 4, !tbaa !5
  %8234 = call ptr @s2n_strerror(i32 noundef %8233, ptr noundef nonnull @.str.4) #14
  %8235 = load i32, ptr %502, align 4, !tbaa !5
  %8236 = call ptr @s2n_strerror_debug(i32 noundef %8235, ptr noundef nonnull @.str.4) #14
  %8237 = load i32, ptr %556, align 4, !tbaa !5
  %8238 = call ptr @strerror(i32 noundef %8237) #14
  %8239 = load i32, ptr %556, align 4, !tbaa !5
  %8240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8231, ptr noundef nonnull %.str.5.sink4091, i32 noundef %8232, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 1074, ptr noundef %8234, ptr noundef %8236, ptr noundef %8238, i32 noundef %8239) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8241:                                             ; preds = %8212
  %8242 = load i32, ptr @test_count, align 4, !tbaa !5
  %8243 = add nsw i32 %8242, 1
  store i32 %8243, ptr @test_count, align 4, !tbaa !5
  %8244 = load ptr, ptr %44, align 8, !tbaa !9
  %8245 = getelementptr inbounds i8, ptr %8244, i64 232
  %8246 = load ptr, ptr %8245, align 8, !tbaa !48
  %8247 = load ptr, ptr %8246, align 8, !tbaa !49
  %8248 = icmp eq ptr %8247, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %8248, label %8271, label %8249

8249:                                             ; preds = %8241
  %8250 = load i32, ptr %556, align 4, !tbaa !5
  %8251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8252 = call i32 @s2n_print_stacktrace(ptr noundef %8251) #14
  %8253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8254 = trunc nuw i8 %8253 to i1
  br i1 %8254, label %8255, label %8259

8255:                                             ; preds = %8249
  %8256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8257 = call i32 @fileno(ptr noundef %8256) #14
  %8258 = call i32 @isatty(i32 noundef %8257) #14
  %.not1186 = icmp eq i32 %8258, 0
  br i1 %.not1186, label %8259, label %8260

8259:                                             ; preds = %8255, %8249
  br label %8260

8260:                                             ; preds = %8255, %8259
  %.str.5.sink4100 = phi ptr [ @.str.5, %8259 ], [ @.str.2, %8255 ]
  store i32 %8250, ptr %556, align 4, !tbaa !5
  %8261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8262 = load i32, ptr @test_count, align 4, !tbaa !5
  %8263 = load i32, ptr %502, align 4, !tbaa !5
  %8264 = call ptr @s2n_strerror(i32 noundef %8263, ptr noundef nonnull @.str.4) #14
  %8265 = load i32, ptr %502, align 4, !tbaa !5
  %8266 = call ptr @s2n_strerror_debug(i32 noundef %8265, ptr noundef nonnull @.str.4) #14
  %8267 = load i32, ptr %556, align 4, !tbaa !5
  %8268 = call ptr @strerror(i32 noundef %8267) #14
  %8269 = load i32, ptr %556, align 4, !tbaa !5
  %8270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8261, ptr noundef nonnull %.str.5.sink4100, i32 noundef %8262, ptr noundef nonnull @.str.162, ptr noundef nonnull @.str.1, i32 noundef 1075, ptr noundef %8264, ptr noundef %8266, ptr noundef %8268, i32 noundef %8269) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8271:                                             ; preds = %8241
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #14
  %8272 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %44) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  %8273 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %8273, ptr %46, align 8, !tbaa !9
  %8274 = load i32, ptr @test_count, align 4, !tbaa !5
  %8275 = add nsw i32 %8274, 1
  store i32 %8275, ptr @test_count, align 4, !tbaa !5
  %8276 = icmp eq ptr %8273, null
  br i1 %8276, label %8277, label %8299

8277:                                             ; preds = %8271
  %8278 = load i32, ptr %556, align 4, !tbaa !5
  %8279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8280 = call i32 @s2n_print_stacktrace(ptr noundef %8279) #14
  %8281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8282 = trunc nuw i8 %8281 to i1
  br i1 %8282, label %8283, label %8287

8283:                                             ; preds = %8277
  %8284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8285 = call i32 @fileno(ptr noundef %8284) #14
  %8286 = call i32 @isatty(i32 noundef %8285) #14
  %.not1228 = icmp eq i32 %8286, 0
  br i1 %.not1228, label %8287, label %8288

8287:                                             ; preds = %8283, %8277
  br label %8288

8288:                                             ; preds = %8283, %8287
  %.str.5.sink4109 = phi ptr [ @.str.5, %8287 ], [ @.str.2, %8283 ]
  store i32 %8278, ptr %556, align 4, !tbaa !5
  %8289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8290 = load i32, ptr @test_count, align 4, !tbaa !5
  %8291 = load i32, ptr %502, align 4, !tbaa !5
  %8292 = call ptr @s2n_strerror(i32 noundef %8291, ptr noundef nonnull @.str.4) #14
  %8293 = load i32, ptr %502, align 4, !tbaa !5
  %8294 = call ptr @s2n_strerror_debug(i32 noundef %8293, ptr noundef nonnull @.str.4) #14
  %8295 = load i32, ptr %556, align 4, !tbaa !5
  %8296 = call ptr @strerror(i32 noundef %8295) #14
  %8297 = load i32, ptr %556, align 4, !tbaa !5
  %8298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8289, ptr noundef nonnull %.str.5.sink4109, i32 noundef %8290, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 1081, ptr noundef %8292, ptr noundef %8294, ptr noundef %8296, i32 noundef %8297) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8299:                                             ; preds = %8271
  %8300 = getelementptr inbounds i8, ptr %8273, i64 16
  store ptr %31, ptr %8300, align 8, !tbaa !77
  %8301 = getelementptr inbounds i8, ptr %8273, i64 656
  store ptr %5542, ptr %8301, align 8, !tbaa !56
  %8302 = add nsw i32 %8274, 2
  store i32 %8302, ptr @test_count, align 4, !tbaa !5
  %8303 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %8273, i8 noundef zeroext 34) #14
  %8304 = icmp eq i32 %8303, -1
  br i1 %8304, label %8305, label %8327

8305:                                             ; preds = %8299
  %8306 = load i32, ptr %556, align 4, !tbaa !5
  %8307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8308 = call i32 @s2n_print_stacktrace(ptr noundef %8307) #14
  %8309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8310 = trunc nuw i8 %8309 to i1
  br i1 %8310, label %8311, label %8315

8311:                                             ; preds = %8305
  %8312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8313 = call i32 @fileno(ptr noundef %8312) #14
  %8314 = call i32 @isatty(i32 noundef %8313) #14
  %.not1227 = icmp eq i32 %8314, 0
  br i1 %.not1227, label %8315, label %8316

8315:                                             ; preds = %8311, %8305
  br label %8316

8316:                                             ; preds = %8311, %8315
  %.str.5.sink4118 = phi ptr [ @.str.5, %8315 ], [ @.str.2, %8311 ]
  store i32 %8306, ptr %556, align 4, !tbaa !5
  %8317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8318 = load i32, ptr @test_count, align 4, !tbaa !5
  %8319 = load i32, ptr %502, align 4, !tbaa !5
  %8320 = call ptr @s2n_strerror(i32 noundef %8319, ptr noundef nonnull @.str.4) #14
  %8321 = load i32, ptr %502, align 4, !tbaa !5
  %8322 = call ptr @s2n_strerror_debug(i32 noundef %8321, ptr noundef nonnull @.str.4) #14
  %8323 = load i32, ptr %556, align 4, !tbaa !5
  %8324 = call ptr @strerror(i32 noundef %8323) #14
  %8325 = load i32, ptr %556, align 4, !tbaa !5
  %8326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8317, ptr noundef nonnull %.str.5.sink4118, i32 noundef %8318, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.1, i32 noundef 1085, ptr noundef %8320, ptr noundef %8322, ptr noundef %8324, i32 noundef %8325) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8327:                                             ; preds = %8299
  store i16 3, ptr %30, align 8, !tbaa !78
  store ptr @main.test_cipher_suite_list.164, ptr %.sroa.2217.0..sroa_idx, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %47) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %47, ptr noundef nonnull align 1 dereferenceable(6) @__const.main.test_wire_1, i64 6, i1 false)
  store i8 1, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %8328 = load i32, ptr @test_count, align 4, !tbaa !5
  %8329 = add nsw i32 %8328, 1
  store i32 %8329, ptr @test_count, align 4, !tbaa !5
  %8330 = load ptr, ptr %46, align 8, !tbaa !9
  %8331 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %8330, ptr noundef nonnull %47, i16 noundef zeroext 3) #14
  %8332 = icmp eq i32 %8331, -1
  br i1 %8332, label %8333, label %8355

8333:                                             ; preds = %8327
  %8334 = load i32, ptr %556, align 4, !tbaa !5
  %8335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8336 = call i32 @s2n_print_stacktrace(ptr noundef %8335) #14
  %8337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8338 = trunc nuw i8 %8337 to i1
  br i1 %8338, label %8339, label %8343

8339:                                             ; preds = %8333
  %8340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8341 = call i32 @fileno(ptr noundef %8340) #14
  %8342 = call i32 @isatty(i32 noundef %8341) #14
  %.not1226 = icmp eq i32 %8342, 0
  br i1 %.not1226, label %8343, label %8344

8343:                                             ; preds = %8339, %8333
  br label %8344

8344:                                             ; preds = %8339, %8343
  %.str.5.sink4127 = phi ptr [ @.str.5, %8343 ], [ @.str.2, %8339 ]
  store i32 %8334, ptr %556, align 4, !tbaa !5
  %8345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8346 = load i32, ptr @test_count, align 4, !tbaa !5
  %8347 = load i32, ptr %502, align 4, !tbaa !5
  %8348 = call ptr @s2n_strerror(i32 noundef %8347, ptr noundef nonnull @.str.4) #14
  %8349 = load i32, ptr %502, align 4, !tbaa !5
  %8350 = call ptr @s2n_strerror_debug(i32 noundef %8349, ptr noundef nonnull @.str.4) #14
  %8351 = load i32, ptr %556, align 4, !tbaa !5
  %8352 = call ptr @strerror(i32 noundef %8351) #14
  %8353 = load i32, ptr %556, align 4, !tbaa !5
  %8354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8345, ptr noundef nonnull %.str.5.sink4127, i32 noundef %8346, ptr noundef nonnull @.str.165, ptr noundef nonnull @.str.1, i32 noundef 1114, ptr noundef %8348, ptr noundef %8350, ptr noundef %8352, i32 noundef %8353) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8355:                                             ; preds = %8327
  %8356 = load i32, ptr @test_count, align 4, !tbaa !5
  %8357 = add nsw i32 %8356, 1
  store i32 %8357, ptr @test_count, align 4, !tbaa !5
  %8358 = load ptr, ptr %46, align 8, !tbaa !9
  %8359 = getelementptr inbounds i8, ptr %8358, i64 232
  %8360 = load ptr, ptr %8359, align 8, !tbaa !48
  %8361 = load ptr, ptr %8360, align 8, !tbaa !49
  %8362 = icmp eq ptr %8361, @s2n_tls13_chacha20_poly1305_sha256
  br i1 %8362, label %8385, label %8363

8363:                                             ; preds = %8355
  %8364 = load i32, ptr %556, align 4, !tbaa !5
  %8365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8366 = call i32 @s2n_print_stacktrace(ptr noundef %8365) #14
  %8367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8368 = trunc nuw i8 %8367 to i1
  br i1 %8368, label %8369, label %8373

8369:                                             ; preds = %8363
  %8370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8371 = call i32 @fileno(ptr noundef %8370) #14
  %8372 = call i32 @isatty(i32 noundef %8371) #14
  %.not1187 = icmp eq i32 %8372, 0
  br i1 %.not1187, label %8373, label %8374

8373:                                             ; preds = %8369, %8363
  br label %8374

8374:                                             ; preds = %8369, %8373
  %.str.5.sink4136 = phi ptr [ @.str.5, %8373 ], [ @.str.2, %8369 ]
  store i32 %8364, ptr %556, align 4, !tbaa !5
  %8375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8376 = load i32, ptr @test_count, align 4, !tbaa !5
  %8377 = load i32, ptr %502, align 4, !tbaa !5
  %8378 = call ptr @s2n_strerror(i32 noundef %8377, ptr noundef nonnull @.str.4) #14
  %8379 = load i32, ptr %502, align 4, !tbaa !5
  %8380 = call ptr @s2n_strerror_debug(i32 noundef %8379, ptr noundef nonnull @.str.4) #14
  %8381 = load i32, ptr %556, align 4, !tbaa !5
  %8382 = call ptr @strerror(i32 noundef %8381) #14
  %8383 = load i32, ptr %556, align 4, !tbaa !5
  %8384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8375, ptr noundef nonnull %.str.5.sink4136, i32 noundef %8376, ptr noundef nonnull @.str.166, ptr noundef nonnull @.str.1, i32 noundef 1115, ptr noundef %8378, ptr noundef %8380, ptr noundef %8382, i32 noundef %8383) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8385:                                             ; preds = %8355
  store i8 0, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %8386 = add nsw i32 %8356, 2
  store i32 %8386, ptr @test_count, align 4, !tbaa !5
  %8387 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %8358, ptr noundef nonnull %47, i16 noundef zeroext 3) #14
  %8388 = icmp eq i32 %8387, -1
  br i1 %8388, label %8389, label %8411

8389:                                             ; preds = %8385
  %8390 = load i32, ptr %556, align 4, !tbaa !5
  %8391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8392 = call i32 @s2n_print_stacktrace(ptr noundef %8391) #14
  %8393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8394 = trunc nuw i8 %8393 to i1
  br i1 %8394, label %8395, label %8399

8395:                                             ; preds = %8389
  %8396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8397 = call i32 @fileno(ptr noundef %8396) #14
  %8398 = call i32 @isatty(i32 noundef %8397) #14
  %.not1225 = icmp eq i32 %8398, 0
  br i1 %.not1225, label %8399, label %8400

8399:                                             ; preds = %8395, %8389
  br label %8400

8400:                                             ; preds = %8395, %8399
  %.str.5.sink4145 = phi ptr [ @.str.5, %8399 ], [ @.str.2, %8395 ]
  store i32 %8390, ptr %556, align 4, !tbaa !5
  %8401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8402 = load i32, ptr @test_count, align 4, !tbaa !5
  %8403 = load i32, ptr %502, align 4, !tbaa !5
  %8404 = call ptr @s2n_strerror(i32 noundef %8403, ptr noundef nonnull @.str.4) #14
  %8405 = load i32, ptr %502, align 4, !tbaa !5
  %8406 = call ptr @s2n_strerror_debug(i32 noundef %8405, ptr noundef nonnull @.str.4) #14
  %8407 = load i32, ptr %556, align 4, !tbaa !5
  %8408 = call ptr @strerror(i32 noundef %8407) #14
  %8409 = load i32, ptr %556, align 4, !tbaa !5
  %8410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8401, ptr noundef nonnull %.str.5.sink4145, i32 noundef %8402, ptr noundef nonnull @.str.165, ptr noundef nonnull @.str.1, i32 noundef 1120, ptr noundef %8404, ptr noundef %8406, ptr noundef %8408, i32 noundef %8409) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8411:                                             ; preds = %8385
  %8412 = load i32, ptr @test_count, align 4, !tbaa !5
  %8413 = add nsw i32 %8412, 1
  store i32 %8413, ptr @test_count, align 4, !tbaa !5
  %8414 = load ptr, ptr %46, align 8, !tbaa !9
  %8415 = getelementptr inbounds i8, ptr %8414, i64 232
  %8416 = load ptr, ptr %8415, align 8, !tbaa !48
  %8417 = load ptr, ptr %8416, align 8, !tbaa !49
  %8418 = icmp eq ptr %8417, @s2n_tls13_aes_128_gcm_sha256
  br i1 %8418, label %8441, label %8419

8419:                                             ; preds = %8411
  %8420 = load i32, ptr %556, align 4, !tbaa !5
  %8421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8422 = call i32 @s2n_print_stacktrace(ptr noundef %8421) #14
  %8423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8424 = trunc nuw i8 %8423 to i1
  br i1 %8424, label %8425, label %8429

8425:                                             ; preds = %8419
  %8426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8427 = call i32 @fileno(ptr noundef %8426) #14
  %8428 = call i32 @isatty(i32 noundef %8427) #14
  %.not1188 = icmp eq i32 %8428, 0
  br i1 %.not1188, label %8429, label %8430

8429:                                             ; preds = %8425, %8419
  br label %8430

8430:                                             ; preds = %8425, %8429
  %.str.5.sink4154 = phi ptr [ @.str.5, %8429 ], [ @.str.2, %8425 ]
  store i32 %8420, ptr %556, align 4, !tbaa !5
  %8431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8432 = load i32, ptr @test_count, align 4, !tbaa !5
  %8433 = load i32, ptr %502, align 4, !tbaa !5
  %8434 = call ptr @s2n_strerror(i32 noundef %8433, ptr noundef nonnull @.str.4) #14
  %8435 = load i32, ptr %502, align 4, !tbaa !5
  %8436 = call ptr @s2n_strerror_debug(i32 noundef %8435, ptr noundef nonnull @.str.4) #14
  %8437 = load i32, ptr %556, align 4, !tbaa !5
  %8438 = call ptr @strerror(i32 noundef %8437) #14
  %8439 = load i32, ptr %556, align 4, !tbaa !5
  %8440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8431, ptr noundef nonnull %.str.5.sink4154, i32 noundef %8432, ptr noundef nonnull @.str.167, ptr noundef nonnull @.str.1, i32 noundef 1121, ptr noundef %8434, ptr noundef %8436, ptr noundef %8438, i32 noundef %8439) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8441:                                             ; preds = %8411
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #14
  %8442 = load i32, ptr @__const.main.test_wire_2, align 1
  store i32 %8442, ptr %48, align 4
  store i8 1, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %8443 = add nsw i32 %8412, 2
  store i32 %8443, ptr @test_count, align 4, !tbaa !5
  %8444 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %8414, ptr noundef nonnull %48, i16 noundef zeroext 2) #14
  %8445 = icmp eq i32 %8444, -1
  br i1 %8445, label %8446, label %8468

8446:                                             ; preds = %8441
  %8447 = load i32, ptr %556, align 4, !tbaa !5
  %8448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8449 = call i32 @s2n_print_stacktrace(ptr noundef %8448) #14
  %8450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8451 = trunc nuw i8 %8450 to i1
  br i1 %8451, label %8452, label %8456

8452:                                             ; preds = %8446
  %8453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8454 = call i32 @fileno(ptr noundef %8453) #14
  %8455 = call i32 @isatty(i32 noundef %8454) #14
  %.not1224 = icmp eq i32 %8455, 0
  br i1 %.not1224, label %8456, label %8457

8456:                                             ; preds = %8452, %8446
  br label %8457

8457:                                             ; preds = %8452, %8456
  %.str.5.sink4163 = phi ptr [ @.str.5, %8456 ], [ @.str.2, %8452 ]
  store i32 %8447, ptr %556, align 4, !tbaa !5
  %8458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8459 = load i32, ptr @test_count, align 4, !tbaa !5
  %8460 = load i32, ptr %502, align 4, !tbaa !5
  %8461 = call ptr @s2n_strerror(i32 noundef %8460, ptr noundef nonnull @.str.4) #14
  %8462 = load i32, ptr %502, align 4, !tbaa !5
  %8463 = call ptr @s2n_strerror_debug(i32 noundef %8462, ptr noundef nonnull @.str.4) #14
  %8464 = load i32, ptr %556, align 4, !tbaa !5
  %8465 = call ptr @strerror(i32 noundef %8464) #14
  %8466 = load i32, ptr %556, align 4, !tbaa !5
  %8467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8458, ptr noundef nonnull %.str.5.sink4163, i32 noundef %8459, ptr noundef nonnull @.str.168, ptr noundef nonnull @.str.1, i32 noundef 1138, ptr noundef %8461, ptr noundef %8463, ptr noundef %8465, i32 noundef %8466) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8468:                                             ; preds = %8441
  %8469 = load i32, ptr @test_count, align 4, !tbaa !5
  %8470 = add nsw i32 %8469, 1
  store i32 %8470, ptr @test_count, align 4, !tbaa !5
  %8471 = load ptr, ptr %46, align 8, !tbaa !9
  %8472 = getelementptr inbounds i8, ptr %8471, i64 232
  %8473 = load ptr, ptr %8472, align 8, !tbaa !48
  %8474 = load ptr, ptr %8473, align 8, !tbaa !49
  %8475 = icmp eq ptr %8474, @s2n_tls13_aes_256_gcm_sha384
  br i1 %8475, label %8498, label %8476

8476:                                             ; preds = %8468
  %8477 = load i32, ptr %556, align 4, !tbaa !5
  %8478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8479 = call i32 @s2n_print_stacktrace(ptr noundef %8478) #14
  %8480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8481 = trunc nuw i8 %8480 to i1
  br i1 %8481, label %8482, label %8486

8482:                                             ; preds = %8476
  %8483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8484 = call i32 @fileno(ptr noundef %8483) #14
  %8485 = call i32 @isatty(i32 noundef %8484) #14
  %.not1189 = icmp eq i32 %8485, 0
  br i1 %.not1189, label %8486, label %8487

8486:                                             ; preds = %8482, %8476
  br label %8487

8487:                                             ; preds = %8482, %8486
  %.str.5.sink4172 = phi ptr [ @.str.5, %8486 ], [ @.str.2, %8482 ]
  store i32 %8477, ptr %556, align 4, !tbaa !5
  %8488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8489 = load i32, ptr @test_count, align 4, !tbaa !5
  %8490 = load i32, ptr %502, align 4, !tbaa !5
  %8491 = call ptr @s2n_strerror(i32 noundef %8490, ptr noundef nonnull @.str.4) #14
  %8492 = load i32, ptr %502, align 4, !tbaa !5
  %8493 = call ptr @s2n_strerror_debug(i32 noundef %8492, ptr noundef nonnull @.str.4) #14
  %8494 = load i32, ptr %556, align 4, !tbaa !5
  %8495 = call ptr @strerror(i32 noundef %8494) #14
  %8496 = load i32, ptr %556, align 4, !tbaa !5
  %8497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8488, ptr noundef nonnull %.str.5.sink4172, i32 noundef %8489, ptr noundef nonnull @.str.169, ptr noundef nonnull @.str.1, i32 noundef 1139, ptr noundef %8491, ptr noundef %8493, ptr noundef %8495, i32 noundef %8496) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8498:                                             ; preds = %8468
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #14
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %47) #14
  %8499 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %46) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #14
  %8500 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %8500, ptr %49, align 8, !tbaa !9
  %8501 = load i32, ptr @test_count, align 4, !tbaa !5
  %8502 = add nsw i32 %8501, 1
  store i32 %8502, ptr @test_count, align 4, !tbaa !5
  %8503 = icmp eq ptr %8500, null
  br i1 %8503, label %8504, label %8526

8504:                                             ; preds = %8498
  %8505 = load i32, ptr %556, align 4, !tbaa !5
  %8506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8507 = call i32 @s2n_print_stacktrace(ptr noundef %8506) #14
  %8508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8509 = trunc nuw i8 %8508 to i1
  br i1 %8509, label %8510, label %8514

8510:                                             ; preds = %8504
  %8511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8512 = call i32 @fileno(ptr noundef %8511) #14
  %8513 = call i32 @isatty(i32 noundef %8512) #14
  %.not1223 = icmp eq i32 %8513, 0
  br i1 %.not1223, label %8514, label %8515

8514:                                             ; preds = %8510, %8504
  br label %8515

8515:                                             ; preds = %8510, %8514
  %.str.5.sink4181 = phi ptr [ @.str.5, %8514 ], [ @.str.2, %8510 ]
  store i32 %8505, ptr %556, align 4, !tbaa !5
  %8516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8517 = load i32, ptr @test_count, align 4, !tbaa !5
  %8518 = load i32, ptr %502, align 4, !tbaa !5
  %8519 = call ptr @s2n_strerror(i32 noundef %8518, ptr noundef nonnull @.str.4) #14
  %8520 = load i32, ptr %502, align 4, !tbaa !5
  %8521 = call ptr @s2n_strerror_debug(i32 noundef %8520, ptr noundef nonnull @.str.4) #14
  %8522 = load i32, ptr %556, align 4, !tbaa !5
  %8523 = call ptr @strerror(i32 noundef %8522) #14
  %8524 = load i32, ptr %556, align 4, !tbaa !5
  %8525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8516, ptr noundef nonnull %.str.5.sink4181, i32 noundef %8517, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 1145, ptr noundef %8519, ptr noundef %8521, ptr noundef %8523, i32 noundef %8524) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8526:                                             ; preds = %8498
  %8527 = getelementptr inbounds i8, ptr %8500, i64 16
  store ptr %31, ptr %8527, align 8, !tbaa !77
  %8528 = getelementptr inbounds i8, ptr %8500, i64 656
  store ptr %5542, ptr %8528, align 8, !tbaa !56
  %8529 = add nsw i32 %8501, 2
  store i32 %8529, ptr @test_count, align 4, !tbaa !5
  %8530 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %8500, i8 noundef zeroext 34) #14
  %8531 = icmp eq i32 %8530, -1
  br i1 %8531, label %8532, label %8554

8532:                                             ; preds = %8526
  %8533 = load i32, ptr %556, align 4, !tbaa !5
  %8534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8535 = call i32 @s2n_print_stacktrace(ptr noundef %8534) #14
  %8536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8537 = trunc nuw i8 %8536 to i1
  br i1 %8537, label %8538, label %8542

8538:                                             ; preds = %8532
  %8539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8540 = call i32 @fileno(ptr noundef %8539) #14
  %8541 = call i32 @isatty(i32 noundef %8540) #14
  %.not1222 = icmp eq i32 %8541, 0
  br i1 %.not1222, label %8542, label %8543

8542:                                             ; preds = %8538, %8532
  br label %8543

8543:                                             ; preds = %8538, %8542
  %.str.5.sink4190 = phi ptr [ @.str.5, %8542 ], [ @.str.2, %8538 ]
  store i32 %8533, ptr %556, align 4, !tbaa !5
  %8544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8545 = load i32, ptr @test_count, align 4, !tbaa !5
  %8546 = load i32, ptr %502, align 4, !tbaa !5
  %8547 = call ptr @s2n_strerror(i32 noundef %8546, ptr noundef nonnull @.str.4) #14
  %8548 = load i32, ptr %502, align 4, !tbaa !5
  %8549 = call ptr @s2n_strerror_debug(i32 noundef %8548, ptr noundef nonnull @.str.4) #14
  %8550 = load i32, ptr %556, align 4, !tbaa !5
  %8551 = call ptr @strerror(i32 noundef %8550) #14
  %8552 = load i32, ptr %556, align 4, !tbaa !5
  %8553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8544, ptr noundef nonnull %.str.5.sink4190, i32 noundef %8545, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.1, i32 noundef 1149, ptr noundef %8547, ptr noundef %8549, ptr noundef %8551, i32 noundef %8552) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8554:                                             ; preds = %8526
  store i16 1, ptr %30, align 8, !tbaa !78
  store ptr @main.test_cipher_suite_list.170, ptr %.sroa.2217.0..sroa_idx, align 8, !tbaa !9
  store i8 0, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %50) #14
  %8555 = load i16, ptr @__const.main.wire.171, align 1
  store i16 %8555, ptr %50, align 2
  %8556 = load i32, ptr @test_count, align 4, !tbaa !5
  %8557 = add nsw i32 %8556, 1
  store i32 %8557, ptr @test_count, align 4, !tbaa !5
  %8558 = load ptr, ptr %49, align 8, !tbaa !9
  %8559 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %8558, ptr noundef nonnull %50, i16 noundef zeroext 1) #14
  %8560 = icmp eq i32 %8559, -1
  br i1 %8560, label %8561, label %8583

8561:                                             ; preds = %8554
  %8562 = load i32, ptr %556, align 4, !tbaa !5
  %8563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8564 = call i32 @s2n_print_stacktrace(ptr noundef %8563) #14
  %8565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8566 = trunc nuw i8 %8565 to i1
  br i1 %8566, label %8567, label %8571

8567:                                             ; preds = %8561
  %8568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8569 = call i32 @fileno(ptr noundef %8568) #14
  %8570 = call i32 @isatty(i32 noundef %8569) #14
  %.not1221 = icmp eq i32 %8570, 0
  br i1 %.not1221, label %8571, label %8572

8571:                                             ; preds = %8567, %8561
  br label %8572

8572:                                             ; preds = %8567, %8571
  %.str.5.sink4199 = phi ptr [ @.str.5, %8571 ], [ @.str.2, %8567 ]
  store i32 %8562, ptr %556, align 4, !tbaa !5
  %8573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8574 = load i32, ptr @test_count, align 4, !tbaa !5
  %8575 = load i32, ptr %502, align 4, !tbaa !5
  %8576 = call ptr @s2n_strerror(i32 noundef %8575, ptr noundef nonnull @.str.4) #14
  %8577 = load i32, ptr %502, align 4, !tbaa !5
  %8578 = call ptr @s2n_strerror_debug(i32 noundef %8577, ptr noundef nonnull @.str.4) #14
  %8579 = load i32, ptr %556, align 4, !tbaa !5
  %8580 = call ptr @strerror(i32 noundef %8579) #14
  %8581 = load i32, ptr %556, align 4, !tbaa !5
  %8582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8573, ptr noundef nonnull %.str.5.sink4199, i32 noundef %8574, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 1169, ptr noundef %8576, ptr noundef %8578, ptr noundef %8580, i32 noundef %8581) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8583:                                             ; preds = %8554
  %8584 = load i32, ptr @test_count, align 4, !tbaa !5
  %8585 = add nsw i32 %8584, 1
  store i32 %8585, ptr @test_count, align 4, !tbaa !5
  %8586 = load ptr, ptr %49, align 8, !tbaa !9
  %8587 = getelementptr inbounds i8, ptr %8586, i64 232
  %8588 = load ptr, ptr %8587, align 8, !tbaa !48
  %8589 = load ptr, ptr %8588, align 8, !tbaa !49
  %8590 = icmp eq ptr %8589, @s2n_tls13_chacha20_poly1305_sha256
  br i1 %8590, label %8613, label %8591

8591:                                             ; preds = %8583
  %8592 = load i32, ptr %556, align 4, !tbaa !5
  %8593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8594 = call i32 @s2n_print_stacktrace(ptr noundef %8593) #14
  %8595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8596 = trunc nuw i8 %8595 to i1
  br i1 %8596, label %8597, label %8601

8597:                                             ; preds = %8591
  %8598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8599 = call i32 @fileno(ptr noundef %8598) #14
  %8600 = call i32 @isatty(i32 noundef %8599) #14
  %.not1190 = icmp eq i32 %8600, 0
  br i1 %.not1190, label %8601, label %8602

8601:                                             ; preds = %8597, %8591
  br label %8602

8602:                                             ; preds = %8597, %8601
  %.str.5.sink4208 = phi ptr [ @.str.5, %8601 ], [ @.str.2, %8597 ]
  store i32 %8592, ptr %556, align 4, !tbaa !5
  %8603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8604 = load i32, ptr @test_count, align 4, !tbaa !5
  %8605 = load i32, ptr %502, align 4, !tbaa !5
  %8606 = call ptr @s2n_strerror(i32 noundef %8605, ptr noundef nonnull @.str.4) #14
  %8607 = load i32, ptr %502, align 4, !tbaa !5
  %8608 = call ptr @s2n_strerror_debug(i32 noundef %8607, ptr noundef nonnull @.str.4) #14
  %8609 = load i32, ptr %556, align 4, !tbaa !5
  %8610 = call ptr @strerror(i32 noundef %8609) #14
  %8611 = load i32, ptr %556, align 4, !tbaa !5
  %8612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8603, ptr noundef nonnull %.str.5.sink4208, i32 noundef %8604, ptr noundef nonnull @.str.166, ptr noundef nonnull @.str.1, i32 noundef 1170, ptr noundef %8606, ptr noundef %8608, ptr noundef %8610, i32 noundef %8611) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8613:                                             ; preds = %8583
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %50) #14
  %8614 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %49) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #14
  %8615 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %8615, ptr %51, align 8, !tbaa !9
  %8616 = load i32, ptr @test_count, align 4, !tbaa !5
  %8617 = add nsw i32 %8616, 1
  store i32 %8617, ptr @test_count, align 4, !tbaa !5
  %8618 = icmp eq ptr %8615, null
  br i1 %8618, label %8619, label %8641

8619:                                             ; preds = %8613
  %8620 = load i32, ptr %556, align 4, !tbaa !5
  %8621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8622 = call i32 @s2n_print_stacktrace(ptr noundef %8621) #14
  %8623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8624 = trunc nuw i8 %8623 to i1
  br i1 %8624, label %8625, label %8629

8625:                                             ; preds = %8619
  %8626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8627 = call i32 @fileno(ptr noundef %8626) #14
  %8628 = call i32 @isatty(i32 noundef %8627) #14
  %.not1220 = icmp eq i32 %8628, 0
  br i1 %.not1220, label %8629, label %8630

8629:                                             ; preds = %8625, %8619
  br label %8630

8630:                                             ; preds = %8625, %8629
  %.str.5.sink4217 = phi ptr [ @.str.5, %8629 ], [ @.str.2, %8625 ]
  store i32 %8620, ptr %556, align 4, !tbaa !5
  %8631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8632 = load i32, ptr @test_count, align 4, !tbaa !5
  %8633 = load i32, ptr %502, align 4, !tbaa !5
  %8634 = call ptr @s2n_strerror(i32 noundef %8633, ptr noundef nonnull @.str.4) #14
  %8635 = load i32, ptr %502, align 4, !tbaa !5
  %8636 = call ptr @s2n_strerror_debug(i32 noundef %8635, ptr noundef nonnull @.str.4) #14
  %8637 = load i32, ptr %556, align 4, !tbaa !5
  %8638 = call ptr @strerror(i32 noundef %8637) #14
  %8639 = load i32, ptr %556, align 4, !tbaa !5
  %8640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8631, ptr noundef nonnull %.str.5.sink4217, i32 noundef %8632, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 1178, ptr noundef %8634, ptr noundef %8636, ptr noundef %8638, i32 noundef %8639) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8641:                                             ; preds = %8613
  %8642 = getelementptr inbounds i8, ptr %8615, i64 16
  store ptr %31, ptr %8642, align 8, !tbaa !77
  %8643 = getelementptr inbounds i8, ptr %8615, i64 656
  store ptr %5542, ptr %8643, align 8, !tbaa !56
  %8644 = add nsw i32 %8616, 2
  store i32 %8644, ptr @test_count, align 4, !tbaa !5
  %8645 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %8615, i8 noundef zeroext 20) #14
  %8646 = icmp eq i32 %8645, -1
  br i1 %8646, label %8647, label %8669

8647:                                             ; preds = %8641
  %8648 = load i32, ptr %556, align 4, !tbaa !5
  %8649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8650 = call i32 @s2n_print_stacktrace(ptr noundef %8649) #14
  %8651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8652 = trunc nuw i8 %8651 to i1
  br i1 %8652, label %8653, label %8657

8653:                                             ; preds = %8647
  %8654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8655 = call i32 @fileno(ptr noundef %8654) #14
  %8656 = call i32 @isatty(i32 noundef %8655) #14
  %.not1219 = icmp eq i32 %8656, 0
  br i1 %.not1219, label %8657, label %8658

8657:                                             ; preds = %8653, %8647
  br label %8658

8658:                                             ; preds = %8653, %8657
  %.str.5.sink4226 = phi ptr [ @.str.5, %8657 ], [ @.str.2, %8653 ]
  store i32 %8648, ptr %556, align 4, !tbaa !5
  %8659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8660 = load i32, ptr @test_count, align 4, !tbaa !5
  %8661 = load i32, ptr %502, align 4, !tbaa !5
  %8662 = call ptr @s2n_strerror(i32 noundef %8661, ptr noundef nonnull @.str.4) #14
  %8663 = load i32, ptr %502, align 4, !tbaa !5
  %8664 = call ptr @s2n_strerror_debug(i32 noundef %8663, ptr noundef nonnull @.str.4) #14
  %8665 = load i32, ptr %556, align 4, !tbaa !5
  %8666 = call ptr @strerror(i32 noundef %8665) #14
  %8667 = load i32, ptr %556, align 4, !tbaa !5
  %8668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8659, ptr noundef nonnull %.str.5.sink4226, i32 noundef %8660, ptr noundef nonnull @.str.172, ptr noundef nonnull @.str.1, i32 noundef 1182, ptr noundef %8662, ptr noundef %8664, ptr noundef %8666, i32 noundef %8667) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8669:                                             ; preds = %8641
  %8670 = load i32, ptr @test_count, align 4, !tbaa !5
  %8671 = add nsw i32 %8670, 1
  store i32 %8671, ptr @test_count, align 4, !tbaa !5
  %8672 = load ptr, ptr %51, align 8, !tbaa !9
  %8673 = call i32 @s2n_connection_set_config(ptr noundef %8672, ptr noundef nonnull %7065) #14
  %8674 = icmp eq i32 %8673, -1
  br i1 %8674, label %8675, label %8697

8675:                                             ; preds = %8669
  %8676 = load i32, ptr %556, align 4, !tbaa !5
  %8677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8678 = call i32 @s2n_print_stacktrace(ptr noundef %8677) #14
  %8679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8680 = trunc nuw i8 %8679 to i1
  br i1 %8680, label %8681, label %8685

8681:                                             ; preds = %8675
  %8682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8683 = call i32 @fileno(ptr noundef %8682) #14
  %8684 = call i32 @isatty(i32 noundef %8683) #14
  %.not1218 = icmp eq i32 %8684, 0
  br i1 %.not1218, label %8685, label %8686

8685:                                             ; preds = %8681, %8675
  br label %8686

8686:                                             ; preds = %8681, %8685
  %.str.5.sink4235 = phi ptr [ @.str.5, %8685 ], [ @.str.2, %8681 ]
  store i32 %8676, ptr %556, align 4, !tbaa !5
  %8687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8688 = load i32, ptr @test_count, align 4, !tbaa !5
  %8689 = load i32, ptr %502, align 4, !tbaa !5
  %8690 = call ptr @s2n_strerror(i32 noundef %8689, ptr noundef nonnull @.str.4) #14
  %8691 = load i32, ptr %502, align 4, !tbaa !5
  %8692 = call ptr @s2n_strerror_debug(i32 noundef %8691, ptr noundef nonnull @.str.4) #14
  %8693 = load i32, ptr %556, align 4, !tbaa !5
  %8694 = call ptr @strerror(i32 noundef %8693) #14
  %8695 = load i32, ptr %556, align 4, !tbaa !5
  %8696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8687, ptr noundef nonnull %.str.5.sink4235, i32 noundef %8688, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 1183, ptr noundef %8690, ptr noundef %8692, ptr noundef %8694, i32 noundef %8695) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8697:                                             ; preds = %8669
  store i16 3, ptr %30, align 8, !tbaa !78
  store ptr @main.test_cipher_suite_list.173, ptr %.sroa.2217.0..sroa_idx, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 9, ptr nonnull %52) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(9) %52, ptr noundef nonnull align 1 dereferenceable(9) @__const.main.wire.174, i64 9, i1 false)
  store i8 1, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %8698 = load i32, ptr @test_count, align 4, !tbaa !5
  %8699 = add nsw i32 %8698, 1
  store i32 %8699, ptr @test_count, align 4, !tbaa !5
  %8700 = load ptr, ptr %51, align 8, !tbaa !9
  %8701 = call i32 @s2n_set_cipher_as_sslv2_server(ptr noundef %8700, ptr noundef nonnull %52, i16 noundef zeroext 3) #14
  %8702 = icmp eq i32 %8701, -1
  br i1 %8702, label %8703, label %8725

8703:                                             ; preds = %8697
  %8704 = load i32, ptr %556, align 4, !tbaa !5
  %8705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8706 = call i32 @s2n_print_stacktrace(ptr noundef %8705) #14
  %8707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8708 = trunc nuw i8 %8707 to i1
  br i1 %8708, label %8709, label %8713

8709:                                             ; preds = %8703
  %8710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8711 = call i32 @fileno(ptr noundef %8710) #14
  %8712 = call i32 @isatty(i32 noundef %8711) #14
  %.not1217 = icmp eq i32 %8712, 0
  br i1 %.not1217, label %8713, label %8714

8713:                                             ; preds = %8709, %8703
  br label %8714

8714:                                             ; preds = %8709, %8713
  %.str.5.sink4244 = phi ptr [ @.str.5, %8713 ], [ @.str.2, %8709 ]
  store i32 %8704, ptr %556, align 4, !tbaa !5
  %8715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8716 = load i32, ptr @test_count, align 4, !tbaa !5
  %8717 = load i32, ptr %502, align 4, !tbaa !5
  %8718 = call ptr @s2n_strerror(i32 noundef %8717, ptr noundef nonnull @.str.4) #14
  %8719 = load i32, ptr %502, align 4, !tbaa !5
  %8720 = call ptr @s2n_strerror_debug(i32 noundef %8719, ptr noundef nonnull @.str.4) #14
  %8721 = load i32, ptr %556, align 4, !tbaa !5
  %8722 = call ptr @strerror(i32 noundef %8721) #14
  %8723 = load i32, ptr %556, align 4, !tbaa !5
  %8724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8715, ptr noundef nonnull %.str.5.sink4244, i32 noundef %8716, ptr noundef nonnull @.str.175, ptr noundef nonnull @.str.1, i32 noundef 1224, ptr noundef %8718, ptr noundef %8720, ptr noundef %8722, i32 noundef %8723) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8725:                                             ; preds = %8697
  %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 = load ptr, ptr %51, align 8, !tbaa !9
  %8729 = getelementptr inbounds i8, ptr %8728, i64 232
  %8730 = load ptr, ptr %8729, align 8, !tbaa !48
  %8731 = load ptr, ptr %8730, align 8, !tbaa !49
  %8732 = icmp eq ptr %8731, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha
  br i1 %8732, label %8755, label %8733

8733:                                             ; preds = %8725
  %8734 = load i32, ptr %556, align 4, !tbaa !5
  %8735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8736 = call i32 @s2n_print_stacktrace(ptr noundef %8735) #14
  %8737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8738 = trunc nuw i8 %8737 to i1
  br i1 %8738, label %8739, label %8743

8739:                                             ; preds = %8733
  %8740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8741 = call i32 @fileno(ptr noundef %8740) #14
  %8742 = call i32 @isatty(i32 noundef %8741) #14
  %.not1191 = icmp eq i32 %8742, 0
  br i1 %.not1191, label %8743, label %8744

8743:                                             ; preds = %8739, %8733
  br label %8744

8744:                                             ; preds = %8739, %8743
  %.str.5.sink4253 = phi ptr [ @.str.5, %8743 ], [ @.str.2, %8739 ]
  store i32 %8734, ptr %556, align 4, !tbaa !5
  %8745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8746 = load i32, ptr @test_count, align 4, !tbaa !5
  %8747 = load i32, ptr %502, align 4, !tbaa !5
  %8748 = call ptr @s2n_strerror(i32 noundef %8747, ptr noundef nonnull @.str.4) #14
  %8749 = load i32, ptr %502, align 4, !tbaa !5
  %8750 = call ptr @s2n_strerror_debug(i32 noundef %8749, ptr noundef nonnull @.str.4) #14
  %8751 = load i32, ptr %556, align 4, !tbaa !5
  %8752 = call ptr @strerror(i32 noundef %8751) #14
  %8753 = load i32, ptr %556, align 4, !tbaa !5
  %8754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8745, ptr noundef nonnull %.str.5.sink4253, i32 noundef %8746, ptr noundef nonnull @.str.176, ptr noundef nonnull @.str.1, i32 noundef 1225, ptr noundef %8748, ptr noundef %8750, ptr noundef %8752, i32 noundef %8753) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8755:                                             ; preds = %8725
  call void @llvm.lifetime.end.p0(i64 9, ptr nonnull %52) #14
  %8756 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %51) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  %8757 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %8757, ptr %53, align 8, !tbaa !9
  %8758 = load i32, ptr @test_count, align 4, !tbaa !5
  %8759 = add nsw i32 %8758, 1
  store i32 %8759, ptr @test_count, align 4, !tbaa !5
  %8760 = icmp eq ptr %8757, null
  br i1 %8760, label %8761, label %8783

8761:                                             ; preds = %8755
  %8762 = load i32, ptr %556, align 4, !tbaa !5
  %8763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8764 = call i32 @s2n_print_stacktrace(ptr noundef %8763) #14
  %8765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8766 = trunc nuw i8 %8765 to i1
  br i1 %8766, label %8767, label %8771

8767:                                             ; preds = %8761
  %8768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8769 = call i32 @fileno(ptr noundef %8768) #14
  %8770 = call i32 @isatty(i32 noundef %8769) #14
  %.not1216 = icmp eq i32 %8770, 0
  br i1 %.not1216, label %8771, label %8772

8771:                                             ; preds = %8767, %8761
  br label %8772

8772:                                             ; preds = %8767, %8771
  %.str.5.sink4262 = phi ptr [ @.str.5, %8771 ], [ @.str.2, %8767 ]
  store i32 %8762, ptr %556, align 4, !tbaa !5
  %8773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8774 = load i32, ptr @test_count, align 4, !tbaa !5
  %8775 = load i32, ptr %502, align 4, !tbaa !5
  %8776 = call ptr @s2n_strerror(i32 noundef %8775, ptr noundef nonnull @.str.4) #14
  %8777 = load i32, ptr %502, align 4, !tbaa !5
  %8778 = call ptr @s2n_strerror_debug(i32 noundef %8777, ptr noundef nonnull @.str.4) #14
  %8779 = load i32, ptr %556, align 4, !tbaa !5
  %8780 = call ptr @strerror(i32 noundef %8779) #14
  %8781 = load i32, ptr %556, align 4, !tbaa !5
  %8782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8773, ptr noundef nonnull %.str.5.sink4262, i32 noundef %8774, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 1231, ptr noundef %8776, ptr noundef %8778, ptr noundef %8780, i32 noundef %8781) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8783:                                             ; preds = %8755
  %8784 = add nsw i32 %8758, 2
  store i32 %8784, ptr @test_count, align 4, !tbaa !5
  %8785 = call i32 (...) @s2n_enable_tls13_in_test() #14
  %8786 = icmp eq i32 %8785, -1
  br i1 %8786, label %8787, label %8809

8787:                                             ; preds = %8783
  %8788 = load i32, ptr %556, align 4, !tbaa !5
  %8789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8790 = call i32 @s2n_print_stacktrace(ptr noundef %8789) #14
  %8791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8792 = trunc nuw i8 %8791 to i1
  br i1 %8792, label %8793, label %8797

8793:                                             ; preds = %8787
  %8794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8795 = call i32 @fileno(ptr noundef %8794) #14
  %8796 = call i32 @isatty(i32 noundef %8795) #14
  %.not1215 = icmp eq i32 %8796, 0
  br i1 %.not1215, label %8797, label %8798

8797:                                             ; preds = %8793, %8787
  br label %8798

8798:                                             ; preds = %8793, %8797
  %.str.5.sink4271 = phi ptr [ @.str.5, %8797 ], [ @.str.2, %8793 ]
  store i32 %8788, ptr %556, align 4, !tbaa !5
  %8799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8800 = load i32, ptr @test_count, align 4, !tbaa !5
  %8801 = load i32, ptr %502, align 4, !tbaa !5
  %8802 = call ptr @s2n_strerror(i32 noundef %8801, ptr noundef nonnull @.str.4) #14
  %8803 = load i32, ptr %502, align 4, !tbaa !5
  %8804 = call ptr @s2n_strerror_debug(i32 noundef %8803, ptr noundef nonnull @.str.4) #14
  %8805 = load i32, ptr %556, align 4, !tbaa !5
  %8806 = call ptr @strerror(i32 noundef %8805) #14
  %8807 = load i32, ptr %556, align 4, !tbaa !5
  %8808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8799, ptr noundef nonnull %.str.5.sink4271, i32 noundef %8800, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.1, i32 noundef 1232, ptr noundef %8802, ptr noundef %8804, ptr noundef %8806, i32 noundef %8807) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8809:                                             ; preds = %8783
  %8810 = load ptr, ptr %53, align 8, !tbaa !9
  %8811 = getelementptr inbounds i8, ptr %8810, i64 16
  store ptr %31, ptr %8811, align 8, !tbaa !77
  %8812 = getelementptr inbounds i8, ptr %8810, i64 656
  store ptr %5542, ptr %8812, align 8, !tbaa !56
  %8813 = load i32, ptr @test_count, align 4, !tbaa !5
  %8814 = add nsw i32 %8813, 1
  store i32 %8814, ptr @test_count, align 4, !tbaa !5
  %8815 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %8810, i8 noundef zeroext 34) #14
  %8816 = icmp eq i32 %8815, -1
  br i1 %8816, label %8817, label %8839

8817:                                             ; preds = %8809
  %8818 = load i32, ptr %556, align 4, !tbaa !5
  %8819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8820 = call i32 @s2n_print_stacktrace(ptr noundef %8819) #14
  %8821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8822 = trunc nuw i8 %8821 to i1
  br i1 %8822, label %8823, label %8827

8823:                                             ; preds = %8817
  %8824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8825 = call i32 @fileno(ptr noundef %8824) #14
  %8826 = call i32 @isatty(i32 noundef %8825) #14
  %.not1214 = icmp eq i32 %8826, 0
  br i1 %.not1214, label %8827, label %8828

8827:                                             ; preds = %8823, %8817
  br label %8828

8828:                                             ; preds = %8823, %8827
  %.str.5.sink4280 = phi ptr [ @.str.5, %8827 ], [ @.str.2, %8823 ]
  store i32 %8818, ptr %556, align 4, !tbaa !5
  %8829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8830 = load i32, ptr @test_count, align 4, !tbaa !5
  %8831 = load i32, ptr %502, align 4, !tbaa !5
  %8832 = call ptr @s2n_strerror(i32 noundef %8831, ptr noundef nonnull @.str.4) #14
  %8833 = load i32, ptr %502, align 4, !tbaa !5
  %8834 = call ptr @s2n_strerror_debug(i32 noundef %8833, ptr noundef nonnull @.str.4) #14
  %8835 = load i32, ptr %556, align 4, !tbaa !5
  %8836 = call ptr @strerror(i32 noundef %8835) #14
  %8837 = load i32, ptr %556, align 4, !tbaa !5
  %8838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8829, ptr noundef nonnull %.str.5.sink4280, i32 noundef %8830, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.1, i32 noundef 1236, ptr noundef %8832, ptr noundef %8834, ptr noundef %8836, i32 noundef %8837) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8839:                                             ; preds = %8809
  store i16 2, ptr %30, align 8, !tbaa !78
  store ptr @main.test_cipher_suite_list.177, ptr %.sroa.2217.0..sroa_idx, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %54) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %54, ptr noundef nonnull align 1 dereferenceable(6) @__const.main.wire.178, i64 6, i1 false)
  store i8 0, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %8840 = load i32, ptr @test_count, align 4, !tbaa !5
  %8841 = add nsw i32 %8840, 1
  store i32 %8841, ptr @test_count, align 4, !tbaa !5
  %8842 = load ptr, ptr %53, align 8, !tbaa !9
  %8843 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %8842, ptr noundef nonnull %54, i16 noundef zeroext 3) #14
  %8844 = icmp eq i32 %8843, -1
  br i1 %8844, label %8845, label %8867

8845:                                             ; preds = %8839
  %8846 = load i32, ptr %556, align 4, !tbaa !5
  %8847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8848 = call i32 @s2n_print_stacktrace(ptr noundef %8847) #14
  %8849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8850 = trunc nuw i8 %8849 to i1
  br i1 %8850, label %8851, label %8855

8851:                                             ; preds = %8845
  %8852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8853 = call i32 @fileno(ptr noundef %8852) #14
  %8854 = call i32 @isatty(i32 noundef %8853) #14
  %.not1213 = icmp eq i32 %8854, 0
  br i1 %.not1213, label %8855, label %8856

8855:                                             ; preds = %8851, %8845
  br label %8856

8856:                                             ; preds = %8851, %8855
  %.str.5.sink4289 = phi ptr [ @.str.5, %8855 ], [ @.str.2, %8851 ]
  store i32 %8846, ptr %556, align 4, !tbaa !5
  %8857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8858 = load i32, ptr @test_count, align 4, !tbaa !5
  %8859 = load i32, ptr %502, align 4, !tbaa !5
  %8860 = call ptr @s2n_strerror(i32 noundef %8859, ptr noundef nonnull @.str.4) #14
  %8861 = load i32, ptr %502, align 4, !tbaa !5
  %8862 = call ptr @s2n_strerror_debug(i32 noundef %8861, ptr noundef nonnull @.str.4) #14
  %8863 = load i32, ptr %556, align 4, !tbaa !5
  %8864 = call ptr @strerror(i32 noundef %8863) #14
  %8865 = load i32, ptr %556, align 4, !tbaa !5
  %8866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8857, ptr noundef nonnull %.str.5.sink4289, i32 noundef %8858, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 1263, ptr noundef %8860, ptr noundef %8862, ptr noundef %8864, i32 noundef %8865) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8867:                                             ; preds = %8839
  %8868 = load i32, ptr @test_count, align 4, !tbaa !5
  %8869 = add nsw i32 %8868, 1
  store i32 %8869, ptr @test_count, align 4, !tbaa !5
  %8870 = load ptr, ptr %53, align 8, !tbaa !9
  %8871 = getelementptr inbounds i8, ptr %8870, i64 232
  %8872 = load ptr, ptr %8871, align 8, !tbaa !48
  %8873 = load ptr, ptr %8872, align 8, !tbaa !49
  %8874 = icmp eq ptr %8873, @s2n_tls13_aes_128_gcm_sha256
  br i1 %8874, label %8897, label %8875

8875:                                             ; preds = %8867
  %8876 = load i32, ptr %556, align 4, !tbaa !5
  %8877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8878 = call i32 @s2n_print_stacktrace(ptr noundef %8877) #14
  %8879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8880 = trunc nuw i8 %8879 to i1
  br i1 %8880, label %8881, label %8885

8881:                                             ; preds = %8875
  %8882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8883 = call i32 @fileno(ptr noundef %8882) #14
  %8884 = call i32 @isatty(i32 noundef %8883) #14
  %.not1192 = icmp eq i32 %8884, 0
  br i1 %.not1192, label %8885, label %8886

8885:                                             ; preds = %8881, %8875
  br label %8886

8886:                                             ; preds = %8881, %8885
  %.str.5.sink4298 = phi ptr [ @.str.5, %8885 ], [ @.str.2, %8881 ]
  store i32 %8876, ptr %556, align 4, !tbaa !5
  %8887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8888 = load i32, ptr @test_count, align 4, !tbaa !5
  %8889 = load i32, ptr %502, align 4, !tbaa !5
  %8890 = call ptr @s2n_strerror(i32 noundef %8889, ptr noundef nonnull @.str.4) #14
  %8891 = load i32, ptr %502, align 4, !tbaa !5
  %8892 = call ptr @s2n_strerror_debug(i32 noundef %8891, ptr noundef nonnull @.str.4) #14
  %8893 = load i32, ptr %556, align 4, !tbaa !5
  %8894 = call ptr @strerror(i32 noundef %8893) #14
  %8895 = load i32, ptr %556, align 4, !tbaa !5
  %8896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8887, ptr noundef nonnull %.str.5.sink4298, i32 noundef %8888, ptr noundef nonnull @.str.167, ptr noundef nonnull @.str.1, i32 noundef 1264, ptr noundef %8890, ptr noundef %8892, ptr noundef %8894, i32 noundef %8895) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8897:                                             ; preds = %8867
  %8898 = add nsw i32 %8868, 2
  store i32 %8898, ptr @test_count, align 4, !tbaa !5
  %8899 = call i32 (...) @s2n_disable_tls13_in_test() #14
  %8900 = icmp eq i32 %8899, -1
  br i1 %8900, label %8901, label %8923

8901:                                             ; preds = %8897
  %8902 = load i32, ptr %556, align 4, !tbaa !5
  %8903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8904 = call i32 @s2n_print_stacktrace(ptr noundef %8903) #14
  %8905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8906 = trunc nuw i8 %8905 to i1
  br i1 %8906, label %8907, label %8911

8907:                                             ; preds = %8901
  %8908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8909 = call i32 @fileno(ptr noundef %8908) #14
  %8910 = call i32 @isatty(i32 noundef %8909) #14
  %.not1212 = icmp eq i32 %8910, 0
  br i1 %.not1212, label %8911, label %8912

8911:                                             ; preds = %8907, %8901
  br label %8912

8912:                                             ; preds = %8907, %8911
  %.str.5.sink4307 = phi ptr [ @.str.5, %8911 ], [ @.str.2, %8907 ]
  store i32 %8902, ptr %556, align 4, !tbaa !5
  %8913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8914 = load i32, ptr @test_count, align 4, !tbaa !5
  %8915 = load i32, ptr %502, align 4, !tbaa !5
  %8916 = call ptr @s2n_strerror(i32 noundef %8915, ptr noundef nonnull @.str.4) #14
  %8917 = load i32, ptr %502, align 4, !tbaa !5
  %8918 = call ptr @s2n_strerror_debug(i32 noundef %8917, ptr noundef nonnull @.str.4) #14
  %8919 = load i32, ptr %556, align 4, !tbaa !5
  %8920 = call ptr @strerror(i32 noundef %8919) #14
  %8921 = load i32, ptr %556, align 4, !tbaa !5
  %8922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8913, ptr noundef nonnull %.str.5.sink4307, i32 noundef %8914, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 1265, ptr noundef %8916, ptr noundef %8918, ptr noundef %8920, i32 noundef %8921) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8923:                                             ; preds = %8897
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %54) #14
  %8924 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %53) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #14
  %8925 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %8925, ptr %55, align 8, !tbaa !9
  %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 = icmp eq ptr %8925, null
  br i1 %8928, label %8929, label %8951

8929:                                             ; preds = %8923
  %8930 = load i32, ptr %556, align 4, !tbaa !5
  %8931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8932 = call i32 @s2n_print_stacktrace(ptr noundef %8931) #14
  %8933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8934 = trunc nuw i8 %8933 to i1
  br i1 %8934, label %8935, label %8939

8935:                                             ; preds = %8929
  %8936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8937 = call i32 @fileno(ptr noundef %8936) #14
  %8938 = call i32 @isatty(i32 noundef %8937) #14
  %.not1211 = icmp eq i32 %8938, 0
  br i1 %.not1211, label %8939, label %8940

8939:                                             ; preds = %8935, %8929
  br label %8940

8940:                                             ; preds = %8935, %8939
  %.str.5.sink4316 = phi ptr [ @.str.5, %8939 ], [ @.str.2, %8935 ]
  store i32 %8930, ptr %556, align 4, !tbaa !5
  %8941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8942 = load i32, ptr @test_count, align 4, !tbaa !5
  %8943 = load i32, ptr %502, align 4, !tbaa !5
  %8944 = call ptr @s2n_strerror(i32 noundef %8943, ptr noundef nonnull @.str.4) #14
  %8945 = load i32, ptr %502, align 4, !tbaa !5
  %8946 = call ptr @s2n_strerror_debug(i32 noundef %8945, ptr noundef nonnull @.str.4) #14
  %8947 = load i32, ptr %556, align 4, !tbaa !5
  %8948 = call ptr @strerror(i32 noundef %8947) #14
  %8949 = load i32, ptr %556, align 4, !tbaa !5
  %8950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8941, ptr noundef nonnull %.str.5.sink4316, i32 noundef %8942, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 1271, ptr noundef %8944, ptr noundef %8946, ptr noundef %8948, i32 noundef %8949) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8951:                                             ; preds = %8923
  %8952 = getelementptr inbounds i8, ptr %8925, i64 16
  store ptr %31, ptr %8952, align 8, !tbaa !77
  %8953 = getelementptr inbounds i8, ptr %8925, i64 656
  store ptr %5542, ptr %8953, align 8, !tbaa !56
  %8954 = add nsw i32 %8926, 2
  store i32 %8954, ptr @test_count, align 4, !tbaa !5
  %8955 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %8925, i8 noundef zeroext 33) #14
  %8956 = icmp eq i32 %8955, -1
  br i1 %8956, label %8957, label %8979

8957:                                             ; preds = %8951
  %8958 = load i32, ptr %556, align 4, !tbaa !5
  %8959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8960 = call i32 @s2n_print_stacktrace(ptr noundef %8959) #14
  %8961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8962 = trunc nuw i8 %8961 to i1
  br i1 %8962, label %8963, label %8967

8963:                                             ; preds = %8957
  %8964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8965 = call i32 @fileno(ptr noundef %8964) #14
  %8966 = call i32 @isatty(i32 noundef %8965) #14
  %.not1210 = icmp eq i32 %8966, 0
  br i1 %.not1210, label %8967, label %8968

8967:                                             ; preds = %8963, %8957
  br label %8968

8968:                                             ; preds = %8963, %8967
  %.str.5.sink4325 = phi ptr [ @.str.5, %8967 ], [ @.str.2, %8963 ]
  store i32 %8958, ptr %556, align 4, !tbaa !5
  %8969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8970 = load i32, ptr @test_count, align 4, !tbaa !5
  %8971 = load i32, ptr %502, align 4, !tbaa !5
  %8972 = call ptr @s2n_strerror(i32 noundef %8971, ptr noundef nonnull @.str.4) #14
  %8973 = load i32, ptr %502, align 4, !tbaa !5
  %8974 = call ptr @s2n_strerror_debug(i32 noundef %8973, ptr noundef nonnull @.str.4) #14
  %8975 = load i32, ptr %556, align 4, !tbaa !5
  %8976 = call ptr @strerror(i32 noundef %8975) #14
  %8977 = load i32, ptr %556, align 4, !tbaa !5
  %8978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8969, ptr noundef nonnull %.str.5.sink4325, i32 noundef %8970, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 1275, ptr noundef %8972, ptr noundef %8974, ptr noundef %8976, i32 noundef %8977) #16
  call void @exit(i32 noundef 1) #17
  unreachable

8979:                                             ; preds = %8951
  %8980 = load i32, ptr @test_count, align 4, !tbaa !5
  %8981 = add nsw i32 %8980, 1
  store i32 %8981, ptr @test_count, align 4, !tbaa !5
  %8982 = load ptr, ptr %55, align 8, !tbaa !9
  %8983 = call i32 @s2n_connection_set_config(ptr noundef %8982, ptr noundef nonnull %7065) #14
  %8984 = icmp eq i32 %8983, -1
  br i1 %8984, label %8985, label %9007

8985:                                             ; preds = %8979
  %8986 = load i32, ptr %556, align 4, !tbaa !5
  %8987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8988 = call i32 @s2n_print_stacktrace(ptr noundef %8987) #14
  %8989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8990 = trunc nuw i8 %8989 to i1
  br i1 %8990, label %8991, label %8995

8991:                                             ; preds = %8985
  %8992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8993 = call i32 @fileno(ptr noundef %8992) #14
  %8994 = call i32 @isatty(i32 noundef %8993) #14
  %.not1209 = icmp eq i32 %8994, 0
  br i1 %.not1209, label %8995, label %8996

8995:                                             ; preds = %8991, %8985
  br label %8996

8996:                                             ; preds = %8991, %8995
  %.str.5.sink4334 = phi ptr [ @.str.5, %8995 ], [ @.str.2, %8991 ]
  store i32 %8986, ptr %556, align 4, !tbaa !5
  %8997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8998 = load i32, ptr @test_count, align 4, !tbaa !5
  %8999 = load i32, ptr %502, align 4, !tbaa !5
  %9000 = call ptr @s2n_strerror(i32 noundef %8999, ptr noundef nonnull @.str.4) #14
  %9001 = load i32, ptr %502, align 4, !tbaa !5
  %9002 = call ptr @s2n_strerror_debug(i32 noundef %9001, ptr noundef nonnull @.str.4) #14
  %9003 = load i32, ptr %556, align 4, !tbaa !5
  %9004 = call ptr @strerror(i32 noundef %9003) #14
  %9005 = load i32, ptr %556, align 4, !tbaa !5
  %9006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8997, ptr noundef nonnull %.str.5.sink4334, i32 noundef %8998, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 1277, ptr noundef %9000, ptr noundef %9002, ptr noundef %9004, i32 noundef %9005) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9007:                                             ; preds = %8979
  store i16 3, ptr %30, align 8, !tbaa !78
  store ptr @main.test_cipher_suite_list.179, ptr %.sroa.2217.0..sroa_idx, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %56) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %56, ptr noundef nonnull align 1 dereferenceable(6) @__const.main.wire.180, i64 6, i1 false)
  store i8 1, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %9008 = load i32, ptr @test_count, align 4, !tbaa !5
  %9009 = add nsw i32 %9008, 1
  store i32 %9009, ptr @test_count, align 4, !tbaa !5
  %9010 = load ptr, ptr %55, align 8, !tbaa !9
  %9011 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %9010, ptr noundef nonnull %56, i16 noundef zeroext 3) #14
  %9012 = icmp eq i32 %9011, -1
  br i1 %9012, label %9013, label %9035

9013:                                             ; preds = %9007
  %9014 = load i32, ptr %556, align 4, !tbaa !5
  %9015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9016 = call i32 @s2n_print_stacktrace(ptr noundef %9015) #14
  %9017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9018 = trunc nuw i8 %9017 to i1
  br i1 %9018, label %9019, label %9023

9019:                                             ; preds = %9013
  %9020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9021 = call i32 @fileno(ptr noundef %9020) #14
  %9022 = call i32 @isatty(i32 noundef %9021) #14
  %.not1208 = icmp eq i32 %9022, 0
  br i1 %.not1208, label %9023, label %9024

9023:                                             ; preds = %9019, %9013
  br label %9024

9024:                                             ; preds = %9019, %9023
  %.str.5.sink4343 = phi ptr [ @.str.5, %9023 ], [ @.str.2, %9019 ]
  store i32 %9014, ptr %556, align 4, !tbaa !5
  %9025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9026 = load i32, ptr @test_count, align 4, !tbaa !5
  %9027 = load i32, ptr %502, align 4, !tbaa !5
  %9028 = call ptr @s2n_strerror(i32 noundef %9027, ptr noundef nonnull @.str.4) #14
  %9029 = load i32, ptr %502, align 4, !tbaa !5
  %9030 = call ptr @s2n_strerror_debug(i32 noundef %9029, ptr noundef nonnull @.str.4) #14
  %9031 = load i32, ptr %556, align 4, !tbaa !5
  %9032 = call ptr @strerror(i32 noundef %9031) #14
  %9033 = load i32, ptr %556, align 4, !tbaa !5
  %9034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9025, ptr noundef nonnull %.str.5.sink4343, i32 noundef %9026, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 1306, ptr noundef %9028, ptr noundef %9030, ptr noundef %9032, i32 noundef %9033) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9035:                                             ; preds = %9007
  %9036 = load i32, ptr @test_count, align 4, !tbaa !5
  %9037 = add nsw i32 %9036, 1
  store i32 %9037, ptr @test_count, align 4, !tbaa !5
  %9038 = load ptr, ptr %55, align 8, !tbaa !9
  %9039 = getelementptr inbounds i8, ptr %9038, i64 232
  %9040 = load ptr, ptr %9039, align 8, !tbaa !48
  %9041 = load ptr, ptr %9040, align 8, !tbaa !49
  %9042 = icmp eq ptr %9041, @s2n_ecdhe_rsa_with_chacha20_poly1305_sha256
  br i1 %9042, label %9065, label %9043

9043:                                             ; preds = %9035
  %9044 = load i32, ptr %556, align 4, !tbaa !5
  %9045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9046 = call i32 @s2n_print_stacktrace(ptr noundef %9045) #14
  %9047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9048 = trunc nuw i8 %9047 to i1
  br i1 %9048, label %9049, label %9053

9049:                                             ; preds = %9043
  %9050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9051 = call i32 @fileno(ptr noundef %9050) #14
  %9052 = call i32 @isatty(i32 noundef %9051) #14
  %.not1193 = icmp eq i32 %9052, 0
  br i1 %.not1193, label %9053, label %9054

9053:                                             ; preds = %9049, %9043
  br label %9054

9054:                                             ; preds = %9049, %9053
  %.str.5.sink4352 = phi ptr [ @.str.5, %9053 ], [ @.str.2, %9049 ]
  store i32 %9044, ptr %556, align 4, !tbaa !5
  %9055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9056 = load i32, ptr @test_count, align 4, !tbaa !5
  %9057 = load i32, ptr %502, align 4, !tbaa !5
  %9058 = call ptr @s2n_strerror(i32 noundef %9057, ptr noundef nonnull @.str.4) #14
  %9059 = load i32, ptr %502, align 4, !tbaa !5
  %9060 = call ptr @s2n_strerror_debug(i32 noundef %9059, ptr noundef nonnull @.str.4) #14
  %9061 = load i32, ptr %556, align 4, !tbaa !5
  %9062 = call ptr @strerror(i32 noundef %9061) #14
  %9063 = load i32, ptr %556, align 4, !tbaa !5
  %9064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9055, ptr noundef nonnull %.str.5.sink4352, i32 noundef %9056, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 1307, ptr noundef %9058, ptr noundef %9060, ptr noundef %9062, i32 noundef %9063) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9065:                                             ; preds = %9035
  store i8 0, ptr %.sroa.3218.0..sroa_idx, align 8, !tbaa !79
  %9066 = add nsw i32 %9036, 2
  store i32 %9066, ptr @test_count, align 4, !tbaa !5
  %9067 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef nonnull %9038, ptr noundef nonnull %56, i16 noundef zeroext 3) #14
  %9068 = icmp eq i32 %9067, -1
  br i1 %9068, label %9069, label %9091

9069:                                             ; preds = %9065
  %9070 = load i32, ptr %556, align 4, !tbaa !5
  %9071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9072 = call i32 @s2n_print_stacktrace(ptr noundef %9071) #14
  %9073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9074 = trunc nuw i8 %9073 to i1
  br i1 %9074, label %9075, label %9079

9075:                                             ; preds = %9069
  %9076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9077 = call i32 @fileno(ptr noundef %9076) #14
  %9078 = call i32 @isatty(i32 noundef %9077) #14
  %.not1207 = icmp eq i32 %9078, 0
  br i1 %.not1207, label %9079, label %9080

9079:                                             ; preds = %9075, %9069
  br label %9080

9080:                                             ; preds = %9075, %9079
  %.str.5.sink4361 = phi ptr [ @.str.5, %9079 ], [ @.str.2, %9075 ]
  store i32 %9070, ptr %556, align 4, !tbaa !5
  %9081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9082 = load i32, ptr @test_count, align 4, !tbaa !5
  %9083 = load i32, ptr %502, align 4, !tbaa !5
  %9084 = call ptr @s2n_strerror(i32 noundef %9083, ptr noundef nonnull @.str.4) #14
  %9085 = load i32, ptr %502, align 4, !tbaa !5
  %9086 = call ptr @s2n_strerror_debug(i32 noundef %9085, ptr noundef nonnull @.str.4) #14
  %9087 = load i32, ptr %556, align 4, !tbaa !5
  %9088 = call ptr @strerror(i32 noundef %9087) #14
  %9089 = load i32, ptr %556, align 4, !tbaa !5
  %9090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9081, ptr noundef nonnull %.str.5.sink4361, i32 noundef %9082, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 1312, ptr noundef %9084, ptr noundef %9086, ptr noundef %9088, i32 noundef %9089) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9091:                                             ; preds = %9065
  %9092 = load i32, ptr @test_count, align 4, !tbaa !5
  %9093 = add nsw i32 %9092, 1
  store i32 %9093, ptr @test_count, align 4, !tbaa !5
  %9094 = load ptr, ptr %55, align 8, !tbaa !9
  %9095 = getelementptr inbounds i8, ptr %9094, i64 232
  %9096 = load ptr, ptr %9095, align 8, !tbaa !48
  %9097 = load ptr, ptr %9096, align 8, !tbaa !49
  %9098 = icmp eq ptr %9097, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %9098, label %9121, label %9099

9099:                                             ; preds = %9091
  %9100 = load i32, ptr %556, align 4, !tbaa !5
  %9101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9102 = call i32 @s2n_print_stacktrace(ptr noundef %9101) #14
  %9103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9104 = trunc nuw i8 %9103 to i1
  br i1 %9104, label %9105, label %9109

9105:                                             ; preds = %9099
  %9106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9107 = call i32 @fileno(ptr noundef %9106) #14
  %9108 = call i32 @isatty(i32 noundef %9107) #14
  %.not1194 = icmp eq i32 %9108, 0
  br i1 %.not1194, label %9109, label %9110

9109:                                             ; preds = %9105, %9099
  br label %9110

9110:                                             ; preds = %9105, %9109
  %.str.5.sink4370 = phi ptr [ @.str.5, %9109 ], [ @.str.2, %9105 ]
  store i32 %9100, ptr %556, align 4, !tbaa !5
  %9111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9112 = load i32, ptr @test_count, align 4, !tbaa !5
  %9113 = load i32, ptr %502, align 4, !tbaa !5
  %9114 = call ptr @s2n_strerror(i32 noundef %9113, ptr noundef nonnull @.str.4) #14
  %9115 = load i32, ptr %502, align 4, !tbaa !5
  %9116 = call ptr @s2n_strerror_debug(i32 noundef %9115, ptr noundef nonnull @.str.4) #14
  %9117 = load i32, ptr %556, align 4, !tbaa !5
  %9118 = call ptr @strerror(i32 noundef %9117) #14
  %9119 = load i32, ptr %556, align 4, !tbaa !5
  %9120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9111, ptr noundef nonnull %.str.5.sink4370, i32 noundef %9112, ptr noundef nonnull @.str.162, ptr noundef nonnull @.str.1, i32 noundef 1313, ptr noundef %9114, ptr noundef %9116, ptr noundef %9118, i32 noundef %9119) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9121:                                             ; preds = %9091
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %56) #14
  %9122 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %55) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  br label %9123

9123:                                             ; preds = %9121, %7278
  %9124 = call zeroext i1 %5352() #14
  br i1 %9124, label %9268, label %9125

9125:                                             ; preds = %9123
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #14
  %9126 = call ptr @s2n_connection_new(i32 noundef 0) #14
  store ptr %9126, ptr %57, align 8, !tbaa !9
  %9127 = load i32, ptr @test_count, align 4, !tbaa !5
  %9128 = add nsw i32 %9127, 1
  store i32 %9128, ptr @test_count, align 4, !tbaa !5
  %9129 = icmp eq ptr %9126, null
  br i1 %9129, label %9130, label %9152

9130:                                             ; preds = %9125
  %9131 = load i32, ptr %556, align 4, !tbaa !5
  %9132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9133 = call i32 @s2n_print_stacktrace(ptr noundef %9132) #14
  %9134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9135 = trunc nuw i8 %9134 to i1
  br i1 %9135, label %9136, label %9140

9136:                                             ; preds = %9130
  %9137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9138 = call i32 @fileno(ptr noundef %9137) #14
  %9139 = call i32 @isatty(i32 noundef %9138) #14
  %.not1199 = icmp eq i32 %9139, 0
  br i1 %.not1199, label %9140, label %9141

9140:                                             ; preds = %9136, %9130
  br label %9141

9141:                                             ; preds = %9136, %9140
  %.str.5.sink4379 = phi ptr [ @.str.5, %9140 ], [ @.str.2, %9136 ]
  store i32 %9131, ptr %556, align 4, !tbaa !5
  %9142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9143 = load i32, ptr @test_count, align 4, !tbaa !5
  %9144 = load i32, ptr %502, align 4, !tbaa !5
  %9145 = call ptr @s2n_strerror(i32 noundef %9144, ptr noundef nonnull @.str.4) #14
  %9146 = load i32, ptr %502, align 4, !tbaa !5
  %9147 = call ptr @s2n_strerror_debug(i32 noundef %9146, ptr noundef nonnull @.str.4) #14
  %9148 = load i32, ptr %556, align 4, !tbaa !5
  %9149 = call ptr @strerror(i32 noundef %9148) #14
  %9150 = load i32, ptr %556, align 4, !tbaa !5
  %9151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9142, ptr noundef nonnull %.str.5.sink4379, i32 noundef %9143, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 1320, ptr noundef %9145, ptr noundef %9147, ptr noundef %9149, i32 noundef %9150) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9152:                                             ; preds = %9125
  %9153 = getelementptr inbounds i8, ptr %9126, i64 16
  store ptr %31, ptr %9153, align 8, !tbaa !77
  %9154 = getelementptr inbounds i8, ptr %9126, i64 656
  store ptr %5542, ptr %9154, align 8, !tbaa !56
  %9155 = add nsw i32 %9127, 2
  store i32 %9155, ptr @test_count, align 4, !tbaa !5
  %9156 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %9126, i8 noundef zeroext 33) #14
  %9157 = icmp eq i32 %9156, -1
  br i1 %9157, label %9158, label %9180

9158:                                             ; preds = %9152
  %9159 = load i32, ptr %556, align 4, !tbaa !5
  %9160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9161 = call i32 @s2n_print_stacktrace(ptr noundef %9160) #14
  %9162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9163 = trunc nuw i8 %9162 to i1
  br i1 %9163, label %9164, label %9168

9164:                                             ; preds = %9158
  %9165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9166 = call i32 @fileno(ptr noundef %9165) #14
  %9167 = call i32 @isatty(i32 noundef %9166) #14
  %.not1198 = icmp eq i32 %9167, 0
  br i1 %.not1198, label %9168, label %9169

9168:                                             ; preds = %9164, %9158
  br label %9169

9169:                                             ; preds = %9164, %9168
  %.str.5.sink4388 = phi ptr [ @.str.5, %9168 ], [ @.str.2, %9164 ]
  store i32 %9159, ptr %556, align 4, !tbaa !5
  %9170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9171 = load i32, ptr @test_count, align 4, !tbaa !5
  %9172 = load i32, ptr %502, align 4, !tbaa !5
  %9173 = call ptr @s2n_strerror(i32 noundef %9172, ptr noundef nonnull @.str.4) #14
  %9174 = load i32, ptr %502, align 4, !tbaa !5
  %9175 = call ptr @s2n_strerror_debug(i32 noundef %9174, ptr noundef nonnull @.str.4) #14
  %9176 = load i32, ptr %556, align 4, !tbaa !5
  %9177 = call ptr @strerror(i32 noundef %9176) #14
  %9178 = load i32, ptr %556, align 4, !tbaa !5
  %9179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9170, ptr noundef nonnull %.str.5.sink4388, i32 noundef %9171, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 1323, ptr noundef %9173, ptr noundef %9175, ptr noundef %9177, i32 noundef %9178) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9180:                                             ; preds = %9152
  %9181 = load i32, ptr @test_count, align 4, !tbaa !5
  %9182 = add nsw i32 %9181, 1
  store i32 %9182, ptr @test_count, align 4, !tbaa !5
  %9183 = load ptr, ptr %57, align 8, !tbaa !9
  %9184 = call i32 @s2n_connection_set_config(ptr noundef %9183, ptr noundef nonnull %7065) #14
  %9185 = icmp eq i32 %9184, -1
  br i1 %9185, label %9186, label %9208

9186:                                             ; preds = %9180
  %9187 = load i32, ptr %556, align 4, !tbaa !5
  %9188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9189 = call i32 @s2n_print_stacktrace(ptr noundef %9188) #14
  %9190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9191 = trunc nuw i8 %9190 to i1
  br i1 %9191, label %9192, label %9196

9192:                                             ; preds = %9186
  %9193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9194 = call i32 @fileno(ptr noundef %9193) #14
  %9195 = call i32 @isatty(i32 noundef %9194) #14
  %.not1197 = icmp eq i32 %9195, 0
  br i1 %.not1197, label %9196, label %9197

9196:                                             ; preds = %9192, %9186
  br label %9197

9197:                                             ; preds = %9192, %9196
  %.str.5.sink4397 = phi ptr [ @.str.5, %9196 ], [ @.str.2, %9192 ]
  store i32 %9187, ptr %556, align 4, !tbaa !5
  %9198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9199 = load i32, ptr @test_count, align 4, !tbaa !5
  %9200 = load i32, ptr %502, align 4, !tbaa !5
  %9201 = call ptr @s2n_strerror(i32 noundef %9200, ptr noundef nonnull @.str.4) #14
  %9202 = load i32, ptr %502, align 4, !tbaa !5
  %9203 = call ptr @s2n_strerror_debug(i32 noundef %9202, ptr noundef nonnull @.str.4) #14
  %9204 = load i32, ptr %556, align 4, !tbaa !5
  %9205 = call ptr @strerror(i32 noundef %9204) #14
  %9206 = load i32, ptr %556, align 4, !tbaa !5
  %9207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9198, ptr noundef nonnull %.str.5.sink4397, i32 noundef %9199, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 1324, ptr noundef %9201, ptr noundef %9203, ptr noundef %9205, i32 noundef %9206) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9208:                                             ; preds = %9180
  store i16 3, ptr %30, align 8, !tbaa !78
  %.sroa.215.0..sroa_idx = getelementptr inbounds i8, ptr %30, i64 8
  store ptr @main.test_cipher_suite_list.181, ptr %.sroa.215.0..sroa_idx, align 8, !tbaa !9
  %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %30, i64 16
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %58) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %58, ptr noundef nonnull align 1 dereferenceable(6) @__const.main.wire.182, i64 6, i1 false)
  store i8 1, ptr %.sroa.3.0..sroa_idx, align 8, !tbaa !79
  %9209 = load i32, ptr @test_count, align 4, !tbaa !5
  %9210 = add nsw i32 %9209, 1
  store i32 %9210, ptr @test_count, align 4, !tbaa !5
  %9211 = load ptr, ptr %57, align 8, !tbaa !9
  %9212 = call i32 @s2n_set_cipher_as_tls_server(ptr noundef %9211, ptr noundef nonnull %58, i16 noundef zeroext 3) #14
  %9213 = icmp eq i32 %9212, -1
  br i1 %9213, label %9214, label %9236

9214:                                             ; preds = %9208
  %9215 = load i32, ptr %556, align 4, !tbaa !5
  %9216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9217 = call i32 @s2n_print_stacktrace(ptr noundef %9216) #14
  %9218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9219 = trunc nuw i8 %9218 to i1
  br i1 %9219, label %9220, label %9224

9220:                                             ; preds = %9214
  %9221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9222 = call i32 @fileno(ptr noundef %9221) #14
  %9223 = call i32 @isatty(i32 noundef %9222) #14
  %.not1196 = icmp eq i32 %9223, 0
  br i1 %.not1196, label %9224, label %9225

9224:                                             ; preds = %9220, %9214
  br label %9225

9225:                                             ; preds = %9220, %9224
  %.str.5.sink4406 = phi ptr [ @.str.5, %9224 ], [ @.str.2, %9220 ]
  store i32 %9215, ptr %556, align 4, !tbaa !5
  %9226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9227 = load i32, ptr @test_count, align 4, !tbaa !5
  %9228 = load i32, ptr %502, align 4, !tbaa !5
  %9229 = call ptr @s2n_strerror(i32 noundef %9228, ptr noundef nonnull @.str.4) #14
  %9230 = load i32, ptr %502, align 4, !tbaa !5
  %9231 = call ptr @s2n_strerror_debug(i32 noundef %9230, ptr noundef nonnull @.str.4) #14
  %9232 = load i32, ptr %556, align 4, !tbaa !5
  %9233 = call ptr @strerror(i32 noundef %9232) #14
  %9234 = load i32, ptr %556, align 4, !tbaa !5
  %9235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9226, ptr noundef nonnull %.str.5.sink4406, i32 noundef %9227, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 1353, ptr noundef %9229, ptr noundef %9231, ptr noundef %9233, i32 noundef %9234) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9236:                                             ; preds = %9208
  %9237 = load i32, ptr @test_count, align 4, !tbaa !5
  %9238 = add nsw i32 %9237, 1
  store i32 %9238, ptr @test_count, align 4, !tbaa !5
  %9239 = load ptr, ptr %57, align 8, !tbaa !9
  %9240 = getelementptr inbounds i8, ptr %9239, i64 232
  %9241 = load ptr, ptr %9240, align 8, !tbaa !48
  %9242 = load ptr, ptr %9241, align 8, !tbaa !49
  %9243 = icmp eq ptr %9242, @s2n_ecdhe_ecdsa_with_aes_128_cbc_sha256
  br i1 %9243, label %9266, label %9244

9244:                                             ; preds = %9236
  %9245 = load i32, ptr %556, align 4, !tbaa !5
  %9246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9247 = call i32 @s2n_print_stacktrace(ptr noundef %9246) #14
  %9248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9249 = trunc nuw i8 %9248 to i1
  br i1 %9249, label %9250, label %9254

9250:                                             ; preds = %9244
  %9251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9252 = call i32 @fileno(ptr noundef %9251) #14
  %9253 = call i32 @isatty(i32 noundef %9252) #14
  %.not1195 = icmp eq i32 %9253, 0
  br i1 %.not1195, label %9254, label %9255

9254:                                             ; preds = %9250, %9244
  br label %9255

9255:                                             ; preds = %9250, %9254
  %.str.5.sink4415 = phi ptr [ @.str.5, %9254 ], [ @.str.2, %9250 ]
  store i32 %9245, ptr %556, align 4, !tbaa !5
  %9256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9257 = load i32, ptr @test_count, align 4, !tbaa !5
  %9258 = load i32, ptr %502, align 4, !tbaa !5
  %9259 = call ptr @s2n_strerror(i32 noundef %9258, ptr noundef nonnull @.str.4) #14
  %9260 = load i32, ptr %502, align 4, !tbaa !5
  %9261 = call ptr @s2n_strerror_debug(i32 noundef %9260, ptr noundef nonnull @.str.4) #14
  %9262 = load i32, ptr %556, align 4, !tbaa !5
  %9263 = call ptr @strerror(i32 noundef %9262) #14
  %9264 = load i32, ptr %556, align 4, !tbaa !5
  %9265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9256, ptr noundef nonnull %.str.5.sink4415, i32 noundef %9257, ptr noundef nonnull @.str.162, ptr noundef nonnull @.str.1, i32 noundef 1354, ptr noundef %9259, ptr noundef %9261, ptr noundef %9263, i32 noundef %9264) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9266:                                             ; preds = %9236
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %58) #14
  %9267 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %57) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #14
  br label %9268

9268:                                             ; preds = %9123, %9266
  %9269 = load i32, ptr @test_count, align 4, !tbaa !5
  %9270 = add nsw i32 %9269, 1
  store i32 %9270, ptr @test_count, align 4, !tbaa !5
  %9271 = load ptr, ptr %33, align 8, !tbaa !9
  %9272 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %9271) #14
  %9273 = icmp eq i32 %9272, -1
  br i1 %9273, label %9274, label %9296

9274:                                             ; preds = %9268
  %9275 = load i32, ptr %556, align 4, !tbaa !5
  %9276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9277 = call i32 @s2n_print_stacktrace(ptr noundef %9276) #14
  %9278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9279 = trunc nuw i8 %9278 to i1
  br i1 %9279, label %9280, label %9284

9280:                                             ; preds = %9274
  %9281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9282 = call i32 @fileno(ptr noundef %9281) #14
  %9283 = call i32 @isatty(i32 noundef %9282) #14
  %.not1206 = icmp eq i32 %9283, 0
  br i1 %.not1206, label %9284, label %9285

9284:                                             ; preds = %9280, %9274
  br label %9285

9285:                                             ; preds = %9280, %9284
  %.str.5.sink4424 = phi ptr [ @.str.5, %9284 ], [ @.str.2, %9280 ]
  store i32 %9275, ptr %556, align 4, !tbaa !5
  %9286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9287 = load i32, ptr @test_count, align 4, !tbaa !5
  %9288 = load i32, ptr %502, align 4, !tbaa !5
  %9289 = call ptr @s2n_strerror(i32 noundef %9288, ptr noundef nonnull @.str.4) #14
  %9290 = load i32, ptr %502, align 4, !tbaa !5
  %9291 = call ptr @s2n_strerror_debug(i32 noundef %9290, ptr noundef nonnull @.str.4) #14
  %9292 = load i32, ptr %556, align 4, !tbaa !5
  %9293 = call ptr @strerror(i32 noundef %9292) #14
  %9294 = load i32, ptr %556, align 4, !tbaa !5
  %9295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9286, ptr noundef nonnull %.str.5.sink4424, i32 noundef %9287, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 1357, ptr noundef %9289, ptr noundef %9291, ptr noundef %9293, i32 noundef %9294) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9296:                                             ; preds = %9268
  %9297 = load i32, ptr @test_count, align 4, !tbaa !5
  %9298 = add nsw i32 %9297, 1
  store i32 %9298, ptr @test_count, align 4, !tbaa !5
  %9299 = load ptr, ptr %34, align 8, !tbaa !9
  %9300 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %9299) #14
  %9301 = icmp eq i32 %9300, -1
  br i1 %9301, label %9302, label %9324

9302:                                             ; preds = %9296
  %9303 = load i32, ptr %556, align 4, !tbaa !5
  %9304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9305 = call i32 @s2n_print_stacktrace(ptr noundef %9304) #14
  %9306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9307 = trunc nuw i8 %9306 to i1
  br i1 %9307, label %9308, label %9312

9308:                                             ; preds = %9302
  %9309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9310 = call i32 @fileno(ptr noundef %9309) #14
  %9311 = call i32 @isatty(i32 noundef %9310) #14
  %.not1205 = icmp eq i32 %9311, 0
  br i1 %.not1205, label %9312, label %9313

9312:                                             ; preds = %9308, %9302
  br label %9313

9313:                                             ; preds = %9308, %9312
  %.str.5.sink4433 = phi ptr [ @.str.5, %9312 ], [ @.str.2, %9308 ]
  store i32 %9303, ptr %556, align 4, !tbaa !5
  %9314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9315 = load i32, ptr @test_count, align 4, !tbaa !5
  %9316 = load i32, ptr %502, align 4, !tbaa !5
  %9317 = call ptr @s2n_strerror(i32 noundef %9316, ptr noundef nonnull @.str.4) #14
  %9318 = load i32, ptr %502, align 4, !tbaa !5
  %9319 = call ptr @s2n_strerror_debug(i32 noundef %9318, ptr noundef nonnull @.str.4) #14
  %9320 = load i32, ptr %556, align 4, !tbaa !5
  %9321 = call ptr @strerror(i32 noundef %9320) #14
  %9322 = load i32, ptr %556, align 4, !tbaa !5
  %9323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9314, ptr noundef nonnull %.str.5.sink4433, i32 noundef %9315, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 1358, ptr noundef %9317, ptr noundef %9319, ptr noundef %9321, i32 noundef %9322) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9324:                                             ; preds = %9296
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #14
  %9325 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %32) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #14
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %31) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #14
  %9326 = call i32 @s2n_cleanup() #14
  %9327 = icmp eq i32 %9326, -1
  br i1 %9327, label %9328, label %9350

9328:                                             ; preds = %9324
  %9329 = load i32, ptr %556, align 4, !tbaa !5
  %9330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9331 = call i32 @s2n_print_stacktrace(ptr noundef %9330) #14
  %9332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9333 = trunc nuw i8 %9332 to i1
  br i1 %9333, label %9334, label %9338

9334:                                             ; preds = %9328
  %9335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9336 = call i32 @fileno(ptr noundef %9335) #14
  %9337 = call i32 @isatty(i32 noundef %9336) #14
  %.not1204 = icmp eq i32 %9337, 0
  br i1 %.not1204, label %9338, label %9339

9338:                                             ; preds = %9334, %9328
  br label %9339

9339:                                             ; preds = %9334, %9338
  %.str.5.sink4442 = phi ptr [ @.str.5, %9338 ], [ @.str.2, %9334 ]
  store i32 %9329, ptr %556, align 4, !tbaa !5
  %9340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9341 = load i32, ptr @test_count, align 4, !tbaa !5
  %9342 = load i32, ptr %502, align 4, !tbaa !5
  %9343 = call ptr @s2n_strerror(i32 noundef %9342, ptr noundef nonnull @.str.4) #14
  %9344 = load i32, ptr %502, align 4, !tbaa !5
  %9345 = call ptr @s2n_strerror_debug(i32 noundef %9344, ptr noundef nonnull @.str.4) #14
  %9346 = load i32, ptr %556, align 4, !tbaa !5
  %9347 = call ptr @strerror(i32 noundef %9346) #14
  %9348 = load i32, ptr %556, align 4, !tbaa !5
  %9349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9340, ptr noundef nonnull %.str.5.sink4442, i32 noundef %9341, ptr noundef nonnull @.str.183, ptr noundef nonnull @.str.1, i32 noundef 1361, ptr noundef %9343, ptr noundef %9345, ptr noundef %9347, i32 noundef %9348) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9350:                                             ; preds = %9324
  %9351 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #14
  %9352 = icmp eq i32 %9351, -1
  br i1 %9352, label %9353, label %9375

9353:                                             ; preds = %9350
  %9354 = load i32, ptr %556, align 4, !tbaa !5
  %9355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9356 = call i32 @s2n_print_stacktrace(ptr noundef %9355) #14
  %9357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9358 = trunc nuw i8 %9357 to i1
  br i1 %9358, label %9359, label %9363

9359:                                             ; preds = %9353
  %9360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9361 = call i32 @fileno(ptr noundef %9360) #14
  %9362 = call i32 @isatty(i32 noundef %9361) #14
  %.not1203 = icmp eq i32 %9362, 0
  br i1 %.not1203, label %9363, label %9364

9363:                                             ; preds = %9359, %9353
  br label %9364

9364:                                             ; preds = %9359, %9363
  %.str.5.sink4451 = phi ptr [ @.str.5, %9363 ], [ @.str.2, %9359 ]
  store i32 %9354, ptr %556, align 4, !tbaa !5
  %9365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9366 = load i32, ptr @test_count, align 4, !tbaa !5
  %9367 = load i32, ptr %502, align 4, !tbaa !5
  %9368 = call ptr @s2n_strerror(i32 noundef %9367, ptr noundef nonnull @.str.4) #14
  %9369 = load i32, ptr %502, align 4, !tbaa !5
  %9370 = call ptr @s2n_strerror_debug(i32 noundef %9369, ptr noundef nonnull @.str.4) #14
  %9371 = load i32, ptr %556, align 4, !tbaa !5
  %9372 = call ptr @strerror(i32 noundef %9371) #14
  %9373 = load i32, ptr %556, align 4, !tbaa !5
  %9374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9365, ptr noundef nonnull %.str.5.sink4451, i32 noundef %9366, ptr noundef nonnull @.str.184, ptr noundef nonnull @.str.1, i32 noundef 1361, ptr noundef %9368, ptr noundef %9370, ptr noundef %9372, i32 noundef %9373) #16
  call void @exit(i32 noundef 1) #17
  unreachable

9375:                                             ; preds = %9350
  %9376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9377 = trunc nuw i8 %9376 to i1
  br i1 %9377, label %9378, label %9389

9378:                                             ; preds = %9375
  %9379 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9380 = call i32 @fileno(ptr noundef %9379) #14
  %9381 = call i32 @isatty(i32 noundef %9380) #14
  %.not1200 = icmp eq i32 %9381, 0
  br i1 %.not1200, label %9389, label %9382

9382:                                             ; preds = %9378
  %9383 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1202 = icmp eq i32 %9383, 0
  %9384 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1202, label %9387, label %9385

9385:                                             ; preds = %9382
  %9386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9384, ptr noundef nonnull @.str.185, i32 noundef %9383) #14
  br label %9396

9387:                                             ; preds = %9382
  %9388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9384, ptr noundef nonnull @.str.186) #14
  br label %9396

9389:                                             ; preds = %9378, %9375
  %9390 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1201 = icmp eq i32 %9390, 0
  %9391 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1201, label %9394, label %9392

9392:                                             ; preds = %9389
  %9393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9391, ptr noundef nonnull @.str.187, i32 noundef %9390) #14
  br label %9396

9394:                                             ; preds = %9389
  %9395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9391, ptr noundef nonnull @.str.188) #14
  br label %9396

9396:                                             ; preds = %9392, %9394, %9385, %9387
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %3) #14
  ret i32 0
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

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

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 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_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_set_cipher_as_client(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #11

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_set_cipher_as_tls_server(ptr noundef, ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_connection_is_valid_for_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_ecc_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cert_chain_and_key_defaults(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #12

declare ptr @s2n_strerror_name(i32 noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_add_dhparams(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #13

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

declare i32 @s2n_set_cipher_as_sslv2_server(ptr noundef, ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { 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 #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #12 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #13 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #14 = { nounwind }
attributes #15 = { nounwind willreturn memory(none) }
attributes #16 = { cold nounwind }
attributes #17 = { noreturn nounwind }
attributes #18 = { nounwind allocsize(0) }
attributes #19 = { 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, !7, i64 218}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !7, i64 220}
!43 = !{!16, !7, i64 219}
!44 = !{!16, !10, i64 1736}
!45 = !{!46, !6, i64 56}
!46 = !{!"s2n_psk", !6, i64 0, !25, i64 8, !25, i64 32, !6, i64 56, !6, i64 60, !18, i64 64, !25, i64 72, !47, i64 96, !18, i64 160}
!47 = !{!"s2n_early_data_config", !6, i64 0, !7, i64 4, !10, i64 8, !25, i64 16, !25, i64 40}
!48 = !{!16, !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, !31, i64 4, !6, i64 8, !31, 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, !18, i64 16, !7, i64 24}
!54 = !{!55, !10, i64 8}
!55 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!56 = !{!16, !10, i64 656}
!57 = !{!58, !10, i64 8}
!58 = !{!"s2n_cipher_preferences", !31, i64 0, !10, i64 8, !12, i64 16}
!59 = !{!58, !31, i64 0}
!60 = !{!7, !7, i64 0}
!61 = !{!62, !10, i64 0}
!62 = !{!"test_case", !10, i64 0, !10, i64 8}
!63 = !{!62, !10, i64 8}
!64 = !{!65, !10, i64 56}
!65 = !{!"s2n_cipher", !6, i64 0, !7, i64 8, !7, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96}
!66 = !{!67, !6, i64 96}
!67 = !{!"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}
!68 = !{!69, !7, i64 0}
!69 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!70 = !{!69, !10, i64 8}
!71 = !{!69, !10, i64 16}
!72 = !{!69, !10, i64 24}
!73 = !{!69, !10, i64 32}
!74 = !{!69, !10, i64 40}
!75 = !{!69, !10, i64 48}
!76 = !{!69, !12, i64 56}
!77 = !{!16, !10, i64 16}
!78 = !{!31, !31, i64 0}
!79 = !{!58, !12, i64 16}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass